{ ============================================================================== 方法名稱:DefinePropertyPages 引用相依: 方法描述:Delphi ActiveForm 用於定義屬性頁面的存根方法,目前未實作具體內容。 ============================================================================== } procedure TCB_IMGPSScanX.DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); begin { Define property pages here. Property pages are defined by calling DefinePropertyPage with the class id of the page. For example, DefinePropertyPage(Class_CBS_IMScanXPage); } end; { ============================================================================== 方法名稱:EventSinkChanged 引用相依: 方法描述:當事件接收器改變時觸發。將傳入的 EventSink 轉換為 ICB_IMGPSScanXEvent s 並賦值給 FEvents,同時呼叫繼承的 EventSinkChanged 方法。 ============================================================================== } procedure TCB_IMGPSScanX.EventSinkChanged(const EventSink: IUnknown); begin FEvents := EventSink as ICB_IMGPSScanXEvents; inherited EventSinkChanged(EventSink); end; { ============================================================================== 方法名稱:ActivateEvent 引用相依: 方法描述:觸發 COM 介面的 OnActivate 事件。 ============================================================================== } procedure TCB_IMGPSScanX.ActivateEvent(Sender: TObject); begin if FEvents <> nil then FEvents.OnActivate; end; { ============================================================================== 方法名稱:ClickEvent 引用相依: 方法描述:觸發 COM 介面的 OnClick 事件。 ============================================================================== } procedure TCB_IMGPSScanX.ClickEvent(Sender: TObject); begin if FEvents <> nil then FEvents.OnClick; end; { ============================================================================== 方法名稱:CreateEvent 引用相依: 方法描述:觸發 COM 介面的 OnCreate 事件。 ============================================================================== } procedure TCB_IMGPSScanX.CreateEvent(Sender: TObject); begin if FEvents <> nil then FEvents.OnCreate; end; { ============================================================================== 方法名稱:DblClickEvent 引用相依: 方法描述:觸發 COM 介面的 OnDblClick 事件。 ============================================================================== } procedure TCB_IMGPSScanX.DblClickEvent(Sender: TObject); begin if FEvents <> nil then FEvents.OnDblClick; end; { ============================================================================== 方法名稱:DeactivateEvent 引用相依: 方法描述:觸發 COM 介面的 OnDeactivate 事件。 ============================================================================== } procedure TCB_IMGPSScanX.DeactivateEvent(Sender: TObject); begin if FEvents <> nil then FEvents.OnDeactivate; end; { ============================================================================== 方法名稱:DestroyEvent 引用相依:_DelTree 方法描述:銷毀元件時的清理工作。負責釋放大量的 TStringList 物件,包含各類資訊清 單(表單、規則、註記、工作、影像路徑、條碼等)。針對特定模式(DSCAN/ESCAN),若 ImagePath 不為空則刪除該目錄及其子目錄。最後觸發 COM 介面的 OnDestro y 事件。 ============================================================================== } procedure TCB_IMGPSScanX.DestroyEvent(Sender: TObject); begin //********清單區******** Doc_Inf_List.Free; //Doc_Inf 清單 Docno + 版本為key DM_FORM_INF_List.Free; //DM_FORM_INF 清單 Docno + 版本為key FORM_INF_List.Free; //FORM_INF的清單 CHECK_RULE_INF_List.Free; //CHECK_RULE_INF 清單 MEMO_INF_List.Free; //MEMO_INF 清單 WORK_INF_List.Free; //WORK_INF 清單 LASTEST_FORM_INF_List.Free; // LASTEST_FORM_INF 清單 FindResult.Free ; //找SQLData的結果 OMRFileList.Free; //要OMR檢核的文件(只檢查每種Form的第一頁) FormCode_PageSize.Free; //文件的預設大小 FormCode_Height_Width DocNo_NeedDoc.Free; //有Docno時要相依的文件 DocNo_相依文件_相依文件 DocNo_NoDoc.Free; //有Docno時互斥的文件 DocNo_互斥文件_互斥文件 DocNo_VerinCase.Free; //案件裡的DocNo+版本的清單 CaseDocNoList.Free; //案件裡的DocNo清單 CaseDocNo_CopiesList.Free; //案件裡的DocNo份數清單 CaseList.Free; //記錄掃瞄案件的順序 NoSaveBarCodeList.Free; //不儲存的條碼清單 FormID_List.Free; //FormID清單 DocNo_List.Free; //DocNo清單 Context_DocnoList.Free; //案件裡的檔案Docno清單 ContextList.Free; //案件裡的檔案清單 AttContextList.Free; //案件裡的附加檔案清單 NowShowFileList.Free; //目前顯示的影像清單 NowSelectFileList.Free; //目前被點選的影像清單 Cust_DocNoList.Free; //自行定義文件名稱 IN_WH_DocNoList.Free; //入庫的文件清單 GuideFormIDList.Free; //要當導引頁表單清單 DivPageFormIDList.Free; //要當分案頁表單清單 LastInitFormidList.Free; LastAddFormidList.Free; SampleFormIDList.Free; 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; { ============================================================================== 方法名稱:KeyPressEvent 引用相依: 方法描述:處理鍵盤按鈕事件,並將按鍵資訊傳遞至 COM 介面的 OnKeyPress 事件。 ============================================================================== } procedure TCB_IMGPSScanX.KeyPressEvent(Sender: TObject; var Key: Char); var TempKey: Smallint; begin TempKey := Smallint(Key); if FEvents <> nil then FEvents.OnKeyPress(TempKey); Key := Char(TempKey); end; { ============================================================================== 方法名稱:MouseEnterEvent 引用相依: 方法描述:當滑鼠進入元件時,觸發 COM 介面的 OnMouseEnter 事件。 ============================================================================== } procedure TCB_IMGPSScanX.MouseEnterEvent(Sender: TObject); begin if FEvents <> nil then FEvents.OnMouseEnter; end; { ============================================================================== 方法名稱:MouseLeaveEvent 引用相依: 方法描述:當滑鼠離開元件時,觸發 COM 介面的 OnMouseLeave 事件。 ============================================================================== } procedure TCB_IMGPSScanX.MouseLeaveEvent(Sender: TObject); begin if FEvents <> nil then FEvents.OnMouseLeave; end; { ============================================================================== 方法名稱:PaintEvent 引用相依: 方法描述:當元件需要重繪時,觸發 COM 介面的 OnPaint 事件。 ============================================================================== } procedure TCB_IMGPSScanX.PaintEvent(Sender: TObject); begin if FEvents <> nil then FEvents.OnPaint; end; { ============================================================================== 方法名稱:ActiveFormCreate 引用相依: 方法描述:ActiveForm 建立時的初始化處理。發送啟動訊息、設定預設檢視模式並初始化 影像顯示區域。遍歷所有影像捲軸盒(ISB),設定預設滑鼠模式為 mmUser 並將 縮放模式設為全頁顯示,最後延遲啟動 Timer。 ============================================================================== } procedure TCB_IMGPSScanX.ActiveFormCreate(Sender: TObject); var IScrollBox : TImageScrollBox; i :integer; begin {HotKeyId1 := GlobalAddAtom('MyHotKey1')-$C000; HotKeyId2 := GlobalAddAtom('MyHotKey2')-$C000; HotKeyId3 := GlobalAddAtom('MyHotKey3')-$C000; HotKeyId4 := GlobalAddAtom('MyHotKey4')-$C000; RegisterHotKey(handle,HotKeyId1,0,VK_UP); //printscreen RegisterHotKey(handle,HotKeyId1,0,VK_Down); //printscreen } PostMessage(Handle,WM_ACTIVATE,WA_CLICKACTIVE,0); vmode := 1; DesableImage; For i:= 1 to 8 do begin IScrollBox := TImageScrollBox( FindComponent('ISB'+IntToStr(i))); IScrollBox.MouseMode := mmUser; iScrollBox.ZoomMode := zmFullPage; end; Sleep(500); Timer1.Enabled := True; end; { ============================================================================== 方法名稱:HotKeyDown 引用相依: 方法描述:熱鍵按下處理程序,目前為空實作。 ============================================================================== } procedure TCB_IMGPSScanX.HotKeyDown (var Msg : TMessage); begin end; { ============================================================================== 方法名稱:InitialLanguage 引用相依: 方法描述:元件多國語言初始化核心函式。讀取 Language.Lng 設定檔,根據指定的語系遞 迴設定畫面上所有控制項(按鈕、選單、標籤、清單、群組框等)的 Caption 或 Hi nt 文字,實現介面語系動態切換。 ============================================================================== } procedure TCB_IMGPSScanX.InitialLanguage(Sender: TObject); var ini : Tmeminifile; i,n : Integer; FormName : String; NowForm : TComponent; begin if Sender is TActiveForm then NowForm := TActiveForm(Sender); if Sender is TForm then NowForm := TForm(Sender); FormName := NowForm.Name; IISUnit.IIS_LngfileName := LngPath+'Language.Lng'; //給IISUnit 轉多國語言字串用 if FLanguage = '' then FLanguage := 'zh_tw'; IISUnit.IIS_NowLng := FLanguage; ini := TMeminifile.Create(LngPath+'Language.Lng'); try IF NowForm is TForm Then TForm(NowForm).Caption := ini.ReadString(FLanguage,FormName+'.FormTitle',''); for i := 0 to NowForm.ComponentCount - 1 do begin //ShowMessage(NowForm.Components[i].Name); if NowForm.Components[i] is TButton then begin TButton(NowForm.Components[i]).Caption := ini.ReadString(FLanguage,FormName+'.'+TButton(NowForm.Components[i]).Name,''); //TBitBtn(NowForm.Components[i]).Caption := ini.ReadString(FormName,TBitBtn(NowForm.Components[i]).Name,''); //TButton(NowForm.Components[i]).OnMouseEnter := BtnMouseEnter; end Else if NowForm.Components[i] is TBitBtn then begin TBitBtn(NowForm.Components[i]).Hint := ini.ReadString(FLanguage,FormName+'.'+TBitBtn(NowForm.Components[i]).Name,''); //TBitBtn(NowForm.Components[i]).Caption := ini.ReadString(FormName,TBitBtn(NowForm.Components[i]).Name,''); TBitBtn(NowForm.Components[i]).OnMouseEnter := BtnMouseEnter; end Else if NowForm.Components[i] is TMenuItem then begin if ini.ValueExists(FLanguage,FormName+'.'+TMenuItem(NowForm.Components[i]).Name) then TMenuItem(NowForm.Components[i]).Caption := ini.ReadString(FLanguage,FormName+'.'+TMenuItem(NowForm.Components[i]).Name,''); end Else if NowForm.Components[i] is TCheckBox then begin TCheckBox(NowForm.Components[i]).Caption := ini.ReadString(FLanguage,FormName+'.'+TCheckBox(NowForm.Components[i]).Name,''); end Else if NowForm.Components[i] is TPJMenuSpeedButton then begin TPJMenuSpeedButton(NowForm.Components[i]).Hint := ini.ReadString(FLanguage,FormName+'.'+TPJMenuSpeedButton(NowForm.Components[i]).Name,''); end Else if NowForm.Components[i] is TLabel then begin TLabel(NowForm.Components[i]).Caption := ini.ReadString(FLanguage,FormName+'.'+TLabel(NowForm.Components[i]).Name,''); end Else if NowForm.Components[i] is TGroupBox then begin TGroupBox(NowForm.Components[i]).Caption := ini.ReadString(FLanguage,FormName+'.'+TGroupBox(NowForm.Components[i]).Name,''); end Else if NowForm.Components[i] is TListView then begin for n := 0 to TListView(NowForm.Components[i]).Columns.Count - 1 do begin TListView(NowForm.Components[i]).Columns.Items[n].Caption := ini.ReadString(FLanguage,FormName+'.'+TListView(NowForm.Components[i]).Name+'_'+inttostr(n),''); end; end Else if NowForm.Components[i] is TRadioGroup then begin TRadioGroup(NowForm.Components[i]).Caption := ini.ReadString(FLanguage,FormName+'.'+TRadioGroup(NowForm.Components[i]).Name,''); for n := 0 to TRadioGroup(NowForm.Components[i]).Items.Count - 1 do begin TRadioGroup(NowForm.Components[i]).Items.Strings[n] := ini.ReadString(FLanguage,FormName+'.'+TRadioGroup(NowForm.Components[i]).Name+'_'+inttostr(n),''); end; end; end; finally ini.Free; end; end; { ============================================================================== 方法名稱:Timer1Timer 引用相依:FJpgCompression, GetLocalAppDir, Str2Dir, _DelTree, FileExists, init kscan 方法描述:OCX 元件初始化的核心程序。負責從伺服器下載各類基礎資訊(業務、表單、文件 、檢核規則、常用片語、系統參數等),並設定本地暫存路徑(ScanTemp)。針對異動 或重掃模式,會自動建立空案件並下載既有影像。最後執行各類屬性與語系設定 ,確保掃描環境就緒。 ============================================================================== } procedure TCB_IMGPSScanX.Timer1Timer(Sender: TObject); var StampDate,StampTime : String; i: Integer; begin Timer1.Enabled := False; //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; FFtpRootPath := ''; //影像平台沒有給FtpRoot目錄,會直接用FFtpExtraPath切換至指定目錄 //FMode := 'DSCAN' ; //FIs_In_Wh := 'Y'; if FIs_In_Wh = 'Y' then AttName := 'Attach' //入庫附件 else AttName := 'S_Attach'; //Smartlending 附件 //ShowMessage('1111111'); if FMode = 'SAMPLESCAN' then begin NewScanBtn.Visible := False; PJLinkedMenuSpeedButton2.Visible := False; AddScanBtn.Visible := False; CheckCaseBtn.Visible := False; Panel18.Visible := False; TransBtn.Visible := False; FC6.Visible := False; SampleScanBtn.Visible := True; Panel1.Visible := True; Panel6.Visible := True; ScanDuplexCB.Visible := False; //雙面掃描 end Else if (FMode = 'NSCAN') then begin Panel18.Visible := True; Panel1.Visible := True; Panel6.Visible := True; Panel21.Visible := True; Panel23.Visible := True; AttFileGB.Visible := True; Splitter2.Visible := True; ScanDuplexCB.Visible := True; //雙面掃描 end Else if FMode = 'FSCAN' then begin Panel1.Visible := True; //Panel6.Visible := True; end Else begin Panel18.Visible := True; Panel1.Visible := True; Panel6.Visible := True; Panel21.Visible := True; Panel23.Visible := True; AttFileGB.Visible := True; Splitter2.Visible := True; end; DisplayMode(1,1,1,Panel9); Application.ProcessMessages; StatusBar1.Panels[0].Text := 'Ver'+GetCurrentVersionNo; StatusBar1.Panels[1].Text := 'Login User:'+FUserName; {$IFDEF Test} StatusBar1.Panels[0].Text := StatusBar1.Panels[0].Text+'(test)'; {$ENDIF} StatusBar1.Panels[0].Text := StatusBar1.Panels[0].Text; if FPrintyn = 'Y' then PrtLB.Visible := True; initParameter; //20170222 針對新加的parameter 作初始化參數 InitScrollRec; If FUrl = '' then begin Showmessage(_Msg('URL cannot be empty,please contact system administrator')); Exit; end; if FUrl[length(FUrl)]<>'/' then FUrl := FUrl + '/'; //20221028 把語言檔改放至 Local目錄裡,才不會有些文字來不及使用 LngPath := GetLocalAppDir(Handle)+'MPS\CB_IMGPS\'; Str2Dir(LngPath); ////下載語言檔///// 20170218 先拿調以便測試 If not DownLanguage Then begin Showmessage('Language File error!!'+HttpErrStr); DataLoading(False,False); Exit; end; InitialLanguage(Self); //載入多國語言 if FWork_no='' then begin Showmessage(_Msg('業務別不能為空白,請洽詢程式人員')); Exit; end; if CaseIDLength = 0 then begin Showmessage(_Msg('案件編號長度限制不能為空白,請洽詢程式人員')); //Exit; //測試時不退出 end; //********清單區******** Doc_Inf_List := TStringList.Create; //Doc_Inf 清單 Docno + 版本為key DM_FORM_INF_List := TStringList.Create; //DM_FORM_INF 清單 Docno + 版本為key FORM_INF_List := TStringList.Create; //FORM_INF的清單 CHECK_RULE_INF_List := TStringList.Create; //CHECK_RULE_INF 清單 MEMO_INF_List := TStringList.Create; //MEMO_INF 清單 WORK_INF_List := TStringList.Create; //WORK_INF 清單 LASTEST_FORM_INF_List := TStringList.Create; // LASTEST_FORM_INF 清單 FindResult := TStringlist.Create; //找SQLData的結果 OMRFileList := TStringList.Create; //要OMR檢核的文件(只檢查每種Form的第一頁) FormCode_PageSize := TStringList.Create; //文件的預設大小 FormCode_Height_Width DocNo_NeedDoc := TStringList.Create; //有Docno時要相依的文件 DocNo_相依文件_相依文件 DocNo_NoDoc := TStringList.Create; //有Docno時互斥的文件 DocNo_互斥文件_互斥文件 DocNo_VerinCase := TStringList.Create; //案件裡的DocNo+版本的清單 CaseDocNoList := TStringlist.Create; //案件裡的DocNo清單 CaseDocNo_CopiesList := TStringlist.Create; //案件裡的DocNo份數清單 CaseList := TStringList.Create; //記錄掃瞄案件的順序 Context_DocnoList := TStringlist.Create; //案件裡的檔案Docno清單 ContextList := TStringlist.Create; //案件裡的檔案清單 AttContextList := TStringlist.Create; //案件裡的附加檔案清單 NoSaveBarCodeList := TStringlist.Create; //不儲存的條碼清單 FormID_List := TStringlist.Create; //FormID清單 DocNo_List := TStringlist.Create; //DocNo清單 NowShowFileList := TStringlist.Create; //目前顯示的影像清單 NowSelectFileList := TStringlist.Create; //目前被點選的影像清單 Cust_DocNoList := TStringlist.Create; //自行定義的文件名稱 IN_WH_DocNoList := TStringlist.Create; //入庫的文件清單 GuideFormIDList := TStringlist.Create; //要當導引頁表單清單 DivPageFormIDList := TStringList.Create; //要當分案頁表單清單 LastInitFormidList :=TStringList.Create; LastAddFormidList := TStringList.Create; SampleFormIDList := TStringList.Create;//20170627 加入 ExistImgList := TStringList.Create; //20170724 新增 reSizeExistImgList :=TStringList.Create; //20171012 新增 //********清單區******** ShowText := _Msg('資料載入中,請稍候'); DataLoading(True,True); IF not GetServerDate Then begin Showmessage(_Msg('取主機時間時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; if FMode='SAMPLESCAN' then begin IF not GetSampleInf Then //取已存在sample begin Showmessage(_Msg('取存在範本資訊時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; end; //ShowMessage('GetServerDate '+ServerDate+' , '+ServerTime); ////下載系統資訊//// IF not GetSetInf1 Then //取DOC_INF 文件資訊 begin Showmessage(_Msg('取文件資訊時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; //ShowMessage('GetSetInf1'); //showmessage(self.Doc_Inf_List.Text); IF not GetSetInf2 Then //取DM_FORM_INF 相依互斥資訊 begin Showmessage(_Msg('取相依互斥資訊時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; //ShowMessage('GetSetInf2'); //Showmessage(self.Doc_Inf_List.Text); IF not GetSetInf3 Then //取FORM_INF 表單資訊 begin Showmessage(_Msg('取表單資訊時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; //ShowMessage('GetSetInf3'); IF not GetSetInf4 Then //取CHECK_RULE_INF 檢核規則資訊 begin Showmessage(_Msg('取檢核規則資訊時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; //showmessage(self.CHECK_RULE_INF_List.Text); //ShowMessage('GetSetInf4'); IF not GetSetInf5 Then //取MEMO_INF 常用片語資訊 begin Showmessage(_Msg('取常用片語資訊時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; //ShowMessage('GetSetInf5'); //showmessage(self.MEMO_INF_List.Text); IF not GetSetInf6 Then //取WORK_INF 系統參數資訊 begin Showmessage(_Msg('取系統參數資訊時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; //ShowMessage('GetSetInf6'); //showmessage(FORM_INF_List.Text); IF not GetSetInf7 Then //取LASTES_FORM_INF 系統參數資訊 begin Showmessage(_Msg('取最新版FORMID參數資訊時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; //ShowMessage('GetSetInf7'); //Showmessage(LASTEST_FORM_INF_List.Text); SetFormID_DocNo; //將FormID及Docno抽出塞入List裡 20130403增加 SetIn_WH_DocNo; //將要入庫的DocNo抽出來另存入list裡 GetDefScanIni; //取得掃描預設值及相關設定 ////下載系統資訊///// if ImagePath = '' then begin Showmessage(_Msg('本機暫存路徑不得為空白')); DataLoading(False,False); Panel1.Enabled := False; Panel2.Enabled := False; Exit; end; initkscan; if ImagePath[Length(ImagePath)] <> '\' then ImagePath := ImagePath + '\'; //ShowMessage('ImagePath='+ImagePath); //CheckXmlPath := ImagePath+'OMRSITE\'+FWork_No; CheckXmlPath := ImagePath+'OMRSITE\'; // 20200612 發現影像平台是取回所有業務的設定,所以不能有業務別目錄 //ShowMessage('CheckXmlPath='+CheckXmlPath); //SitePath := ImagePath+'Site\'+FWork_No+'\'; SitePath := ImagePath+'Site\'; // 20200612 發現影像平台是取回所有業務的設定,所以不能有業務別目錄 //LngPath := ImagePath; //改放至上面取Local目錄 SamplePath := ImagePath+'Sample\'+FWork_No+'\'; ImagePath := ImagePath + 'Scantemp\'; //ShowMessage('AA ImagePath='+ImagePath); ScaniniPath :=ImagePath+FWork_No+'\'+FUserUnit +'\'; //ShowMessage('ScaniniPath='+ScaniniPath); ImagePath := ImagePath + FWork_No+'\'+FUserUnit+'\'+FMode+'\'; ImagePath := StringReplace(ImagePath, '\\', '\',[rfReplaceAll, rfIgnoreCase]); //ShowMessage('BB ImagePath='+ImagePath); ImageSavePath := ImagePath; str2dir(CheckXmlPath); str2dir(SitePath); str2dir(ImagePath); str2dir(SamplePath); Del_Sub_NothingPath(ImagePath); //清掉案件目錄是空的 LogFile1.LogFile:=LngPath+'IMGPSCheck.log'; ReduceLogFile; LogFile1.LogToFile(logTimeString+'OCX取表data結束'); ShowText := _Msg('資料載入中,請稍候'); DataLoading(True,True); // if not CheckAvailable Then //檢查授權 20170218 說不用了 // begin // DataLoading(False,False); // Panel1.Enabled := False; // Panel2.Enabled := False; // Exit; // end; //Button3Click(Self); //ShowMessage('CheckAvailable'); ShowText := _Msg('資料載入中,請稍候'); DataLoading(True,True); StatusBar1.Panels[1].Text := _Msg('登入人員:')+FUserName; //FCaseID:='20150302180133';//測試用 ////下載語言檔///// //ShowMessage('OOOO'); if (FMode = 'RSCAN') or (FMode = 'DSCAN') or (FMode = 'ESCAN') or (FMode = 'FSCAN') then //重掃件及異動件要只能掃指定編號的件 begin _Deltree(ImagePath); str2dir(ImagePath); ImageSavePath := ImagePath; str2dir(ImageSavePath); MkDir(ImageSavePath+FCaseID); CreateEmptyCase(ImageSavePath,FCaseID); MkDir(ImageSavePath+FCaseID+'\Download'); IF (FMode = 'ESCAN') or (FMode = 'DSCAN') then //異動件先下載影像 begin ShowText := _Msg('案件下載中,請稍候'); DataLoading(True,True); If not DownLoadImage(ImageSavePath+FCaseID+'\Download\',FCaseID) Then begin Showmessage(FCaseID+_msg('載入異動影像時,網路發生錯誤')+DownFileErrStr); DataLoading(False,False); Exit; end; {If not Down_Img(ImageSavePath+FCaseID+'\Download\',FCaseID) then begin Showmessage(FCaseID+_msg('載入異動影像時,網路發生錯誤')+HttpErrStr); DataLoading(False,False); Exit; end;} //Showmessage(ImageSavePath+FCaseID+'\Download\'+#10#13+ImageSavePath+FCaseID+'\'); Download2Case(ImageSavePath+FCaseID+'\Download\',ImageSavePath+FCaseID+'\'); //Showmessage('aaa'); //Download2Case('C:\Users\Hong\Downloads\沒有括號\',ImageSavePath+FCaseID+'\'); if (FIs_OldCase = 'Y') then begin if (FWork_no='HLN') then ErrFormtoCurrentForm(FCaseID,'10000001011112A','11000001011112A'); //換掉錯的FormID //if not FileExists(ImageSavePath+FCaseID+'\CaseDocNo_Copies.dat') then //這個會在Download2Case時一律產生所以不能有這行 20141013 OldCasetoNewCase(FCaseID); //ErrFormtoCurrentForm(FCaseID,'11B00005011312A','11000001011112A'); //換掉錯的FormID //LoadImgFile; end; // if (FIs_OldCase = 'Y') and (FWork_no='HLN') then //77版的 // begin // ErrFormtoCurrentForm(FCaseID,'10000001011112A','11000001011112A'); //換掉錯的FormID // if not FileExists(ImageSavePath+FCaseID+'\CaseDocNo_Copies.dat') then // OldCasetoNewCase(FCaseID); // //ErrFormtoCurrentForm(FCaseID,'11B00005011312A','11000001011112A'); //換掉錯的FormID // //LoadImgFile; // end; Create_Cust_DocDir(FCaseID); //產生外面傳入的文件 if FMode='ESCAN' then LastInitFormidListCreate(ImageSavePath+FCaseID+'\Download\'); end; end; //ShowMessage('GetOMRCheckSet前'); ////下載檢核XML////// IF not GetOMRCheckSet Then begin Showmessage(_Msg('下載檢核定位檔案時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; ////下載檢核XML///// //ShowMessage('GetOMRCheckSet後來'); ////下載登打設定///// IF not GetKeyinSet Then begin Showmessage(_Msg('下載登打定位檔案時,網路發生錯誤!!')+HttpErrStr); DataLoading(False,False); Exit; end; ////下載登打設定///// //ShowMessage('GetKeyinSet'); if ScanDenialHint <> '' then //有設定提示字串就秀在右上角 begin DenialTimeLb.Visible := True; DenialTimeLb.Caption := Format(ScanDenialHint,[ScanDenialTime]); 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; if (FMode = 'RSCAN') or (FMode = 'ESCAN') or (FMode = 'FSCAN') then begin if TreeView1.Items.Count > 0 then begin TreeView1.Selected := NewTreeNode.Item[0]; TreeView1click(self); end; end; InitialOk := True; {AttFileGB.Visible := True; //附加電子檔窗 //20120207楊玉說不在這加電子檔先拿掉 Splitter2.Visible := True; AttFileGB.Visible := False; //附加電子檔窗 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; { ============================================================================== 方法名稱:Timer2Timer 引用相依: 方法描述:處理進度條或提示文字的動態點點動畫。每觸發一次就會在 ShowText 後方增 加一個點,模擬載入中的視覺效果。 ============================================================================== } procedure TCB_IMGPSScanX.Timer2Timer(Sender: TObject); begin IF Panel22.Caption = ShowText+'......' Then Panel22.Caption := ShowText Else Panel22.Caption := Panel22.Caption + '.'; Application.ProcessMessages; end;