| | |
| | | ExtCtrls, ComCtrls, Menus, StdCtrls, Gauges, EnImgScr, PJMenuSpeedButtons, |
| | | Buttons, ImgList, SBSimpleSSL, SBHTTPSClient, SBWinCertStorage, SBX509, |
| | | SBCustomCertStorage, SBUtils,mpsBarco,BarcodesFinder,HTTPApp,ErrList, |
| | | Xmltool,inifiles,printers,IdHashMessageDigest, idHash; |
| | | Xmltool,inifiles,printers,IdHashMessageDigest, idHash, LogFile; |
| | | |
| | | var |
| | | Ch_WriteNote : Boolean; |
| | |
| | | N2: TMenuItem; |
| | | ISB1: TImageScrollBox; |
| | | Label3: TLabel; |
| | | LogFile1: TLogFile; |
| | | procedure ActiveFormCreate(Sender: TObject); |
| | | procedure Panel9Resize(Sender: TObject); |
| | | procedure ISB1Click(Sender: TObject); |
| | |
| | | LastAddFormidList:TstringList; |
| | | SampleFormIDList:TStringList; //20170627 已存在範本的formid |
| | | ExistImgList:TStringList; //20170724 已經存在的影像list for ESCAN //Img的完整路徑 |
| | | reSizeExistImgList:TstringList; //20171012被縮放的舊圖MD5存入 |
| | | //********清單區******** |
| | | |
| | | //********顯示區******** |
| | |
| | | NowDivPageFormID:String; |
| | | |
| | | FirstDocDir : String; |
| | | FMaxUploadSize:String;// 上傳zip大小限制 |
| | | FJpgCompression:integer;// 20171211 jpg to tif 的壓縮率 |
| | | |
| | | Draging : Boolean; |
| | | |
| | |
| | | function LoadFileGetMD5(const filename:string):string; //20170809 取的檔案的MD5 |
| | | function ISExistImg(const filename:string):boolean; //20170809 確認是否存在原有影像 |
| | | procedure _DelTreeForExistImg(ASourceDir:String); //2017 刪除前確認 有舊影像嗎 |
| | | function DocNoIsExistImg(DocNopath: String): boolean; //2017 刪除前確認 有舊影像嗎 |
| | | function DocNoIsExistImg(DocNopath: String): boolean; //2017 刪除前確認 有舊影像嗎 |
| | | function CheckCaseAttach_OK: Boolean; |
| | | function DeleteDocNoFileForESCAN(Path, DocNo: String): Boolean; //2017 確認是否有未歸類文件 |
| | | function CheckRequiredColumnValues(workno,caseno:String) :Boolean; //20171003 此大類下此案是否檢核必填 |
| | | function logTimeString :String; |
| | | procedure ReduceLogFile ; |
| | | protected |
| | | { Protected declarations } |
| | | procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override; |
| | |
| | | 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; |
| | |
| | | NowPage := p+1; |
| | | PageLV.ItemIndex := P; |
| | | end; |
| | | //DisplayISB.SetFocus; |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.ISB1EndScroll(Sender: TObject); |
| | |
| | | p : Integer; |
| | | begin |
| | | DisplayISB := TImageScrollBox(Sender); |
| | | //DisplayISB.SetFocus; |
| | | 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; |
| | |
| | | LastAddFormidList.Free; |
| | | SampleFormIDList.Free; |
| | | ExistImgList.Free; |
| | | reSizeExistImgList.Free; |
| | | //********清單區******** |
| | | if FEvents <> nil then FEvents.OnDestroy; |
| | | end; |
| | |
| | | iISB : TImageScrollBox; |
| | | GoAtt : Boolean; |
| | | AttLv : Integer; |
| | | ST1 :TStringList; |
| | | begin |
| | | PreNode2Name := ''; |
| | | ST1:=TStringList.Create; |
| | | if TreeView1.Selected.Parent = MyTreeNode1 then |
| | | PreNode2Name:= GetNode2Name(MyTreeNode2); |
| | | ShowText := _Msg('文件歸類中,請稍候'); |
| | |
| | | try |
| | | InitialLanguage(DocListForm); //載入多國語言 |
| | | //InitialLanguage(PatchDlg); //載入多國語言 |
| | | DocListForm.CheckBox1.Visible:=False; |
| | | for i := 1 to FORM_INF_List.Count - 1 do |
| | | begin |
| | | FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i); |
| | |
| | | begin |
| | | if (Components[i] is TShape) and (copy(Components[i].Name,1,2)='SP') then |
| | | begin |
| | | //Showmessage(Components[i].Name); |
| | | iISBName := ShapeName2PreViewISBName(TShape(Components[i])); |
| | | iISB := TImageScrollBox(FindComponent(iISBName)); |
| | | OldName := ExtractFileName(iISB.FileName); |
| | | Ext := ExtractFileExt(OldName); |
| | | FormID := DocListForm.DocLV.Selected.Caption; |
| | | DocNo := FormCode2DocNo(FormID); |
| | | |
| | | if DocListForm.CheckBox1.Checked then |
| | | begin |
| | | FormID := DocListForm.Edit1.Text; |
| | | DocNo := GetNewCustomDocNo(DisplayPath,FormID); |
| | | end |
| | | else |
| | | begin |
| | | FormID := DocListForm.DocLV.Selected.Caption; |
| | | DocNo := FormCode2DocNo(FormID); |
| | | end; |
| | | |
| | | |
| | | if DocNoDir2DocNo(Path2DocDir(ExtractFilePath(iISB.FileName),NowCaseno)) = DocNo then |
| | | DocDir := Path2DocDir(ExtractFilePath(iISB.FileName),NowCaseNo) |
| | | Else |
| | | DocDir := FindLastestDocDir(NowCaseno,DocNo); |
| | | |
| | | //ShowMessage('DocNoNeedDiv(DocNo)='+BoolToStr(DocNoNeedDiv(DocNo),true)); |
| | | //ShowMessage('DocDir='+DocDir); |
| | | if DocNoNeedDiv(DocNo) then //要分份數 |
| | | begin |
| | | if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(NowCaseno,DocDir)>0)) or (DocDir = '') then |
| | | begin |
| | | DocDir := DocNo2DocNoDir(ImageSavePath + NowCaseno+'\',DocNo); |
| | | end |
| | | else |
| | | begin //20171016 真對補件影響 所加的判斷 |
| | | ST1.Clear; |
| | | if FileExists(ImageSavePath + NowCaseno+'\'+DocDir+'\Context.dat') then |
| | | begin |
| | | ST1.LoadFromFile(ImageSavePath + NowCaseno+'\'+DocDir+'\Context.dat'); |
| | | if ISExistImg(ImageSavePath + NowCaseno+'\'+DocDir+'\'+ST1.Strings[0]) then |
| | | begin |
| | | DocDir := DocNo2DocNoDir(ImageSavePath + NowCaseno+'\',DocNo); |
| | | end; |
| | | end; |
| | | end; |
| | | end |
| | | Else //不分份數 |
| | | begin |
| | |
| | | //ReNameContext(iISB.FileName,OldName,NewName); |
| | | end; |
| | | end; |
| | | //ShowMessage('KKKK'); |
| | | ReSortFileName(ExtractFilePath(iISB.FileName)); |
| | | DrawDocItem2(MytreeNode1,NowCaseno); |
| | | ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄 |
| | |
| | | finally |
| | | DataLoading(False,False); |
| | | DocListForm.Free; |
| | | ST1.Free; |
| | | end; |
| | | |
| | | end; |
| | |
| | | DeleteImageFile(ExtractFilePath(iISB.FileName),ExtractFileName(iISB.FileName),NowCaseNo); |
| | | end; |
| | | end; |
| | | //ShowMessage('iISB.FileName='+iISB.FileName); |
| | | ReSortFileName(ExtractFilePath(iISB.FileName)); |
| | | DrawDocItem2(MytreeNode1,NowCaseno); |
| | | MyTreeNode1.Text := Format('%s-%d'+_Msg('頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]); |
| | |
| | | If Messagedlg(Format(_Msg('文件(%s)是否刪除?'),[DocNo2DocName(NowCaseno,NowDocNo)]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit; |
| | | ClearView(1); |
| | | Application.ProcessMessages; |
| | | |
| | | _DelTree(ImageSavePath+NowCaseno+'\'+NowDocDir); |
| | | //ShowMessage(NowDocDir); |
| | | if (Length(NowDocDir)=8) or (NowDocDir=AttName) then |
| | | begin |
| | | //ShowMessage('DeleteDocNoFileForESCAN'); |
| | | DeleteDocNoFileForESCAN(ImageSavePath+NowCaseno+'\'+NowDocDir,NowDocDir); |
| | | end |
| | | else |
| | | begin |
| | | _DelTree(ImageSavePath+NowCaseno+'\'+NowDocDir); |
| | | SetDocNoList('D',-1,NowCaseNo,NowDocDir,''); |
| | | end; |
| | | SetUseCase('D',ImageSavePath+NowCaseno+'\',NowDocDir,'',''); |
| | | SetDocNoList('D',-1,NowCaseNo,NowDocDir,''); |
| | | |
| | | if (Copy(NowDocNo,1,5)='ZZZZZ') then //20140703 刪除自定文件時要刪ini檔資料 |
| | | DeleteCustomDocDir(ImageSavePath+NowCaseno+'\',NowDocDir); |
| | | |
| | |
| | | Else if TreeView1.Selected = MyTreeNode3 then //FormID層 |
| | | begin |
| | | If Messagedlg(Format(_Msg('文件(%s)是否刪除?'),[NowFormName]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit; |
| | | |
| | | |
| | | DeleteFormCodeFile(NowCaseNo,NowDocDir,NowFormCode); |
| | | SetRecordEditedDocDir('A',NowCaseNo,NowDocDir); |
| | |
| | | end; |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.PM104Click(Sender: TObject); |
| | | var |
| | | i,n,m,ii,P,v,v1,page,imageCount : Integer; |
| | | FName : String; |
| | | CaseID,DocNo,FormID :String; |
| | | DocDir :String; |
| | | SavePath,SaveFilename:String; |
| | | ISB : TImageScrollBox; |
| | | FileRec:TSearchrec; |
| | | begin |
| | | |
| | | Procedure TCB_IMGPSScanX.PM104Click(Sender: TObject); |
| | | Var |
| | | i, n, m, ii, P, v, v1, page, imageCount: Integer; |
| | | FName: String; |
| | | CaseID, DocNo, FormID: String; |
| | | DocDir: String; |
| | | SavePath, SaveFilename: String; |
| | | ISB: TImageScrollBox; |
| | | FileRec: TSearchrec; |
| | | |
| | | iGraphic, iGraphic_First, iGraphic_sec: TTiffGraphic; |
| | | iRect : TRect; |
| | | JpgGr : TJpegGraphic; |
| | | SaveStream : TFileStream; |
| | | SaveStreamA:TFileStream; |
| | | SaveStreamB:TFileStream; |
| | | cooom:integer; |
| | | Begin |
| | | OpenDialog1.Filter := 'Image files|*.TIF;*.JPG'; |
| | | if OpenDialog1.Execute then |
| | | begin |
| | | If OpenDialog1.Execute Then |
| | | Begin |
| | | ISB := TImageScrollBox.Create(self); |
| | | try |
| | | ShowText :=_Msg('檔案加入中,請稍候'); |
| | | DataLoading(True,True); |
| | | if TreeView1.Selected = nil then Exit; |
| | | FName := OpenDialog1.FileName; |
| | | try |
| | | ShowText := _Msg('檔案加入中,請稍候'); |
| | | DataLoading(True, True); |
| | | If TreeView1.Selected = Nil Then |
| | | Exit; |
| | | FName := OpenDialog1.FileName; |
| | | |
| | | FindFirst(FName,faAnyfile,FileRec); |
| | | //ShowMessage(IntToStr(FILEREC.Size)+','+IntToStr(FFileSizeLimit)); |
| | | if FFileSizeLimit=0 then |
| | | begin |
| | | FFileSizeLimit:=5*1024; |
| | | end; |
| | | if FILEREC.Size > FFileSizeLimit*1024 then //檢查檔案大小 |
| | | begin |
| | | ShowMessage(Format('%.3f',[FILEREC.Size / 1024])+' KB, file size over limit.'); |
| | | FindClose(FILEREC); |
| | | DataLoading(false,false); |
| | | exit; |
| | | end; |
| | | FindFirst(FName, faAnyfile, FileRec); |
| | | |
| | | FindClose(FILEREC); |
| | | CaseID := NowCaseno ; |
| | | imageCount := 0; |
| | | P := ISB.ImageCountFromFile(OpenDialog1.FileName); |
| | | for I := 1 to P do |
| | | begin |
| | | 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'); |
| | | if (TreeView1.Selected = NewTreeNode) or (TreeView1.Selected = MyTreeNode1) then |
| | | begin |
| | | If FFileSizeLimit = 0 Then |
| | | Begin |
| | | FFileSizeLimit := 5 * 1024; |
| | | End; |
| | | //FFileSizeLimit:=20*5*1024; |
| | | //ShowMessage(IntToStr(FileRec.Size)+','+IntToStr(FFileSizeLimit * 1024)); |
| | | If FileRec.Size > FFileSizeLimit * 1024 Then // 檢查檔案大小 |
| | | Begin |
| | | 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; |
| | | imageCount := 0; |
| | | P := ISB.ImageCountFromFile(OpenDialog1.FileName); |
| | | For i := 1 To P Do |
| | | Begin |
| | | 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'); |
| | | |
| | | 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 所以要先辨條碼 |
| | | //有必要的話先把影像轉正 再開始切圖 |
| | | If CheckNeedCrop(iGraphic_First) Then |
| | | Begin |
| | | // 先取右邊的影像 |
| | | iRect.Left := ISB.Graphic.Width Div 2; |
| | | iRect.Right := ISB.Graphic.Width; |
| | | iRect.Top := 0; |
| | | iRect.Bottom := ISB.Graphic.Height; |
| | | CropImg(iGraphic_First, iRect); |
| | | |
| | | iGraphic_sec.Assign(ISB.Graphic); |
| | | // 再取左邊的影像 |
| | | iRect.Left := 0; |
| | | iRect.Right := ISB.Graphic.Width Div 2; |
| | | iRect.Top := 0; |
| | | iRect.Bottom := ISB.Graphic.Height; |
| | | CropImg(iGraphic_sec, iRect); |
| | | End; |
| | | |
| | | iGraphic := iGraphic_First; |
| | | |
| | | While Not iGraphic.IsEmpty Do |
| | | Begin |
| | | If (TreeView1.Selected = NewTreeNode) Or |
| | | (TreeView1.Selected = MyTreeNode1) Then |
| | | Begin |
| | | SaveFilename := ''; |
| | | MpsGetBarcode(ISB.Graphic,MpsBarcodeinf); |
| | | for n := 1 to MpsBarcodeinf.Count do |
| | | begin |
| | | if MpsBarcodeinf.r180[n] <> 0 then //依條碼角度轉影像 |
| | | begin |
| | | Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); |
| | | MpsGetBarcode(ISB.Graphic,MpsBarcodeinf); |
| | | MpsGetBarcode(iGraphic, MpsBarcodeinf); |
| | | For n := 1 To MpsBarcodeinf.Count Do |
| | | Begin |
| | | If MpsBarcodeinf.r180[n] <> 0 Then // 依條碼角度轉影像 |
| | | Begin |
| | | Rotate(iGraphic, MpsBarcodeinf.r180[n]); |
| | | MpsGetBarcode(iGraphic, MpsBarcodeinf); |
| | | Break; |
| | | end; |
| | | end; |
| | | FormID := BarCode2FormID; //取出FormID |
| | | End; |
| | | End; |
| | | FormID := BarCode2FormID; |
| | | // 取出FormID |
| | | SaveFilename := FormID; |
| | | if (TreeView1.Selected = NewTreeNode) Then |
| | | begin |
| | | if FindDivFormCode(FormID) Then //只找分案頁上的案件條碼 |
| | | begin |
| | | If (TreeView1.Selected = NewTreeNode) Then |
| | | Begin |
| | | If FindDivFormCode(FormID) Then // 只找分案頁上的案件條碼 |
| | | Begin |
| | | imageCount := 0; |
| | | ClearView(1); |
| | | ContextList.Clear; |
| | | CaseID := BarCode2CaseID; |
| | | if DirectoryExists(ImageSavePath + CaseID+'\') then |
| | | begin |
| | | _DelTree(ImageSavePath + CaseID+'\'); |
| | | SetCaseList('D',-1,CaseID); |
| | | end; |
| | | end; |
| | | if CaseID = '' then |
| | | begin |
| | | If DirectoryExists(ImageSavePath + CaseID + '\') Then |
| | | Begin |
| | | _DelTree(ImageSavePath + CaseID + '\'); |
| | | SetCaseList('D', -1, CaseID); |
| | | End; |
| | | End; |
| | | If CaseID = '' Then |
| | | Begin |
| | | CaseID := GetNoNameCase(ImageSavePath); |
| | | ContextList.Clear; |
| | | end; |
| | | end; |
| | | SavePath := ImageSavePath + CaseID+'\'; |
| | | End; |
| | | End; |
| | | SavePath := ImageSavePath + CaseID + '\'; |
| | | Str2Dir(SavePath); |
| | | |
| | | DocNo := FormCode2DocNo(FormID); |
| | | DocDir := FindLastestDocDir(CaseID,DocNo); |
| | | if DocNoNeedDiv(DocNo) then //要分份數 |
| | | begin |
| | | if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(CaseID,DocDir)>0)) or (DocDir = '') then |
| | | DocDir := DocNo2DocNoDir(ImageSavePath + CaseID+'\',DocNo); |
| | | end |
| | | Else //不分份數 |
| | | begin |
| | | if DocNo <> '' then |
| | | DocDir := FindLastestDocDir(CaseID, DocNo); |
| | | If DocNoNeedDiv(DocNo) Then // 要分份數 |
| | | Begin |
| | | If ((FormCode2Page(FormID) = '01') And |
| | | (GetDocDir_Page(CaseID, DocDir) > 0)) Or (DocDir = '') Then |
| | | DocDir := DocNo2DocNoDir(ImageSavePath + CaseID + '\', DocNo); |
| | | End |
| | | Else // 不分份數 |
| | | Begin |
| | | If DocNo <> '' Then |
| | | DocDir := DocNo |
| | | else //Attach 附件 |
| | | DocDir := DocNo2DocNoDir(ImageSavePath + CaseID+'\',DocNo); |
| | | end; |
| | | {if ((FormCode2Page(FormID) = '01') and DocNoNeedDiv(DocNo)) or (FormID='') then //是表單第一頁且要分份 |
| | | DocDir := DocNo2DocNoDir(ImageSavePath + CaseID+'\',DocNo) |
| | | Else if not DocNoNeedDiv(DocNo) then |
| | | DocDir := DocNo; } |
| | | if (not DirectoryExists(ImageSavePath + CaseID+'\'+DocDir+'\')) and (DocDir <> AttName) then |
| | | SetDocNoList('A',-1,CaseID,DocDir,'1'); |
| | | SavePath := ImageSavePath + CaseID+'\'+DocDir+'\'; |
| | | Else // Attach 附件 |
| | | DocDir := DocNo2DocNoDir(ImageSavePath + CaseID + '\', DocNo); |
| | | End; |
| | | |
| | | If (Not DirectoryExists(ImageSavePath + CaseID + '\' + DocDir + '\')) |
| | | And (DocDir <> AttName) Then |
| | | SetDocNoList('A', -1, CaseID, DocDir, '1'); |
| | | SavePath := ImageSavePath + CaseID + '\' + DocDir + '\'; |
| | | Str2Dir(SavePath); |
| | | ContextList.Clear; |
| | | if FileExists(SavePath+'Context.dat') then |
| | | ContextList.LoadFromFile(SavePath+'Context.dat'); |
| | | If FileExists(SavePath + 'Context.dat') Then |
| | | ContextList.LoadFromFile(SavePath + 'Context.dat'); |
| | | |
| | | WriteCaseIndex(ImageSavePath + CaseID+'\'); //寫入案件索引 |
| | | if SaveFilename = '' then //附件 |
| | | SaveFilename:= Add_Zoo(ContextList.Count+1,3)+ext |
| | | WriteCaseIndex(ImageSavePath + CaseID + '\'); |
| | | // 寫入案件索引 |
| | | If SaveFilename = '' Then // 附件 |
| | | SaveFilename := Add_Zoo(ContextList.Count + 1, 3) + ext |
| | | Else |
| | | SaveFilename := Add_Zoo(ContextList.Count+1,3)+'_'+SaveFilename+ext; |
| | | SaveFilename := Add_Zoo(ContextList.Count + 1, 3) + '_' + |
| | | SaveFilename + ext; |
| | | |
| | | for n := 1 to MpsBarcodeinf.Count do |
| | | begin |
| | | if MpsBarcodeinf.r180[n] <> 0 then //依條碼角度轉影像 |
| | | begin |
| | | Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); |
| | | MpsGetBarcode(ISB.Graphic,MpsBarcodeinf); |
| | | For n := 1 To MpsBarcodeinf.Count Do |
| | | Begin |
| | | If MpsBarcodeinf.r180[n] <> 0 Then // 依條碼角度轉影像 |
| | | Begin |
| | | Rotate(iGraphic, MpsBarcodeinf.r180[n]); |
| | | MpsGetBarcode(iGraphic, MpsBarcodeinf); |
| | | Break; |
| | | end; |
| | | end; |
| | | //Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正 |
| | | ISB.SaveToFile(SavePath+SaveFilename); |
| | | End; |
| | | End; |
| | | |
| | | SetContextList('A',-1,CaseID,DocDir,SaveFilename); |
| | | if (TreeView1.Selected = NewTreeNode) Then |
| | | if iGraphic.Palette.palNumEntries = 0 then //20171130 彩色 會為0 黑白 為2 |
| | | begin |
| | | if imageCount = 0 then |
| | | begin |
| | | SetCaseList('A',-1,CaseID); |
| | | MyTreeNode1 := TreeView1.Items.AddChild(NewTreeNode,CaseID); |
| | | iGraphic.Compression:=tcJPEG; |
| | | iGraphic.JpegQuality:=cooom; |
| | | end; |
| | | |
| | | If LowerCase(ExtractFileExt(SavePath + SaveFilename)) = '.tif' Then |
| | | Begin |
| | | If FileExists(SavePath + SaveFilename) Then |
| | | SaveStream := TFileStream.Create(SavePath + SaveFilename, fmOpenReadWrite) |
| | | Else |
| | | SaveStream := TFileStream.Create(SavePath + SaveFilename, fmCreate); |
| | | Try |
| | | SaveStream.Seek(0, soFromBeginning); |
| | | iGraphic.AppendToStream(SaveStream); |
| | | Finally |
| | | SaveStream.Free; |
| | | End; |
| | | End |
| | | Else If LowerCase(ExtractFileExt(SavePath + SaveFilename)) |
| | | = '.jpg' Then |
| | | Begin |
| | | If FileExists(SavePath + SaveFilename) Then |
| | | DeleteFile(SavePath + SaveFilename); |
| | | // SaveStream := TFileStream.Create( PEFileName ,fmCreate ); |
| | | JpgGr := TJpegGraphic.Create; |
| | | Try |
| | | JpgGr.Assign(iGraphic); |
| | | JpgGr.SaveQuality := 30; |
| | | // JpgGr.AppendToStream(SaveStream); |
| | | JpgGr.SaveToFile(SavePath + SaveFilename); |
| | | Finally |
| | | JpgGr.Free; |
| | | // 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 |
| | | Begin |
| | | If imageCount = 0 Then |
| | | Begin |
| | | SetCaseList('A', -1, CaseID); |
| | | MyTreeNode1 := TreeView1.Items.AddChild(NewTreeNode, CaseID); |
| | | MyTreeNode1.ImageIndex := 2; |
| | | MyTreeNode1.SelectedIndex := 2; |
| | | Application.ProcessMessages; |
| | | end; |
| | | end; |
| | | End; |
| | | End; |
| | | inc(imageCount); |
| | | //DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseID); |
| | | //DrawDocItem(MyTreeNode1,FORM_INF_List,CaseID); |
| | | end |
| | | Else if TreeView1.Selected = MyTreeNode3 then |
| | | begin |
| | | SavePath := ImageSavePath + CaseID+'\'+NowDocDir+'\'; |
| | | // DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseID); |
| | | // DrawDocItem(MyTreeNode1,FORM_INF_List,CaseID); |
| | | End |
| | | Else If TreeView1.Selected = MyTreeNode3 Then |
| | | Begin |
| | | SavePath := ImageSavePath + CaseID + '\' + NowDocDir + '\'; |
| | | ContextList.Clear; |
| | | if FileExists(ImageSavePath + CaseID+'\'+NowDocDir+'\Context.dat') then |
| | | ContextList.LoadFromFile(ImageSavePath + CaseID+'\'+NowDocDir+'\Context.dat'); |
| | | if NowFormCode <> '' then |
| | | SaveFilename := Add_Zoo(ContextList.Count+1,3)+'_'+NowFormCode+ext |
| | | else |
| | | SaveFilename := Add_Zoo(ContextList.Count+1,3)+ext; |
| | | If FileExists(ImageSavePath + CaseID + '\' + NowDocDir + |
| | | '\Context.dat') Then |
| | | ContextList.LoadFromFile(ImageSavePath + CaseID + '\' + NowDocDir + |
| | | '\Context.dat'); |
| | | If NowFormCode <> '' Then |
| | | SaveFilename := Add_Zoo(ContextList.Count + 1, 3) + '_' + |
| | | NowFormCode + ext |
| | | Else |
| | | SaveFilename := Add_Zoo(ContextList.Count + 1, 3) + ext; |
| | | |
| | | for n := 1 to MpsBarcodeinf.Count do |
| | | begin |
| | | if MpsBarcodeinf.r180[n] <> 0 then //依條碼角度轉影像 |
| | | begin |
| | | Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); |
| | | MpsGetBarcode(ISB.Graphic,MpsBarcodeinf); |
| | | For n := 1 To MpsBarcodeinf.Count Do |
| | | Begin |
| | | If MpsBarcodeinf.r180[n] <> 0 Then // 依條碼角度轉影像 |
| | | Begin |
| | | Rotate(iGraphic, MpsBarcodeinf.r180[n]); |
| | | MpsGetBarcode(iGraphic, MpsBarcodeinf); |
| | | Break; |
| | | end; |
| | | End; |
| | | End; |
| | | // Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正 |
| | | if iGraphic.Palette.palNumEntries = 0 then //20171130 彩色 會為0 黑白 為2 |
| | | begin |
| | | iGraphic.Compression:=tcJPEG; |
| | | iGraphic.JpegQuality:=cooom; |
| | | end; |
| | | //Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正 |
| | | ISB.SaveToFile(SavePath+SaveFilename); |
| | | |
| | | If LowerCase(ExtractFileExt(SavePath + SaveFilename)) = '.tif' Then |
| | | Begin |
| | | If FileExists(SavePath + SaveFilename) Then |
| | | SaveStream := TFileStream.Create(SavePath + SaveFilename, |
| | | fmOpenReadWrite) |
| | | Else |
| | | SaveStream := TFileStream.Create(SavePath + SaveFilename, |
| | | fmCreate); |
| | | Try |
| | | SaveStream.Seek(0, soFromBeginning); |
| | | iGraphic.AppendToStream(SaveStream); |
| | | Finally |
| | | SaveStream.Free; |
| | | End; |
| | | End |
| | | |
| | | Else |
| | | Begin |
| | | If LowerCase(ExtractFileExt(SavePath + SaveFilename)) = '.jpg' Then |
| | | Begin |
| | | If FileExists(SavePath + SaveFilename) Then |
| | | DeleteFile(SavePath + SaveFilename); |
| | | // SaveStream := TFileStream.Create( PEFileName ,fmCreate ); |
| | | JpgGr := TJpegGraphic.Create; |
| | | Try |
| | | JpgGr.Assign(iGraphic); |
| | | JpgGr.SaveQuality := 30; |
| | | // JpgGr.AppendToStream(SaveStream); |
| | | JpgGr.SaveToFile(SavePath + SaveFilename); |
| | | Finally |
| | | JpgGr.Free; |
| | | // SaveStream.Free; |
| | | End; |
| | | End; |
| | | |
| | | End; |
| | | // ISB.SaveToFile(SavePath+SaveFilename); |
| | | ContextList.Add(SaveFilename); |
| | | ContextList.SaveToFile(SavePath+'Context.dat'); |
| | | end; |
| | | end; |
| | | ClearErrini(CaseID,MyTreeNode1); //清掉檢核記錄 |
| | | if (TreeView1.Selected = MyTreeNode1) or (TreeView1.Selected = NewTreeNode) then |
| | | begin |
| | | LoadImgFile; |
| | | end |
| | | Else |
| | | begin |
| | | DrawDocItem2(MytreeNode1,CaseID); //長出文件名稱的樹並傳回是否有申請書的影像 |
| | | page := GetCasePage(ImageSavePath,CaseID); |
| | | MytreeNode1.Text := Format(_Msg('%s-%d頁'),[CaseID,page]); |
| | | end; |
| | | NewTreeNodeRefresh; |
| | | Application.ProcessMessages; |
| | | DataLoading(False,False); |
| | | finally |
| | | ISB.Free; |
| | | end; |
| | | end; |
| | | ContextList.SaveToFile(SavePath + 'Context.dat'); |
| | | End; |
| | | |
| | | if iGraphic = iGraphic_First then |
| | | iGraphic := iGraphic_Sec |
| | | else |
| | | iGraphic.Assign(nil); |
| | | |
| | | End //While 結束 |
| | | |
| | | End; |
| | | ClearErrini(CaseID, MyTreeNode1); |
| | | // 清掉檢核記錄 |
| | | If (TreeView1.Selected = MyTreeNode1) Or |
| | | (TreeView1.Selected = NewTreeNode) Then |
| | | Begin |
| | | LoadImgFile; |
| | | End |
| | | Else |
| | | Begin |
| | | DrawDocItem2(MyTreeNode1, CaseID); |
| | | // 長出文件名稱的樹並傳回是否有申請書的影像 |
| | | page := GetCasePage(ImageSavePath, CaseID); |
| | | // ShowMessage('page='+IntToStr(page)); |
| | | MyTreeNode1.Text := Format(_Msg('%s-%d頁'), [CaseID, page]); |
| | | End; |
| | | // ShowMessage('AAAA'); |
| | | NewTreeNodeRefresh; |
| | | Application.ProcessMessages; |
| | | DataLoading(false, false); |
| | | |
| | | |
| | | finally |
| | | ISB.Free; |
| | | end; |
| | | |
| | | |
| | | End; |
| | | End; |
| | | |
| | | |
| | | |
| | | procedure TCB_IMGPSScanX.PM106Click(Sender: TObject); |
| | | var |
| | |
| | | i : Integer; |
| | | DocListForm : TDocListForm; |
| | | OldName,NewName,Ext : String; |
| | | NewFormID,NewFormName : String; |
| | | NewFormID,NewFormName,CustomDocNo : String; |
| | | begin |
| | | DocListForm := TDocListForm.Create(self); |
| | | try |
| | | InitialLanguage(PatchDlg); //載入多國語言 |
| | | InitialLanguage(DocListForm); //載入多國語言 |
| | | DocListForm.CheckBox1.Visible:=True; |
| | | for i := 1 to FORM_INF_List.Count - 1 do |
| | | begin |
| | | NewFormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i); |
| | |
| | | end; |
| | | if DocListForm.ShowModal = mrOk then |
| | | begin |
| | | NewFormID := DocListForm.DocLV.Selected.Caption; |
| | | if NowFormCode <> AttName then |
| | | if not (DocListForm.DocLV.Selected=nil) then |
| | | NewFormID := DocListForm.DocLV.Selected.Caption; |
| | | if DocListForm.CheckBox1.Checked then |
| | | begin |
| | | If Messagedlg(Format(_Msg('是否將"%s"的所有影像歸類成"%s"'),[FormCode2FormName(NowCaseNo,NowFormCode),FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then |
| | | //歸類到自訂文件 |
| | | NewFormID:=DocListForm.Edit1.Text; |
| | | if Trim(DocListForm.Edit1.Text)='' then |
| | | begin |
| | | Showmessage('未輸入文件名稱'); |
| | | Exit; |
| | | end; |
| | | if FindCustomDocName(DisplayPath,NewFormID) then |
| | | begin |
| | | Showmessage(Format('文件名稱:"%s"己存在',[NewFormID])); |
| | | Exit; |
| | | end; |
| | | if NowFormCode <> AttName then |
| | | begin |
| | | If Messagedlg(Format(_Msg('是否將"%s"的所有影像歸類成"%s"'),[FormCode2FormName(NowCaseNo,NowFormCode),NewFormID]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then |
| | | Exit; |
| | | end |
| | | Else |
| | | begin |
| | | If Messagedlg(Format(_Msg('是否將"%s"的所有影像歸類成"%s"'),[_Msg('附件')+MyTreeNode3.Text,FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then |
| | | Exit; |
| | | end; |
| | | CustomDocNo := GetNewCustomDocNo(DisplayPath,NewFormID); |
| | | //ShowMessage('CustomDocNo='+CustomDocNo); |
| | | ShowText := _Msg('歸類中,請稍侯'); |
| | | DataLoading(True,True); |
| | | FormIDReplace(NowCaseNo,NowDocDir,NowFormCode,CustomDocNo+'010101A'); |
| | | end |
| | | Else |
| | | else |
| | | begin |
| | | If Messagedlg(Format(_Msg('是否將"%s"的所有影像歸類成"%s"'),[_Msg('附件')+MyTreeNode3.Text,FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then |
| | | Exit; |
| | | //歸類到既有文件 |
| | | if NowFormCode <> AttName then |
| | | begin |
| | | If Messagedlg(Format(_Msg('是否將"%s"的所有影像歸類成"%s"'),[FormCode2FormName(NowCaseNo,NowFormCode),FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then |
| | | Exit; |
| | | end |
| | | Else |
| | | begin |
| | | If Messagedlg(Format(_Msg('是否將"%s"的所有影像歸類成"%s"'),[_Msg('附件')+MyTreeNode3.Text,FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then |
| | | Exit; |
| | | end; |
| | | ShowText := _Msg('歸類中,請稍侯'); |
| | | DataLoading(True,True); |
| | | |
| | | FormIDReplace(NowCaseNo,NowDocDir,NowFormCode,NewFormID); |
| | | |
| | | end; |
| | | ShowText := _Msg('歸類中,請稍侯'); |
| | | DataLoading(True,True); |
| | | //FormIDReplace(DisplayPath,NowFormCode,FormID); |
| | | //ShowFileReplace(DisplayPath,FormID); |
| | | FormIDReplace(NowCaseNo,NowDocDir,NowFormCode,NewFormID); |
| | | ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄 |
| | | DrawDocItem2(MytreeNode1,NowCaseno); |
| | | //DrawDocItem(MytreeNode1,FORM_INF_List,NowCaseno); |
| | | |
| | | DataLoading(False,False); |
| | | TreeView1.Selected := MyTreeNode1; |
| | | TreeView1Click(self); |
| | | end; |
| | | |
| | | finally |
| | | DocListForm.Free; |
| | | end; |
| | |
| | | CustomDocNo : String; |
| | | DocDir : String; |
| | | SavePath : String; |
| | | ST1:TStringList; |
| | | begin |
| | | if InputQuery('輸入其他文件名稱','文件名稱',CustomDocName) then |
| | | begin |
| | |
| | | Showmessage(Format('文件名稱:"%s"己存在',[CustomDocName])); |
| | | Exit; |
| | | end; |
| | | |
| | | ST1:=TStringList.Create; |
| | | CustomDocNo := GetNewCustomDocNo(DisplayPath,CustomDocName); |
| | | DocDir := CustomDocNo; |
| | | SavePath := ImageSavePath+NowCaseNo+'\'+DocDir+'\'; |
| | |
| | | PM101.Visible:=false; |
| | | end; |
| | | |
| | | if FMode='ESCAN' then |
| | | PM101.Visible:=false; |
| | | |
| | | if FModeName='異動件' then |
| | | begin |
| | | PM101.Visible := True; |
| | |
| | | PM103.Visible := True; //掃瞄器加入影像 |
| | | //PM107.Visible := True; //寫備註 |
| | | //PM109.Visible := True; //檢核此筆 |
| | | if FCustDocYN <> 'N' Then |
| | | PM110.Visible := True; //新增自訂文件 |
| | | // if FCustDocYN <> 'N' Then |
| | | // PM110.Visible := True; //新增自訂文件 20170914 先不在tree 中做自訂文件 讓user在縮圖做 |
| | | PM104.Visible := True; //檔案加入影像 |
| | | if (FMode = 'NSCAN') then |
| | | begin |
| | |
| | | PM101.Visible := True; //刪除 |
| | | //PM107.Visible := True; //寫備註 |
| | | //PM109.Visible := True; //檢核此筆 |
| | | if FCustDocYN <> 'N' Then |
| | | PM110.Visible := True; //新增自訂文件 |
| | | // if FCustDocYN <> 'N' Then |
| | | // PM110.Visible := True; //新增自訂文件 |
| | | if FImgDelete='Y' then |
| | | begin |
| | | PM101.Visible:=True; |
| | |
| | | PM104.Visible := True; //檔案加入影像 |
| | | PM108.Visible := True; //歸類 |
| | | PM103.Visible := True; //掃瞄器加入影像 |
| | | if FCustDocYN <> 'N' Then |
| | | PM110.Visible := True; //新增自訂文件 |
| | | // if FCustDocYN <> 'N' Then |
| | | // PM110.Visible := True; //新增自訂文件 |
| | | if GetFormIDPage(ContextList,NowFormCode) < 1 Then |
| | | begin |
| | | PM108.Visible := False; //歸類 |
| | |
| | | //CreateFormID_FormName(DisplayPath); //產生FormID_FormName.dat |
| | | //CreateDocNo_DocName(DisplayPath); //產生DocNo_Name.dat |
| | | //Showmessage(CreateDocNo_Info(DisplayPath)); //產生 Docno,份數,頁數;Docno,份數,頁數 的回傳字串 |
| | | lb1.Caption:='AAAAAAAAAAA'; |
| | | //lb1.Caption:='AAAAAAAAAAA'; |
| | | //Showmessage(CreateDocnoFrom_Info(NowCaseno)); |
| | | //Showmessage(self.CreateCustDocNoFrom_Info(NowCaseno)); |
| | | |
| | | initkscan; |
| | | //ShowMessage('FMaxUploadSize='+FMaxUploadSize); |
| | | //initkscan; |
| | | showmessage('FUrl='+FUrl+#10#13+ |
| | | 'FCaseID='+FCaseID+#10#13+ |
| | | 'FMode='+FMode+#10#13+ |
| | |
| | | 'FCaseNoLength='+ IntToStr(FCaseNoLength) +#10#13+ |
| | | 'FImgDelete='+ FImgDelete+#10#13+ |
| | | 'FIsExternal='+ FIsExternal+#10#13+ |
| | | 'FCheck_main_form='+ FCheck_main_form); |
| | | 'FWH_category='+FWH_category+ |
| | | 'FCheck_main_form='+ FCheck_main_form+#10#13+ |
| | | 'FMaxUploadSize='+FMaxUploadSize); |
| | | //FImgDelete:='Y'; |
| | | LoadImgFile; |
| | | { ShowMessage('UpLPoint='+IntToStr(UpLPoint.X)+','+IntToStr(UpLPoint.Y)+#10#13+ |
| | | 'UpRPoint='+IntToStr(UpRPoint.X)+','+IntToStr(UpRPoint.Y)+#10#13+ |
| | | 'DownLPoint='+IntToStr(DownLPoint.X)+','+IntToStr(DownLPoint.Y)+#10#13+ |
| | |
| | | Try |
| | | Scanner.OpenSource; |
| | | Scanner.Duplex := ScanDuplex; //雙面 |
| | | |
| | | if FMode='SAMPLESCAN' then |
| | | Scanner.Duplex:=False; |
| | | |
| | | //Scanner.FEEDERENABLED := not ScanFlatCB.Checked; // 先拿掉平台 |
| | | If ScanImgSetUse Then |
| | | begin |
| | |
| | | begin |
| | | 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); |
| | | FMaxUploadSize := PARA_CONTENT; |
| | | end; |
| | | end; |
| | | ScanDuplex := Def_ScanDuplex; |
| | |
| | | StringtoFile(IN_WH_DocNoList.Text,'D:\121.txt');} |
| | | end; |
| | | |
| | | function TCB_IMGPSScanX.CheckRequiredColumnValues(workno, caseno:String): Boolean; |
| | | begin |
| | | // |
| | | Result:=False; |
| | | if (workno='HLN') and (caseno[9]='3') then |
| | | Result:=True; |
| | | if (workno='HLN') and (caseno[9]='4') then |
| | | Result:=True; |
| | | end; |
| | | |
| | | Procedure TCB_IMGPSScanX.CheckRule2OMRErrInfo; //檢核規則填入OMRErrINFo Record |
| | | var i : Integer; |
| | | CheckNo : String; |
| | |
| | | |
| | | DeleteFile(Path+FileName); |
| | | DocDir := Path2DocDir(Path,CaseID); |
| | | //ShowMessage('DocDir='+DocDir); |
| | | SetContextList('D',-1,CaseID,DocDir,FileName); |
| | | {FileList:=TStringlist.Create; |
| | | try |
| | |
| | | begin |
| | | if ISExistImg(ImageSavePath+CaseID+'\'+DocDir+'\'+FileList.Strings[i]) then |
| | | begin |
| | | ShowMessage('有圖為非當次掃瞄,不可刪除'); |
| | | Exit; |
| | | //ShowMessage('有圖為非當次掃瞄,不可刪除'); |
| | | Break; |
| | | end; |
| | | end; |
| | | //ShowMessage(FileList.Strings[i]); |
| | | DeleteImageFile(ImageSavePath+CaseID+'\'+DocDir+'\',FileList.Strings[i],CaseID); |
| | | end; |
| | | end; |
| | |
| | | Cust_DocNoList.LoadFromFile(Path+'CustomDocNo.dat'); |
| | | end; |
| | | |
| | | Function TCB_IMGPSScanX.DeleteDocNoFileForESCAN(Path,DocNo:String):Boolean; //刪除指定DocNo文件 |
| | | var |
| | | i,j,k: Integer; |
| | | FName : String; |
| | | ST1,ST2,ST3:TStringList; |
| | | |
| | | begin |
| | | |
| | | Result := False; |
| | | //ShowMessage(DocNo); |
| | | for i := ContextList.Count - 1 downto 0 do |
| | | begin |
| | | FName := ContextList.Strings[i]; |
| | | If (DocNo = FormCode2DocNo(FileName2FormCode(FName))) or (DocNo=AttName) then |
| | | begin |
| | | if not ISExistImg(Path+'\'+FName) then |
| | | begin |
| | | DeleteFile(Path+'\'+FName); |
| | | ContextList.Delete(i); |
| | | end; |
| | | Result := True; //有刪到指定文件 |
| | | end; |
| | | end; |
| | | ContextList.SaveToFile(Path+'\Context.dat'); |
| | | ContextList.LoadFromFile(Path+'\Context.dat'); |
| | | |
| | | if ContextList.Count=0 then |
| | | begin |
| | | _DelTree(Path); |
| | | SetDocNoList('D',-1,NowCaseNo,NowDocDir,''); |
| | | end; |
| | | |
| | | end; |
| | | |
| | | Procedure TCB_IMGPSScanX.DeleteShowFile(Path:String); //刪除顯示中的影像 |
| | | var |
| | | i : Integer; |
| | |
| | | for n := 0 to S.Count - 1 do |
| | | begin |
| | | |
| | | if FWH_category='N' then |
| | | if (FWH_category='N') and (FIs_In_Wh='Y') then |
| | | begin |
| | | if ISExistImg(ImageSavePath+CaseID+'\upload\'+S.Strings[n]) then |
| | | begin |
| | |
| | | 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)); |
| | | if (version = FormCode2Version(FormCode)) and (DocNo = FormCode2DocNo(FormCode)) and (ipage = FormCode2Page(FormCode)) then |
| | | begin |
| | | LogFile1.LogToFile(logTimeString+'CheckCaseDocNoPage caseno='+CaseID+','+version+','+FormCode2Version(FormCode)+','+DocNo+','+FormCode2DocNo(FormCode)+','+iPage+','+FormCode2Page(FormCode)); |
| | | //Showmessage(version+','+DocNo+',iPage='+iPage); |
| | | //Showmessage(inttostr(Count+1)); |
| | | Inc(Count); |
| | |
| | | SizeStr : String; |
| | | S : TStringlist; |
| | | v,v1:Integer; |
| | | IsRecordMD5:Boolean; |
| | | begin |
| | | IsRecordMD5:=False; |
| | | FormID := FileName2FormCode(FileName); |
| | | if FormID = '' then Exit; |
| | | |
| | |
| | | begin |
| | | //ShowMessage('BBBBBBB'); |
| | | ImageScrollBox1.LoadFromFile(ImageSavePath+CaseID+'\Upload\'+FileName,1); |
| | | |
| | | if (FWH_category='N') and ISExistImg(ImageSavePath+CaseID+'\Upload\'+FileName) then |
| | | begin |
| | | Exit;//20171103 補件 原有的圖不作resize |
| | | end; |
| | | |
| | | //FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH); |
| | | FindPoint(ISB_BW.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH,ANCHOR); |
| | | |
| | |
| | | IF (SizeStr <> '') and (Copy(SizeStr,1,v) <> 'ERROR') then |
| | | begin |
| | | //ShowMessage('CCCCC'); |
| | | |
| | | if (ISExistImg(ImageSavePath+CaseID+'\Upload\'+FileName)) and (reSizeExistImgList.IndexOf(LoadFileGetMD5(ImageSavePath+CaseID+'\Upload\'+FileName))=-1) then |
| | | begin |
| | | IsRecordMD5:=True; |
| | | end; |
| | | ImageScrollBox1.SaveToFile(ImageSavePath+CaseID+'\Upload\'+FileName); |
| | | if IsRecordMD5 then |
| | | begin |
| | | reSizeExistImgList.add(LoadFileGetMD5(ImageSavePath+CaseID+'\Upload\'+FileName)); |
| | | end; |
| | | //showmessage(ImageSavePath+CaseID+'\Upload\'+FileName); |
| | | S := TStringlist.Create; ///20110422拿掉 換成上傳才做 |
| | | if FileExists(ImageSavePath+CaseID+'\Upload\ReSize.dat') then |
| | |
| | | casepath:String; |
| | | filesizeInt:integer; |
| | | case_page:string; |
| | | Fname:String; |
| | | FileRec:TSearchrec; |
| | | begin |
| | | Result := True; |
| | | TransName := CaseID; |
| | |
| | | |
| | | for I := 0 to ST1.Count - 1 do |
| | | begin |
| | | if (Pos('_',St1.Strings[i])<>1) and (Pos('_',St1.Strings[i])<>-11) then |
| | | if (Pos('_',St1.Strings[i])<>1) and (Pos('_',St1.Strings[i])<>-1) then |
| | | begin |
| | | str1:=Copy(ST1.Strings[i],1,Pos('_',St1.Strings[i])-1); |
| | | ST2.Add(str1); |
| | |
| | | if HaveMask then |
| | | ZipMaskFile(Path,MaskPath,Path,'MaskImg.zip'); //有遮罩設定的才產生 |
| | | /////壓檔//// |
| | | |
| | | ///檢查上傳的zip大小//// |
| | | FName :=Path+ 'Img.zip'; |
| | | |
| | | FindFirst(FName, faAnyfile, FileRec); |
| | | |
| | | //FMaxUploadSize |
| | | //ShowMessage(IntToStr(FileRec.Size)); |
| | | //Result:=False; |
| | | //exit; //目前上傳檔案大小為xxMB,已超過50MB,無法上傳 %.3f ,[FileRec.Size / 1048576] |
| | | If FileRec.Size > StrtoInt(FMaxUploadSize) * 1048576 Then // 檢查檔案大小 |
| | | Begin |
| | | ShowMessage(Format('%s目前上傳檔案大小為%.3fMB,已超過'+FMaxUploadSize+'MB,無法上傳',[caseid,FileRec.Size / 1048576]) ); |
| | | FindClose(FileRec); |
| | | Result := False; |
| | | Exit; |
| | | End; |
| | | FindClose(FileRec); |
| | | ///檢查上傳的zip大小//// |
| | | //ShowMessage('last_add_formidstr='+last_add_formidstr); |
| | | ////上傳///// |
| | | SendData:='data='+HTTPEncode(UTF8Encode(FData)) |
| | | +'&verify='+FVerify |
| | |
| | | //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 |
| | | 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 |
| | | HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'); |
| | | Result := False; |
| | | Exit; |
| | | end; |
| | | //ShowMessage('sssss'); |
| | | //ShowMessage('替換zip'); |
| | | AttPath := Path + 'AttFile\'; |
| | | if FileExists(Path+CaseID+'.zip') then |
| | | begin |
| | |
| | | begin |
| | | if FWH_category='N' then |
| | | begin |
| | | if ISExistImg(Path+S.Strings[i]) then |
| | | if (ISExistImg(Path+S.Strings[i])) or (reSizeExistImgList.IndexOf(LoadFileGetMD5(Path+S.Strings[i]))<>-1) then |
| | | begin |
| | | Continue; |
| | | end; |
| | |
| | | if Index <> -1 then |
| | | begin |
| | | //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[Index]); //20140624 修改刪除文件時也記一筆異動,刪掉會無法通知前端網頁有異動 |
| | | SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[Index]); |
| | | SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[Index]); //20170912 要刪除 不然我寫不下去 |
| | | |
| | | CaseDocNoList.Delete(Index); |
| | | CaseDocNo_CopiesList.Delete(Index); |
| | | |
| | |
| | | if DocDir = CaseDocNoList.Strings[i] then |
| | | begin |
| | | //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[i]); //20140624 修改刪除文件時也記一筆異動,刪掉會無法通知前端網頁有異動 |
| | | SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[i]); |
| | | SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[i]); //20170912 要刪除 不然我寫不下去 |
| | | CaseDocNoList.Delete(i); |
| | | CaseDocNo_CopiesList.Delete(i); |
| | | Break; |
| | |
| | | end; |
| | | end; |
| | | //Showmessage('abc'+#13+ImageSavePath+CaseNo+'\CaseDocNo.dat'+#13+inttostr(CaseDocNoList.Count)+#13+CaseDocNoList.Text); |
| | | if CaseDocNoList.Count > 0 then |
| | | if CaseDocNoList.Count >= 0 then |
| | | begin |
| | | CaseDocNoList.SaveToFile(ImageSavePath+CaseNo+'\CaseDocNo.dat'); |
| | | CaseDocNo_CopiesList.SaveToFile(ImageSavePath+CaseNo+'\CaseDocNo_Copies.dat'); |
| | |
| | | //DocNo:String; |
| | | begin |
| | | //DocNo := FormCode2DocNo(FileName2FormCode(FileName)); |
| | | //ShowMessage('FileName='+FileName); |
| | | if DocDir = '' then |
| | | DocDir := AttName ; //附件 |
| | | ContextList.Clear; |
| | |
| | | end; |
| | | end; |
| | | |
| | | Function TCB_IMGPSScanX.CheckCaseAttach_OK:Boolean; //檢查是否有未歸類的案件 |
| | | var |
| | | i,j : Integer; |
| | | begin |
| | | Result := True; |
| | | for i := 0 to NewTreeNode.Count - 1 do |
| | | begin |
| | | for j := 0 to NewTreeNode.Item[i].Count - 1 do |
| | | begin |
| | | if Pos(_msg('未歸類'),NewTreeNode.Item[i].Item[j].Text) > 0 then |
| | | begin |
| | | Result := False; |
| | | Break; |
| | | end; |
| | | end; |
| | | end; |
| | | end; |
| | | |
| | | Procedure TCB_IMGPSScanX.CreateEmptyCase(Path,CaseID:String); //產生空白案號(重掃件用) |
| | | var |
| | | S : TStringlist; |
| | |
| | | FormID : String; |
| | | OldFile,NewFile:String; |
| | | Ext : String; |
| | | ST1:TStringList; |
| | | begin |
| | | ST1:=TStringList.Create; |
| | | OldFileList := TStringlist.Create; |
| | | NewFileList := TStringlist.Create; |
| | | try |
| | |
| | | NewDocDir := FindLastestDocDir(CaseID,NewDocNo); |
| | | if NewDocDir = '' then |
| | | NewDocDir := NewDocNo; |
| | | //ShowMessage('NewDocDir='+NewDocDir); |
| | | if DocNoNeedDiv(NewDocNo) and (FormCode2Page(NewFormID)='01') then |
| | | begin |
| | | NewDocDir := DocNo2DocNoDir(ImageSavePath+CaseID+'\',NewDocNo); |
| | | end |
| | | else |
| | | begin |
| | | ST1.Clear; |
| | | if FileExists(ImageSavePath + NowCaseno+'\'+NewDocDir+'\Context.dat') then |
| | | begin |
| | | ST1.LoadFromFile(ImageSavePath + NowCaseno+'\'+NewDocDir+'\Context.dat'); |
| | | if ISExistImg(ImageSavePath + NowCaseno+'\'+NewDocDir+'\'+ST1.Strings[0]) then |
| | | begin |
| | | NewDocDir := DocNo2DocNoDir(ImageSavePath + NowCaseno+'\',NewDocNo); |
| | | end; |
| | | end; |
| | | end; |
| | | if Not DirectoryExists(ImageSavePath+CaseID+'\'+NewDocDir) then |
| | | begin |
| | | MkDir(ImageSavePath+CaseID+'\'+NewDocDir); |
| | |
| | | finally |
| | | OldFileList.Free; |
| | | NewFileList.Free; |
| | | ST1.Free; |
| | | end; |
| | | end; |
| | | |
| | |
| | | begin |
| | | FileList.LoadFromFile(Path+CaseID+'\'+iDocDir+'\Context.dat'); |
| | | |
| | | if FWH_category='N' then |
| | | if (FWH_category='N') and (FIs_In_Wh='Y') then |
| | | begin |
| | | ST1.Clear; |
| | | for n := 0 to FileList.Count - 1 do |
| | |
| | | |
| | | Function TCB_IMGPSScanX.GetCase_PageCount(var CaseCount,PageCount:Integer):Boolean; //取出案件的數量及頁數 |
| | | var |
| | | i,n: Integer; |
| | | CaseList,DocList,FileList : TStringlist; |
| | | i,n,k: Integer; |
| | | CaseList,DocList,FileList,ST1 : TStringlist; |
| | | begin |
| | | Result := False; |
| | | CaseCount := 0; |
| | |
| | | CaseList := TStringlist.Create; |
| | | DocList := TStringlist.Create; |
| | | FileList := TStringlist.Create; |
| | | ST1:= TStringlist.Create; |
| | | try |
| | | ImageSavePath := ImagePath; |
| | | CaseList.Clear; |
| | | if FileExists(ImageSavePath + 'CaseList.dat') then |
| | | CaseList.LoadFromFile(ImageSavePath + 'CaseList.dat'); |
| | | CaseCount := CaseCount+CaseList.Count; |
| | | //ShowMessage('ImageSavePath='+ImageSavePath+#10#13+'CaseList.Count='+IntToStr(CaseList.Count)); |
| | | for i := 0 to CaseList.Count - 1 do |
| | | begin |
| | | DocList.Clear; |
| | | If FileExists(ImageSavePath+CaseList.Strings[i]+'\CaseDocNo.dat') Then |
| | | DocList.LoadFromFile(ImageSavePath+CaseList.Strings[i]+'\CaseDocNo.dat'); |
| | | //ShowMessage('DocList='+DocList.Text); |
| | | for n := 0 to DocList.Count - 1 do |
| | | begin |
| | | //ShowMessage(DocList.Strings[n]+','+BoolToStr(DocNoAppear(DocNoDir2DocNo(DocList.Strings[n])),true)); |
| | | if not DocNoAppear(DocNoDir2DocNo(DocList.Strings[n])) then Continue; |
| | | FileList.Clear; |
| | | If FileExists(ImageSavePath+CaseList.Strings[i]+'\'+DocList.Strings[n]+'\Context.dat') Then |
| | |
| | | If FileExists(ImageSavePath+CaseList.Strings[i]+'\'+Attname+'\Context.dat') Then |
| | | FileList.LoadFromFile(ImageSavePath+CaseList.Strings[i]+'\'+Attname+'\Context.dat'); |
| | | //Showmessage(ImageSavePath+CaseList.Strings[i]+'\'+Attname+'\Context.dat'); |
| | | //Showmessage(FileList.Text); |
| | | //Showmessage('FileList='+FileList.Text); |
| | | PageCount := PageCount+FileList.Count; |
| | | //Showmessage(inttostr(PageCount)); |
| | | //Showmessage('PageCount='+inttostr(PageCount)); |
| | | if (FWH_category='N') and (FIs_In_Wh='Y') then //20170912 針對非入庫並當次掃描做頁數計算 |
| | | begin |
| | | if FileExists(ImageSavePath+NowCaseno+'\EditedDocDir.dat') then |
| | | begin |
| | | ST1.LoadFromFile(ImageSavePath+NowCaseno+'\EditedDocDir.dat'); |
| | | for n := 0 to ST1.Count - 1 do |
| | | begin |
| | | if ST1.Strings[n]=AttName then Continue; |
| | | //ShowMessage(ST1.Strings[n]+','+BoolToStr(DocNoIs_In_WH(DocNoDir2DocNo(ST1.Strings[n])),true)); |
| | | if not DocNoIs_In_WH(DocNoDir2DocNo(ST1.Strings[n])) then |
| | | begin |
| | | |
| | | FileList.Clear; |
| | | if FileExists(ImageSavePath+CaseList.Strings[i]+'\'+ST1.Strings[n]+'\Context.dat') then |
| | | begin |
| | | FileList.LoadFromFile(ImageSavePath+CaseList.Strings[i]+'\'+ST1.Strings[n]+'\Context.dat'); |
| | | for k := 0 to FileList.Count - 1 do |
| | | begin |
| | | if not ISExistImg(ImageSavePath+CaseList.Strings[i]+'\'+ST1.Strings[n]+'\'+FileList.Strings[k]) then |
| | | PageCount := PageCount+1; |
| | | end; |
| | | end; |
| | | end; |
| | | end; |
| | | end; |
| | | end; |
| | | end; |
| | | Finally |
| | | CaseList.Free; |
| | | DocList.Free; |
| | | FileList.Free; |
| | | ST1.Free |
| | | end; |
| | | Result := True; |
| | | end; |
| | |
| | | if Path = '' then Exit; |
| | | S := TStringlist.Create; |
| | | try |
| | | S.Add(Case_loandoc); |
| | | S.SaveToFile(Path+'CaseIndex.dat'); |
| | | try |
| | | S.Add(Case_loandoc); |
| | | S.SaveToFile(Path+'CaseIndex.dat'); |
| | | except on E: Exception do |
| | | end; |
| | | |
| | | finally |
| | | S.Free; |
| | | end; |
| | |
| | | |
| | | end; |
| | | |
| | | |
| | | procedure TCB_IMGPSScanX.ReduceLogFile; //20171011 必免log檔掌太大 |
| | | var |
| | | ST1:TStringlist; |
| | | I:integer; |
| | | begin |
| | | ST1:=TStringList.Create; |
| | | if FileExists(LngPath+'IMGPSCheck.log') then |
| | | begin |
| | | ST1.LoadFromFile(LngPath+'IMGPSCheck.log'); |
| | | if ST1.count>100000 then |
| | | begin |
| | | for I := 0 to 10000 do |
| | | begin |
| | | ST1.Delete(0); |
| | | end; |
| | | ST1.SaveToFile(LngPath+'IMGPSCheck.log'); |
| | | end; |
| | | end; |
| | | ST1.Free; |
| | | end; |
| | | |
| | | Procedure TCB_IMGPSScanX.ClearCaseIndex; |
| | | begin |
| | |
| | | end; |
| | | CaseHelpBtn.Visible := False; |
| | | LoadImgFile; |
| | | Showmessage(NowCaseNo+_Msg('傳送完成')); |
| | | if (FMode='NSCAN') or (FMode='DSCAN') then |
| | | begin |
| | | Showmessage(NowCaseNo+_Msg('影像上傳完成。此案已進入下一流程。')); |
| | | end; |
| | | |
| | | if FMode='ESCAN' then |
| | | begin |
| | | Showmessage(NowCaseNo+_Msg('影像已補件完成。')); |
| | | end; |
| | | |
| | | DataLoading(False,False); |
| | | end |
| | | Else |
| | |
| | | CaseDocNo_CopiesList := TStringlist.Create; |
| | | StrList := TStringlist.Create; |
| | | ST1:=TStringList.Create; |
| | | LogFile1.LogToFile(logTimeString+'產文件樹開始'); |
| | | try |
| | | CaseNode.ImageIndex := 1; |
| | | CaseNode.SelectedIndex := 1; |
| | |
| | | iDocNo := DocNoDir2DocNo(CaseDocNoList.Strings[i]); |
| | | ST1.Clear; |
| | | |
| | | if FWH_category='N' then |
| | | 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 |
| | | begin |
| | |
| | | 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]); |
| | | //Showmessage(iDocNo); |
| | | //Showmessage(DocNo2DocName(Caseno,iDocNo)); |
| | | //Showmessage(iDocNo); |
| | | //Showmessage(DocNo2DocName(Caseno,iDocNo)); |
| | | //ShowMessage('FileList='+FileList.Text); |
| | | {if (((FIs_In_Wh = 'Y') and (not DocNoIs_In_WH(iDocNo))) or //入庫掃描不看非入庫文件 |
| | | ((FIs_In_Wh = 'N') and (DocNoIs_In_WH(iDocNo)))) and |
| | | ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then //非入庫掃描不看入庫文件 |
| | |
| | | |
| | | if DirectoryExists(ImageSavePath+Caseno+'\'+AttName) then |
| | | begin |
| | | |
| | | FileList.Clear; |
| | | if FileExists(ImageSavePath+Caseno+'\'+AttName+'\Context.dat') then |
| | | FileList.LoadFromFile(ImageSavePath+Caseno+'\'+AttName+'\Context.dat') |
| | |
| | | end; |
| | | end; |
| | | end; |
| | | |
| | | if FModeName='件' then //20170904 先裝死 因為異動 同時存在兩種附件太難寫 |
| | | begin |
| | | if DirectoryExists(ImageSavePath+Caseno+'\Attach') then |
| | | begin |
| | | FileList.Clear; |
| | | if FileExists(ImageSavePath+Caseno+'\Attach'+'\Context.dat') then |
| | | FileList.LoadFromFile(ImageSavePath+Caseno+'\Attach'+'\Context.dat') |
| | | Else |
| | | begin |
| | | Rmdir(ImageSavePath+Caseno+'\Attach'); |
| | | Exit; |
| | | end; |
| | | DocNoPage := FileList.Count; |
| | | iDocNo := DocNoDir2DocNo(AttName); |
| | | //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[AttName,DocNo2DocName(Caseno,iDocNo),1])); |
| | | DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[DocNo2DocName(Caseno,iDocNo),'Attach',1])); |
| | | DocNode.ImageIndex := 2; |
| | | DocNode.SelectedIndex := 2; |
| | | for n := 0 to FileList.Count - 1 do |
| | | begin |
| | | FormID := FileName2FormCode(FileList.Strings[n]); |
| | | if not CheckFormIDExists(DocNode,FormID) then |
| | | begin |
| | | FormPage := GetFormIDPage(FileList,FormID); |
| | | FormName := FormCode2FormName(Caseno,FormID); |
| | | //FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('頁')); |
| | | FormNode := TreeView1.Items.AddChild(DocNode,FormName+'{'+FormID+'}-'+inttostr(FormPage)+_msg('頁')); |
| | | |
| | | FormNode.ImageIndex := 4; |
| | | FormNode.SelectedIndex := 4; |
| | | end; |
| | | end; |
| | | end; |
| | | end; |
| | | LogFile1.LogToFile(logTimeString+'產文件樹結束'); |
| | | Finally |
| | | FileList.Free; |
| | | CaseDocNoList.Free; |
| | |
| | | if PrintForm.CheckListBox1.Checked[i] then |
| | | begin |
| | | if S = '' then |
| | | S := S+FileList.Strings[i] |
| | | S := S+PrintForm.CheckListBox1.Items[i] |
| | | Else |
| | | S := S+#13+FileList.Strings[i]; |
| | | S := S+#13+PrintForm.CheckListBox1.Items[i]; |
| | | end; |
| | | end; |
| | | if S = '' then |
| | |
| | | ST1.LoadFromFile(path+'FormCode_Name.dat'); |
| | | for I := 0 to ST1.Count - 1 do |
| | | begin |
| | | if (Pos('_',St1.Strings[i])<>1) and (Pos('_',St1.Strings[i])<>-11) then |
| | | if (Pos('_',St1.Strings[i])<>1) and (Pos('_',St1.Strings[i])<>-1) then |
| | | begin |
| | | str1:=Copy(ST1.Strings[i],1,Pos('_',St1.Strings[i])-1); |
| | | LastInitFormidList.Add(str1); |
| | |
| | | end; |
| | | |
| | | CasePage := GetCasePage(ImageSavePath,CaseList.Strings[i]); |
| | | //ShowMessage('CasePage='+IntToStr(CasePage)); |
| | | MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d頁'),[CaseList.Strings[i],CasePage])); |
| | | MytreeNode1.ImageIndex := 1; |
| | | MytreeNode1.SelectedIndex := 1; |
| | |
| | | v := Pos('-',NewTreeNode.Text); |
| | | NewTreeNode.Text := Format(_Msg('%s-共%d筆共%d頁'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]); |
| | | end; |
| | | end; |
| | | |
| | | function TCB_IMGPSScanX.logTimeString: String; |
| | | begin |
| | | Result:=FormatDateTime('yyyymmdd hh:mm:ss',now) +' caseNo='+NowCaseno+' '; |
| | | end; |
| | | |
| | | Function TCB_IMGPSScanX.FindDivFormCode(FormCode:String):Boolean; //找有沒有分案的條碼 |
| | |
| | | end; |
| | | |
| | | end; |
| | | |
| | | //ShowMessage('FormIDCount='+IntToStr(FormIDCount)+#10#13+'MpsBarcodeinf.count='+IntToStr(MpsBarcodeinf.count)); |
| | | if FormIDCount = 2 then |
| | | begin |
| | | Result := True; |
| | |
| | | DocNo := 'ZZZZZ'+Add_Zoo(Ct,3); |
| | | if FIs_In_Wh <> 'Y' then //不是入庫文件 |
| | | DocNo := 'YYYYY'+Add_Zoo(Ct,3); |
| | | |
| | | if (FMode='ESCAN') and (FWH_category='N') then //20170914 補件下改成非入庫的自定文件 |
| | | begin |
| | | DocNo := 'YYYYY'+Add_Zoo(Ct,3); |
| | | end; |
| | | |
| | | FormID := DocNo+'010101A'; |
| | | ini.WriteInteger('CustomCount','Count',Ct); |
| | | ini.WriteString(DocNo,'FormID',FormID); |
| | |
| | | S := TStringlist.Create; |
| | | GraphicPrinter := TDibGraphicPrinter.Create; |
| | | PrtDialog := TPrintDialog.Create(self); |
| | | //PrtDialog.Copies:=99; |
| | | try |
| | | IF PrtDialog.Execute Then |
| | | begin |
| | |
| | | S.LoadFromFile(ImageSavePath + CaseID+'\upload\Context.dat'); |
| | | for i := 0 to S.Count - 1 do |
| | | begin |
| | | LogFile1.LogToFile(logTimeString+S.Strings[i]+' ISExistImg='+BoolToStr(ISExistImg(ImageSavePath+CaseID+'\upload\'+S.Strings[i]),true)); |
| | | LogFile1.LogToFile(logTimeString+S.Strings[i]+' reSizeExistImgList='+BoolToStr(reSizeExistImgList.IndexOf(LoadFileGetMD5(ImageSavePath+CaseID+'\upload\'+S.Strings[i]))<>-1,true)); |
| | | if FWH_category='N' then |
| | | begin |
| | | if ISExistImg(ImageSavePath+CaseID+'\upload\'+S.Strings[i]) then |
| | | if (ISExistImg(ImageSavePath+CaseID+'\upload\'+S.Strings[i])) |
| | | or (reSizeExistImgList.IndexOf(LoadFileGetMD5(ImageSavePath+CaseID+'\upload\'+S.Strings[i]))<>-1) then |
| | | begin |
| | | Continue; |
| | | end; |
| | |
| | | |
| | | end; |
| | | //ShowMessage('MainFormID='+MainFormID); |
| | | LogFile1.LogToFile(logTimeString+' '+FModeName+' '+CaseID+' '+'MainFormID='+MainFormID); |
| | | if MainFormID = ''then |
| | | begin |
| | | //20131203 yuu說不檢查這個,先拿掉 20170315 楷琳說未歸類要擋 20170726 因此有檢查必要FormID 所以 可以拿掉 |
| | |
| | | //////主要非主要文件////// |
| | | DistinctDocinCase(ImageSavePath+CaseID+'\upload\'); |
| | | //ShowMessage(DocNo_VerinCase.Text); |
| | | //DocNo_VerinCase.Add('31A00101_1706A'); |
| | | LogFile1.LogToFile(logTimeString+' '+CaseID+' '+'DocNo_VerinCase.Text='+DocNo_VerinCase.Text); |
| | | if ModeNeedCheck(OMRErrInfo[1].Mode,FMode) then //是否要檢核 |
| | | begin |
| | | for i := 0 to DocNo_VerinCase.Count - 1 do |
| | |
| | | MainVersion :=Copy(DocNo_VerinCase.Strings[i],v+1,v1-v); //FormCode2Version(MainFormID); |
| | | MainFormPage := GetDataDocNoPage(MainDocNo,MainVersion); //資料庫記錄主文件頁數 |
| | | CaseFormPage := CheckCaseDocNoPage(CaseID,MainDocNo,MainVersion,MainFormPage); //案件主文件的頁數 |
| | | LogFile1.LogToFile(logTimeString+CaseID+',MainDocNo='+MainDocNo+',MainVersion='+MainVersion+',MainFormPage='+IntToStr(MainFormPage)+',CaseFormPage='+IntToStr(CaseFormPage)); |
| | | IF (MainFormPage > 0) and (MainFormPage <> CaseFormPage) then |
| | | begin |
| | | ErrStr:=MainDocNo+Format(OMRErrInfo[1].Info,[Inttostr(MainFormPage),Inttostr(CaseFormPage)]); //主要文件需有XX頁僅附XX頁 |
| | |
| | | end; |
| | | end; |
| | | //////主要非主要文件///// |
| | | //showmessage(MainFormID); |
| | | //showmessage(MainFormID); |
| | | MainDocNo := FormCode2DocNo(MainFormID); |
| | | MainVersion := FormCode2Version(MainFormID); |
| | | if FindSQLData(DM_FORM_INF_List,'DEPE_FORM_ID,MUTEX_FORM_ID','MAIN_FORM_ID,DOC_VERSION',MainDocNo+','+MainVersion,0,FindResult) then |
| | |
| | | end; |
| | | end; |
| | | //////互斥文件///// |
| | | end; |
| | | end; //MainFormID結束 |
| | | //end; |
| | | List.LoadFromFile(ImageSavePath + CaseID+'\upload\Context.dat'); |
| | | for i := 0 to List.Count - 1 do |
| | |
| | | end; |
| | | //if AllCheck then |
| | | //begin |
| | | //////最大頁數///// |
| | | //////最大頁數/// |
| | | LogFile1.LogToFile(logTimeString+'最大頁數A段 '+CaseID+' '+'OMRFileList.Text='+OMRFileList.Text); |
| | | DistinctFormCode(CaseID); |
| | | if ModeNeedCheck(OMRErrInfo[10].Mode,FMode) then //是否要檢核 |
| | | begin |
| | | //ShowMessage('AAA'+OMRFileList.Text); |
| | | LogFile1.LogToFile(logTimeString+'最大頁數B段 '+CaseID+' '+'OMRFileList.Text='+OMRFileList.Text); |
| | | For i := 0 to OMRFileList.Count - 1 do |
| | | begin |
| | | if FModeName='異動件' then Continue; |
| | | |
| | | if FWH_category='N' then |
| | | begin |
| | | if ISExistImg(ImageSavePath+CaseID+'\upload\'+OMRFileList.Strings[i]) then |
| | |
| | | ValueXT := TXmltool.Create; |
| | | Try |
| | | //ShowMessage('必填'+OMRFileList.Text); |
| | | LogFile1.LogToFile(logTimeString+'必填 '+CaseID+' '+'OMRFileList.Text='+OMRFileList.Text); |
| | | For i := 0 to OMRFileList.Count - 1 do |
| | | begin |
| | | // if FWH_category='N' then |
| | | // begin |
| | | // if ISExistImg(ImageSavePath+CaseID+'\upload\'+OMRFileList.Strings[i]) then |
| | | // begin |
| | | // Continue; |
| | | // end; |
| | | // end; |
| | | //ShowMessage('OMRFileList.Strings['+IntToStr(i)+']'+OMRFileList.Strings[i]); |
| | | if CheckRequiredColumnValues(FWork_NO,CaseID) then Continue; |
| | | |
| | | OMRFile := OMRFileList.Strings[i]; |
| | | OMRFormCode := FileName2FormCode(OMRFileList.Strings[i]); |
| | | OMRFormName := FormCode2FormName(CaseID,OMRFormCode); |
| | |
| | | ImageReSize_FormID(CaseID,OMRFile); |
| | | ////依十字定位點縮放/// |
| | | //Display1.Lines.Add('OMRFile='+OMRFile+',OMRFormCode='+OMRFormCode+',OMRFormName='+OMRFormName); |
| | | LogFile1.LogToFile(logTimeString+'OMRFile='+OMRFile+',OMRFormCode='+OMRFormCode+',OMRFormName='+OMRFormName); |
| | | //ShowMessage('KKKKK'); |
| | | if not FileExists(CheckXmlPath+OMRFormCode+'.xml') then //沒有Xml就不用檢核 |
| | | Continue; |
| | | |
| | | |
| | | //ShowMessage('11638 OMRFileList.Strings['+IntToStr(i)+']'+OMRFileList.Strings[i]); |
| | | XT := TXmltool.Create(CheckXmlPath+OMRFormCode+'.xml'); |
| | | RelaXT := TXmltool.Create; |
| | | //ShowMessage('ModeNeedCheck='+BoolToStr(ModeNeedCheck(OMRErrInfo[4].Mode,FMode),true)); |
| | |
| | | Until not XT.SubNodes['/form/settype1/'].Next ; |
| | | end; |
| | | //*******必填******** |
| | | |
| | | //ShowMessage('11692 OMRFileList.Strings['+IntToStr(i)+']'+OMRFileList.Strings[i]); |
| | | //if AllCheck then |
| | | //begin |
| | | //*******有值相關文件的欄位也要有值******* |
| | |
| | | Anchor1 := FormID2Anchor(RelaFormCode); |
| | | RelaXT.LoadFromFile(CheckXmlPath+RelaFormCode+'.xml'); |
| | | Display1.Lines.Add(RelaFile+','+RelaFormName); |
| | | ISB8.LoadFromFile(ImageSavePath+CaseID+'\upload\'+RelaFile,1); //20170815 |
| | | ISB8W:= ISB8.Graphic.Width; |
| | | ISB8H:= ISB8.Graphic.Height; |
| | | FindPoint(ISB8.Graphic,UpLPoint,UpRPoint,DownLPoint,ISB8W,ISB8H,ANCHOR); //20170815 抓相關然欄位所在圖檔的定位 |
| | | //ShowMessage(RelaFile); |
| | | //ShowMessage(ImageSavePath+CaseID+'\upload\'+RelaFile); |
| | | if RelaFile<>'' then |
| | | begin |
| | | ISB8.LoadFromFile(ImageSavePath+CaseID+'\upload\'+RelaFile,1); //20170815 |
| | | ISB8W:= ISB8.Graphic.Width; |
| | | ISB8H:= ISB8.Graphic.Height; |
| | | FindPoint(ISB8.Graphic,UpLPoint,UpRPoint,DownLPoint,ISB8W,ISB8H,ANCHOR); //20170815 抓相關然欄位所在圖檔的定位 |
| | | end; |
| | | |
| | | OMROK := False; |
| | | //OMROK := False; |
| | | //if RelaXT.SubNodes['/form/settype2/'].First then |
| | |
| | | Until not XT.SubNodes['/form/settype3/'].Next ; |
| | | end; |
| | | //*******有值相關文件的欄位也要有值******* |
| | | //ShowMessage('11788 OMRFileList.Strings['+IntToStr(i)+']'+OMRFileList.Strings[i]); |
| | | |
| | | //*******有值相關文件的欄位不能有值******* |
| | | if ModeNeedCheck(OMRErrInfo[11].Mode,FMode) then //是否要檢核 |
| | |
| | | RelaFormName := FormCode2FormName(CaseID,RelaFormCode); |
| | | Anchor1 := FormID2Anchor(RelaFormCode); |
| | | RelaXT.LoadFromFile(CheckXmlPath+RelaFormCode+'.xml'); |
| | | ISB8.LoadFromFile(ImageSavePath+CaseID+'\upload\'+RelaFile,1); //20170815 |
| | | ISB8W:= ISB8.Graphic.Width; |
| | | ISB8H:= ISB8.Graphic.Height; |
| | | FindPoint(ISB8.Graphic,UpLPoint,UpRPoint,DownLPoint,ISB8W,ISB8H,ANCHOR); //20170815 抓相關然欄位所在圖檔的定位 |
| | | |
| | | if RelaFile<>'' then |
| | | begin |
| | | ISB8.LoadFromFile(ImageSavePath+CaseID+'\upload\'+RelaFile,1); //20170815 |
| | | ISB8W:= ISB8.Graphic.Width; |
| | | ISB8H:= ISB8.Graphic.Height; |
| | | FindPoint(ISB8.Graphic,UpLPoint,UpRPoint,DownLPoint,ISB8W,ISB8H,ANCHOR); //20170815 抓相關然欄位所在圖檔的定位 |
| | | end; |
| | | |
| | | OMROK := False; |
| | | //OMROK := False; |
| | | //if RelaXT.SubNodes['/form/settype2/'].First then |
| | |
| | | end; |
| | | //*******有值相關文件的欄位不能有值******* |
| | | |
| | | |
| | | //ShowMessage('11889 OMRFileList.Strings['+IntToStr(i)+']'+OMRFileList.Strings[i]); |
| | | |
| | | //*******有值相依文件******* |
| | | if ModeNeedCheck(OMRErrInfo[5].Mode,FMode) then //是否要檢核 |
| | |
| | | RelaXT.Free; |
| | | end; |
| | | end; |
| | | //必填迴圈結束 |
| | | Finally |
| | | ValueXT.Free; |
| | | end; |
| | |
| | | ST1:TStringList; |
| | | begin |
| | | ShowText := '影像顯示中,請稍候'; |
| | | //DataLoading(True,True); |
| | | DataLoading(True,True); |
| | | ST1:=TStringList.Create; |
| | | //Display1.Lines.Clear; |
| | | IF DocNo = 'ShowAll' then //顯示所有的影像 (因為附件會傳空字串,所以用ShowAll) |
| | |
| | | For i := 0 to CaseDocNoList.Count-1 do |
| | | begin |
| | | |
| | | if FWH_category='N' then |
| | | if (FWH_category='N') and (FIs_In_Wh='Y') then |
| | | begin |
| | | if FileExists(ImageSavePath+NowCaseno+'\EditedDocDir.dat') then |
| | | begin |
| | |
| | | end; |
| | | |
| | | iDocNo := CaseDocNoList.Strings[i]; |
| | | //ShowMessage('ST1.Count='+IntToStr(ST1.Count)); |
| | | if ST1.Count<>0 then |
| | | begin |
| | | if ST1.IndexOf(iDocNo)<>-1 then |
| | |
| | | ContextList.Clear; |
| | | if FileExists(Path+iDocNo+'\Context.dat') then |
| | | ContextList.LoadFromFile(Path+iDocNo+'\Context.dat'); |
| | | |
| | | //ShowMessage('ContextList='+ContextList.Text); |
| | | for n := 0 to ContextList.Count - 1 do |
| | | begin |
| | | |
| | | if FWH_category='N' then |
| | | if (FWH_category='N') and (FIs_In_Wh='Y') then |
| | | begin |
| | | if ISExistImg(Path+iDocNo+'\'+ContextList.Strings[n]) then |
| | | begin |
| | | Continue; |
| | | |
| | | if not DocNoIs_In_WH(Copy(iDocNo,1,8)) then |
| | | begin |
| | | Continue; |
| | | end; |
| | | end; |
| | | end; |
| | | |
| | |
| | | |
| | | end |
| | | Else if (DocNo <> '') and (FormID = '') then //顯示指定DocNo+組別的影像 附件傳 Attach |
| | | begin |
| | | begin //顯示 文件層下的影像 |
| | | iDocNo := DocNo; |
| | | ContextList.Clear; |
| | | if FileExists(Path+iDocNo+'\Context.dat') then |
| | | ContextList.LoadFromFile(Path+iDocNo+'\Context.dat'); |
| | | // Ct:=0 ; |
| | | // for I := 0 to ContextList.Count - 1 do |
| | | // begin |
| | | // if FWH_category='N' then |
| | | // begin |
| | | // if ISExistImg(Path+iDocNo+'\'+ContextList.Strings[i]) then |
| | | // begin |
| | | // Inc(Ct); |
| | | // //ContextList.Delete(ContextList.IndexOf(ContextList.Strings[i])); |
| | | // end; |
| | | // end; |
| | | // end; |
| | | |
| | | //ShowMessage('ContextList.Count='+IntToStr(ContextList.Count)); |
| | | CreatePreViewISB(ContextList.Count); |
| | | //ShowMessage(IntToStr(ContextList.Count-Ct)); |
| | | //ShowMessage(IntToStr(ContextList.Count)); |
| | | int1:=0; |
| | | //ShowMessage(BoolToStr(DocNoIs_In_WH(Copy(iDocNo,1,8)),true)); |
| | | For i := 0 to ContextList.Count -1 do |
| | | begin |
| | | if FWH_category='N' then |
| | | if (FWH_category='N') and (FIs_In_Wh='Y') then |
| | | begin |
| | | if ISExistImg(Path+iDocNo+'\'+ContextList.Strings[i]) then |
| | | begin |
| | | inc(int1); |
| | | Continue; |
| | | |
| | | if not DocNoIs_In_WH(Copy(iDocNo,1,8)) and ( iDocNo<>'Attach') then |
| | | begin |
| | | inc(int1); |
| | | Continue; |
| | | end; |
| | | end; |
| | | end; |
| | | //ShowMessage(Path+iDocNo+'\'+ContextList.Strings[i]); |
| | | ISB := TImageScrollBox(FindComponent(ISBName+intToStr(i+1-int1))); |
| | | ISB.AntiAliased := True; |
| | | if ISB.ZoomPercent > 100 then |
| | |
| | | begin |
| | | if FileName2FormCode(ContextList.Strings[i]) = FormID then |
| | | begin |
| | | if FWH_category='N' then |
| | | if (FWH_category='N') and (FIs_In_Wh='Y') then |
| | | begin |
| | | //ShowMessage(Path+iDocNo+'\'+ContextList.Strings[i]); |
| | | //ShowMessage(BoolToStr(ISExistImg(Path+iDocNo+'\'+ContextList.Strings[i]),true)); |
| | | if ISExistImg(Path+iDocNo+'\'+ContextList.Strings[i]) then |
| | | begin |
| | | Continue; |
| | | if not DocNoIs_In_WH(FormCode2DocNo(FormID)) then |
| | | Continue; |
| | | end; |
| | | end; |
| | | inc(Ct); |
| | |
| | | ISB : TImageScrollBox; |
| | | Panel : TPanel; |
| | | i,W,H : Integer; |
| | | myDate : TDateTime; |
| | | begin |
| | | FreePreViewISB; |
| | | ScrollBox1.HorzScrollBar.Visible := False; |
| | |
| | | H := 250; |
| | | for I := 1 to Count do |
| | | begin |
| | | Panel := TPanel.Create(Self); |
| | | Panel.Name := 'M_Pl'+inttostr(i); |
| | | Panel.Left := 4; |
| | | Panel.Top := (i-1)*H+(6*i); |
| | | Panel.Height := H; |
| | | Panel.Width := W; |
| | | Panel.Parent := ScrollBox1; |
| | | Panel.Caption :=''; |
| | | ISB := TImageScrollBox.Create(Self); |
| | | ISB.Name := ISBName+inttostr(i); |
| | | ISB.Parent := Panel; |
| | | ISB.Align := alClient; |
| | | ISB.ZoomMode := zmFullPage; |
| | | ISB.DragMode := dmAutomatic; |
| | | ISB.MouseMode := mmuser; |
| | | ISB.OnImageClick := ISBClick; |
| | | ISB.OnImageMouseMove := ISBMouseMove; |
| | | ISB.PopupMenu := PopupMenu6; |
| | | ISB.OnImageMouseDown := ISBImageMouseDown; |
| | | ISB.OnImageMouseUp := ISBImageMouseUp; |
| | | //ISB.OnStartDrag := ISBStartDrag; |
| | | ISB.OnEndDrag := ISBEndDrag; |
| | | // ISB.OnImageDragDrop := ISBDragDrop; |
| | | // ISB.OnImageDragOver := ISBDragOver; |
| | | ISB.OnDragDrop := ISBDragDrop; |
| | | ISB.OnDragOver := ISBDragOver; |
| | | |
| | | if FindComponent('M_Pl'+inttostr(i))=nil then |
| | | begin |
| | | Panel := TPanel.Create(Self); |
| | | Panel.Name := 'M_Pl'+inttostr(i);//FormatDateTime('yyyymmddhhnnsszzz', now) |
| | | Panel.Left := 4; |
| | | Panel.Top := (i-1)*H+(6*i); |
| | | Panel.Height := H; |
| | | Panel.Width := W; |
| | | Panel.Parent := ScrollBox1; |
| | | Panel.Caption :=''; |
| | | |
| | | if FindComponent(ISBName+inttostr(i))=nil then |
| | | begin |
| | | ISB := TImageScrollBox.Create(Self); |
| | | ISB.Name := ISBName+inttostr(i); |
| | | ISB.Parent := Panel; |
| | | ISB.Align := alClient; |
| | | ISB.ZoomMode := zmFullPage; |
| | | ISB.DragMode := dmAutomatic; |
| | | ISB.MouseMode := mmuser; |
| | | ISB.OnImageClick := ISBClick; |
| | | ISB.OnImageMouseMove := ISBMouseMove; |
| | | ISB.PopupMenu := PopupMenu6; |
| | | ISB.OnImageMouseDown := ISBImageMouseDown; |
| | | ISB.OnImageMouseUp := ISBImageMouseUp; |
| | | ISB.OnEndDrag := ISBEndDrag; |
| | | ISB.OnDragDrop := ISBDragDrop; |
| | | ISB.OnDragOver := ISBDragOver; |
| | | end; |
| | | end; |
| | | |
| | | end; |
| | | |
| | | end; |
| | |
| | | var |
| | | i : Integer; |
| | | begin |
| | | try |
| | | For i:= ComponentCount -1 downto 0 do |
| | | begin |
| | | IF Components[i] is TImageScrollBox Then |
| | | IF (Components[i] is TImageScrollBox) and (Components[i]<>nil) Then |
| | | begin |
| | | IF Pos(ISBName,Components[i].Name) > 0 Then |
| | | Components[i].Free; |
| | | end |
| | | Else If Components[i] is TPanel Then |
| | | Else If (Components[i] is TPanel) and (Components[i]<>nil) Then |
| | | begin |
| | | IF Pos('M_Pl',Components[i].Name) > 0 Then |
| | | Components[i].Free; |
| | | end |
| | | Else If Components[i] is TShape Then |
| | | Else If (Components[i] is TShape) and (Components[i]<>nil) Then |
| | | begin |
| | | IF Pos('SP',Components[i].Name) > 0 Then |
| | | Components[i].Free; |
| | | end; |
| | | end; |
| | | Application.ProcessMessages; |
| | | except on E: Exception do |
| | | end; |
| | | |
| | | //showmessage(inttostr(Count)); |
| | | end; |
| | | |
| | |
| | | OldName := Filelist.Strings[i]; |
| | | //NewName := Add_Zoo(i+1,3)+Copy(OldName,4,length(OldName)-3); |
| | | NewName := Add_Zoo(i+1,3)+FileName2NoQuene_Filename(OldName); |
| | | //ShowMessage(OldName+#10#13+NewName); |
| | | ReNameFile(Path+OldName,Path+NewName); |
| | | Filelist.Strings[i] := NewName; |
| | | end; |
| | |
| | | //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; |
| | |
| | | i: Integer; |
| | | begin |
| | | Timer1.Enabled := False; |
| | | // FIs_In_Wh:='Y'; /// test 記得關掉 |
| | | // FWH_category :='N'; // test 記得關掉 |
| | | //FIs_In_Wh:='Y'; /// test 記得關掉 |
| | | //FWH_category :='N'; // test 記得關掉 |
| | | // FImgDelete := 'Y'; //test 記得關掉 |
| | | //Showmessage('a'); |
| | | //self.FIs_OldCase := 'Y'; |
| | | PageLVclear := True; |
| | | InitialOk := False; |
| | | |
| | | FMaxUploadSize:='10'; |
| | | FJpgCompression:=50; |
| | | //FMode := 'DSCAN' ; |
| | | //FIs_In_Wh := 'Y'; |
| | | if FIs_In_Wh = 'Y' then |
| | |
| | | LastAddFormidList := TStringList.Create; |
| | | SampleFormIDList := TStringList.Create;//20170627 加入 |
| | | ExistImgList := TStringList.Create; //20170724 新增 |
| | | reSizeExistImgList :=TStringList.Create; //20171012 新增 |
| | | //********清單區******** |
| | | |
| | | ShowText := _Msg('資料載入中,請稍候'); |
| | |
| | | Del_Sub_NothingPath(ImagePath); //清掉案件目錄是空的 |
| | | |
| | | |
| | | LogFile1.LogFile:=LngPath+'IMGPSCheck.log'; |
| | | |
| | | 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(IntToStr(ScanDpi)); |
| | | R_W_Scanini('R'); //掃瞄設定的ini |
| | | //ShowMessage(IntToStr(ScanDpi)); |
| | | //ShowMessage('停掉DataLoading'); |
| | | //DataLoading(False,False); |
| | | ScanDuplexCB.Checked := ScanDuplex; |
| | | if FMode <> 'SAMPLESCAN' then |
| | | LoadImgFile; |
| | |
| | | Splitter2.Visible := False; } |
| | | //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; |
| | | |
| | |
| | | AreaStr : String; |
| | | S : TStringlist; |
| | | CheckStr : String; |
| | | uploadMsg:String;//20171122 新增 配合不同mode下要秀不能上傳訊息 |
| | | begin |
| | | IF not InitialOk Then |
| | | begin |
| | |
| | | DisplayPath := ''; |
| | | ClearCaseIndex; |
| | | RejectCase := False; |
| | | |
| | | uploadMsg:=''; |
| | | if not CheckCaseID_OK then //檢查是否有未配號的案件 |
| | | begin |
| | | Showmessage(_Msg('尚有未配號案件,無法上傳')); |
| | | Showmessage(_Msg('尚有「無案件編號」之案件,無法上傳')); |
| | | Exit; |
| | | end; |
| | | |
| | | if not CheckCaseAttach_OK then //20170911檢查是否有未歸類的案件 |
| | | begin |
| | | Showmessage(_Msg('尚有未歸類文件,無法上傳')); |
| | | Exit; |
| | | end; |
| | | |
| | | |
| | | if NewTreeNode.Count = 0 then |
| | | begin |
| | | Showmessage(_Msg('無影像需傳送')); |
| | |
| | | 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]); |
| | | |
| | | Showmessage(_Msg('傳送完成')+#13#10+TransMsg); |
| | | |
| | | if (FMode = 'DSCAN') and (SuccessCount = 1) then |
| | | begin |
| | | uploadMsg:=NowCaseNo+_Msg('影像上傳完成。此案已進入下一流程'); |
| | | end; |
| | | if (FMode='ESCAN') and (FModeName='補件掃描') and (SuccessCount = 1) then |
| | | begin |
| | | uploadMsg:=NowCaseNo+_Msg('影像已補件完成'); |
| | | end; |
| | | //ShowMessage('uploadMsg='+uploadMsg); |
| | | if uploadMsg<>'' then |
| | | begin |
| | | ShowMessage(uploadMsg); |
| | | end |
| | | else |
| | | begin |
| | | Showmessage(_Msg('傳送完成')+#13#10+TransMsg); |
| | | end; |
| | | |
| | | LoadImgFile; |
| | | if (FMode = 'ESCAN') and (SuccessCount = 1) then |
| | |
| | | NowDocNo := ''; |
| | | NowFormCode := ''; |
| | | NowFormName := ''; |
| | | |
| | | NowPage := 0; |
| | | NowShowFileList.Clear; |
| | | StatusBar1.Panels[2].Text := ''; |
| | |
| | | procedure TCB_IMGPSScanX.TreeView1KeyUp(Sender: TObject; var Key: Word; |
| | | Shift: TShiftState); |
| | | begin |
| | | TreeView1Click(nil); |
| | | IF TreeView1.Selected.Parent <> nil Then |
| | | begin |
| | | TreeView1Click(nil); |
| | | end |
| | | else |
| | | begin |
| | | ClearView(1); |
| | | end; |
| | | |
| | | end; |
| | | |
| | | procedure TCB_IMGPSScanX.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; |
| | |
| | | procedure TCB_IMGPSScanX.Set_filesizelimit(const Value: WideString); |
| | | begin |
| | | //ShowMessage(Value); |
| | | FFileSizeLimit:=0; |
| | | if Value ='' then |
| | | begin |
| | | FFileSizeLimit := 5*1024; |