| | |
| | | ISB1: TImageScrollBox; |
| | | Label3: TLabel; |
| | | LogFile1: TLogFile; |
| | | ScanGrayCB: TCheckBox; |
| | | procedure ActiveFormCreate(Sender: TObject); |
| | | procedure Panel9Resize(Sender: TObject); |
| | | procedure ISB1Click(Sender: TObject); |
| | |
| | | procedure ImageScrollBox1NewGraphic(const Graphic: TDibGraphic); |
| | | procedure SmoothCBClick(Sender: TObject); |
| | | procedure N1Click(Sender: TObject); |
| | | procedure TreeView1MouseEnter(Sender: TObject); |
| | | procedure ScrollBox1MouseEnter(Sender: TObject); |
| | | procedure ScanGrayCBClick(Sender: TObject); |
| | | private |
| | | { Private declarations } |
| | | HotKeyId1,HotKeyId2,HotKeyId3,HotKeyId4 :Integer; |
| | |
| | | |
| | | FirstDocDir : String; |
| | | FMaxUploadSize:String;// 上傳zip大小限制 |
| | | FJpgCompression:integer;// 20171211 jpg to tif 的壓縮率 |
| | | |
| | | Draging : Boolean; |
| | | |
| | |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.WMMOUSEWHEEL(var message: TWMMouseWheel); |
| | | var |
| | | I: Integer; |
| | | iISB : TImageScrollBox; |
| | | begin |
| | | inherited; |
| | | //lb1.Caption:=IntToStr(message.Keys); |
| | | if (message.WheelDelta = WHEEL_DELTA) Then |
| | | begin |
| | | |
| | | if (message.WheelDelta = WHEEL_DELTA) Then begin |
| | | if Edit1.Focused then |
| | | begin |
| | | ScrollBox1.VertScrollBar.Increment := 50; |
| | | ScrollBox1.Perform(WM_VSCROLL, SB_LINEUP, 0); |
| | | end |
| | | else if DisplayISB.Focused then |
| | | begin |
| | | DisplayISB.VertScrollBar.Increment := 50; |
| | | DisplayISB.Perform(WM_VSCROLL, SB_LINEUP, 0); |
| | | end; |
| | | end else if (message.WheelDelta = -WHEEL_DELTA) then begin |
| | | if Edit1.Focused then |
| | | begin |
| | | ScrollBox1.VertScrollBar.Increment := 50; |
| | | ScrollBox1.Perform(WM_VSCROLL, SB_LINEDOWN, 0); |
| | | end |
| | | else if DisplayISB.Focused then |
| | | begin |
| | | DisplayISB.VertScrollBar.Increment := 50; |
| | | DisplayISB.Perform(WM_VSCROLL, SB_LINEDOWN, 0); |
| | | end; |
| | | if ScrollBox1.Focused then |
| | | begin |
| | | ScrollBox1.VertScrollBar.Increment := 50; |
| | | ScrollBox1.Perform(WM_VSCROLL,SB_Lineup,0); |
| | | end; |
| | | if DisplayISB <> nil then |
| | | begin |
| | | if (DisplayISB.Focused) and (message.Keys=0) then |
| | | begin |
| | | DisplayISB.VertScrollBar.Increment := 50; |
| | | DisplayISB.Perform(WM_VSCROLL,SB_Lineup,0); |
| | | end; |
| | | |
| | | if (DisplayISB.Focused) and (message.Keys=50) then |
| | | begin |
| | | DisplayISB.ZoomMode := zmPercent; |
| | | if DisplayISB.ZoomPercent < 90 then |
| | | DisplayISB.ZoomPercent := DisplayISB.ZoomPercent+10; |
| | | end; |
| | | |
| | | end; |
| | | i:=0; |
| | | while FindComponent(ISBName+inttostr(i)) <> nil do |
| | | begin |
| | | iISB := TImageScrollBox(FindComponent(ISBName+inttostr(i))); |
| | | if iISB.Focused then |
| | | begin |
| | | ScrollBox1.VertScrollBar.Increment := 50; |
| | | ScrollBox1.Perform(WM_VSCROLL,SB_Lineup,0); |
| | | end; |
| | | inc(i); |
| | | end; |
| | | |
| | | end |
| | | else if (message.WheelDelta = -WHEEL_DELTA) then |
| | | begin |
| | | |
| | | if ScrollBox1.Focused then |
| | | begin |
| | | ScrollBox1.VertScrollBar.Increment := 50; |
| | | ScrollBox1.Perform(WM_VSCROLL, SB_LINEDOWN, 0); |
| | | end; |
| | | if DisplayISB <> nil then |
| | | begin |
| | | if (DisplayISB.Focused) and (message.Keys=0) then |
| | | begin |
| | | DisplayISB.VertScrollBar.Increment := 50; |
| | | DisplayISB.Perform(WM_VSCROLL,SB_LINEDOWN,0); |
| | | end; |
| | | if (DisplayISB.Focused) and (message.Keys=50) then |
| | | begin |
| | | DisplayISB.ZoomMode := zmPercent; |
| | | if DisplayISB.ZoomPercent > 10 then |
| | | DisplayISB.ZoomPercent := DisplayISB.ZoomPercent-10; |
| | | end; |
| | | |
| | | |
| | | end; |
| | | |
| | | i:=0; |
| | | while FindComponent(ISBName+inttostr(i)) <> nil do |
| | | begin |
| | | iISB := TImageScrollBox(FindComponent(ISBName+inttostr(i))); |
| | | if iISB.Focused then |
| | | begin |
| | | ScrollBox1.VertScrollBar.Increment := 50; |
| | | ScrollBox1.Perform(WM_VSCROLL,SB_Lineup,0); |
| | | end; |
| | | inc(i); |
| | | end; |
| | | |
| | | end; |
| | | |
| | | |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.WNoteBtnClick(Sender: TObject); |
| | |
| | | ST1,ST2,ST3,ST4:TStringList; |
| | | i,j,k:Integer; |
| | | begin |
| | | //ShowMessage('casepath='+casepath); |
| | | |
| | | ST1:=TStringList.Create; |
| | | ST2:=TStringList.Create; |
| | | ST3:=TStringList.Create; |
| | | |
| | | //FImgDelete:='Y'; |
| | | {if FileExists(casepath+'CaseDocNo.dat') then |
| | | begin |
| | | ST1.LoadFromFile(casepath+'CaseDocNo.dat'); |
| | | for I := 0 to ST1.Count - 1 do |
| | | begin |
| | | ST2.LoadFromFile(casepath+ST1.Strings[i]+'\Context.dat'); |
| | | for j := 0 to ST2.Count - 1 do |
| | | begin |
| | | ExistImgList.Add(casepath+ST1.Strings[i]+'\'+ST2.Strings[j]) |
| | | end; |
| | | end; |
| | | end; |
| | | |
| | | if FileExists(casepath+'S_Attach\Context.dat') then |
| | | begin |
| | | ST3.LoadFromFile(casepath+'S_Attach\Context.dat'); |
| | | for I := 0 to ST3.Count - 1 do |
| | | begin |
| | | ExistImgList.Add(casepath+'S_Attach\'+ST3.Strings[i]) |
| | | end; |
| | | end; |
| | | |
| | | if FileExists(casepath+'Attach\Context.dat') then |
| | | begin |
| | | ST3.LoadFromFile(casepath+'Attach\Context.dat'); |
| | | for I := 0 to ST3.Count - 1 do |
| | | begin |
| | | ExistImgList.Add(casepath+'Attach\'+ST3.Strings[i]) |
| | | end; |
| | | end; } |
| | | ExistImgList.Clear; |
| | | ST1.LoadFromFile(casepath+'Download\Context.dat'); |
| | | for I := 0 to ST1.Count - 1 do |
| | | begin |
| | | LogFile1.LogToFile(logTimeString+casepath+'Download\'+ST1.Strings[i]+',MD5='+LoadFileGetMD5(casepath+'Download\'+ST1.Strings[i])); |
| | | ExistImgList.Add(LoadFileGetMD5(casepath+'Download\'+ST1.Strings[i])) ; |
| | | end; |
| | | LogFile1.LogToFile(logTimeString+'ExistImgList.text'+ExistImgList.CommaText); |
| | | |
| | | ST1.Free; |
| | | ST2.Free; |
| | | ST3.Free; |
| | | //ShowMessage('ExistImgList='+ExistImgList.Text); |
| | | |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.Initialize; |
| | |
| | | |
| | | procedure TCB_IMGPSScanX.ISB1Enter(Sender: TObject); |
| | | begin |
| | | //ISB1.SetFocus; |
| | | ISB1.SetFocus; |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.ISB1ImageMouseDown(Sender: TObject; Button: TMouseButton; |
| | |
| | | p : Integer; |
| | | begin |
| | | DisplayISB := TImageScrollBox(Sender); |
| | | DisplayISB.SetFocus; |
| | | if NowClick<>0 then |
| | | DisplayISB.SetFocus; |
| | | Shape1.Left := TPanel(TImageScrollBox(Sender).Parent).Left - Seg; |
| | | Shape1.Top := TPanel(TImageScrollBox(Sender).Parent).Top - Seg; |
| | | P := strtoint(copy(DisplayISB.Name,4,1)) + ScrollBar1.Position-2; |
| | |
| | | begin |
| | | //Edit1.SetFocus; |
| | | //TImageScrollBox(Sender).SetFocus; |
| | | |
| | | if TImageScrollBox(Sender).FileName = '' then |
| | | begin |
| | | //ShowMessage('AAA'); |
| | | Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName+' time='+FormatDateTime('yyyy/mm/dd HH:MM:SS', now); |
| | | TImageScrollBox(Sender).MouseMode := mmUser |
| | | end |
| | | Else |
| | | begin |
| | | Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName; |
| | | ViewMouseMode(NowClick); |
| | | end; |
| | | |
| | | ISB1.AlwaysShowAnnotations := False; |
| | | |
| | | // if TImageScrollBox(Sender).FileName = '' then |
| | | // begin |
| | | ////ShowMessage('AAA'); |
| | | //Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName+' time='+FormatDateTime('yyyy/mm/dd HH:MM:SS', now); |
| | | // TImageScrollBox(Sender).MouseMode := mmUser |
| | | // end |
| | | // Else |
| | | // begin |
| | | //Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName; |
| | | // ViewMouseMode(NowClick); |
| | | // end; |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.ISB1ImageMouseUp(Sender: TObject; Button: TMouseButton; |
| | |
| | | ExistImgList.Free; |
| | | reSizeExistImgList.Free; |
| | | //********清單區******** |
| | | if (FMode = 'DSCAN') or (FMode = 'ESCAN') then //重掃件及異動件要只能掃指定編號的件 |
| | | begin |
| | | if ImagePath<>'' then |
| | | _Deltree(ImagePath); |
| | | end; |
| | | |
| | | if FEvents <> nil then FEvents.OnDestroy; |
| | | end; |
| | | |
| | |
| | | SaveStream : TFileStream; |
| | | SaveStreamA:TFileStream; |
| | | SaveStreamB:TFileStream; |
| | | cooom:integer; |
| | | Begin |
| | | OpenDialog1.Filter := 'Image files|*.TIF;*.JPG'; |
| | | If OpenDialog1.Execute Then |
| | |
| | | //ShowMessage(IntToStr(FileRec.Size)+','+IntToStr(FFileSizeLimit * 1024)); |
| | | If FileRec.Size > FFileSizeLimit * 1024 Then // 檢查檔案大小 |
| | | Begin |
| | | ShowMessage(Format('%.3f', [FileRec.Size / 1024]) + |
| | | ' KB, file size over limit.'); |
| | | ShowMessage(Format('目前檔案大小為 %.3f MB', [FileRec.Size / (1024*1024)]) + |
| | | ',已超過單一檔案匯入限制'+Format('%.1f',[FFileSizeLimit/1024])+'MB'); |
| | | FindClose(FileRec); |
| | | DataLoading(false, false); |
| | | Exit; |
| | | End; |
| | | //MessageDlg() |
| | | //cooom:=StrToInt(InputBox('輸入百分比','輸入百分比','')); |
| | | cooom:=FJpgCompression;//20171211彩色tif採jpg壓縮的比例 |
| | | |
| | | FindClose(FileRec); |
| | | CaseID := NowCaseno; |
| | |
| | | ShowText := _Msg('檔案加入中,請稍候(' + inttostr(i) + '/' + inttostr(P) + ')'); |
| | | DataLoading(True, True); |
| | | ISB.LoadFromFile(FName, i); |
| | | // ISB.SaveToFile('C:\OCX\aaaaaa'+IntToStr(i)+'.tif'); |
| | | DeskewImg(ISB.Graphic); |
| | | // ISB.SaveToFile('C:\OCX\bbbbbb'+IntToStr(i)+'.tif'); |
| | | |
| | | |
| | | ISB_BW.Graphic.Assign(ISB.Graphic); //20180104 |
| | | If ISB.Graphic.ImageFormat <> ifBlackWhite Then //20180104 |
| | | begin |
| | | ConvertToBW(ISB_BW.Graphic); |
| | | end; |
| | | ///ISB_BW.SaveToFile('KKKKKKKK.tif'); |
| | | |
| | | iGraphic_First := TTiffGraphic.Create; |
| | | iGraphic_sec := TTiffGraphic.Create; |
| | |
| | | iGraphic_First.Assign(ISB.Graphic); |
| | | //ShowMessage(IntToStr(iGraphic_First.Palette.palNumEntries)); //彩色 會為0 黑白 為2 |
| | | |
| | | MpsGetBarcode(ISB.Graphic, MpsBarcodeinf); //判斷A3 有用FormID 所以要先辨條碼 |
| | | MpsGetBarcode(ISB_BW.Graphic, MpsBarcodeinf); //判斷A3 有用FormID 所以要先辨條碼 |
| | | //有必要的話先把影像轉正 再開始切圖 |
| | | If CheckNeedCrop(iGraphic_First) Then |
| | | Begin |
| | |
| | | (TreeView1.Selected = MyTreeNode1) Then |
| | | Begin |
| | | SaveFilename := ''; |
| | | MpsGetBarcode(iGraphic, MpsBarcodeinf); |
| | | ISB_BW.Graphic.Assign(iGraphic); //20180104 |
| | | If iGraphic.ImageFormat <> ifBlackWhite Then //20180104 |
| | | begin |
| | | ConvertToBW(ISB_BW.Graphic); |
| | | end; |
| | | MpsGetBarcode(ISB_BW.Graphic, MpsBarcodeinf); |
| | | //ShowMessage(IntToStr(MpsBarcodeinf.Count)); |
| | | For n := 1 To MpsBarcodeinf.Count Do |
| | | Begin |
| | | If MpsBarcodeinf.r180[n] <> 0 Then // 依條碼角度轉影像 |
| | |
| | | End; |
| | | End; |
| | | FormID := BarCode2FormID; |
| | | //ShowMessage('FormID='+FormID); |
| | | // 取出FormID |
| | | SaveFilename := FormID; |
| | | If (TreeView1.Selected = NewTreeNode) Then |
| | |
| | | Break; |
| | | End; |
| | | End; |
| | | |
| | | if iGraphic.Palette.palNumEntries = 0 then //20171130 彩色 會為0 黑白 為2 |
| | | //ShowMessage(IntToStr(iGraphic.Palette.palNumEntries)); |
| | | if (iGraphic.Palette.palNumEntries = 0) or (iGraphic.Palette.palNumEntries = 256) then //20171130 彩色 會為0 黑白 為2 灰階256 |
| | | begin |
| | | iGraphic.Compression:=tcJPEG; |
| | | iGraphic.JpegQuality:=70; |
| | | iGraphic.JpegQuality:=cooom; |
| | | end; |
| | | |
| | | If LowerCase(ExtractFileExt(SavePath + SaveFilename)) = '.tif' Then |
| | |
| | | // SaveStream.Free; |
| | | End; |
| | | End; |
| | | |
| | | // Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正 |
| | | // ISB.SaveToFile(SavePath+SaveFilename); |
| | | |
| | | SetContextList('A', -1, CaseID, DocDir, SaveFilename); |
| | | If (TreeView1.Selected = NewTreeNode) Then |
| | |
| | | Break; |
| | | End; |
| | | End; |
| | | // Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正 |
| | | if iGraphic.Palette.palNumEntries = 0 then //20171130 彩色 會為0 黑白 為2 |
| | | |
| | | if (iGraphic.Palette.palNumEntries = 0) or (iGraphic.Palette.palNumEntries = 256) then //20171130 彩色 會為0 黑白 為2 |
| | | begin |
| | | iGraphic.Compression:=tcJPEG; |
| | | iGraphic.JpegQuality:=70; |
| | | iGraphic.JpegQuality:=cooom; |
| | | end; |
| | | |
| | | If LowerCase(ExtractFileExt(SavePath + SaveFilename)) = '.tif' Then |
| | |
| | | end; |
| | | ShowText := _Msg('歸類中,請稍侯'); |
| | | DataLoading(True,True); |
| | | |
| | | //ShowMessage('NowDocDir='+NowDocDir); |
| | | FormIDReplace(NowCaseNo,NowDocDir,NowFormCode,NewFormID); |
| | | |
| | | end; |
| | |
| | | |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.ScrollBox1MouseEnter(Sender: TObject); |
| | | begin |
| | | ScrollBox1.SetFocus; |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.SelectScanBtnClick(Sender: TObject); |
| | | begin |
| | | Panel1.Enabled := False; |
| | |
| | | //lb1.Caption:='AAAAAAAAAAA'; |
| | | //Showmessage(CreateDocnoFrom_Info(NowCaseno)); |
| | | //Showmessage(self.CreateCustDocNoFrom_Info(NowCaseno)); |
| | | ShowMessage('FMaxUploadSize='+FMaxUploadSize); |
| | | initkscan; |
| | | //ShowMessage('FMaxUploadSize='+FMaxUploadSize); |
| | | //initkscan; |
| | | showmessage('FUrl='+FUrl+#10#13+ |
| | | 'FCaseID='+FCaseID+#10#13+ |
| | | 'FMode='+FMode+#10#13+ |
| | |
| | | 'FImgDelete='+ FImgDelete+#10#13+ |
| | | 'FIsExternal='+ FIsExternal+#10#13+ |
| | | 'FWH_category='+FWH_category+ |
| | | 'FCheck_main_form='+ FCheck_main_form); |
| | | 'FCheck_main_form='+ FCheck_main_form+#10#13+ |
| | | 'FMaxUploadSize='+FMaxUploadSize); |
| | | //FImgDelete:='Y'; |
| | | LoadImgFile; |
| | | { ShowMessage('UpLPoint='+IntToStr(UpLPoint.X)+','+IntToStr(UpLPoint.Y)+#10#13+ |
| | |
| | | end; |
| | | end; |
| | | pScanInfo^.Graphic.Compression := tcJpeg; |
| | | pScanInfo^.Graphic.JpegQuality := 70; |
| | | pScanInfo^.Graphic.JpegQuality := FJpgCompression; |
| | | end |
| | | else if pScanInfo^.Graphic.ImageFormat = ifColor256 Then |
| | | begin |
| | | //Ext := '.jpg'; |
| | | ConvertToGray(pScanInfo^.Graphic); |
| | | pScanInfo^.Graphic.Compression := tcJpeg; |
| | | pScanInfo^.Graphic.JpegQuality := 70; |
| | | pScanInfo^.Graphic.JpegQuality := FJpgCompression; |
| | | end |
| | | else if pScanInfo^.Graphic.ImageFormat = ifGray256 Then |
| | | begin |
| | |
| | | end; |
| | | end; |
| | | pScanInfo^.Graphic.Compression := tcJpeg; |
| | | pScanInfo^.Graphic.JpegQuality := 70; |
| | | pScanInfo^.Graphic.JpegQuality := FJpgCompression; |
| | | //ShowMessage(IntToStr(pScanInfo^.Graphic.JpegQuality)); |
| | | //if pScanInfo^.Graphic.Compression = tcJpeg then |
| | | //begin |
| | | //ShowMessage('jpg'); |
| | | //end; |
| | | |
| | | end |
| | | else |
| | | begin |
| | |
| | | end; |
| | | //iGraphic.Assign(iGraphic_First); |
| | | iGraphic := iGraphic_First; |
| | | |
| | | if iGraphic.ImageFormat=ifGray256 then //20180104 |
| | | begin |
| | | iGraphic.Compression:=tcJPEG; |
| | | iGraphic.JpegQuality:=FJpgCompression; |
| | | end; |
| | | if iGraphic.ImageFormat=ifTrueColor then //20180104 |
| | | begin |
| | | iGraphic.Compression:=tcJPEG; |
| | | iGraphic.JpegQuality:=FJpgCompression; |
| | | end; |
| | | |
| | | |
| | | while not iGraphic.IsEmpty do |
| | | begin |
| | | //Application.ProcessMessages; |
| | |
| | | ImageScrollBox1NewGraphic(ImageScrollBox1.Graphic); |
| | | |
| | | MpsGetBarcode(ISB_BW.Graphic,MpsBarcodeinf); |
| | | For i := 1 To MpsBarcodeinf.Count Do |
| | | Begin |
| | | If MpsBarcodeinf.r180[i] <> 0 Then // 依條碼角度轉影像 |
| | | Begin |
| | | Rotate(iGraphic, MpsBarcodeinf.r180[i]); |
| | | Break; |
| | | End; |
| | | End; |
| | | |
| | | if iGraphic.ImageFormat=ifGray256 then //20180104 因此旋轉後變為回packbits 所以要改為jpeg |
| | | begin |
| | | iGraphic.Compression:=tcJPEG; |
| | | iGraphic.JpegQuality:=FJpgCompression; |
| | | end; |
| | | if iGraphic.ImageFormat=ifTrueColor then |
| | | begin |
| | | iGraphic.Compression:=tcJPEG; |
| | | iGraphic.JpegQuality:=FJpgCompression; |
| | | end; |
| | | |
| | | PageEnd; |
| | | IF PEFileName <> '' Then |
| | | begin |
| | |
| | | JpgGr := TJpegGraphic.Create; |
| | | try |
| | | JpgGr.Assign(iGraphic); |
| | | JpgGr.SaveQuality := 30; |
| | | JpgGr.SaveQuality := FJpgCompression; |
| | | //JpgGr.AppendToStream(SaveStream); |
| | | JpgGr.SaveToFile(PEFileName); |
| | | finally |
| | |
| | | PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i); |
| | | DivPageFormIDList.CommaText := PARA_CONTENT; |
| | | end |
| | | Else if UpperCase(GetSQLData(WORK_INF_List,'PARA_NO',i)) = 'FILE_COMPRESSION' Then //20171211 jpg to tif 壓縮比 |
| | | begin |
| | | PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i); |
| | | FJpgCompression := StrToInt(PARA_CONTENT); |
| | | end |
| | | Else if UpperCase(GetSQLData(WORK_INF_List,'PARA_NO',i)) = 'MAX_UPLOAD_SIZE' Then //取得 上傳大小的限制(MB) |
| | | begin |
| | | PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i); |
| | |
| | | Function TCB_IMGPSScanX.CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //取案件裡的文件_版本頁數 |
| | | var |
| | | i,n,Count : integer; |
| | | S : TStringlist; |
| | | S, S2 : TStringlist; |
| | | FormCode,iPage : String; |
| | | docInt,tempInt:integer; |
| | | v,v2:integer; |
| | | begin |
| | | Count := 0; |
| | | docInt:=0; |
| | | tempInt:=0; |
| | | S := TStringlist.Create; |
| | | S2 := TStringlist.Create; |
| | | try |
| | | S.LoadFromFile(ImageSavePath+CaseID+'\upload\Context.dat'); |
| | | S2.LoadFromFile(ImageSavePath+CaseID+'\upload\DocDir.dat'); //2017 1220 改成只承認第一份的 |
| | | for I := 1 to pages do //從0到pages-1 改成 1到pages 20170316 這樣可以修改檢核的頁數問題 |
| | | begin |
| | | iPage := Add_Zoo(i,2); |
| | |
| | | Continue; |
| | | end; |
| | | end; |
| | | if Length(S2.Strings[n])>8 then //2017 1220 改成只承認第一份的 |
| | | begin |
| | | v:=Pos('(',S2.Strings[n]); |
| | | v2:=Pos(')',S2.Strings[n]); |
| | | tempInt:=StrToInt(Copy(S2.Strings[n],v+1,v2-v-1)); |
| | | |
| | | if docInt=0 then |
| | | begin |
| | | docInt:=tempInt; |
| | | end; |
| | | |
| | | if docInt<>tempInt then |
| | | begin |
| | | Break |
| | | end; |
| | | end; |
| | | |
| | | FormCode := FileName2FormCode(S.Strings[n]); |
| | | //Showmessage('1:'+version+','+FormCode2Version(FormCode)+','+DocNo+','+FormCode2DocNo(FormCode)+','+iPage+','+FormCode2Page(FormCode)); |
| | | LogFile1.LogToFile(logTimeString+'CheckCaseDocNoPage caseno='+CaseID+','+version+','+FormCode2Version(FormCode)+','+DocNo+','+FormCode2DocNo(FormCode)+','+iPage+','+FormCode2Page(FormCode)); |
| | |
| | | end; |
| | | finally |
| | | S.Free; |
| | | S2.free; |
| | | end; |
| | | Result := Count; |
| | | end; |
| | |
| | | //FMaxUploadSize |
| | | //ShowMessage(IntToStr(FileRec.Size)); |
| | | //Result:=False; |
| | | //exit; |
| | | //exit; //目前上傳檔案大小為xxMB,已超過50MB,無法上傳 %.3f ,[FileRec.Size / 1048576] |
| | | If FileRec.Size > StrtoInt(FMaxUploadSize) * 1048576 Then // 檢查檔案大小 |
| | | Begin |
| | | ShowMessage(Format('%.3f', [FileRec.Size / 1048576]) + |
| | | ' MB,超過上傳限制大小 '+FMaxUploadSize+' MB'); |
| | | ShowMessage(Format('%s目前上傳檔案大小為%.3fMB,已超過'+FMaxUploadSize+'MB,無法上傳',[caseid,FileRec.Size / 1048576]) ); |
| | | FindClose(FileRec); |
| | | Result := False; |
| | | Exit; |
| | |
| | | //ShowMessage(FData+#10#13+Doc_Data); |
| | | if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/caseupload',SendData,'file',Path+'Img.zip',FReWrite,Memo1,False) then |
| | | begin |
| | | Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!'+_Msg('錯誤代碼:')),[CaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason); |
| | | Showmessage(Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+'.'); |
| | | Result := False; |
| | | Exit; |
| | | end; |
| | | if memo1.Lines.Strings[0] = '1' then |
| | | begin |
| | | Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:'),[CaseID])+memo1.Lines.Strings[1]); |
| | | Showmessage(Format(_Msg('')+_Msg(''),[CaseID])+memo1.Lines.Strings[1]+'。'); |
| | | Result := False; |
| | | Exit; |
| | | end |
| | | Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then |
| | | Else if Pos('<script type="text/javascript" src="scripts/IMGPS00/login.js"></script>',Memo1.Lines.Text) > 0 then |
| | | begin |
| | | Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'),[CaseID])); |
| | | Showmessage(Format(_Msg('')+_Msg('')+_Msg('閒置過久或被登出,請重新登入'),[CaseID])); |
| | | Result := False; |
| | | Exit; |
| | | end; |
| | |
| | | end; |
| | | if Memo1.Lines.Strings[0] = '1' then |
| | | begin |
| | | HttpErrStr :=_Msg('錯誤原因:')+memo1.Lines.Strings[1]; |
| | | HttpErrStr :=_Msg('錯誤原因:')+memo1.Lines.Strings[1]+'。'; |
| | | Result := False; |
| | | Exit; |
| | | end |
| | |
| | | NewDocNo := FormCode2DocNo(NewFormID); |
| | | NewDocDir := FindLastestDocDir(CaseID,NewDocNo); |
| | | if NewDocDir = '' then |
| | | NewDocDir := NewDocNo; |
| | | begin |
| | | if DocNoNeedDiv(NewDocNo) then |
| | | begin |
| | | NewDocDir:=DocNo2DocNoDir(ImageSavePath + NowCaseno+'\',NewDocNo); |
| | | end |
| | | else |
| | | begin |
| | | NewDocDir := NewDocNo; |
| | | end; |
| | | end; |
| | | //ShowMessage('NewDocDir='+NewDocDir); |
| | | if DocNoNeedDiv(NewDocNo) and (FormCode2Page(NewFormID)='01') then |
| | | begin |
| | |
| | | //R_W_ScanIni('W'); //user要求改成預設後不能改 |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.ScanGrayCBClick(Sender: TObject); |
| | | begin |
| | | |
| | | if ScanGrayCB.Checked then |
| | | begin |
| | | ScanColor:=ifGray256; |
| | | end |
| | | else |
| | | begin |
| | | if FScanColor = 0 then |
| | | begin |
| | | ScanColor := ifBlackWhite; |
| | | end; |
| | | |
| | | if FScanColor = 1 then |
| | | begin |
| | | ScanColor := ifGray256 ; |
| | | end; |
| | | |
| | | if FScanColor = 2 then |
| | | begin |
| | | ScanColor := ifTrueColor ; |
| | | end; |
| | | end; |
| | | |
| | | end; |
| | | |
| | | Function TCB_IMGPSScanX.GetFormatID(CaseID: string):String; |
| | | Var |
| | | S : TStringlist; |
| | |
| | | CaseDocNo_CopiesList := TStringlist.Create; |
| | | StrList := TStringlist.Create; |
| | | ST1:=TStringList.Create; |
| | | LogFile1.LogToFile(logTimeString+'產文件樹開始'); |
| | | try |
| | | CaseNode.ImageIndex := 1; |
| | | CaseNode.SelectedIndex := 1; |
| | |
| | | FileList.LoadFromFile(ImageSavePath+Caseno+'\'+CaseDocNoList.Strings[i]+'\Context.dat'); |
| | | iDocNo := DocNoDir2DocNo(CaseDocNoList.Strings[i]); |
| | | ST1.Clear; |
| | | //ShowMessage(FileList.Text); |
| | | |
| | | LogFile1.LogToFile(logTimeString+'FileList.Text='+FileList.CommaText); |
| | | if (FWH_category='N') and (FIs_In_Wh='Y') then |
| | | begin |
| | | for n := 0 to FileList.Count - 1 do |
| | |
| | | end; |
| | | end; |
| | | |
| | | |
| | | LogFile1.LogToFile(logTimeString+'WH_category='+FWH_category+',Is_In_Wh='+FIs_In_Wh+',FileList.Text='+FileList.CommaText); |
| | | if FileList.Count=0 then Continue; |
| | | |
| | | |
| | | //Showmessage('aaa '+FileList.Text); |
| | | DocNoCopies := Strtoint(CaseDocNo_CopiesList.Strings[i]); |
| | | DocNoPage := FileList.Count; |
| | | iDocNo := DocNoDir2DocNo(CaseDocNoList.Strings[i]); |
| | |
| | | |
| | | //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('頁'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoPage])); |
| | | //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoCopies])); |
| | | //ShowMessage('iDocNo='+iDocNo); |
| | | DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[DocNo2DocName(Caseno,iDocNo),CaseDocNoList.Strings[i],DocNoCopies])); |
| | | |
| | | if GetUseCase('F',ImageSavePath+Caseno+'\',CaseDocNoList.Strings[i]) <> '' Then |
| | |
| | | end; |
| | | end; |
| | | end; |
| | | |
| | | LogFile1.LogToFile(logTimeString+'產文件樹結束'); |
| | | Finally |
| | | FileList.Free; |
| | | CaseDocNoList.Free; |
| | |
| | | |
| | | function TCB_IMGPSScanX.logTimeString: String; |
| | | begin |
| | | Result:=FormatDateTime('yyyymmdd hh:mm:ss',now) +' ' |
| | | Result:=FormatDateTime('yyyymmdd hh:mm:ss',now) +' caseNo='+NowCaseno+' '; |
| | | end; |
| | | |
| | | Function TCB_IMGPSScanX.FindDivFormCode(FormCode:String):Boolean; //找有沒有分案的條碼 |
| | |
| | | begin |
| | | If FindSQLData(Doc_Inf_List,'DOC_U_DESC','DOC_NO',DocNo,0,FindResult) Then |
| | | begin |
| | | //ShowMessage(FindResult.Text); |
| | | Result := GetFindResult('DOC_U_DESC'); |
| | | end; |
| | | end; |
| | |
| | | MainFormPage := GetDataDocNoPage(MainDocNo,MainVersion); //資料庫記錄主文件頁數 |
| | | CaseFormPage := CheckCaseDocNoPage(CaseID,MainDocNo,MainVersion,MainFormPage); //案件主文件的頁數 |
| | | LogFile1.LogToFile(logTimeString+CaseID+',MainDocNo='+MainDocNo+',MainVersion='+MainVersion+',MainFormPage='+IntToStr(MainFormPage)+',CaseFormPage='+IntToStr(CaseFormPage)); |
| | | //CheckFirstDocNoPage |
| | | IF (MainFormPage > 0) and (MainFormPage <> CaseFormPage) then |
| | | begin |
| | | ErrStr:=MainDocNo+Format(OMRErrInfo[1].Info,[Inttostr(MainFormPage),Inttostr(CaseFormPage)]); //主要文件需有XX頁僅附XX頁 |
| | |
| | | Procedure TCB_IMGPSScanX.ISBMouseMove(Sender: TObject; Shift: TShiftState; |
| | | X, Y: Integer); |
| | | begin |
| | | Edit1.SetFocus; |
| | | //Edit1.SetFocus; |
| | | if Draging then |
| | | begin |
| | | if not (TShape(FindComponent('SP'+Copy(TImageScrollBox(Sender).Name,length(ISBName)+1,length(TImageScrollBox(Sender).Name)-length(ISBName)))) = nil) then |
| | |
| | | //ShowMessage(Memo1.Lines.Text); |
| | | IF memo1.Lines.Strings[0] <> '0' Then |
| | | begin |
| | | HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1]; |
| | | HttpErrStr := _Msg('')+memo1.Lines.Strings[1]+'。'; |
| | | Result := -1; |
| | | Exit; |
| | | end |
| | |
| | | begin |
| | | if (memo1.Lines.Count < 2) then |
| | | begin |
| | | HttpErrStr := _Msg('錯誤原因:')+'OCX:Index Count error'; |
| | | HttpErrStr := _Msg('')+'OCX:Index Count error'; |
| | | Result := -1; |
| | | Exit; |
| | | end |
| | |
| | | Result := 1 |
| | | Else |
| | | begin |
| | | HttpErrStr := _Msg('錯誤原因:')+'OCX:Value error'; |
| | | HttpErrStr := _Msg('')+'OCX:Value error'; |
| | | Result := -1; |
| | | Exit; |
| | | end; |
| | |
| | | InitialOk := False; |
| | | |
| | | FMaxUploadSize:='10'; |
| | | FJpgCompression:=50; |
| | | //FMode := 'DSCAN' ; |
| | | //FIs_In_Wh := 'Y'; |
| | | if FIs_In_Wh = 'Y' then |
| | |
| | | |
| | | ReduceLogFile; |
| | | |
| | | LogFile1.LogToFile(logTimeString+'OCX取表data結束'); |
| | | |
| | | ShowText := _Msg('資料載入中,請稍候'); |
| | | DataLoading(True,True); |
| | | |
| | |
| | | MkDir(ImageSavePath+FCaseID); |
| | | CreateEmptyCase(ImageSavePath,FCaseID); |
| | | MkDir(ImageSavePath+FCaseID+'\Download'); |
| | | IF (FMode = 'ESCAN') then //異動件先下載影像 |
| | | IF (FMode = 'ESCAN') or (FMode = 'DSCAN') then //異動件先下載影像 |
| | | begin |
| | | ShowText := _Msg('案件下載中,請稍候'); |
| | | DataLoading(True,True); |
| | |
| | | // //LoadImgFile; |
| | | // end; |
| | | Create_Cust_DocDir(FCaseID); //產生外面傳入的文件 |
| | | LastInitFormidListCreate(ImageSavePath+FCaseID+'\Download\'); |
| | | if FMode='ESCAN' then |
| | | LastInitFormidListCreate(ImageSavePath+FCaseID+'\Download\'); |
| | | end; |
| | | end; |
| | | |
| | |
| | | //ShowMessage('ImageSavePath='+ImageSavePath); |
| | | DataLoading(False,False); |
| | | |
| | | LogFile1.LogToFile(logTimeString+'OCX初始化結束'); |
| | | LogFile1.LogToFile(logTimeString+'FUrl='+FUrl+ |
| | | ',FCaseID='+FCaseID+ |
| | | ',FMode='+FMode+ |
| | | ',FModeName='+FModeName+ |
| | | ',FWork_no='+FWork_no+ |
| | | ',FUserID='+FUserID+ |
| | | ',FUserName='+FUserName+ |
| | | ',FUserUnit='+FUserUnit+ |
| | | ',FData='+FData+ |
| | | ',FVerify='+FVerify+ |
| | | ',FReWrite='+FReWrite+ |
| | | ',FLanguage='+FLanguage+ |
| | | ',FLoanDoc_Value='+FLoanDoc_Value+ |
| | | ',FLoanDoc_Enable='+FLoanDoc_Enable+ |
| | | ',FUseProxy='+FUseProxy+ |
| | | ',FC_DocNoList='+FC_DocNoList+ |
| | | ',FC_DocNameList='+FC_DocNameList+ |
| | | ',FFixFileList='+FFixFileList+ |
| | | ',FIs_In_Wh='+FIs_In_Wh+ |
| | | ',FOldCaseInfo='+FOldCaseInfo+ |
| | | ',FPrintyn='+FPrintyn+ |
| | | ',FIs_OldCase='+FIs_OldCase+ |
| | | ',FCustDocYN='+FCustDocYN); |
| | | LogFile1.LogToFile(logTimeString+'FImgDPI='+IntToStr(FImgDPI)+ |
| | | ',FScanColor='+ IntToStr(FScanColor)+ |
| | | ',FFileSizeLimit='+ IntToStr(FFileSizeLimit)+ |
| | | ',FCaseNoLength='+ IntToStr(FCaseNoLength)+ |
| | | ',FImgDelete='+FImgDelete+ |
| | | ',FIsExternal='+FIsExternal+ |
| | | ',FWH_category='+FWH_category+ |
| | | ',FCheck_main_form='+FCheck_main_form+ |
| | | ',FMaxUploadSize='+FMaxUploadSize); |
| | | |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.Timer2Timer(Sender: TObject); |
| | |
| | | uploadMsg:=''; |
| | | if not CheckCaseID_OK then //檢查是否有未配號的案件 |
| | | begin |
| | | Showmessage(_Msg('尚有未配號案件,無法上傳')); |
| | | Showmessage(_Msg('尚有「無案件編號」之案件,無法上傳')); |
| | | Exit; |
| | | end; |
| | | |
| | |
| | | end; |
| | | if CaseTrans = -1 then //失敗 |
| | | begin |
| | | Showmessage(_Msg('詢問案件可否傳送時,網路發生錯誤!!')+HttpErrStr); |
| | | Showmessage(_Msg('')+HttpErrStr+'.'); |
| | | DataLoading(False,False); |
| | | LoadImgFile; |
| | | Exit; |
| | |
| | | end; |
| | | end; |
| | | DataLoading(False,False); |
| | | TransMsg := Format(_Msg('成功件%d件'),[SuccessCount]); |
| | | TransMsg := Format(_Msg('成功件【%d】件'),[SuccessCount]); |
| | | if ReCasecount > 0 then |
| | | TransMsg := TransMsg + #13#10 + Format(_Msg('無法上傳件%d件'),[ReCasecount]); |
| | | TransMsg := TransMsg + #13#10 + Format(_Msg('無法上傳件【%d】件'),[ReCasecount]); |
| | | if CheckErrCount > 0 then |
| | | TransMsg := TransMsg + #13#10 + Format(_Msg('檢核失敗件%d件'),[CheckErrCount]); |
| | | TransMsg := TransMsg + #13#10 + Format(_Msg('檢核失敗件【%d】件,請先點選「案件編號」,再點選「問號」查看錯誤原因'),[CheckErrCount]); |
| | | |
| | | |
| | | if (FMode = 'DSCAN') and (SuccessCount = 1) then |
| | | begin |
| | | uploadMsg:=NowCaseNo+_Msg('影像上傳完成。此案已進入下一流程。'); |
| | | uploadMsg:=NowCaseNo+_Msg('影像上傳完成。此案已進入下一流程'); |
| | | end; |
| | | if (FMode='ESCAN') and (FModeName='補件掃描') and (SuccessCount = 1) then |
| | | begin |
| | | uploadMsg:=NowCaseNo+_Msg('影像已補件完成。'); |
| | | uploadMsg:=NowCaseNo+_Msg('影像已補件完成'); |
| | | end; |
| | | //ShowMessage('uploadMsg='+uploadMsg); |
| | | if uploadMsg<>'' then |
| | |
| | | |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.TreeView1MouseEnter(Sender: TObject); |
| | | begin |
| | | TreeView1.SetFocus; |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; |
| | | X, Y: Integer); |
| | | begin |
| | | TreeView1.SetFocus; |
| | | //TreeView1.SetFocus; |
| | | {UnRegisterHotKey(Handle, HotKeyId1); |
| | | UnRegisterHotKey(Handle, HotKeyId2); } |
| | | end; |