[1] unit CB_IMGPSScanImp; [2] //TEST [3] {$WARN SYMBOL_PLATFORM OFF} [4] [5] interface [6] [7] uses [8] EnScan, { for Scanner } [9] EnDiGrph, { for TDibGraphic } [10] EnMisc, { for MinFloat } [11] EnTifGr, { for TTifGraphic } [12] {$IFDEF Production} [13] CB_IMGPSScan_TLB, [14] {$ENDIF} [15] {$IFDEF Test} [16] CB_IMGPSScan_test_TLB, [17] {$ENDIF} [18] [19] Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, [20] ActiveX, AxCtrls, StdVcl, VCLUnZip, VCLZip, Encryp, [21] ExtCtrls, ComCtrls, Menus, StdCtrls, Gauges, EnImgScr, PJMenuSpeedButtons, [22] Buttons, ImgList, SBSimpleSSL, SBHTTPSClient, SBWinCertStorage, SBX509, [23] SBCustomCertStorage, SBUtils,mpsBarco,BarcodesFinder,HTTPApp,ErrList, [24] Xmltool,inifiles,printers,IdHashMessageDigest, idHash, LogFile,ShellApi, [25] SBSocket,IIS_Ftp, SBSimpleFTPS; [26] Type [27] TTransMode =(tsHttp,tsFtp,tsNone); [28] [29] var [30] Ch_WriteNote : Boolean; [31] RejectCase : Boolean; [32] ErrIndex : Integer; [33] [34] //*****預設區*****// [35] Def_DeviceDelete : Boolean; //空白頁刪除啟動 [36] Def_DeviceDeleteSize : Integer; //空白頁Size [37] Def_ScannerReverse : Boolean; //是否需反相 [38] Def_BoardClear : Boolean; //是否清黑邊 [39] Def_ScanDpi : Integer; //掃瞄DPI [40] Def_ScanDuplex : Boolean; //是否雙面掃瞄 [41] Def_ScanRotate : Integer; //掃瞄時旋轉角度 [42] Def_ScanDeskew : Boolean; //是否傾斜矯正 [43] Def_ScanBright : Integer; //亮度 [44] Def_ScanContrast : Integer; //對比 [45] Def_ScanImgShowMode : Integer; //0:清楚影像 1:不清楚影像 2:不顯示 [46] Def_ScanImgSetUse : Boolean; //是否使用亮度對比設定 [47] //*****預設區*****// [48] [49] Const [50] ISBName = 'PreViewISB'; [51] [52] {獲取自身版本號所需要 } [53] type [54] TVersionLanguage = (vlArabic, vlBulgarian, vlCatalan, vlTraditionalChinese, [55] vlCzech, vlDanish, vlGerman, vlGreek, vlUSEnglish, vlCastilianSpanish, [56] vlFinnish, vlFrench, vlHebrew, vlHungarian, vlIcelandic, vlItalian, [57] vlJapanese, vlKorean, vlDutch, vlNorwegianBokmel, vlPolish, [58] vlBrazilianPortuguese, vlRhaetoRomanic, vlRomanian, vlRussian, [59] vlCroatoSerbian, vlSlovak, vlAlbanian, vlSwedish, vlThai, vlTurkish, [60] vlUrdu, vlBahasa, vlSimplifiedChinese, vlSwissGerman, vlUKEnglish, [61] vlMexicanSpanish, vlBelgianFrench, vlSwissItalian, vlBelgianDutch, [62] vlNorwegianNynorsk, vlPortuguese, vlSerboCroatian, vlCanadianFrench, [63] vlSwissFrench, vlUnknown); [64] [65] const LanguageValues: array[TVersionLanguage] of Word = ($0401, $0402, $0403, [66] $0404, $0405, $0406, $0407, $0408, $0409, $040A, $040B, $040C, $040D, [67] $040E, $040F, $0410, $0411, $0412, $0413, $0414, $0415, $0416, $0417, [68] $0418, $0419, $041A, $041B, $041C, $041D, $041E, $041F, $0420, $0421, [69] $0804, $0807, $0809, $080A, $080C, $0810, $0813, $0814, $0816, $081A, [70] $0C0C, $100C, $0000); [71] {獲取自身版本號所需要 end} [72] [73] [74] type [75] TScanMode = (smNew, smReplace, smInsert, smSample, smRTS); [76] TpScanInfo = ^TScanInfo; [77] TScanInfo = record [78] MultiPage : Boolean; [79] { supplementary info when MultiPage is True } [80] Graphic : TTiffGraphic; [81] Stream : TFileStream; [82] ImageCount : LongInt; [83] end; [84] TOMRErrInfo = record [85] Display : Boolean; //是否顯示 [86] Ignore : Boolean; //可否刪除 [87] Info : String; [88] Mode : String; [89] end; [90] TScrollRec = Record [91] HScroll : Integer; [92] VScroll : Integer; [93] Rate : Single; [94] end; [95] [96] type [97] TCB_IMGPSScanX = class(TActiveForm, ICB_IMGPSScanX) [98] Panel1: TPanel; [99] TransBtn: TBitBtn; [100] Panel21: TPanel; [101] ViewModeBtn: TPJMenuSpeedButton; [102] Button2: TButton; [103] Button1: TButton; [104] OptionBtn: TBitBtn; [105] SelectScanBtn: TBitBtn; [106] NextPageBtn: TBitBtn; [107] PrePageBtn: TBitBtn; [108] FC6: TBitBtn; [109] FC5: TBitBtn; [110] FC4: TBitBtn; [111] FC3: TBitBtn; [112] FC2: TBitBtn; [113] FC1: TBitBtn; [114] FC0: TBitBtn; [115] Panel23: TPanel; [116] PJLinkedMenuSpeedButton2: TPJLinkedMenuSpeedButton; [117] NewScanBtn: TBitBtn; [118] AddScanBtn: TBitBtn; [119] Panel4: TPanel; [120] Panel2: TPanel; [121] Splitter1: TSplitter; [122] Panel3: TPanel; [123] Label7: TLabel; [124] Panel6: TPanel; [125] CB1: TCheckBox; [126] ScanDuplexCB: TCheckBox; [127] ScanFlatCB: TCheckBox; [128] Panel18: TPanel; [129] Panel12: TPanel; [130] Panel7: TPanel; [131] Panel9: TPanel; [132] Shape1: TShape; [133] ImageScrollBox1: TImageScrollBox; [134] imgp8: TPanel; [135] lb8: TLabel; [136] ISB8: TImageScrollBox; [137] imgp7: TPanel; [138] lb7: TLabel; [139] ISB7: TImageScrollBox; [140] imgp6: TPanel; [141] lb6: TLabel; [142] ISB6: TImageScrollBox; [143] imgp5: TPanel; [144] lb5: TLabel; [145] ISB5: TImageScrollBox; [146] imgp4: TPanel; [147] lb4: TLabel; [148] ISB4: TImageScrollBox; [149] imgp3: TPanel; [150] lb3: TLabel; [151] ISB3: TImageScrollBox; [152] imgp2: TPanel; [153] lb2: TLabel; [154] ISB2: TImageScrollBox; [155] imgp1: TPanel; [156] lb1: TLabel; [157] Memo1: TMemo; [158] Display1: TMemo; [159] Panel22: TPanel; [160] Panel8: TPanel; [161] Label2: TLabel; [162] Gauge1: TGauge; [163] ScrollBar1: TScrollBar; [164] Panel10: TPanel; [165] PageLV: TListView; [166] StatusBar1: TStatusBar; [167] ImageList4: TImageList; [168] ImageList3: TImageList; [169] ImageList1: TImageList; [170] PopupMenu2: TPopupMenu; [171] mode1: TMenuItem; [172] mode2: TMenuItem; [173] mode3: TMenuItem; [174] mode4: TMenuItem; [175] N51: TMenuItem; [176] ImageList2: TImageList; [177] OpenDialog1: TOpenDialog; [178] PopupMenu3: TPopupMenu; [179] PM301: TMenuItem; [180] PM302: TMenuItem; [181] PM303: TMenuItem; [182] Timer1: TTimer; [183] TomEncryption1: TTomEncryption; [184] SaveDialog1: TSaveDialog; [185] Timer2: TTimer; [186] VCLZip1: TVCLZip; [187] PopupMenu4: TPopupMenu; [188] PM401: TMenuItem; [189] PM402: TMenuItem; [190] PM403: TMenuItem; [191] PM404: TMenuItem; [192] ElWinCertStorage: TElWinCertStorage; [193] ElMemoryCertStorage: TElMemoryCertStorage; [194] Panel5: TPanel; [195] AddCredit1RG: TRadioGroup; [196] Panel11: TPanel; [197] SampleScanBtn: TBitBtn; [198] WNoteBtn: TBitBtn; [199] PopupMenu1: TPopupMenu; [200] PM101: TMenuItem; [201] N12: TMenuItem; [202] PM102: TMenuItem; [203] MenuItem1: TMenuItem; [204] PM103: TMenuItem; [205] PM104: TMenuItem; [206] N7: TMenuItem; [207] PM106: TMenuItem; [208] PM107: TMenuItem; [209] PM108: TMenuItem; [210] PM109: TMenuItem; [211] PopupMenu5: TPopupMenu; [212] PM501: TMenuItem; [213] PM502: TMenuItem; [214] PM503: TMenuItem; [215] PM504: TMenuItem; [216] N5: TMenuItem; [217] PM505: TMenuItem; [218] PM506: TMenuItem; [219] N29: TMenuItem; [220] PM510: TMenuItem; [221] PM509: TMenuItem; [222] PM507: TMenuItem; [223] N15: TMenuItem; [224] PM508: TMenuItem; [225] ExportBt: TButton; [226] ImportBt: TButton; [227] CheckCaseBtn: TBitBtn; [228] DenialTimeLb: TLabel; [229] Panel14: TPanel; [230] ScrollBox1: TScrollBox; [231] Label1: TLabel; [232] Button3: TButton; [233] Panel15: TPanel; [234] Button4: TButton; [235] PopupMenu6: TPopupMenu; [236] PM602: TMenuItem; [237] PM601: TMenuItem; [238] PM605: TMenuItem; [239] PM603: TMenuItem; [240] PM604: TMenuItem; [241] N8: TMenuItem; [242] Panel16: TPanel; [243] SpeedButton3: TSpeedButton; [244] SpeedButton14: TSpeedButton; [245] SpeedButton15: TSpeedButton; [246] SpeedButton16: TSpeedButton; [247] SpeedButton17: TSpeedButton; [248] SpeedButton18: TSpeedButton; [249] SpeedButton19: TSpeedButton; [250] SpeedButton20: TSpeedButton; [251] SpeedButton21: TSpeedButton; [252] SpeedButton22: TSpeedButton; [253] Edit1: TEdit; [254] PM110: TMenuItem; [255] Image1: TImage; [256] UseOldCaseLb: TLabel; [257] PM111: TMenuItem; [258] SmoothCB: TCheckBox; [259] ISB_BW: TImageScrollBox; [260] N1: TMenuItem; [261] N2: TMenuItem; [262] ISB1: TImageScrollBox; [263] Label3: TLabel; [264] LogFile1: TLogFile; [265] ScanGrayCB: TCheckBox; [266] AttFileGB: TGroupBox; [267] AttListBox: TListBox; [268] Panel20: TPanel; [269] AddAttFileLB: TLabel; [270] DelAttFileLB: TLabel; [271] Splitter2: TSplitter; [272] Panel17: TPanel; [273] TreeView1: TTreeView; [274] Panel13: TPanel; [275] PrtLb: TLabel; [276] CaseHelpBtn: TBitBtn; [277] HTTPSClient: TElHTTPSClient; [278] Button5: TButton; [279] FTPSClient1: TElSimpleFTPSClient; [280] Button6: TButton; [281] procedure ActiveFormCreate(Sender: TObject); [282] procedure Panel9Resize(Sender: TObject); [283] procedure ISB1Click(Sender: TObject); [284] procedure WNoteBtnClick(Sender: TObject); [285] procedure CaseHelpBtnClick(Sender: TObject); [286] procedure FC0Click(Sender: TObject); [287] procedure FC1Click(Sender: TObject); [288] procedure FC2Click(Sender: TObject); [289] procedure FC3Click(Sender: TObject); [290] procedure FC4Click(Sender: TObject); [291] procedure FC5Click(Sender: TObject); [292] procedure FC6Click(Sender: TObject); [293] procedure PrePageBtnClick(Sender: TObject); [294] procedure NextPageBtnClick(Sender: TObject); [295] procedure OptionBtnClick(Sender: TObject); [296] procedure SelectScanBtnClick(Sender: TObject); [297] procedure mode1Click(Sender: TObject); [298] procedure mode2Click(Sender: TObject); [299] procedure mode3Click(Sender: TObject); [300] procedure mode4Click(Sender: TObject); [301] procedure N51Click(Sender: TObject); [302] procedure ScrollBar1Change(Sender: TObject); [303] procedure ISB1EndScroll(Sender: TObject); [304] procedure ISB1ImageMouseDown(Sender: TObject; Button: TMouseButton; [305] Shift: TShiftState; X, Y: Integer); [306] procedure ISB1ImageMouseMove(Sender: TObject; Shift: TShiftState; X, [307] Y: Integer); [308] procedure ISB1ImageMouseUp(Sender: TObject; Button: TMouseButton; [309] Shift: TShiftState; X, Y: Integer); [310] procedure PM508Click(Sender: TObject); [311] procedure PM401Click(Sender: TObject); [312] procedure PM402Click(Sender: TObject); [313] procedure PM403Click(Sender: TObject); [314] procedure PM404Click(Sender: TObject); [315] procedure TreeView1Click(Sender: TObject); [316] procedure NewScanBtnClick(Sender: TObject); [317] procedure AddScanBtnClick(Sender: TObject); [318] procedure PageLVClick(Sender: TObject); [319] procedure PageLVKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); [320] procedure PageLVMouseDown(Sender: TObject; Button: TMouseButton; [321] Shift: TShiftState; X, Y: Integer); [322] procedure PM101Click(Sender: TObject); [323] procedure PM104Click(Sender: TObject); [324] procedure PM102Click(Sender: TObject); [325] procedure PM103Click(Sender: TObject); [326] procedure PM106Click(Sender: TObject); [327] procedure PM107Click(Sender: TObject); [328] procedure PM108Click(Sender: TObject); [329] procedure PM109Click(Sender: TObject); [330] procedure PM301Click(Sender: TObject); [331] procedure PM302Click(Sender: TObject); [332] procedure PM303Click(Sender: TObject); [333] procedure PM501Click(Sender: TObject); [334] procedure PM502Click(Sender: TObject); [335] procedure PM503Click(Sender: TObject); [336] procedure PM504Click(Sender: TObject); [337] procedure PM505Click(Sender: TObject); [338] procedure PM510Click(Sender: TObject); [339] procedure PM509Click(Sender: TObject); [340] procedure PM507Click(Sender: TObject); [341] procedure PopupMenu1Popup(Sender: TObject); [342] procedure PopupMenu4Popup(Sender: TObject); [343] procedure PopupMenu5Popup(Sender: TObject); [344] procedure SampleScanBtnClick(Sender: TObject); [345] procedure StatusBar1DblClick(Sender: TObject); [346] procedure ExportBtClick(Sender: TObject); [347] procedure ImportBtClick(Sender: TObject); [348] procedure HTTPSClientCertificateValidate(Sender: TObject; [349] X509Certificate: TElX509Certificate; var Validate: Boolean); [350] procedure ScanDuplexCBClick(Sender: TObject); [351] procedure CheckCaseBtnClick(Sender: TObject); [352] procedure Timer1Timer(Sender: TObject); [353] procedure Timer2Timer(Sender: TObject); [354] procedure TransBtnClick(Sender: TObject); [355] procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); [356] procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; [357] State: TDragState; var Accept: Boolean); [358] procedure TreeView1KeyUp(Sender: TObject; var Key: Word; [359] Shift: TShiftState); [360] procedure TreeView1MouseUp(Sender: TObject; Button: TMouseButton; [361] Shift: TShiftState; X, Y: Integer); [362] procedure ViewModeBtnMouseEnter(Sender: TObject); [363] procedure Button3Click(Sender: TObject); [364] procedure AddCredit1RGClick(Sender: TObject); [365] procedure CB1Click(Sender: TObject); [366] procedure Button4Click(Sender: TObject); [367] procedure ISB1Enter(Sender: TObject); [368] procedure TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X, [369] Y: Integer); [370] procedure PM601Click(Sender: TObject); [371] procedure PopupMenu6Popup(Sender: TObject); [372] procedure PM604Click(Sender: TObject); [373] procedure PM605Click(Sender: TObject); [374] procedure SpeedButton3Click(Sender: TObject); [375] procedure SpeedButton14Click(Sender: TObject); [376] procedure SpeedButton15Click(Sender: TObject); [377] procedure SpeedButton16Click(Sender: TObject); [378] procedure SpeedButton17Click(Sender: TObject); [379] procedure SpeedButton18Click(Sender: TObject); [380] procedure SpeedButton19Click(Sender: TObject); [381] procedure SpeedButton20Click(Sender: TObject); [382] procedure SpeedButton21Click(Sender: TObject); [383] procedure SpeedButton22Click(Sender: TObject); [384] procedure ActiveFormKeyUp(Sender: TObject; var Key: Word; [385] Shift: TShiftState); [386] procedure PM110Click(Sender: TObject); [387] procedure PM602Click(Sender: TObject); [388] procedure PrtLbClick(Sender: TObject); [389] procedure Panel1DblClick(Sender: TObject); [390] procedure Panel11DblClick(Sender: TObject); [391] procedure UseOldCaseLbClick(Sender: TObject); [392] procedure PM111Click(Sender: TObject); [393] procedure ImageScrollBox1NewGraphic(const Graphic: TDibGraphic); [394] procedure SmoothCBClick(Sender: TObject); [395] procedure N1Click(Sender: TObject); [396] procedure TreeView1MouseEnter(Sender: TObject); [397] procedure ScrollBox1MouseEnter(Sender: TObject); [398] procedure ScanGrayCBClick(Sender: TObject); [399] procedure AddAttFileLBClick(Sender: TObject); [400] procedure DelAttFileLBClick(Sender: TObject); [401] procedure AttListBoxDblClick(Sender: TObject); [402] procedure AttListBoxClick(Sender: TObject); [403] procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton; [404] Shift: TShiftState; X, Y: Integer); [405] procedure HTTPSClientRedirection(Sender: TObject; const OldURL: string; [406] var NewURL: string; var AllowRedirection: Boolean); [407] procedure Button5Click(Sender: TObject); [408] procedure Button6Click(Sender: TObject); [409] private [410] { Private declarations } [411] HotKeyId1,HotKeyId2,HotKeyId3,HotKeyId4 :Integer; [412] [413] ////////傳入參數///////// [414] FUrl : String; [415] FCaseID : String; [416] FMode : String; //NSCAN:新件;ESCAN:修改 20170306 DSCAN:被配合待掃瞄清單使用 [417] FModeName : String; [418] FWork_no : String; [419] FUserID : String; [420] FUserName : String; [421] FUserUnit : String; [422] FData : String; [423] FVerify : String; [424] FReWrite : String; [425] FLanguage : String; [426] FLoanDoc_Value : String; //新增授信卷的值 [427] FLoanDoc_Enable : String; //新增授信卷是否可異動 [428] FUseProxy : String; //是否使用Proxy [429] FC_DocNoList : String; //外面傳來要新增的文件編號 [430] FC_DocNameList : String; //外面傳來要新增的自訂文件 [431] FFixFileList : String; //要鎖住的檔名 [432] FIs_In_Wh : String; //是否只顯示入庫文件 (Y:只顯示入庫 N:只顯示非入庫 空白:都顯示) [433] FOldCaseInfo : String; //舊件資訊 CaseID_year[tab]CaseID_year [434] FPrintyn : String; //是否可列印 [435] FIs_OldCase : String; //是否是舊案第一次進入 [436] FCustDocYN : String; //是否可自訂文件 [437] //20170222 新增 [438] FImgDPI:integer;//DPI  依業務別決定 150~~1200  預設300 [439] FScanColor:integer;///掃瞄色彩  依業務別決定   0 :黑白  1:灰階   2:彩色 預設黑白 [440] FFileSizeLimit:integer;//匯入單一檔案大小限  依業務別決定  以KB為單位  預設5*1024kb [441] FCaseNoLength:integer;//案件編號長度檢查  依業務別決定   無預設  一定要傳入 [442] FImgDelete:string; // Y/N 有權限可在補件時刪除影像 [443] FIsExternal:string;//Y/N [444] FCheck_main_form:string; //Y/N [445] FWH_category:string; //Y/N Y是歸類時有區分入庫非入庫文件 N 是不區分 [446] ////////傳入參數/////// [447] [448] TransMode : TTransMode; //用何種方式上傳檔案 [449] //********Http參數******** [450] HttpErrStr : String; //錯誤訊息 [451] //********Http參數******** [452] [453] //********Ftp參數********* [454] FFtpIP : String; [455] FFtpID : String; [456] FFtpPwd : String; [457] FFtpRootPath : String; [458] FFtpExtraPath : String; [459] FFtpPort : Integer; [460] FFtpProtocol : TFtpProtocol; [461] //********Ftp參數********* [462] [463] //********ini參數******** [464] DeviceDelete : Boolean; //空白頁刪除啟動 [465] DeviceDeleteSize : Integer; //空白頁Size [466] ScannerReverse : Boolean; //是否需反相 [467] BoardClear : Boolean; //是否清黑邊 [468] ScanDpi : Integer; //掃瞄DPI [469] ScanDuplex : Boolean; //是否雙面掃瞄 [470] ScanRotate : Integer; //掃瞄時旋轉角度 [471] ScanDeskew : Boolean; //是否傾斜矯正 [472] ScanBright : Integer; //亮度 [473] ScanContrast : Integer; //對比 [474] ScanImgShowMode : Integer; //0:清楚影像 1:不清楚影像 2:不顯示 [475] ScanImgSetUse : Boolean; //是否使用亮度對比設定 [476] [477] //********ini參數******** [478] ScanColor : TImageFormat; [479] [480] //********時間******** [481] ServerDate : String; [482] ServerTime : String; [483] Balance : Longint; //local跟server的時間差 [484] ScanDenialTime : String; //停止進件時間 [485] //********時間******** [486] ScanDenialHint : String; //掃描顯示提醒字串 [487] [488] //********路徑******** [489] ScanPath : String; // SpecifyDir\Workid\userunit\mode [490] ImagePath : String; // SpecifyDir\Workid\userunit\mode [491] ImageSavePath : String; // ImagePath\ [492] ScaniniPath : String; // SpecifyDir\Workid\userunit\ [493] LngPath :String; //多國語言檔目錄 [494] CheckXmlPath : String; //檢核用的Xml存放目錄 [495] SitePath : String; //登打位置(切簽名用) [496] SamplePath : String; //範本目錄 [497] TransPath : String; //檔案上傳的路徑(補充件會多一層目錄) [498] //********路徑******** [499] ScanSaveFilename : String; //掃瞄的檔名 [500] ScanCaseno : String; //掃瞄時的案號 [501] ScanDocDir : String; //掃描時的文件代號目錄 [502] //********清單區******** [503] Doc_Inf_List : TStringList; //Doc_Inf 清單 [504] DM_FORM_INF_List :TstringList; //DM_FORM_INF 清單 [505] FORM_INF_List : TStringList; //FORM_INF的清單 [506] CHECK_RULE_INF_List : TStringList; //CHECK_RULE_INF 清單 [507] MEMO_INF_List : TStringList; //MEMO_INF 清單 [508] WORK_INF_List : TStringList; //WORK_INF 清單 [509] LASTEST_FORM_INF_List : TStringList; // LASTEST_FORM_INF 清單 [510] [511] FindResult : TStringList; //找SQLData的結果 [512] CaseList : TStringList; //記錄掃瞄案件的順序 [513] Context_DocnoList : TStringlist; //案件裡的Docno清單 [514] CaseDocNoList : TStringlist; //案件裡的DocNo清單(不重複) [515] CaseDocNo_CopiesList : TStringlist; //案件裡的DocNo份數清單 [516] ContextList : TStringlist; //案件裡的檔案清單 [517] AttContextList : TStringlist; //案件裡的附加檔案清單 [518] OMRFileList : TStringList; //要OMR檢核的文件(只檢查每種Form的第一頁) [519] Cust_DocNoList : TStringlist; //自行定義文件名稱 [520] IN_WH_DocNoList : TStringlist; //入庫的文件清單 [521] [522] FormCode_PageSize : TStringList; //文件的預設大小 FormCode_Height_Width [523] DocNo_NeedDoc : TStringList; //有Docno時要相依的文件 DocNo_相依文件_相依文件 [524] DocNo_NoDoc : TstringList; //有Docno時互斥的文件 DocNo_互斥文件_互斥文件 [525] DocNo_VerinCase : TStringlist; //案件裡的DocNo+版本的清單 [526] [527] NoSaveBarCodeList : TStringlist; //不儲存的條碼清單 [528] FormID_List : TStringlist; //FormID 清單 20130403 因為原FormCode2Docno會很慢..把FormID抽出來 [529] DocNo_List : TStringlist; //DocNo 清單 20130403 因為原FormCode2Docno會很慢..把DocNo抽出來 [530] NowShowFileList : TStringlist; //目前顯示的影像清單 [531] NowSelectFileList : TStringlist; //目前被點選的影像清單 [532] GuideFormIDList : TStringlist; //要當導引頁表單清單 [533] DivPageFormIDList:TStringlist; //要當分案頁表單清單 [534] LastInitFormidList:TStringList; [535] LastAddFormidList:TstringList; [536] SampleFormIDList:TStringList; //20170627 已存在範本的formid [537] ExistImgList:TStringList; //20170724 已經存在的影像list for ESCAN //Img的完整路徑 [538] reSizeExistImgList:TstringList; //20171012被縮放的舊圖MD5存入 [539] //********清單區******** [540] [541] //********顯示區******** [542] NowCaseno : String; //目前顯示的案件編號 [543] NowDocNo : String; //目前的文件編號 [544] NowDocDir : String; //目前的文件目錄 [545] NowFormCode : String; //目前顯示的表單編號 [546] NowFormName : String; //目前顯示的表單名稱 [547] NowPage : Integer; //目前點選的頁碼 [548] DisplayPath : String; //目前顯示的目錄 [549] //********顯示區******** [550] [551] //******索引資料********* [552] Case_loandoc : String; //是否新增授信卷 [553] //******索引資料********* [554] [555] //********十字定位點資訊******** [556] UpLPoint : Tpoint; //左上方的十字點 [557] UpRPoint : Tpoint; //右上方的十字點 [558] DownLPoint : Tpoint; //左下方的十字點 [559] DownRPoint : Tpoint; //右下方的十字點 [560] Point_Width : String; //十字點的寬 [561] Point_Height : String; //十字點的高 [562] //********十字定位點資訊******** [563] [564] CaseIDLength : Integer; //案件編號長度 [565] FormIDLength : Integer; //FormID長度 [566] DocNoLength : Integer; //Docno長度 [567] [568] PEFileName : String; //掃描時的檔名 [569] DownFileErrStr : String; //下載影像時發生的錯誤 [570] [571] ISB : TImageScrollBox; [572] ScanInfo : TScanInfo; [573] TwainShowUI : Boolean; [574] MpsBarcodeinf : TMpsBarcodeinf; [575] ScanMode : TScanMode; [576] Mpskey : String; [577] Seg : Integer; //顯示的邊界值 [578] VMode : Integer; //顯示的index [579] NowClick : Integer; //目前點到的按鈕功能Index [580] ScanIP : String; //掃瞄端的IP [581] DisplayISB : TImageScrollBox; //被點到的影像 [582] SelectISB : TImageScrollBox; //被點到的縮圖 [583] SelectPage : Integer; //被點到的頁數 [584] NewTreeNode,MyTreeNode1,MyTreeNode2,MyTreeNode3 : TTreenode; [585] InitialOk : Boolean; //資訊載入是否完成 [586] ShowText : String; //DataLoading時要秀出的訊息 [587] Ext : String; //附檔名 .tif .jpg [588] SafePixel : Integer; //OMR容忍誤差值點數 [589] OMRErrInfo : Array[1..11] of TOMRErrInfo; //檢核的方式及訊息 [590] ScrollRec : Array[1..8] of TScrollRec; //瀏覽窗的Scroll記錄 [591] RecHozPos,RecVerPos : Integer; //記錄MPSViewX1的ScrollBar位置 [592] ReczoomPercent : Single; [593] SortMode : Boolean; [594] PreMytreeNode2Name:String; [595] HS,VS : Integer; [596] iRate : Single; [597] Bt : Integer; //去直線時橫線判斷的容忍值 [598] BarCodeRotate : Integer; //條碼要轉的角度 [599] HaveAppDoc : Boolean; //補全時是否有補入要保書 [600] PageLVclear : Boolean; [601] CaseCount,PageCount : Integer; //總案件量及總頁數 [602] Item : TMenuItem; [603] SampleAnchorMode : String; //範本掃瞄十字線的模式 NONE:無;ANCHOR:十字;FRAME:邊框 [604] DownImgStatus : String; //下載影像的狀態(NO_DATA:沒資料;NO_FILE:沒影像) [605] TransForm_Field : String; //要用OMR勾選確認是否轉換FORMID的欄位名稱 [606] NowWork_No : String; //現在的作業別 [607] CropBarcode : String; //要切影像的條碼 [608] Has_Authorize :String; //是否有授權書影像 [609] AttName : String; //未歸類目錄名稱 [610] NowGuideFormID : String; [611] NowDivPageFormID:String; [612] [613] FirstDocDir : String; [614] FMaxUploadSize:String;// 上傳zip大小限制 [615] FJpgCompression:integer;// 20171211 jpg to tif 的壓縮率 [616] [617] Draging : Boolean; [618] MDown : Boolean; //20181210 用來判斷滑鼠右鍵要Popupmenu是否有MouseDonw發生 [619] [620] FEvents: ICB_IMGPSScanXEvents; [621] [622] procedure HotKeyDown (var Msg : TMessage);message WM_HOTKEY; [623] Procedure InitialLanguage(Sender: TObject); //畫面載入多國語言 [624] //Function _Msg(S:String):String; [625] [626] //*********SQL相關************ [627] Procedure SetSQLData(ColumeStr:String;FromList,ToList:TStringlist); //把SQL值塞入 [628] Function GetSQLData(TableList:TStringlist;Colname:String;colNo:Integer):String; //依欄位及索引取值 [629] Function FindSQLData(TableList:TStringlist;ColumeStr,KeyColumeStr,KeyStr:String;ColNo:Integer;Var ResultList:TStringlist):Boolean; //找指定的資料 [630] Function GetFindResult(Col:String):String; [631] //*********SQL相關************ [632] [633] //*********FTP相關************ [634] Function GetFtpinfo(CaseID,Action:String):Boolean; [635] Procedure SetFtpInfo; //餵入FTP資訊 [636] Function FtpCaseComplete(SendData:String):Boolean; [637] //*********FTP相關************ [638] [639] //*******轉換區********* [640] Function FindDivFormCode(FormCode:String):Boolean; //找有沒有分案的條碼 [641] Function FormCode2FormName(CaseID,FormCode:String):String; //用FormCode轉成文件名稱 [642] Function FormCode2FileName(FormCode:String;List:TStrings):String; //用FormCode找出檔名(第一頁) [643] Function FileName2FormCode(FileName:String):String; //從檔名取出FormCode [644] Function FileName2FormName(CaseID,FileName:String):String; //從檔名取出文件名稱 [645] Function FileName2ScanPage(FileName:String):Integer; //從檔名取出掃瞄頁數 [646] Function FileName2NoQuene_Filename(FileName:String):String; //取出沒有序號的檔名 [647] Function FileName2Index(FileName:String):Integer; //從檔名取出在ContextList的序號 [648] Function FileName2NowDcoNo(FileName:String;CtList,DNList:TStrings):String; //從檔名取出歸屬的文件代號 [649] Function FormCode2DocNo(FormCode:String):String; //FormCode轉Docno [650] Function FormCode2Version(FormCode:String):String; //FormCode轉版本 [651] Function FormCode2Page(FormCode:String):String; //FormCode轉文件頁數 [652] Function DocNo2DocName(CaseID,DocNo:String):String; //Docno轉Doc名稱 [653] Function DocNo2FileName(DocNo:String;List:TStrings):String; //用DocNo找出檔名(第一頁) [654] Function FormCode2WorkNo(FormCode:String):String; //用FormCode取出作業別 [655] Function DocNo2WorkNo(DocNo:String):String; //用DocNo取出作業別 [656] Function DocNo2DocNoDir(Path,DocNo:String):String; //DocNo轉成DocNo(份數)目錄 [657] Function DocNoDir2DocNo(DocNoDir:String):String; //DocNo(份數)目錄轉成DocNo [658] Function DocNoDir2Index(Path,DocNoDir:String):Integer; //DocNo(份數)目錄轉成index [659] [660] Function DocNoNeedDiv(DocNo:String):Boolean; //是否是需分份數的文件代號 [661] //Function CaseNo2DocNo(CaseNo:String):TStringList; [662] [663] Function CaseNode2Info(Node:TTreeNode;Mode:Char):String; //案件Node取案件編號 Mode: I:Caseno;P:Page [664] Function DocNode2Info(Node:TTreeNode;Mode:Char):String; //文件Node取文件代號 Mode: I:Docno;N:Docname;P:Page;G:Group [665] Function FormNode2Info(Node:TTreeNode;Mode:Char):String; //表單Node取表單代號 Mode: I:FormID;N:FormName;P:Page [666] //*******轉換區********* [667] [668] Procedure PriorPage(Page:Integer); //上一頁 [669] Procedure NextPage(Page:Integer); //下一頁 [670] [671] Function DocNoExistsinTree(CaseNode:TTreeNode;DocNo:String):Boolean; //DocNo是否己存在樹裡 [672] Function DocnoNeedGroup(DocNo:String):Boolean; //傳入的DocNo是否需分組 [673] [674] function GetSiteOMR(FileName, Site: String;bt: Integer): Integer; [675] Function FindISB2View(Vmode:Integer):TImageScrollBox; //找空的ISB來顯示 [676] Procedure R_W_ScanIni(Mode:Char); //'R'讀取;'W'寫入 [677] Procedure GetDefScanIni; //取得掃瞄的預設值 [678] procedure DesableImage; [679] procedure EnableImage(v:integer;Sender : TObject); [680] Procedure ViewMouseMode(v:Integer); [681] Procedure GoViewMode; [682] Procedure DisplayMode(index,H_Count,W_Count:Integer;BasePanel:TPanel); [683] Function GetServerDate : Boolean; //取主機時間 [684] Function GetSetInf1 : Boolean; //取系統設定資訊mode1 DOC_INF [685] Function GetSetInf2 : Boolean; //取系統設定資訊mode2 DM_FORM_INF [686] Function GetSetInf3 : Boolean; //取系統設定資訊mode3 FORM_INF [687] Function GetSetInf4 : Boolean; //取系統設定資訊mode4 CHECK_RULE_INF [688] Function GetSetInf5 : Boolean; //取系統設定資訊mode5 MEMO_INF [689] Function GetSetInf6 : Boolean; //取系統設定資訊mode6 WORK_INF [690] Function GetSetInf7 : Boolean; //取系統設定資訊mode7 LASTESTFORM_INF [691] Procedure SetFormID_DocNo; //將FormID及Docno抽出來另存入list裡 [692] Procedure SetIn_WH_DocNo; //將要入庫的DocNo抽出來另存入list裡 [693] [694] Procedure DataLoading(Loading,UseTimer:Boolean); //資料載入中要停止點選的動作 [695] procedure ClearView(stkv:Integer); //清除瀏覽窗的影像 [696] Function DrawDocItem2(CaseNode : TTreenode;Caseno:String):Boolean; //畫出文件名稱的Tree [697] [698] Procedure initkscan; //檢查掃描器的功能 [699] procedure LoadImgFile; //載入案件 [700] procedure LoadImgFile1; //載入案件 [701] procedure LoadAttFile(CaseID:String); //載入附加檔案 [702] Procedure DistinctFormCode(CaseID:String); //案件裡的FormCode取出第一頁 [703] Function OMRCheckCase(CaseID:String):Boolean; //OMR檢核 [704] Procedure OMRErr2ini(CaseID,Reason,FileName,Site,RelaFileName,RelaSite,Anchor,Anchor1:String;Del,Ingnore,Display:Boolean); //OMR檢核失敗寫入ini [705] Procedure OMRErrini2List(CaseID:String;ErrlistForm : TErrlistForm); //OMR檢核失敗從ini寫入ListView [706] Function DownLanguage:Boolean; //下載多國語言檔 [707] Function FindMpsView(Vmode:Integer):TImageScrollBox; [708] Function CaseAsk(CaseID:String):Integer; //詢問是否可上傳 (-1:失敗;0:可以;1:不行;) [709] Function CaseComplete(Path,CaseID:String;MainCase:Boolean):Boolean; //通知傳送完成 [710] Function GetCaseFormID(Path:String):String; //取案件的FormID [711] Procedure CreateFormID_FormName(Path,CaseID:String); //產生FormID_FormName.dat [712] Procedure CreateDocNo_DocName(Path,CaseID:String); //產生DocNo_DocName.dat [713] Procedure CreateIn_WH(CaseID:String); //產生In_WH.dat [714] Function CreateDocNo_Info(CaseID:String):String; //產生保管袋文件 DocNo[tab]份數[tab]總頁數[tab]是否異動[換行]DocNo[tab]份數[tab]總頁數[tab]是否異動 [715] Function CreateCustDocNo_Info(CaseID:String):String; //產生自訂文件 DocName[tab]份數[tab]總頁數[tab]是否異動[#13#10]DocName[tab]份數[tab]總頁數[tab]是否異動 [716] //Function CreateCustDocNo_Info(path,CaseID:String):String; overload [717] Function CreateAttach_Info(CaseID:String):String; //產生是否有Attach Y:有 N:沒有 [718] Function CreateDocnoFrom_Info(CaseID:String):String; //產生被引進的保管袋文件資訊 Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號 [719] Function CreateCustDocNoFrom_Info(CaseID:String):String; //產生被引進的自定文件資訊 Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號 [720] [721] Function GetDocNoEdit(CaseID,DocNo,DocName:String):String; //取出DocNo是否被異動 (Y/N) [722] Function GetDocNo_Count(Path,DocNo:String):Integer; //取出文件份數 [723] Function GetDocNo_Page(Path,DocNo:String):Integer; //取出文件總頁數 [724] Function FormIDExists(FormCode:String;CheckDate:Boolean;index:Integer):Boolean; //檢查FormID是否存在及是否要檢查啟用停用日期 [725] Function Case_DocNoExists(CaseID,Docno:String):Boolean; //Docno是否存在案件裡 [726] Procedure ReSortFileName_New(Path:String); //檔名重新排序 [727] Procedure ReSortFileName(Path:String); //檔名重新排序 [728] Procedure ReSortFileName2Scanlist(Path:String); //檔名重新排序給Scanlist.dat [729] Function GetOMRCheckSet:Boolean; //下載OMR檢核XML檔 [730] Function GetKeyinSet : Boolean; //取登打設定 [731] Procedure CheckRule2OMRErrInfo; //檢核規則填入OMRErrINFo Record [732] Procedure ReNameContext(Path,OldName,NewName:String); [733] Procedure DeleteImageFile(Path,FileName,CaseID:String); // 刪除檔案 [734] Procedure DeleteFormCodeFile(CaseID,DocDir,FormID:String); //刪除指定FormID文件 [735] Function DeleteDocNoFile(Path,DocNo:String):Boolean; //刪除指定DocNo文件 [736] Procedure DeleteShowFile(Path:String); //刪除顯示中的影像 [737] Function GetDataDocNoPage(MainDocNo,MainVersion:String):Integer; //取記錄的文件_版本頁數 [738] Function CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //檢查案件裡的文件_版本頁數 [739] Function FindFormCodePages(CaseID,FormCode:String):Integer; //計算案件裡FormID的頁數 [740] Function GetDataFormCodePages(FormCode:String):Integer; //取記錄的FormcID的頁數 [741] Procedure CaseReSize(CaseID:String); //案件的影像縮放 [742] Procedure ImageReSize_FormID(CaseID,FileName:String); //依十字定位點做縮放 [743] Procedure ImageReSize_tmp(FormID,FileName:String); //依十字定位點做縮放(暫存檔) [744] Function TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //傳送案件 [745] Procedure NewTreeNodeRefresh; [746] Procedure MyTreeNode1Refresh; [747] Procedure MyTreeNode2ReFresh(CaseID:String); [748] Procedure MyTreeNode3ReFresh(CaseID:String); [749] Function Node2DocNo(Node2:TTreeNode):String; //MyTreeNode2取DocNo出來 [750] Function Node3DocNo(Node3:TTreeNode):String; //MyTreeNode3取DocNo出來 [751] Function Node3FormID(Node3:TTreeNode):String; //MyTreeNode3取FormCode出來 [752] Function GetNode2Name(Node2:TTreeNode):String; //取MyTreeNode2的識別字出來(記之前點選用) [753] //Function Down_Replace_Img(SPAth,DPath,CaseID:String):Boolean; [754] Function DownLoadImage(Path,CaseID:String):Boolean; [755] Function Down_Img(Path,CaseID:String):Boolean; [756] Function GetNoNameCase(Path:string):String; //取未配號XXXX [757] Procedure CaseResort(Path:String); //案件的檔案重新排序(次文件依Docno挑) [758] Procedure CaseResort2Scanlist(Path:String); //案件的檔案重新排序給scanlist(次文件依FormID排) [759] Procedure DistinctDocinCase(Path:String); //列出案件裡的Docno_版本 [760] Procedure DistinctDocNoinCase(Path:String); //列出案件裡的Docno [761] Procedure ClearErrini(CaseID:String;CaseNode:TTreeNode); //清掉檢核檔案 [762] Procedure SetCaseList(Mode:Char;Index:Integer;text:String); //'A:加入,I:插入,D:刪除,E:修改' [763] Procedure SetDocNoList(Mode:Char;Index:Integer;CaseNo,DocDir,Copies:String); //'A:加入,I:插入,D:刪除,E:修改' [764] Procedure SetContextList(Mode:Char;Index:Integer;CaseNo,DocDir,FileName:String); //'A:加入,I:插入,D:刪除,E:修改' [765] Procedure SetAttContextList(Mode:Char;Index:Integer;CaseNo,FileName:String); //'A:加入,I:插入,D:刪除,E:修改' [766] [767] [768] Function checkCaseOMRDone:Boolean; //檢查案件是否完成OMR檢核 [769] Function CheckCaseID_OK:Boolean; //檢查是否有未配號的案件 [770] Procedure CreateEmptyCase(Path,CaseID:String); //產生空白案號(重掃件用) [771] Procedure InitScrollRec; //初始化影像Scroll記錄 [772] Procedure GetScrollData(ISB:TImageScrollBox;Var HS,VS:Integer;Var iRate:Single); //取影像Scroll記錄 [773] Procedure SetScrollData(ISB:TImageScrollBox;HS,VS:Integer;iRate:Single); //寫影像Scroll記錄 [774] Procedure FormIDReplace(CaseID,DocDir,OldFormID,NewFormID:String); //指定FormID更換成新的FormID [775] Procedure ShowFileReplace(Path,NewFormID:String);//顯示的影像換成新的FormID [776] Procedure PageReplaceFormID(Path,NowFormID,NewFormID:String); //選取頁更換FormID [777] Function ModeNeedCheck(OMRMode,ScanMode:String):Boolean; //掃瞄模式是否要做檢核 [778] procedure WMMOUSEWHEEL(var message: TWMMouseWheel); message WM_MOUSEWHEEL; [779] Function GetCasePage(Path,CaseID:String):Integer; [780] Function GetFormIDPage(FileList:TStringlist;FormID:String):Integer; [781] Procedure SetFile2Case(CaseID,FileName:String); [782] Procedure WriteResize(ImgName,TxtName:String); //產生Resize.dat [783] Function GetCase_PageCount(var CaseCount,PageCount:Integer):Boolean; //取出案件的數量及頁數 ID為空值時為取所有的 [784] Function BarCode2FormID : String; //Barcode依規則轉成FormID [785] Function BarCode2CaseID : String; //Barcode依規則轉成CaseID [786] Procedure WriteCaseIndex(Path:String); [787] Procedure ReadCaseIndex(Path:String); [788] Procedure ClearCaseIndex; [789] Procedure GetSelectImageFile; [790] Function GetDocNoDir(Path,DocNo:String):String; //取出目前DocNo的份數 [791] Function CheckFormIDExists(DocNoNode:TTreeNode;FormID:String):Boolean; //檢查FormID是否存在文件裡 [792] [793] Procedure ZipMainFile(SoPath,DePath,ZipName:String); //壓縮影像檔 [794] Procedure ZipMaskFile(SoPath,MarkPath,DePath,ZipName:String); //壓縮遮罩影像檔 [795] Procedure ParserPoint(S:String); //解析十字點的字串 [796] Function CheckScanDenialTime:Boolean; [797] Function FormID2Anchor(FormID:String):String; //用FormID取出十字模式 [798] Function Index2Anchor(Anchor:String):String; //十字模式 0->NONE;1->ANCHOR;2->FRAME [799] Function MemoInfoTransfer(Mode,Str:String;ID_S,Name_S:TStringlist):String; //註記代碼註記類別轉換 Mode 'ID':代碼轉名稱;'NAME':名稱轉代碼 [800] Function GetFormatID(CaseID:String):String; //取出案件的FormatID [801] Function FindNoSaveBarCode : Boolean; //找是否有不要儲存影像的條碼 [802] Function CheckAvailable:Boolean; //檢查是否可使用元件 [803] Function Case2Mask(SoPath,DePath:String):Boolean;//產生遮罩影像 [804] Function CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像 [805] Function GetNewCustomDocNo(Path,DocName:String):String; //取出未使用的自訂文件代號 [806] Function GetCustomDocName(Path,DocNo:String):String; //取出自定文件名稱 [807] Function GetCustomFormID(Path,DocNo:String):String; //取出自定文件FormID [808] Function GetCustomDocDir(Path,DocName:String):String; //取出自定文件DocDir [809] Function FindCustomDocName(Path,DocName:String):Boolean; //尋找自定文件名稱是否存在 [810] Procedure DeleteCustomDocDir(Path,DocNo:String); //刪除自定文件DocNo [811] Function CheckFormID_Prt(FormID:String):Boolean; //傳入的FormID是否預設列印 [812] procedure PrintImg(FileName, LoginID, Datetime,Path: WideString); [813] Function FindLastestDocDir(CaseID,DocNo:String):String; //找出最新的DocDir [814] Procedure Create_Cust_DocDir(CaseID:String); //產生外面傳入的文件代號及自定文件 [815] Procedure OldCasetoNewCase(CaseID:String); //將舊案份數轉成新規則 [816] Procedure ErrFormtoCurrentForm(CaseID,EFormID,CFormID:String);//將舊案的錯誤FormID改正確的FormID [817] Procedure SetRecordEditedDocDir(Mode:Char;CaseID,DocDir:String); //記錄被異動的文件目錄 'A:加入D:刪掉' [818] Function GetDocDir_Page(CaseID,DocDir:String):Integer; //取得DocDir的頁數 [819] Function Path2DocDir(Path,CaseID:String):String; [820] Function GetDocNo_IS_WH(DocNo:String):Boolean; //DocNo是否為入庫文件 [821] Procedure SortDocDir_FormID(CaseID,DocDir:String); //將DocDir裡的文件編號排序 [822] Procedure GotoAttach(OldLevel:Integer); [823] Function DocNoIs_In_WH(DocNo:String):Boolean; //DocNo是否為入庫文件 [824] Procedure CreateCaseNeedData(Path:String); //先做影像截取會少二個文字檔,產生CaseDocNo.dat及DocDir.dat [825] Procedure SetDocDirtoSelected(CaseNode:TTreeNode;DocDir:String); [826] Function CheckSelectImg_UseCase(Path,CaseID:String):Boolean; //檢查選擇的影像是否有包含被引用的影像 [827] Function TransOldCaseFile(Path:String):Boolean; //上傳引用舊件的記錄檔 [828] Function Writelog(CaseID:String):Boolean; [829] Function FormIDAppear(FormID:String):Boolean; //FormID是否可出現 [830] Function DocNoAppear(DocNo:String):Boolean; //DocNo是否可出現 [831] Function GetDocNoCount(CaseID,DocNo:String):Integer; //取DocNo數量 [832] Function GetDocDirCopies(CaseID,DocDir:String):Integer; //取DocDir份數 [833] Procedure SetDocDirCopies(CaseID,DocDir:String;NewCopies:Integer); //修改DocDir份數 [834] Function GetDocDirCopies_Rec(Path,CaseID,DocDir:String):Integer; //取記錄裡的DocDir份數 [835] Function GetCustomNameCount(CustomName:String):Integer; //取外傳的名稱數量 [836] Function GetCustomDocNoCount(Docno:String):Integer; //取外傳的DocNo數量 [837] Function ISGuideFormID(FormID:String):Boolean; [838] Function CaseDelete_Enable(CaseID:String):Boolean; //案件可否被刪除 [839] [840] Procedure MoveImage(Path:String;mp:Integer); //移動頁數 [841] Procedure MoveImage_Drag(Path:String;fp,tp:Integer); //拖拉移動頁數 [842] [843] [844] Procedure SetUseCase(Mode:Char;Path,DocDir,FormCaseID,ToCaseID:String); //記錄引用其他案件 A:加入 D:刪掉 [845] Function GetUseCase(Mode:Char;Path,DocDir:String):String; //F:取被引用 To:引用 [846] [847] Procedure Case2upload(CaseID:String); [848] Procedure Download2Case(SoDir,DeDir:String); [849] [850] procedure view_image_FormCode(Path,FormCode:String;stpage,stview:integer); //用FormCode來找影像 [851] procedure view_image_DocNo(Path,DocNo,FormID:String;Pages:integer); //用DocNo來找影像 [852] [853] Function ShapeName2PreViewISBName(SP:TShape):String; //轉出指定PreViewISBName [854] Procedure CreatePreViewISB(Count:Integer); [855] Procedure FreePreViewISB; [856] Procedure FitPreViewISB; [857] Procedure PaintShape(FromImg,ToImg:TImageScrollBox); //畫有被選取的影像 [858] Procedure FreeShapeobj(SelectISB : TImageScrollBox); [859] Procedure ISBClick(Sender : TObject); [860] Procedure ISBMouseMove(Sender: TObject; Shift: TShiftState; [861] X, Y: Integer); [862] procedure ISBImageMouseDown(Sender: TObject; Button: TMouseButton; [863] Shift: TShiftState; X, Y: Integer); [864] procedure ISBImageMouseUp(Sender: TObject; Button: TMouseButton; [865] Shift: TShiftState; X, Y: Integer); [866] procedure ISBEndDrag(Sender, Target: TObject; X, Y: Integer); [867] procedure ISBDragDrop(Sender, Source: TObject; X, Y: Integer); [868] procedure ISBDragOver(Sender, Source: TObject; X, Y: Integer; [869] State: TDragState; var Accept: Boolean); [870] [871] procedure BtnMouseEnter(Sender: TObject); [872] [873] procedure PageEnd; //掃描接收完成 [874] Procedure PageDone; //掃描完成後顯示影像 [875] procedure StatrTwainScan; [876] procedure OnAcquire( const DibHandle : THandle; [877] const XDpi : Word; [878] const YDpi : Word; [879] const CallBackData : LongInt ); [880] [881] [882] procedure ActivateEvent(Sender: TObject); [883] procedure ClickEvent(Sender: TObject); [884] procedure CreateEvent(Sender: TObject); [885] procedure DblClickEvent(Sender: TObject); [886] procedure DeactivateEvent(Sender: TObject); [887] procedure DestroyEvent(Sender: TObject); [888] procedure KeyPressEvent(Sender: TObject; var Key: Char); [889] procedure MouseEnterEvent(Sender: TObject); [890] procedure MouseLeaveEvent(Sender: TObject); [891] procedure PaintEvent(Sender: TObject); [892] function GetCurrentVersionNo: String; [893] procedure initParameter; [894] procedure LastInitFormidListCreate(path:string); [895] function checkFormCodeIsCustom(path,formcode:string):boolean; [896] function ISDivPageFormID(FormID: String): Boolean; [897] function GetSampleInf: Boolean; [898] procedure InitExistImgList(casepath:String); [899] function LoadFileGetMD5(const filename:string):string; //20170809 取的檔案的MD5 [900] function ISExistImg(const filename:string):boolean; //20170809 確認是否存在原有影像 [901] procedure _DelTreeForExistImg(ASourceDir:String); //2017 刪除前確認 有舊影像嗎 [902] function DocNoIsExistImg(DocNopath: String): boolean; //2017 刪除前確認 有舊影像嗎 [903] function CheckCaseAttach_OK: Boolean; [904] function DeleteDocNoFileForESCAN(Path, DocNo: String): Boolean; //2017 確認是否有未歸類文件 [905] function CheckRequiredColumnValues(workno,caseno:String) :Boolean; //20171003 此大類下此案是否檢核必填 [906] function logTimeString :String; [907] procedure ReduceLogFile ; [908] function FindLastestDocDirForPage(CaseID, DocNo, formid: String): String; [909] function OMRErrini2ListForLog(CaseID: String):String; [910] protected [911] { Protected declarations } [912] procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override; [913] procedure EventSinkChanged(const EventSink: IUnknown); override; [914] function Get_Active: WordBool; safecall; [915] function Get_AlignDisabled: WordBool; safecall; [916] function Get_AlignWithMargins: WordBool; safecall; [917] function Get_AutoScroll: WordBool; safecall; [918] function Get_AutoSize: WordBool; safecall; [919] function Get_AxBorderStyle: TxActiveFormBorderStyle; safecall; [920] function Get_Caption: WideString; safecall; [921] function Get_Color: OLE_COLOR; safecall; [922] function Get_DockSite: WordBool; safecall; [923] function Get_DoubleBuffered: WordBool; safecall; [924] function Get_DropTarget: WordBool; safecall; [925] function Get_Enabled: WordBool; safecall; [926] function Get_ExplicitHeight: Integer; safecall; [927] function Get_ExplicitLeft: Integer; safecall; [928] function Get_ExplicitTop: Integer; safecall; [929] function Get_ExplicitWidth: Integer; safecall; [930] function Get_Font: IFontDisp; safecall; [931] function Get_HelpFile: WideString; safecall; [932] function Get_KeyPreview: WordBool; safecall; [933] function Get_MouseInClient: WordBool; safecall; [934] function Get_ParentCustomHint: WordBool; safecall; [935] function Get_ParentDoubleBuffered: WordBool; safecall; [936] function Get_PixelsPerInch: Integer; safecall; [937] function Get_PopupMode: TxPopupMode; safecall; [938] function Get_PrintScale: TxPrintScale; safecall; [939] function Get_Scaled: WordBool; safecall; [940] function Get_ScreenSnap: WordBool; safecall; [941] function Get_SnapBuffer: Integer; safecall; [942] function Get_UseDockManager: WordBool; safecall; [943] function Get_Visible: WordBool; safecall; [944] function Get_VisibleDockClientCount: Integer; safecall; [945] procedure _Set_Font(var Value: IFontDisp); safecall; [946] procedure Set_AlignWithMargins(Value: WordBool); safecall; [947] procedure Set_AutoScroll(Value: WordBool); safecall; [948] procedure Set_AutoSize(Value: WordBool); safecall; [949] procedure Set_AxBorderStyle(Value: TxActiveFormBorderStyle); safecall; [950] procedure Set_Caption(const Value: WideString); safecall; [951] procedure Set_Color(Value: OLE_COLOR); safecall; [952] procedure Set_DockSite(Value: WordBool); safecall; [953] procedure Set_DoubleBuffered(Value: WordBool); safecall; [954] procedure Set_DropTarget(Value: WordBool); safecall; [955] procedure Set_Enabled(Value: WordBool); safecall; [956] procedure Set_Font(const Value: IFontDisp); safecall; [957] procedure Set_HelpFile(const Value: WideString); safecall; [958] procedure Set_KeyPreview(Value: WordBool); safecall; [959] procedure Set_ParentCustomHint(Value: WordBool); safecall; [960] procedure Set_ParentDoubleBuffered(Value: WordBool); safecall; [961] procedure Set_PixelsPerInch(Value: Integer); safecall; [962] procedure Set_PopupMode(Value: TxPopupMode); safecall; [963] procedure Set_PrintScale(Value: TxPrintScale); safecall; [964] procedure Set_Scaled(Value: WordBool); safecall; [965] procedure Set_ScreenSnap(Value: WordBool); safecall; [966] procedure Set_SnapBuffer(Value: Integer); safecall; [967] procedure Set_UseDockManager(Value: WordBool); safecall; [968] procedure Set_Visible(Value: WordBool); safecall; [969] procedure Set_caseid(const Value: WideString); safecall; [970] procedure Set_data(const Value: WideString); safecall; [971] procedure Set_mode(const Value: WideString); safecall; [972] procedure Set_rewrite(const Value: WideString); safecall; [973] procedure Set_url(const Value: WideString); safecall; [974] procedure Set_userid(const Value: WideString); safecall; [975] procedure Set_username(const Value: WideString); safecall; [976] procedure Set_verify(const Value: WideString); safecall; [977] procedure Set_language(const Value: WideString); safecall; [978] procedure Set_modename(const Value: WideString); safecall; [979] procedure Set_userunit(const Value: WideString); safecall; [980] procedure Set_work_no(const Value: WideString); safecall; [981] procedure Set_loandoc_enable(const Value: WideString); safecall; [982] procedure Set_loandoc_value(const Value: WideString); safecall; [983] procedure Set_useproxy(const Value: WideString); safecall; [984] procedure Set_c_docnamelist(const Value: WideString); safecall; [985] procedure Set_c_docnolist(const Value: WideString); safecall; [986] procedure Set_fixfilelist(const Value: WideString); safecall; [987] procedure Set_is_in_wh(const Value: WideString); safecall; [988] procedure Set_oldcaseinfo(const Value: WideString); safecall; [989] function Get_c_docnamelist: WideString; safecall; [990] function Get_c_docnolist: WideString; safecall; [991] function Get_caseid: WideString; safecall; [992] function Get_data: WideString; safecall; [993] function Get_fixfilelist: WideString; safecall; [994] function Get_is_in_wh: WideString; safecall; [995] function Get_language: WideString; safecall; [996] function Get_loandoc_enable: WideString; safecall; [997] function Get_loandoc_value: WideString; safecall; [998] function Get_mode: WideString; safecall; [999] function Get_modename: WideString; safecall; [1000] function Get_oldcaseinfo: WideString; safecall; [1001] function Get_rewrite: WideString; safecall; [1002] function Get_url: WideString; safecall; [1003] function Get_useproxy: WideString; safecall; [1004] function Get_userid: WideString; safecall; [1005] function Get_username: WideString; safecall; [1006] function Get_userunit: WideString; safecall; [1007] function Get_verify: WideString; safecall; [1008] function Get_work_no: WideString; safecall; [1009] function Get_printyn: WideString; safecall; [1010] procedure Set_printyn(const Value: WideString); safecall; [1011] function Get_is_oldcase: WideString; safecall; [1012] procedure Set_is_oldcase(const Value: WideString); safecall; [1013] function Get_custdocyn: WideString; safecall; [1014] procedure Set_custdocyn(const Value: WideString); safecall; [1015] function Get_casenolength: WideString; safecall; [1016] function Get_filesizelimit: WideString; safecall; [1017] function Get_imgdpi: WideString; safecall; [1018] function Get_scancolor: WideString; safecall; [1019] procedure Set_casenolength(const Value: WideString); safecall; [1020] procedure Set_filesizelimit(const Value: WideString); safecall; [1021] procedure Set_imgdpi(const Value: WideString); safecall; [1022] procedure Set_scancolor(const Value: WideString); safecall; [1023] function Get_imgdelete: WideString; safecall; [1024] procedure Set_imgdelete(const Value: WideString); safecall; [1025] function Get_check_main_form: WideString; safecall; [1026] function Get_isExternal: WideString; safecall; [1027] procedure Set_check_main_form(const Value: WideString); safecall; [1028] procedure Set_isExternal(const Value: WideString); safecall; [1029] function Get_WH_CATEGORY: WideString; safecall; [1030] procedure Set_WH_CATEGORY(const Value: WideString); safecall; [1031] public [1032] { Public declarations } [1033] procedure Initialize; override; [1034] end; [1035] [1036] implementation [1037] [1038] uses EnBarcode, [1039] EnTransf, { for TImageTransform } [1040] Enpnggr, { for PNGGraphic } [1041] EnJpgGr, { for JPGGraphic } [1042] EnReg, [1043] EnBmpGr, { for TBitmapGraphic } [1044] EnPrint, { for TEnvisionPrintMode, TDibGraphicPrinter } [1045] ComObj, ComServ,IISUnit,IIS_File2Web,IIS_ImageProcess, [1046] PatchFom,Doclist,ScanMemo,DocCopy,InputMask,SortMemo,DocPrt,OldCaseInfo; [1047] [1048] {$R *.DFM} [1049] [1050] { TCB_IMGPSScanX } [1051]