From 2631324407b8c12fe557f225688211d75d5ee02b Mon Sep 17 00:00:00 2001
From: doom4ster <doom4ster@gmail.com>
Date: 星期二, 26 九月 2017 17:57:04 +0800
Subject: [PATCH] CB_IMGPSScan.cab ver2.0.1.44 加入 A3 匯入切頁功能
---
CB_IMGPSScanImp.pas | 4909 ++++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 3,142 insertions(+), 1,767 deletions(-)
diff --git a/CB_IMGPSScanImp.pas b/CB_IMGPSScanImp.pas
index d2615cb..b7252a3 100644
--- a/CB_IMGPSScanImp.pas
+++ b/CB_IMGPSScanImp.pas
@@ -1,4 +1,4 @@
-unit CB_IMGPSScanImp;
+unit CB_IMGPSScanImp;
{$WARN SYMBOL_PLATFORM OFF}
@@ -14,32 +14,32 @@
ExtCtrls, ComCtrls, Menus, StdCtrls, Gauges, EnImgScr, PJMenuSpeedButtons,
Buttons, ImgList, SBSimpleSSL, SBHTTPSClient, SBWinCertStorage, SBX509,
SBCustomCertStorage, SBUtils,mpsBarco,BarcodesFinder,HTTPApp,ErrList,
- Xmltool,inifiles,printers;
+ Xmltool,inifiles,printers,IdHashMessageDigest, idHash;
var
Ch_WriteNote : Boolean;
RejectCase : Boolean;
ErrIndex : Integer;
- //*****�w�]��*****//
- Def_DeviceDelete : Boolean; //�ťխ��R���Ұ�
- Def_DeviceDeleteSize : Integer; //�ťխ�Size
- Def_ScannerReverse : Boolean; //�O�_�ݤϬ�
- Def_BoardClear : Boolean; //�O�_�M����
- Def_ScanDpi : Integer; //����DPI
- Def_ScanDuplex : Boolean; //�O�_��������
- Def_ScanRotate : Integer; //���ˮɱ��ਤ��
- Def_ScanDeskew : Boolean; //�O�_�ɱ��B��
- Def_ScanBright : Integer; //�G��
- Def_ScanContrast : Integer; //���
- Def_ScanImgShowMode : Integer; //0:�M���v�� 1:���M���v�� 2:�����
- Def_ScanImgSetUse : Boolean; //�O�_�ϥΫG���]�w
- //*****�w�]��*****//
+ //*****預設區*****//
+ Def_DeviceDelete : Boolean; //空白頁刪除啟動
+ Def_DeviceDeleteSize : Integer; //空白頁Size
+ Def_ScannerReverse : Boolean; //是否需反相
+ Def_BoardClear : Boolean; //是否清黑邊
+ Def_ScanDpi : Integer; //掃瞄DPI
+ Def_ScanDuplex : Boolean; //是否雙面掃瞄
+ Def_ScanRotate : Integer; //掃瞄時旋轉角度
+ Def_ScanDeskew : Boolean; //是否傾斜矯正
+ Def_ScanBright : Integer; //亮度
+ Def_ScanContrast : Integer; //對比
+ Def_ScanImgShowMode : Integer; //0:清楚影像 1:不清楚影像 2:不顯示
+ Def_ScanImgSetUse : Boolean; //是否使用亮度對比設定
+ //*****預設區*****//
Const
ISBName = 'PreViewISB';
-{����ۨ��������һݭn }
+{獲取自身版本號所需要 }
type
TVersionLanguage = (vlArabic, vlBulgarian, vlCatalan, vlTraditionalChinese,
vlCzech, vlDanish, vlGerman, vlGreek, vlUSEnglish, vlCastilianSpanish,
@@ -58,7 +58,7 @@
$0418, $0419, $041A, $041B, $041C, $041D, $041E, $041F, $0420, $0421,
$0804, $0807, $0809, $080A, $080C, $0810, $0813, $0814, $0816, $081A,
$0C0C, $100C, $0000);
-{����ۨ��������һݭn end}
+{獲取自身版本號所需要 end}
type
@@ -72,8 +72,8 @@
ImageCount : LongInt;
end;
TOMRErrInfo = record
- Display : Boolean; //�O�_���
- Ignore : Boolean; //�i�_�R��
+ Display : Boolean; //是否顯示
+ Ignore : Boolean; //可否刪除
Info : String;
Mode : String;
end;
@@ -145,7 +145,6 @@
ISB2: TImageScrollBox;
imgp1: TPanel;
lb1: TLabel;
- ISB1: TImageScrollBox;
Memo1: TMemo;
Display1: TMemo;
Panel22: TPanel;
@@ -255,6 +254,8 @@
ISB_BW: TImageScrollBox;
N1: TMenuItem;
N2: TMenuItem;
+ ISB1: TImageScrollBox;
+ Label3: TLabel;
procedure ActiveFormCreate(Sender: TObject);
procedure Panel9Resize(Sender: TObject);
procedure ISB1Click(Sender: TObject);
@@ -374,10 +375,10 @@
{ Private declarations }
HotKeyId1,HotKeyId2,HotKeyId3,HotKeyId4 :Integer;
- ////////�ǤJ�Ѽ�/////////
+ ////////傳入參數/////////
FUrl : String;
FCaseID : String;
- FMode : String; //NSCAN:�s��;ESCAN:�ק�
+ FMode : String; //NSCAN:新件;ESCAN:修改 20170306 DSCAN:被配合待掃瞄清單使用
FModeName : String;
FWork_no : String;
FUserID : String;
@@ -387,122 +388,136 @@
FVerify : String;
FReWrite : String;
FLanguage : String;
- FLoanDoc_Value : String; //�s�W�«H������
- FLoanDoc_Enable : String; //�s�W�«H���O�_�i����
- FUseProxy : String; //�O�_�ϥ�Proxy
- FC_DocNoList : String; //�~���Ǩӭn�s�W�����s��
- FC_DocNameList : String; //�~���Ǩӭn�s�W���ۭq���
- FFixFileList : String; //�n����ɦW
- FIs_In_Wh : String; //�O�_�u��ܤJ�w��� (Y:�u��ܤJ�w N:�u��ܫD�J�w �ť�:�����)
- FOldCaseInfo : String; //�¥��T CaseID_year[tab]CaseID_year
- FPrintyn : String; //�O�_�i�C�L
- FIs_OldCase : String; //�O�_�O�®ײĤ@���i�J
- FCustDocYN : String; //�O�_�i�ۭq���
- ////////�ǤJ�Ѽ�///////
+ FLoanDoc_Value : String; //新增授信卷的值
+ FLoanDoc_Enable : String; //新增授信卷是否可異動
+ FUseProxy : String; //是否使用Proxy
+ FC_DocNoList : String; //外面傳來要新增的文件編號
+ FC_DocNameList : String; //外面傳來要新增的自訂文件
+ FFixFileList : String; //要鎖住的檔名
+ FIs_In_Wh : String; //是否只顯示入庫文件 (Y:只顯示入庫 N:只顯示非入庫 空白:都顯示)
+ FOldCaseInfo : String; //舊件資訊 CaseID_year[tab]CaseID_year
+ FPrintyn : String; //是否可列印
+ FIs_OldCase : String; //是否是舊案第一次進入
+ FCustDocYN : String; //是否可自訂文件
+ //20170222 新增
+ FImgDPI:integer;//DPI 依業務別決定 150~~1200 預設300
+ FScanColor:integer;///掃瞄色彩 依業務別決定 0 :黑白 1:灰階 2:彩色 預設黑白
+ FFileSizeLimit:integer;//匯入單一檔案大小限 依業務別決定 以KB為單位 預設5*1024kb
+ FCaseNoLength:integer;//案件編號長度檢查 依業務別決定 無預設 一定要傳入
+ FImgDelete:string; // Y/N 有權限可在補件時刪除影像
+ FIsExternal:string;//Y/N
+ FCheck_main_form:string; //Y/N
+ FWH_category:string; //Y/N Y是歸類時有區分入庫非入庫文件 N 是不區分
+ ////////傳入參數///////
- //********Http�Ѽ�********
- HttpErrStr : String; //���~�T��
- //********Http�Ѽ�********
+ //********Http參數********
+ HttpErrStr : String; //錯誤訊息
+ //********Http參數********
- //********ini�Ѽ�********
- DeviceDelete : Boolean; //�ťխ��R���Ұ�
- DeviceDeleteSize : Integer; //�ťխ�Size
- ScannerReverse : Boolean; //�O�_�ݤϬ�
- BoardClear : Boolean; //�O�_�M����
- ScanDpi : Integer; //����DPI
- ScanDuplex : Boolean; //�O�_��������
- ScanRotate : Integer; //���ˮɱ��ਤ��
- ScanDeskew : Boolean; //�O�_�ɱ��B��
- ScanBright : Integer; //�G��
- ScanContrast : Integer; //���
- ScanImgShowMode : Integer; //0:�M���v�� 1:���M���v�� 2:�����
- ScanImgSetUse : Boolean; //�O�_�ϥΫG���]�w
+ //********ini參數********
+ DeviceDelete : Boolean; //空白頁刪除啟動
+ DeviceDeleteSize : Integer; //空白頁Size
+ ScannerReverse : Boolean; //是否需反相
+ BoardClear : Boolean; //是否清黑邊
+ ScanDpi : Integer; //掃瞄DPI
+ ScanDuplex : Boolean; //是否雙面掃瞄
+ ScanRotate : Integer; //掃瞄時旋轉角度
+ ScanDeskew : Boolean; //是否傾斜矯正
+ ScanBright : Integer; //亮度
+ ScanContrast : Integer; //對比
+ ScanImgShowMode : Integer; //0:清楚影像 1:不清楚影像 2:不顯示
+ ScanImgSetUse : Boolean; //是否使用亮度對比設定
- //********ini�Ѽ�********
+ //********ini參數********
ScanColor : TImageFormat;
- //********�ɶ�********
+ //********時間********
ServerDate : String;
ServerTime : String;
- Balance : Longint; //local��server���ɶ��t
- ScanDenialTime : String; //����i��ɶ�
- //********�ɶ�********
- ScanDenialHint : String; //���y��ܴ����r��
+ Balance : Longint; //local跟server的時間差
+ ScanDenialTime : String; //停止進件時間
+ //********時間********
+ ScanDenialHint : String; //掃描顯示提醒字串
- //********���|********
+ //********路徑********
ScanPath : String; // SpecifyDir\Workid\userunit\mode
ImagePath : String; // SpecifyDir\Workid\userunit\mode
ImageSavePath : String; // ImagePath\
ScaniniPath : String; // SpecifyDir\Workid\userunit\
- LngPath :String; //�h��y���ɥؿ�
- CheckXmlPath : String; //�ˮ֥Ϊ�Xml�s��ؿ�
- SitePath : String; //�n����m(��ñ�W��)
- SamplePath : String; //�d���ؿ�
- TransPath : String; //�ɮפW�Ǫ����|(�ɥR��|�h�@�h�ؿ�)
- //********���|********
- ScanSaveFilename : String; //���˪��ɦW
- ScanCaseno : String; //���ˮɪ���
- ScanDocDir : String; //���y�ɪ����N���ؿ�
- //********�M���********
- Doc_Inf_List : TStringList; //Doc_Inf �M��
- DM_FORM_INF_List :TstringList; //DM_FORM_INF �M��
- FORM_INF_List : TStringList; //FORM_INF���M��
- CHECK_RULE_INF_List : TStringList; //CHECK_RULE_INF �M��
- MEMO_INF_List : TStringList; //MEMO_INF �M��
- WORK_INF_List : TStringList; //WORK_INF �M��
- LASTEST_FORM_INF_List : TStringList; // LASTEST_FORM_INF �M��
+ LngPath :String; //多國語言檔目錄
+ CheckXmlPath : String; //檢核用的Xml存放目錄
+ SitePath : String; //登打位置(切簽名用)
+ SamplePath : String; //範本目錄
+ TransPath : String; //檔案上傳的路徑(補充件會多一層目錄)
+ //********路徑********
+ ScanSaveFilename : String; //掃瞄的檔名
+ ScanCaseno : String; //掃瞄時的案號
+ ScanDocDir : String; //掃描時的文件代號目錄
+ //********清單區********
+ Doc_Inf_List : TStringList; //Doc_Inf 清單
+ DM_FORM_INF_List :TstringList; //DM_FORM_INF 清單
+ FORM_INF_List : TStringList; //FORM_INF的清單
+ CHECK_RULE_INF_List : TStringList; //CHECK_RULE_INF 清單
+ MEMO_INF_List : TStringList; //MEMO_INF 清單
+ WORK_INF_List : TStringList; //WORK_INF 清單
+ LASTEST_FORM_INF_List : TStringList; // LASTEST_FORM_INF 清單
- FindResult : TStringList; //��SQLData�����G
- CaseList : TStringList; //�O�����ˮץ���
- Context_DocnoList : TStringlist; //�ץ�̪�Docno�M��
- CaseDocNoList : TStringlist; //�ץ�̪�DocNo�M��(������)
- CaseDocNo_CopiesList : TStringlist; //�ץ�̪�DocNo���ƲM��
- ContextList : TStringlist; //�ץ�̪��ɮײM��
- OMRFileList : TStringList; //�nOMR�ˮ֪����(�u�ˬd�C��Form���Ĥ@��)
- Cust_DocNoList : TStringlist; //�ۦ�w�q���W��
- IN_WH_DocNoList : TStringlist; //�J�w�����M��
+ FindResult : TStringList; //找SQLData的結果
+ CaseList : TStringList; //記錄掃瞄案件的順序
+ Context_DocnoList : TStringlist; //案件裡的Docno清單
+ CaseDocNoList : TStringlist; //案件裡的DocNo清單(不重複)
+ CaseDocNo_CopiesList : TStringlist; //案件裡的DocNo份數清單
+ ContextList : TStringlist; //案件裡的檔案清單
+ OMRFileList : TStringList; //要OMR檢核的文件(只檢查每種Form的第一頁)
+ Cust_DocNoList : TStringlist; //自行定義文件名稱
+ IN_WH_DocNoList : TStringlist; //入庫的文件清單
- FormCode_PageSize : TStringList; //��w�]�j�p FormCode_Height_Width
- DocNo_NeedDoc : TStringList; //��Docno�ɭn�̪ۨ���� DocNo_�̤ۨ��_�̤ۨ��
- DocNo_NoDoc : TstringList; //��Docno�ɤ�������� DocNo_�������_�������
- DocNo_VerinCase : TStringlist; //�ץ�̪�DocNo+�������M��
+ FormCode_PageSize : TStringList; //文件的預設大小 FormCode_Height_Width
+ DocNo_NeedDoc : TStringList; //有Docno時要相依的文件 DocNo_相依文件_相依文件
+ DocNo_NoDoc : TstringList; //有Docno時互斥的文件 DocNo_互斥文件_互斥文件
+ DocNo_VerinCase : TStringlist; //案件裡的DocNo+版本的清單
- NoSaveBarCodeList : TStringlist; //���x�s�����X�M��
- FormID_List : TStringlist; //FormID �M�� 20130403 �]����FormCode2Docno�|�ܺC..��FormID��X��
- DocNo_List : TStringlist; //DocNo �M�� 20130403 �]����FormCode2Docno�|�ܺC..��DocNo��X��
- NowShowFileList : TStringlist; //�ثe��ܪ��v���M��
- NowSelectFileList : TStringlist; //�ثe�Q�I�諸�v���M��
- GuideFormIDList : TStringlist; //�n��ɤޭ����M��
- //********�M���********
+ NoSaveBarCodeList : TStringlist; //不儲存的條碼清單
+ FormID_List : TStringlist; //FormID 清單 20130403 因為原FormCode2Docno會很慢..把FormID抽出來
+ DocNo_List : TStringlist; //DocNo 清單 20130403 因為原FormCode2Docno會很慢..把DocNo抽出來
+ NowShowFileList : TStringlist; //目前顯示的影像清單
+ NowSelectFileList : TStringlist; //目前被點選的影像清單
+ GuideFormIDList : TStringlist; //要當導引頁表單清單
+ DivPageFormIDList:TStringlist; //要當分案頁表單清單
+ LastInitFormidList:TStringList;
+ LastAddFormidList:TstringList;
+ SampleFormIDList:TStringList; //20170627 已存在範本的formid
+ ExistImgList:TStringList; //20170724 已經存在的影像list for ESCAN //Img的完整路徑
+ //********清單區********
- //********��ܰ�********
- NowCaseno : String; //�ثe��ܪ��ץ�s��
- NowDocNo : String; //�ثe�����s��
- NowDocDir : String; //�ثe�����ؿ�
- NowFormCode : String; //�ثe��ܪ����s��
- NowFormName : String; //�ثe��ܪ����W��
- NowPage : Integer; //�ثe�I�諸���X
- DisplayPath : String; //�ثe��ܪ��ؿ�
- //********��ܰ�********
+ //********顯示區********
+ NowCaseno : String; //目前顯示的案件編號
+ NowDocNo : String; //目前的文件編號
+ NowDocDir : String; //目前的文件目錄
+ NowFormCode : String; //目前顯示的表單編號
+ NowFormName : String; //目前顯示的表單名稱
+ NowPage : Integer; //目前點選的頁碼
+ DisplayPath : String; //目前顯示的目錄
+ //********顯示區********
- //******�����*********
- Case_loandoc : String; //�O�_�s�W�«H��
- //******�����*********
+ //******索引資料*********
+ Case_loandoc : String; //是否新增授信卷
+ //******索引資料*********
- //********�Q�r�w���I��T********
- UpLPoint : Tpoint; //���W�誺�Q�r�I
- UpRPoint : Tpoint; //�k�W�誺�Q�r�I
- DownLPoint : Tpoint; //���U�誺�Q�r�I
- DownRPoint : Tpoint; //�k�U�誺�Q�r�I
- Point_Width : String; //�Q�r�I���e
- Point_Height : String; //�Q�r�I����
- //********�Q�r�w���I��T********
+ //********十字定位點資訊********
+ UpLPoint : Tpoint; //左上方的十字點
+ UpRPoint : Tpoint; //右上方的十字點
+ DownLPoint : Tpoint; //左下方的十字點
+ DownRPoint : Tpoint; //右下方的十字點
+ Point_Width : String; //十字點的寬
+ Point_Height : String; //十字點的高
+ //********十字定位點資訊********
- CaseIDLength : Integer; //�ץ�s������
- FormIDLength : Integer; //FormID����
- DocNoLength : Integer; //Docno����
+ CaseIDLength : Integer; //案件編號長度
+ FormIDLength : Integer; //FormID長度
+ DocNoLength : Integer; //Docno長度
- PEFileName : String; //���y�ɪ��ɦW
+ PEFileName : String; //掃描時的檔名
ISB : TImageScrollBox;
ScanInfo : TScanInfo;
@@ -510,40 +525,41 @@
MpsBarcodeinf : TMpsBarcodeinf;
ScanMode : TScanMode;
Mpskey : String;
- Seg : Integer; //��ܪ���ɭ�
- VMode : Integer; //��ܪ�index
- NowClick : Integer; //�ثe�I�쪺���s�\��Index
- ScanIP : String; //���˺ݪ�IP
- DisplayISB : TImageScrollBox; //�Q�I�쪺�v��
- SelectISB : TImageScrollBox; //�Q�I�쪺�Y��
- SelectPage : Integer; //�Q�I�쪺����
+ Seg : Integer; //顯示的邊界值
+ VMode : Integer; //顯示的index
+ NowClick : Integer; //目前點到的按鈕功能Index
+ ScanIP : String; //掃瞄端的IP
+ DisplayISB : TImageScrollBox; //被點到的影像
+ SelectISB : TImageScrollBox; //被點到的縮圖
+ SelectPage : Integer; //被點到的頁數
NewTreeNode,MyTreeNode1,MyTreeNode2,MyTreeNode3 : TTreenode;
- InitialOk : Boolean; //��T���J�O�_����
- ShowText : String; //DataLoading�ɭn�q�X���T��
- Ext : String; //���ɦW .tif .jpg
- SafePixel : Integer; //OMR�e�Ի~�t���I��
- OMRErrInfo : Array[1..11] of TOMRErrInfo; //�ˮ֪��覡�ΰT��
- ScrollRec : Array[1..8] of TScrollRec; //�s������Scroll�O��
- RecHozPos,RecVerPos : Integer; //�O��MPSViewX1��ScrollBar��m
+ InitialOk : Boolean; //資訊載入是否完成
+ ShowText : String; //DataLoading時要秀出的訊息
+ Ext : String; //附檔名 .tif .jpg
+ SafePixel : Integer; //OMR容忍誤差值點數
+ OMRErrInfo : Array[1..11] of TOMRErrInfo; //檢核的方式及訊息
+ ScrollRec : Array[1..8] of TScrollRec; //瀏覽窗的Scroll記錄
+ RecHozPos,RecVerPos : Integer; //記錄MPSViewX1的ScrollBar位置
ReczoomPercent : Single;
SortMode : Boolean;
PreMytreeNode2Name:String;
HS,VS : Integer;
iRate : Single;
- Bt : Integer; //�h���u�ɾ�u�P�_���e�ԭ�
- BarCodeRotate : Integer; //���X�n�����
- HaveAppDoc : Boolean; //�ɥ��ɬO�_���ɤJ�n�O��
+ Bt : Integer; //去直線時橫線判斷的容忍值
+ BarCodeRotate : Integer; //條碼要轉的角度
+ HaveAppDoc : Boolean; //補全時是否有補入要保書
PageLVclear : Boolean;
- CaseCount,PageCount : Integer; //�`�ץ�q���`����
+ CaseCount,PageCount : Integer; //總案件量及總頁數
Item : TMenuItem;
- SampleAnchorMode : String; //�d�����ˤQ�r�u���Ҧ� NONE:�L;ANCHOR:�Q�r;FRAME:���
- DownImgStatus : String; //�U���v�������A(NO_DATA:�S���;NO_FILE:�S�v��)
- TransForm_Field : String; //�n��OMR�Ŀ�T�{�O�_�ഫFORMID�����W��
- NowWork_No : String; //�{�b���@�~�O
- CropBarcode : String; //�n���v�������X
- Has_Authorize :String; //�O�_�����v�Ѽv��
- AttName : String; //���k���ؿ��W��
+ SampleAnchorMode : String; //範本掃瞄十字線的模式 NONE:無;ANCHOR:十字;FRAME:邊框
+ DownImgStatus : String; //下載影像的狀態(NO_DATA:沒資料;NO_FILE:沒影像)
+ TransForm_Field : String; //要用OMR勾選確認是否轉換FORMID的欄位名稱
+ NowWork_No : String; //現在的作業別
+ CropBarcode : String; //要切影像的條碼
+ Has_Authorize :String; //是否有授權書影像
+ AttName : String; //未歸類目錄名稱
NowGuideFormID : String;
+ NowDivPageFormID:String;
FirstDocDir : String;
@@ -553,231 +569,232 @@
FEvents: ICB_IMGPSScanXEvents;
procedure HotKeyDown (var Msg : TMessage);message WM_HOTKEY;
- Procedure InitialLanguage(Sender: TObject); //�e�����J�h��y��
+ Procedure InitialLanguage(Sender: TObject); //畫面載入多國語言
//Function _Msg(S:String):String;
- //*********SQL����************
- Procedure SetSQLData(ColumeStr:String;FromList,ToList:TStringlist); //��SQL�ȶ�J
- Function GetSQLData(TableList:TStringlist;Colname:String;colNo:Integer):String; //�����ί��ި���
- Function FindSQLData(TableList:TStringlist;ColumeStr,KeyColumeStr,KeyStr:String;ColNo:Integer;Var ResultList:TStringlist):Boolean; //����w�����
+ //*********SQL相關************
+ Procedure SetSQLData(ColumeStr:String;FromList,ToList:TStringlist); //把SQL值塞入
+ Function GetSQLData(TableList:TStringlist;Colname:String;colNo:Integer):String; //依欄位及索引取值
+ Function FindSQLData(TableList:TStringlist;ColumeStr,KeyColumeStr,KeyStr:String;ColNo:Integer;Var ResultList:TStringlist):Boolean; //找指定的資料
Function GetFindResult(Col:String):String;
- //*********SQL����************
+ //*********SQL相關************
- //*******�ഫ��*********
- Function FindDivFormCode(FormCode:String):Boolean; //�䦳�S�����ת����X
- Function FormCode2FormName(CaseID,FormCode:String):String; //��FormCode�ন���W��
- Function FormCode2FileName(FormCode:String;List:TStrings):String; //��FormCode��X�ɦW(�Ĥ@��)
- Function FileName2FormCode(FileName:String):String; //�q�ɦW���XFormCode
- Function FileName2FormName(CaseID,FileName:String):String; //�q�ɦW���X���W��
- Function FileName2ScanPage(FileName:String):Integer; //�q�ɦW���X���˭���
- Function FileName2NoQuene_Filename(FileName:String):String; //���X�S���Ǹ����ɦW
- Function FileName2Index(FileName:String):Integer; //�q�ɦW���X�bContextList���Ǹ�
- Function FileName2NowDcoNo(FileName:String;CtList,DNList:TStrings):String; //�q�ɦW���X�k�ݪ����N��
- Function FormCode2DocNo(FormCode:String):String; //FormCode��Docno
- Function FormCode2Version(FormCode:String):String; //FormCode���
- Function FormCode2Page(FormCode:String):String; //FormCode����
- Function DocNo2DocName(CaseID,DocNo:String):String; //Docno��Doc�W��
- Function DocNo2FileName(DocNo:String;List:TStrings):String; //��DocNo��X�ɦW(�Ĥ@��)
- Function FormCode2WorkNo(FormCode:String):String; //��FormCode���X�@�~�O
- Function DocNo2WorkNo(DocNo:String):String; //��DocNo���X�@�~�O
- Function DocNo2DocNoDir(Path,DocNo:String):String; //DocNo�নDocNo(����)�ؿ�
- Function DocNoDir2DocNo(DocNoDir:String):String; //DocNo(����)�ؿ��নDocNo
- Function DocNoDir2Index(Path,DocNoDir:String):Integer; //DocNo(����)�ؿ��নindex
+ //*******轉換區*********
+ Function FindDivFormCode(FormCode:String):Boolean; //找有沒有分案的條碼
+ Function FormCode2FormName(CaseID,FormCode:String):String; //用FormCode轉成文件名稱
+ Function FormCode2FileName(FormCode:String;List:TStrings):String; //用FormCode找出檔名(第一頁)
+ Function FileName2FormCode(FileName:String):String; //從檔名取出FormCode
+ Function FileName2FormName(CaseID,FileName:String):String; //從檔名取出文件名稱
+ Function FileName2ScanPage(FileName:String):Integer; //從檔名取出掃瞄頁數
+ Function FileName2NoQuene_Filename(FileName:String):String; //取出沒有序號的檔名
+ Function FileName2Index(FileName:String):Integer; //從檔名取出在ContextList的序號
+ Function FileName2NowDcoNo(FileName:String;CtList,DNList:TStrings):String; //從檔名取出歸屬的文件代號
+ Function FormCode2DocNo(FormCode:String):String; //FormCode轉Docno
+ Function FormCode2Version(FormCode:String):String; //FormCode轉版本
+ Function FormCode2Page(FormCode:String):String; //FormCode轉文件頁數
+ Function DocNo2DocName(CaseID,DocNo:String):String; //Docno轉Doc名稱
+ Function DocNo2FileName(DocNo:String;List:TStrings):String; //用DocNo找出檔名(第一頁)
+ Function FormCode2WorkNo(FormCode:String):String; //用FormCode取出作業別
+ Function DocNo2WorkNo(DocNo:String):String; //用DocNo取出作業別
+ Function DocNo2DocNoDir(Path,DocNo:String):String; //DocNo轉成DocNo(份數)目錄
+ Function DocNoDir2DocNo(DocNoDir:String):String; //DocNo(份數)目錄轉成DocNo
+ Function DocNoDir2Index(Path,DocNoDir:String):Integer; //DocNo(份數)目錄轉成index
- Function DocNoNeedDiv(DocNo:String):Boolean; //�O�_�O�ݤ����ƪ����N��
+ Function DocNoNeedDiv(DocNo:String):Boolean; //是否是需分份數的文件代號
//Function CaseNo2DocNo(CaseNo:String):TStringList;
- Function CaseNode2Info(Node:TTreeNode;Mode:Char):String; //�ץ�Node���ץ�s�� Mode: I:Caseno;P:Page
- Function DocNode2Info(Node:TTreeNode;Mode:Char):String; //���Node�����N�� Mode: I:Docno;N:Docname;P:Page;G:Group
- Function FormNode2Info(Node:TTreeNode;Mode:Char):String; //���Node�����N�� Mode: I:FormID;N:FormName;P:Page
- //*******�ഫ��*********
+ Function CaseNode2Info(Node:TTreeNode;Mode:Char):String; //案件Node取案件編號 Mode: I:Caseno;P:Page
+ Function DocNode2Info(Node:TTreeNode;Mode:Char):String; //文件Node取文件代號 Mode: I:Docno;N:Docname;P:Page;G:Group
+ Function FormNode2Info(Node:TTreeNode;Mode:Char):String; //表單Node取表單代號 Mode: I:FormID;N:FormName;P:Page
+ //*******轉換區*********
- Procedure PriorPage(Page:Integer); //�W�@��
- Procedure NextPage(Page:Integer); //�U�@��
+ Procedure PriorPage(Page:Integer); //上一頁
+ Procedure NextPage(Page:Integer); //下一頁
- Function DocNoExistsinTree(CaseNode:TTreeNode;DocNo:String):Boolean; //DocNo�O�_�v�s�b���
- Function DocnoNeedGroup(DocNo:String):Boolean; //�ǤJ��DocNo�O�_�ݤ���
+ Function DocNoExistsinTree(CaseNode:TTreeNode;DocNo:String):Boolean; //DocNo是否己存在樹裡
+ Function DocnoNeedGroup(DocNo:String):Boolean; //傳入的DocNo是否需分組
function GetSiteOMR(FileName, Site: String;bt: Integer): Integer;
- Function FindISB2View(Vmode:Integer):TImageScrollBox; //���ISB�����
- Procedure R_W_ScanIni(Mode:Char); //'R'��;'W'�g�J
- Procedure GetDefScanIni; //���o���˪��w�]��
+ Function FindISB2View(Vmode:Integer):TImageScrollBox; //找空的ISB來顯示
+ Procedure R_W_ScanIni(Mode:Char); //'R'讀取;'W'寫入
+ Procedure GetDefScanIni; //取得掃瞄的預設值
procedure DesableImage;
procedure EnableImage(v:integer;Sender : TObject);
Procedure ViewMouseMode(v:Integer);
Procedure GoViewMode;
Procedure DisplayMode(index,H_Count,W_Count:Integer;BasePanel:TPanel);
- Function GetServerDate : Boolean; //���D���ɶ�
- Function GetSetInf1 : Boolean; //���t�γ]�w��Tmode1 DOC_INF
- Function GetSetInf2 : Boolean; //���t�γ]�w��Tmode2 DM_FORM_INF
- Function GetSetInf3 : Boolean; //���t�γ]�w��Tmode3 FORM_INF
- Function GetSetInf4 : Boolean; //���t�γ]�w��Tmode4 CHECK_RULE_INF
- Function GetSetInf5 : Boolean; //���t�γ]�w��Tmode5 MEMO_INF
- Function GetSetInf6 : Boolean; //���t�γ]�w��Tmode6 WORK_INF
- Function GetSetInf7 : Boolean; //���t�γ]�w��Tmode7 LASTESTFORM_INF
- Procedure SetFormID_DocNo; //�NFormID��Docno��X�ӥt�s�Jlist��
- Procedure SetIn_WH_DocNo; //�N�n�J�w��DocNo��X�ӥt�s�Jlist��
+ Function GetServerDate : Boolean; //取主機時間
+ Function GetSetInf1 : Boolean; //取系統設定資訊mode1 DOC_INF
+ Function GetSetInf2 : Boolean; //取系統設定資訊mode2 DM_FORM_INF
+ Function GetSetInf3 : Boolean; //取系統設定資訊mode3 FORM_INF
+ Function GetSetInf4 : Boolean; //取系統設定資訊mode4 CHECK_RULE_INF
+ Function GetSetInf5 : Boolean; //取系統設定資訊mode5 MEMO_INF
+ Function GetSetInf6 : Boolean; //取系統設定資訊mode6 WORK_INF
+ Function GetSetInf7 : Boolean; //取系統設定資訊mode7 LASTESTFORM_INF
+ Procedure SetFormID_DocNo; //將FormID及Docno抽出來另存入list裡
+ Procedure SetIn_WH_DocNo; //將要入庫的DocNo抽出來另存入list裡
- Procedure DataLoading(Loading,UseTimer:Boolean); //��Ƹ��J���n�����I�諸�ʧ@
- procedure ClearView(stkv:Integer); //�M���s�������v��
- Function DrawDocItem2(CaseNode : TTreenode;Caseno:String):Boolean; //�e�X���W�٪�Tree
+ Procedure DataLoading(Loading,UseTimer:Boolean); //資料載入中要停止點選的動作
+ procedure ClearView(stkv:Integer); //清除瀏覽窗的影像
+ Function DrawDocItem2(CaseNode : TTreenode;Caseno:String):Boolean; //畫出文件名稱的Tree
- Procedure initkscan; //�ˬd���y�����\��
- procedure LoadImgFile; //���J�ץ�
- procedure LoadImgFile1; //���J�ץ�
- Procedure DistinctFormCode(CaseID:String); //�ץ�̪�FormCode���X�Ĥ@��
- Function OMRCheckCase(CaseID:String):Boolean; //OMR�ˮ�
- Procedure OMRErr2ini(CaseID,Reason,FileName,Site,RelaFileName,RelaSite,Anchor,Anchor1:String;Del,Ingnore,Display:Boolean); //OMR�ˮ֥��Ѽg�Jini
- Procedure OMRErrini2List(CaseID:String;ErrlistForm : TErrlistForm); //OMR�ˮ֥��ѱqini�g�JListView
- Function DownLanguage:Boolean; //�U���h��y����
+ Procedure initkscan; //檢查掃描器的功能
+ procedure LoadImgFile; //載入案件
+ procedure LoadImgFile1; //載入案件
+ Procedure DistinctFormCode(CaseID:String); //案件裡的FormCode取出第一頁
+ Function OMRCheckCase(CaseID:String):Boolean; //OMR檢核
+ Procedure OMRErr2ini(CaseID,Reason,FileName,Site,RelaFileName,RelaSite,Anchor,Anchor1:String;Del,Ingnore,Display:Boolean); //OMR檢核失敗寫入ini
+ Procedure OMRErrini2List(CaseID:String;ErrlistForm : TErrlistForm); //OMR檢核失敗從ini寫入ListView
+ Function DownLanguage:Boolean; //下載多國語言檔
Function FindMpsView(Vmode:Integer):TImageScrollBox;
- Function CaseAsk(CaseID:String):Integer; //�߰ݬO�_�i�W�� (-1:����;0:�i�H;1:����;)
- Function CaseComplete(Path,CaseID:String;MainCase:Boolean):Boolean; //�q���ǰe����
- Function GetCaseFormID(Path:String):String; //���ץ�FormID
- Procedure CreateFormID_FormName(Path,CaseID:String); //����FormID_FormName.dat
- Procedure CreateDocNo_DocName(Path,CaseID:String); //����DocNo_DocName.dat
- Procedure CreateIn_WH(CaseID:String); //����In_WH.dat
- Function CreateDocNo_Info(CaseID:String):String; //���ͫO�U��� DocNo[tab]����[tab]�`����[tab]�O�_����[����]DocNo[tab]����[tab]�`����[tab]�O�_����
- Function CreateCustDocNo_Info(CaseID:String):String; //���ۭͦq��� DocName[tab]����[tab]�`����[tab]�O�_����[#13#10]DocName[tab]����[tab]�`����[tab]�O�_����
- Function CreateAttach_Info(CaseID:String):String; //���ͬO�_��Attach Y:�� N:�S��
- Function CreateDocnoFrom_Info(CaseID:String):String; //���ͳQ�i���O�U����T Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
- Function CreateCustDocNoFrom_Info(CaseID:String):String; //���ͳQ�i���۩w����T Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
+ Function CaseAsk(CaseID:String):Integer; //詢問是否可上傳 (-1:失敗;0:可以;1:不行;)
+ Function CaseComplete(Path,CaseID:String;MainCase:Boolean):Boolean; //通知傳送完成
+ Function GetCaseFormID(Path:String):String; //取案件的FormID
+ Procedure CreateFormID_FormName(Path,CaseID:String); //產生FormID_FormName.dat
+ Procedure CreateDocNo_DocName(Path,CaseID:String); //產生DocNo_DocName.dat
+ Procedure CreateIn_WH(CaseID:String); //產生In_WH.dat
+ Function CreateDocNo_Info(CaseID:String):String; //產生保管袋文件 DocNo[tab]份數[tab]總頁數[tab]是否異動[換行]DocNo[tab]份數[tab]總頁數[tab]是否異動
+ Function CreateCustDocNo_Info(CaseID:String):String; //產生自訂文件 DocName[tab]份數[tab]總頁數[tab]是否異動[#13#10]DocName[tab]份數[tab]總頁數[tab]是否異動
+ //Function CreateCustDocNo_Info(path,CaseID:String):String; overload
+ Function CreateAttach_Info(CaseID:String):String; //產生是否有Attach Y:有 N:沒有
+ Function CreateDocnoFrom_Info(CaseID:String):String; //產生被引進的保管袋文件資訊 Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
+ Function CreateCustDocNoFrom_Info(CaseID:String):String; //產生被引進的自定文件資訊 Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
- Function GetDocNoEdit(CaseID,DocNo,DocName:String):String; //���XDocNo�O�_�Q���� (Y/N)
- Function GetDocNo_Count(Path,DocNo:String):Integer; //���X������
- Function GetDocNo_Page(Path,DocNo:String):Integer; //���X����`����
- Function FormIDExists(FormCode:String;CheckDate:Boolean;index:Integer):Boolean; //�ˬdFormID�O�_�s�b�άO�_�n�ˬd�ҥΰ��Τ��
- Function Case_DocNoExists(CaseID,Docno:String):Boolean; //Docno�O�_�s�b�ץ��
- Procedure ReSortFileName_New(Path:String); //�ɦW���s�Ƨ�
- Procedure ReSortFileName(Path:String); //�ɦW���s�Ƨ�
- Procedure ReSortFileName2Scanlist(Path:String); //�ɦW���s�Ƨǵ�Scanlist.dat
- Function GetOMRCheckSet:Boolean; //�U��OMR�ˮ�XML��
- Function GetKeyinSet : Boolean; //���n���]�w
- Procedure CheckRule2OMRErrInfo; //�ˮֳW�h��JOMRErrINFo Record
+ Function GetDocNoEdit(CaseID,DocNo,DocName:String):String; //取出DocNo是否被異動 (Y/N)
+ Function GetDocNo_Count(Path,DocNo:String):Integer; //取出文件份數
+ Function GetDocNo_Page(Path,DocNo:String):Integer; //取出文件總頁數
+ Function FormIDExists(FormCode:String;CheckDate:Boolean;index:Integer):Boolean; //檢查FormID是否存在及是否要檢查啟用停用日期
+ Function Case_DocNoExists(CaseID,Docno:String):Boolean; //Docno是否存在案件裡
+ Procedure ReSortFileName_New(Path:String); //檔名重新排序
+ Procedure ReSortFileName(Path:String); //檔名重新排序
+ Procedure ReSortFileName2Scanlist(Path:String); //檔名重新排序給Scanlist.dat
+ Function GetOMRCheckSet:Boolean; //下載OMR檢核XML檔
+ Function GetKeyinSet : Boolean; //取登打設定
+ Procedure CheckRule2OMRErrInfo; //檢核規則填入OMRErrINFo Record
Procedure ReNameContext(Path,OldName,NewName:String);
- Procedure DeleteImageFile(Path,FileName,CaseID:String); // �R���ɮ�
- Procedure DeleteFormCodeFile(CaseID,DocDir,FormID:String); //�R�����wFormID���
- Function DeleteDocNoFile(Path,DocNo:String):Boolean; //�R�����wDocNo���
- Procedure DeleteShowFile(Path:String); //�R����ܤ����v��
- Function GetDataDocNoPage(MainDocNo,MainVersion:String):Integer; //���O�������_��������
- Function CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //�ˬd�ץ�̪����_��������
- Function FindFormCodePages(CaseID,FormCode:String):Integer; //�p��ץ��FormID������
- Function GetDataFormCodePages(FormCode:String):Integer; //���O����FormcID������
- Procedure CaseReSize(CaseID:String); //�ץv���Y��
- Procedure ImageReSize(CaseID,FileName:String); //�̤Q�r�w���I���Y��
- Procedure ImageReSize_tmp(FormID,FileName:String); //�̤Q�r�w���I���Y��(�Ȧs��)
- Function TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //�ǰe�ץ�
+ Procedure DeleteImageFile(Path,FileName,CaseID:String); // 刪除檔案
+ Procedure DeleteFormCodeFile(CaseID,DocDir,FormID:String); //刪除指定FormID文件
+ Function DeleteDocNoFile(Path,DocNo:String):Boolean; //刪除指定DocNo文件
+ Procedure DeleteShowFile(Path:String); //刪除顯示中的影像
+ Function GetDataDocNoPage(MainDocNo,MainVersion:String):Integer; //取記錄的文件_版本頁數
+ Function CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //檢查案件裡的文件_版本頁數
+ Function FindFormCodePages(CaseID,FormCode:String):Integer; //計算案件裡FormID的頁數
+ Function GetDataFormCodePages(FormCode:String):Integer; //取記錄的FormcID的頁數
+ Procedure CaseReSize(CaseID:String); //案件的影像縮放
+ Procedure ImageReSize_FormID(CaseID,FileName:String); //依十字定位點做縮放
+ Procedure ImageReSize_tmp(FormID,FileName:String); //依十字定位點做縮放(暫存檔)
+ Function TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //傳送案件
Procedure NewTreeNodeRefresh;
Procedure MyTreeNode1Refresh;
Procedure MyTreeNode2ReFresh(CaseID:String);
Procedure MyTreeNode3ReFresh(CaseID:String);
- Function Node2DocNo(Node2:TTreeNode):String; //MyTreeNode2��DocNo�X��
- Function Node3DocNo(Node3:TTreeNode):String; //MyTreeNode3��DocNo�X��
- Function Node3FormID(Node3:TTreeNode):String; //MyTreeNode3��FormCode�X��
- Function GetNode2Name(Node2:TTreeNode):String; //��MyTreeNode2���ѧO�r�X��(�O���e�I���)
+ Function Node2DocNo(Node2:TTreeNode):String; //MyTreeNode2取DocNo出來
+ Function Node3DocNo(Node3:TTreeNode):String; //MyTreeNode3取DocNo出來
+ Function Node3FormID(Node3:TTreeNode):String; //MyTreeNode3取FormCode出來
+ Function GetNode2Name(Node2:TTreeNode):String; //取MyTreeNode2的識別字出來(記之前點選用)
//Function Down_Replace_Img(SPAth,DPath,CaseID:String):Boolean;
Function Down_Img(Path,CaseID:String):Boolean;
- Function GetNoNameCase(Path:string):String; //�����t��XXXX
- Procedure CaseResort(Path:String); //�ץ��ɮ��s�Ƨ�(������Docno�D)
- Procedure CaseResort2Scanlist(Path:String); //�ץ��ɮ��s�Ƨǵ�scanlist(������FormID��)
- Procedure DistinctDocinCase(Path:String); //�C�X�ץ�̪�Docno_����
- Procedure DistinctDocNoinCase(Path:String); //�C�X�ץ�̪�Docno
- Procedure ClearErrini(CaseID:String;CaseNode:TTreeNode); //�M���ˮ��ɮ�
- Procedure SetCaseList(Mode:Char;Index:Integer;text:String); //'A:�[�J,I:���J,D:�R��,E:�ק�'
- Procedure SetDocNoList(Mode:Char;Index:Integer;CaseNo,DocDir,Copies:String); //'A:�[�J,I:���J,D:�R��,E:�ק�'
- Procedure SetContextList(Mode:Char;Index:Integer;CaseNo,DocDir,FileName:String); //'A:�[�J,I:���J,D:�R��,E:�ק�'
- Function checkCaseOMRDone:Boolean; //�ˬd�ץ�O�_����OMR�ˮ�
- Function CheckCaseID_OK:Boolean; //�ˬd�O�_�����t�����ץ�
- Procedure CreateEmptyCase(Path,CaseID:String); //���ͪťծ�(�������)
- Procedure InitScrollRec; //��l�Ƽv��Scroll�O��
- Procedure GetScrollData(ISB:TImageScrollBox;Var HS,VS:Integer;Var iRate:Single); //���v��Scroll�O��
- Procedure SetScrollData(ISB:TImageScrollBox;HS,VS:Integer;iRate:Single); //�g�v��Scroll�O��
- Procedure FormIDReplace(CaseID,DocDir,OldFormID,NewFormID:String); //���wFormID���s��FormID
- Procedure ShowFileReplace(Path,NewFormID:String);//��ܪ��v�������s��FormID
- Procedure PageReplaceFormID(Path,NowFormID,NewFormID:String); //�������FormID
- Function ModeNeedCheck(OMRMode,ScanMode:String):Boolean; //���˼Ҧ��O�_�n���ˮ�
+ Function GetNoNameCase(Path:string):String; //取未配號XXXX
+ Procedure CaseResort(Path:String); //案件的檔案重新排序(次文件依Docno挑)
+ Procedure CaseResort2Scanlist(Path:String); //案件的檔案重新排序給scanlist(次文件依FormID排)
+ Procedure DistinctDocinCase(Path:String); //列出案件裡的Docno_版本
+ Procedure DistinctDocNoinCase(Path:String); //列出案件裡的Docno
+ Procedure ClearErrini(CaseID:String;CaseNode:TTreeNode); //清掉檢核檔案
+ Procedure SetCaseList(Mode:Char;Index:Integer;text:String); //'A:加入,I:插入,D:刪除,E:修改'
+ Procedure SetDocNoList(Mode:Char;Index:Integer;CaseNo,DocDir,Copies:String); //'A:加入,I:插入,D:刪除,E:修改'
+ Procedure SetContextList(Mode:Char;Index:Integer;CaseNo,DocDir,FileName:String); //'A:加入,I:插入,D:刪除,E:修改'
+ Function checkCaseOMRDone:Boolean; //檢查案件是否完成OMR檢核
+ Function CheckCaseID_OK:Boolean; //檢查是否有未配號的案件
+ Procedure CreateEmptyCase(Path,CaseID:String); //產生空白案號(重掃件用)
+ Procedure InitScrollRec; //初始化影像Scroll記錄
+ Procedure GetScrollData(ISB:TImageScrollBox;Var HS,VS:Integer;Var iRate:Single); //取影像Scroll記錄
+ Procedure SetScrollData(ISB:TImageScrollBox;HS,VS:Integer;iRate:Single); //寫影像Scroll記錄
+ Procedure FormIDReplace(CaseID,DocDir,OldFormID,NewFormID:String); //指定FormID更換成新的FormID
+ Procedure ShowFileReplace(Path,NewFormID:String);//顯示的影像換成新的FormID
+ Procedure PageReplaceFormID(Path,NowFormID,NewFormID:String); //選取頁更換FormID
+ Function ModeNeedCheck(OMRMode,ScanMode:String):Boolean; //掃瞄模式是否要做檢核
procedure WMMOUSEWHEEL(var message: TWMMouseWheel); message WM_MOUSEWHEEL;
- Function GetInputMask:String; //���o��J���O�渹�X
+ Function GetInputMask:String; //取得輸入的保單號碼
Function GetCasePage(Path,CaseID:String):Integer;
Function GetFormIDPage(FileList:TStringlist;FormID:String):Integer;
Procedure SetFile2Case(CaseID,FileName:String);
- Procedure WriteResize(ImgName,TxtName:String); //����Resize.dat
- Function GetCase_PageCount(var CaseCount,PageCount:Integer):Boolean; //���X�ץƶq�έ��� ID���ŭȮɬ����Ҧ���
- Function BarCode2FormID : String; //Barcode�̳W�h�নFormID
- Function BarCode2CaseID : String; //Barcode�̳W�h�নCaseID
+ Procedure WriteResize(ImgName,TxtName:String); //產生Resize.dat
+ Function GetCase_PageCount(var CaseCount,PageCount:Integer):Boolean; //取出案件的數量及頁數 ID為空值時為取所有的
+ Function BarCode2FormID : String; //Barcode依規則轉成FormID
+ Function BarCode2CaseID : String; //Barcode依規則轉成CaseID
Procedure WriteCaseIndex(Path:String);
Procedure ReadCaseIndex(Path:String);
Procedure ClearCaseIndex;
Procedure GetSelectImageFile;
- Function GetDocNoDir(Path,DocNo:String):String; //���X�ثeDocNo������
- Function CheckFormIDExists(DocNoNode:TTreeNode;FormID:String):Boolean; //�ˬdFormID�O�_�s�b����
+ Function GetDocNoDir(Path,DocNo:String):String; //取出目前DocNo的份數
+ Function CheckFormIDExists(DocNoNode:TTreeNode;FormID:String):Boolean; //檢查FormID是否存在文件裡
- Procedure ZipMainFile(SoPath,DePath,ZipName:String); //���Y�v����
- Procedure ZipMaskFile(SoPath,MarkPath,DePath,ZipName:String); //���Y�B�n�v����
- Procedure ParserPoint(S:String); //�ѪR�Q�r�I���r��
+ Procedure ZipMainFile(SoPath,DePath,ZipName:String); //壓縮影像檔
+ Procedure ZipMaskFile(SoPath,MarkPath,DePath,ZipName:String); //壓縮遮罩影像檔
+ Procedure ParserPoint(S:String); //解析十字點的字串
Function CheckScanDenialTime:Boolean;
- Function FormID2Anchor(FormID:String):String; //��FormID���X�Q�r�Ҧ�
- Function Index2Anchor(Anchor:String):String; //�Q�r�Ҧ� 0->NONE;1->ANCHOR;2->FRAME
- Function MemoInfoTransfer(Mode,Str:String;ID_S,Name_S:TStringlist):String; //���O�N�X���O���O�ഫ Mode 'ID':�N�X��W��;'NAME':�W����N�X
- Function GetFormatID(CaseID:String):String; //���X�ץ�FormatID
- Function FindNoSaveBarCode : Boolean; //��O�_�����n�x�s�v�������X
- Function CheckAvailable:Boolean; //�ˬd�O�_�i�ϥΤ���
- Function Case2Mask(SoPath,DePath:String):Boolean;//���;B�n�v��
- Function CheckNeedCrop(Graphic:TDibGraphic):Boolean; //�O�_�OA3�n���v��
- Function GetNewCustomDocNo(Path,DocName:String):String; //���X���ϥΪ��ۭq���N��
- Function GetCustomDocName(Path,DocNo:String):String; //���X�۩w���W��
- Function GetCustomFormID(Path,DocNo:String):String; //���X�۩w���FormID
- Function GetCustomDocDir(Path,DocName:String):String; //���X�۩w���DocDir
- Function FindCustomDocName(Path,DocName:String):Boolean; //�M��۩w���W�٬O�_�s�b
- Procedure DeleteCustomDocDir(Path,DocNo:String); //�R���۩w���DocNo
- Function CheckFormID_Prt(FormID:String):Boolean; //�ǤJ��FormID�O�_�w�]�C�L
+ Function FormID2Anchor(FormID:String):String; //用FormID取出十字模式
+ Function Index2Anchor(Anchor:String):String; //十字模式 0->NONE;1->ANCHOR;2->FRAME
+ Function MemoInfoTransfer(Mode,Str:String;ID_S,Name_S:TStringlist):String; //註記代碼註記類別轉換 Mode 'ID':代碼轉名稱;'NAME':名稱轉代碼
+ Function GetFormatID(CaseID:String):String; //取出案件的FormatID
+ Function FindNoSaveBarCode : Boolean; //找是否有不要儲存影像的條碼
+ Function CheckAvailable:Boolean; //檢查是否可使用元件
+ Function Case2Mask(SoPath,DePath:String):Boolean;//產生遮罩影像
+ Function CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像
+ Function GetNewCustomDocNo(Path,DocName:String):String; //取出未使用的自訂文件代號
+ Function GetCustomDocName(Path,DocNo:String):String; //取出自定文件名稱
+ Function GetCustomFormID(Path,DocNo:String):String; //取出自定文件FormID
+ Function GetCustomDocDir(Path,DocName:String):String; //取出自定文件DocDir
+ Function FindCustomDocName(Path,DocName:String):Boolean; //尋找自定文件名稱是否存在
+ Procedure DeleteCustomDocDir(Path,DocNo:String); //刪除自定文件DocNo
+ Function CheckFormID_Prt(FormID:String):Boolean; //傳入的FormID是否預設列印
procedure PrintImg(FileName, LoginID, Datetime,Path: WideString);
- Function FindLastestDocDir(CaseID,DocNo:String):String; //��X�̷s��DocDir
- Procedure Create_Cust_DocDir(CaseID:String); //���ͥ~���ǤJ�����N���Φ۩w���
- Procedure OldCasetoNewCase(CaseID:String); //�N�®ץ����ন�s�W�h
- Procedure ErrFormtoCurrentForm(CaseID,EFormID,CFormID:String);//�N�®ת����~FormID�勵�T��FormID
- Procedure SetRecordEditedDocDir(Mode:Char;CaseID,DocDir:String); //�O���Q���ʪ����ؿ� 'A:�[�JD:�R��'
- Function GetDocDir_Page(CaseID,DocDir:String):Integer; //���oDocDir������
+ Function FindLastestDocDir(CaseID,DocNo:String):String; //找出最新的DocDir
+ Procedure Create_Cust_DocDir(CaseID:String); //產生外面傳入的文件代號及自定文件
+ Procedure OldCasetoNewCase(CaseID:String); //將舊案份數轉成新規則
+ Procedure ErrFormtoCurrentForm(CaseID,EFormID,CFormID:String);//將舊案的錯誤FormID改正確的FormID
+ Procedure SetRecordEditedDocDir(Mode:Char;CaseID,DocDir:String); //記錄被異動的文件目錄 'A:加入D:刪掉'
+ Function GetDocDir_Page(CaseID,DocDir:String):Integer; //取得DocDir的頁數
Function Path2DocDir(Path,CaseID:String):String;
- Function GetDocNo_IS_WH(DocNo:String):Boolean; //DocNo�O�_���J�w���
- Procedure SortDocDir_FormID(CaseID,DocDir:String); //�NDocDir�̪����s���Ƨ�
+ Function GetDocNo_IS_WH(DocNo:String):Boolean; //DocNo是否為入庫文件
+ Procedure SortDocDir_FormID(CaseID,DocDir:String); //將DocDir裡的文件編號排序
Procedure GotoAttach(OldLevel:Integer);
- Function DocNoIs_In_WH(DocNo:String):Boolean; //DocNo�O�_���J�w���
- Procedure CreateCaseNeedData(Path:String); //�����v���I���|�֤G�Ӥ�r��,����CaseDocNo.dat��DocDir.dat
+ Function DocNoIs_In_WH(DocNo:String):Boolean; //DocNo是否為入庫文件
+ Procedure CreateCaseNeedData(Path:String); //先做影像截取會少二個文字檔,產生CaseDocNo.dat及DocDir.dat
Procedure SetDocDirtoSelected(CaseNode:TTreeNode;DocDir:String);
- Function CheckSelectImg_UseCase(Path,CaseID:String):Boolean; //�ˬd��ܪ��v���O�_���]�t�Q�ޥΪ��v��
- Function TransOldCaseFile(Path:String):Boolean; //�W�Ǥޥ��¥O����
+ Function CheckSelectImg_UseCase(Path,CaseID:String):Boolean; //檢查選擇的影像是否有包含被引用的影像
+ Function TransOldCaseFile(Path:String):Boolean; //上傳引用舊件的記錄檔
Function Writelog(CaseID:String):Boolean;
- Function FormIDAppear(FormID:String):Boolean; //FormID�O�_�i�X�{
- Function DocNoAppear(DocNo:String):Boolean; //DocNo�O�_�i�X�{
- Function GetDocNoCount(CaseID,DocNo:String):Integer; //��DocNo�ƶq
- Function GetDocDirCopies(CaseID,DocDir:String):Integer; //��DocDir����
- Procedure SetDocDirCopies(CaseID,DocDir:String;NewCopies:Integer); //�ק�DocDir����
- Function GetDocDirCopies_Rec(Path,CaseID,DocDir:String):Integer; //���O���̪�DocDir����
- Function GetCustomNameCount(CustomName:String):Integer; //���~�Ǫ��W�ټƶq
- Function GetCustomDocNoCount(Docno:String):Integer; //���~�Ǫ�DocNo�ƶq
+ Function FormIDAppear(FormID:String):Boolean; //FormID是否可出現
+ Function DocNoAppear(DocNo:String):Boolean; //DocNo是否可出現
+ Function GetDocNoCount(CaseID,DocNo:String):Integer; //取DocNo數量
+ Function GetDocDirCopies(CaseID,DocDir:String):Integer; //取DocDir份數
+ Procedure SetDocDirCopies(CaseID,DocDir:String;NewCopies:Integer); //修改DocDir份數
+ Function GetDocDirCopies_Rec(Path,CaseID,DocDir:String):Integer; //取記錄裡的DocDir份數
+ Function GetCustomNameCount(CustomName:String):Integer; //取外傳的名稱數量
+ Function GetCustomDocNoCount(Docno:String):Integer; //取外傳的DocNo數量
Function ISGuideFormID(FormID:String):Boolean;
- Function CaseDelete_Enable(CaseID:String):Boolean; //�ץ�i�_�Q�R��
+ Function CaseDelete_Enable(CaseID:String):Boolean; //案件可否被刪除
- Procedure MoveImage(Path:String;mp:Integer); //���ʭ���
- Procedure MoveImage_Drag(Path:String;fp,tp:Integer); //��Բ��ʭ���
+ Procedure MoveImage(Path:String;mp:Integer); //移動頁數
+ Procedure MoveImage_Drag(Path:String;fp,tp:Integer); //拖拉移動頁數
- Procedure SetUseCase(Mode:Char;Path,DocDir,FormCaseID,ToCaseID:String); //�O���ޥΨ�L�ץ� A:�[�J D:�R��
- Function GetUseCase(Mode:Char;Path,DocDir:String):String; //F:���Q�ޥ� To:�ޥ�
+ Procedure SetUseCase(Mode:Char;Path,DocDir,FormCaseID,ToCaseID:String); //記錄引用其他案件 A:加入 D:刪掉
+ Function GetUseCase(Mode:Char;Path,DocDir:String):String; //F:取被引用 To:引用
Procedure Case2upload(CaseID:String);
Procedure Download2Case(SoDir,DeDir:String);
- procedure view_image_FormCode(Path,FormCode:String;stpage,stview:integer); //��FormCode�ӧ�v��
- procedure view_image_DocNo(Path,DocNo,FormID:String;Pages:integer); //��DocNo�ӧ�v��
+ procedure view_image_FormCode(Path,FormCode:String;stpage,stview:integer); //用FormCode來找影像
+ procedure view_image_DocNo(Path,DocNo,FormID:String;Pages:integer); //用DocNo來找影像
- Function ShapeName2PreViewISBName(SP:TShape):String; //��X���wPreViewISBName
+ Function ShapeName2PreViewISBName(SP:TShape):String; //轉出指定PreViewISBName
Procedure CreatePreViewISB(Count:Integer);
Procedure FreePreViewISB;
Procedure FitPreViewISB;
- Procedure PaintShape(FromImg,ToImg:TImageScrollBox); //�e���Q������v��
+ Procedure PaintShape(FromImg,ToImg:TImageScrollBox); //畫有被選取的影像
Procedure FreeShapeobj(SelectISB : TImageScrollBox);
Procedure ISBClick(Sender : TObject);
Procedure ISBMouseMove(Sender: TObject; Shift: TShiftState;
@@ -793,8 +810,8 @@
procedure BtnMouseEnter(Sender: TObject);
- procedure PageEnd; //���y��������
- Procedure PageDone; //���y��������ܼv��
+ procedure PageEnd; //掃描接收完成
+ Procedure PageDone; //掃描完成後顯示影像
procedure StatrTwainScan;
procedure OnAcquire( const DibHandle : THandle;
const XDpi : Word;
@@ -813,6 +830,18 @@
procedure MouseLeaveEvent(Sender: TObject);
procedure PaintEvent(Sender: TObject);
function GetCurrentVersionNo: String;
+ procedure initParameter;
+ procedure LastInitFormidListCreate(path:string);
+ function checkFormCodeIsCustom(path,formcode:string):boolean;
+ function ISDivPageFormID(FormID: String): Boolean;
+ function GetSampleInf: Boolean;
+ procedure InitExistImgList(casepath:String);
+ 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 CheckCaseAttach_OK: Boolean;
+ function DeleteDocNoFileForESCAN(Path, DocNo: String): Boolean; //2017 確認是否有未歸類文件
protected
{ Protected declarations }
procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override;
@@ -918,6 +947,22 @@
procedure Set_is_oldcase(const Value: WideString); safecall;
function Get_custdocyn: WideString; safecall;
procedure Set_custdocyn(const Value: WideString); safecall;
+ function Get_casenolength: WideString; safecall;
+ function Get_filesizelimit: WideString; safecall;
+ function Get_imgdpi: WideString; safecall;
+ function Get_scancolor: WideString; safecall;
+ procedure Set_casenolength(const Value: WideString); safecall;
+ procedure Set_filesizelimit(const Value: WideString); safecall;
+ procedure Set_imgdpi(const Value: WideString); safecall;
+ procedure Set_scancolor(const Value: WideString); safecall;
+ function Get_imgdelete: WideString; safecall;
+ procedure Set_imgdelete(const Value: WideString); safecall;
+ function Get_check_main_form: WideString; safecall;
+ function Get_isExternal: WideString; safecall;
+ procedure Set_check_main_form(const Value: WideString); safecall;
+ procedure Set_isExternal(const Value: WideString); safecall;
+ function Get_WH_CATEGORY: WideString; safecall;
+ procedure Set_WH_CATEGORY(const Value: WideString); safecall;
public
{ Public declarations }
procedure Initialize; override;
@@ -939,7 +984,7 @@
{ TCB_IMGPSScanX }
-function TCB_IMGPSScanX.GetCurrentVersionNo: String; //����ۨ��������һݭn
+function TCB_IMGPSScanX.GetCurrentVersionNo: String; //獲取自身版本號所需要
var
dLength,dSize:DWORD;
pcBuf,pcValue:PChar;
@@ -1009,16 +1054,16 @@
M_Content,M_ID,M_Name : String;
S : TStringlist;
begin
- ShowText := _Msg('�Ƶ���J��,�еy��');
+ ShowText := _Msg('備註輸入中,請稍候');
DataLoading(True,True);
SortMemoForm := TSortMemoForm.Create(Self);
S := TStringlist.Create;
try
- InitialLanguage(SortMemoForm); //���J�h��y��
+ InitialLanguage(SortMemoForm); //載入多國語言
- SortMemoForm.ContentList := TStringlist.Create; //���O���e
- SortMemoForm.MemoIDList := TStringlist.Create; //���O�N��
- SortMemoForm.MemoNameList := TStringlist.Create; //���O�W��
+ SortMemoForm.ContentList := TStringlist.Create; //註記內容
+ SortMemoForm.MemoIDList := TStringlist.Create; //註記代號
+ SortMemoForm.MemoNameList := TStringlist.Create; //註記名稱
for i := 1 to MEMO_INF_List.Count - 1 do
begin
@@ -1026,9 +1071,9 @@
M_ID := GetSQLData(MEMO_INF_List,'T1.MEMO_TYPE',i);
M_Name := GetSQLData(MEMO_INF_List,'T2.MEMO_TYPE_NAME',i);
SortMemoForm.ComboBox1.Items.Add(M_Name+'-->'+M_Content);
- SortMemoForm.ContentList.Add(M_Content); //���O���e
- SortMemoForm.MemoIDList.Add(M_ID); //���O�N��
- SortMemoForm.MemoNameList.Add(M_Name); //���O�W��
+ SortMemoForm.ContentList.Add(M_Content); //註記內容
+ SortMemoForm.MemoIDList.Add(M_ID); //註記代號
+ SortMemoForm.MemoNameList.Add(M_Name); //註記名稱
end;
if FileExists(DisplayPath+'Scan_Memo.dat') then
begin
@@ -1061,9 +1106,9 @@
end;
S.SaveToFile(DisplayPath+'Scan_Memo.dat');
end;
- SortMemoForm.ContentList.Free; //���O���e
- SortMemoForm.MemoIDList.Free; //���O�N��
- SortMemoForm.MemoNameList.Free; //���O�W��
+ SortMemoForm.ContentList.Free; //註記內容
+ SortMemoForm.MemoIDList.Free; //註記代號
+ SortMemoForm.MemoNameList.Free; //註記名稱
finally
SortMemoForm.Free;
S.Free;
@@ -1168,6 +1213,60 @@
PM605Click(nil);
end;
+procedure TCB_IMGPSScanX.InitExistImgList(casepath: String);
+var
+ 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
+ ExistImgList.Add(LoadFileGetMD5(casepath+'Download\'+ST1.Strings[i])) ;
+ end;
+
+ ST1.Free;
+ ST2.Free;
+ ST3.Free;
+//ShowMessage('ExistImgList='+ExistImgList.Text);
+end;
+
procedure TCB_IMGPSScanX.Initialize;
begin
inherited Initialize;
@@ -1182,14 +1281,14 @@
OnMouseLeave := MouseLeaveEvent;
OnPaint := PaintEvent;
MpsKey := 'fbim';
- Seg := 3; //�s���������
+ Seg := 3; //瀏覽窗的邊界
Ext := '.tif';
SafePixel := 20;
- CaseIDLength := 16; //�ץ�s������ 16�X
- FormIDLength := 15; //FormID���� 15�X
- DocNoLength := 8; //DocNo���� 8�X (1~8)
- Bt :=4; //�h���u�ɾ�u�P�_���e�ԭ�
- CropBarcode := 'CC';//�n���v�������X
+ CaseIDLength := 16; //案件編號長度 16碼 20170222 在用網頁參數來取代
+ FormIDLength := 15; //FormID長度 15碼 20170222 發現是用來辨識條碼用的
+ ///DocNoLength := 8; //DocNo長度 8碼 (1~8) //20170222 發現沒用到就註解吧
+ Bt :=4; //去直線時橫線判斷的容忍值
+ CropBarcode := 'CC';//要切影像的條碼
end;
procedure TCB_IMGPSScanX.ISB1Click(Sender: TObject);
@@ -1228,7 +1327,7 @@
procedure TCB_IMGPSScanX.ISB1Enter(Sender: TObject);
begin
- ISB1.SetFocus;
+ //ISB1.SetFocus;
end;
procedure TCB_IMGPSScanX.ISB1ImageMouseDown(Sender: TObject; Button: TMouseButton;
@@ -1237,7 +1336,7 @@
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;
@@ -1270,12 +1369,19 @@
procedure TCB_IMGPSScanX.ISB1ImageMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
- Edit1.SetFocus;
+ //Edit1.SetFocus;
//TImageScrollBox(Sender).SetFocus;
if TImageScrollBox(Sender).FileName = '' then
+ begin
+//ShowMessage('AAA');
+Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName+' time='+FormatDateTime('yyyy/mm/dd HH:MM:SS', now);
TImageScrollBox(Sender).MouseMode := mmUser
+ end
Else
+ begin
+Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName;
ViewMouseMode(NowClick);
+ end;
end;
procedure TCB_IMGPSScanX.ISB1ImageMouseUp(Sender: TObject; Button: TMouseButton;
@@ -1303,7 +1409,7 @@
SelectISB.Redraw(True);
FitPreViewISB;
ISBClick(SelectISB);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
end;
end;
@@ -1500,34 +1606,39 @@
procedure TCB_IMGPSScanX.DestroyEvent(Sender: TObject);
begin
- //********�M���********
- Doc_Inf_List.Free; //Doc_Inf �M�� Docno + ������key
- DM_FORM_INF_List.Free; //DM_FORM_INF �M�� Docno + ������key
- FORM_INF_List.Free; //FORM_INF���M��
- CHECK_RULE_INF_List.Free; //CHECK_RULE_INF �M��
- MEMO_INF_List.Free; //MEMO_INF �M��
- WORK_INF_List.Free; //WORK_INF �M��
- LASTEST_FORM_INF_List.Free; // LASTEST_FORM_INF �M��
- FindResult.Free ; //��SQLData�����G
- OMRFileList.Free; //�nOMR�ˮ֪����(�u�ˬd�C��Form���Ĥ@��)
- FormCode_PageSize.Free; //��w�]�j�p FormCode_Height_Width
- DocNo_NeedDoc.Free; //��Docno�ɭn�̪ۨ���� DocNo_�̤ۨ��_�̤ۨ��
- DocNo_NoDoc.Free; //��Docno�ɤ�������� DocNo_�������_�������
- DocNo_VerinCase.Free; //�ץ�̪�DocNo+�������M��
- CaseDocNoList.Free; //�ץ�̪�DocNo�M��
- CaseDocNo_CopiesList.Free; //�ץ�̪�DocNo���ƲM��
- CaseList.Free; //�O�����ˮץ���
- NoSaveBarCodeList.Free; //���x�s�����X�M��
- FormID_List.Free; //FormID�M��
- DocNo_List.Free; //DocNo�M��
- Context_DocnoList.Free; //�ץ�̪��ɮ�Docno�M��
- ContextList.Free; //�ץ�̪��ɮײM��
- NowShowFileList.Free; //�ثe��ܪ��v���M��
- NowSelectFileList.Free; //�ثe�Q�I�諸�v���M��
- Cust_DocNoList.Free; //�ۦ�w�q���W��
- IN_WH_DocNoList.Free; //�J�w�����M��
- GuideFormIDList.Free; //�n��ɤޭ����M��
- //********�M���********
+ //********清單區********
+ 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; //案件裡的檔案清單
+ NowShowFileList.Free; //目前顯示的影像清單
+ NowSelectFileList.Free; //目前被點選的影像清單
+ Cust_DocNoList.Free; //自行定義文件名稱
+ IN_WH_DocNoList.Free; //入庫的文件清單
+ GuideFormIDList.Free; //要當導引頁表單清單
+ DivPageFormIDList.Free; //要當分案頁表單清單
+ LastInitFormidList.Free;
+ LastAddFormidList.Free;
+ SampleFormIDList.Free;
+ ExistImgList.Free;
+ //********清單區********
if FEvents <> nil then FEvents.OnDestroy;
end;
@@ -1714,12 +1825,12 @@
FromIndex := PageLv.ItemIndex;
if FromIndex = 0 then
begin
- Showmessage(_Msg('����q��1������'));
+ Showmessage(_Msg('不能從第1頁分案'));
Exit;
end;
- If MessageDlg(Format(_Msg('�O�_�T�w�q%d�����X�s��'),[PageLV.ItemIndex+1]),Mtconfirmation,[mbyes,mbcancel],0) = mrcancel Then Exit;
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ If MessageDlg(Format(_Msg('是否確定從%d頁分出新案'),[PageLV.ItemIndex+1]),Mtconfirmation,[mbyes,mbcancel],0) = mrcancel Then Exit;
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
CaseID := GetNoNameCase(ImageSavePath);
NewPath := ImageSavePath + CaseID+'\';
Str2Dir(NewPath);
@@ -1739,7 +1850,7 @@
ContextList.SaveToFile(DisplayPath+'Context.dat');
end;
SetCaseList('I',MyTreeNode1.IndexOf(MyTreeNode2)+1,CaseID);
- if FileExists(DisplayPath+'CaseIndex.dat') then //���g��N�����X�ӦA�g�J�s���
+ if FileExists(DisplayPath+'CaseIndex.dat') then //把原經辦代號取出來再寫入新件裡
begin
S.LoadFromFile(DisplayPath+'CaseIndex.dat');
end;
@@ -1751,7 +1862,7 @@
S.Free;
end;
LoadImgFile;
- Showmessage(_Msg('���ק���'));
+ Showmessage(_Msg('分案完成'));
end;
procedure TCB_IMGPSScanX.PM402Click(Sender: TObject);
@@ -1785,11 +1896,11 @@
PreNode2Name := '';
if TreeView1.Selected.Parent = MyTreeNode1 then
PreNode2Name:= GetNode2Name(MyTreeNode2);
- ShowText := _Msg('����k����,�еy��');
+ ShowText := _Msg('文件歸類中,請稍候');
DataLoading(True,True);
DocListForm := TDocListForm.Create(self);
try
- InitialLanguage(PatchDlg); //���J�h��y��
+ InitialLanguage(PatchDlg); //載入多國語言
for i := 1 to FORM_INF_List.Count - 1 do
begin
FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
@@ -1819,11 +1930,11 @@
PageReplaceFormID(DisplayPath,NowFormCode,FormID);
end;
//DrawDocItem(MytreeNode1,FORM_INF_List,NowCaseno);
- //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno); //201408280��
+ //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno); //201408280改
DrawDocItem2(MytreeNode1,NowCaseno);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
- //Showmessage(_Msg('�k������')); //20101103 User�n�D����
- if PreNode2Name <> '' then // �^��쥻�I�諸���`�I�W
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
+ //Showmessage(_Msg('歸類完成')); //20101103 User要求拿掉
+ if PreNode2Name <> '' then // 回到原本點選的文件節點上
begin
for i := 0 to MyTreeNode1.Count - 1 do
begin
@@ -1859,7 +1970,7 @@
PreNode2Name := '';
if TreeView1.Selected.Parent = MyTreeNode1 then
PreNode2Name:= GetNode2Name(MyTreeNode2);
- ShowText := _Msg('����k����,�еy��');
+ ShowText := _Msg('文件歸類中,請稍候');
DataLoading(True,True);
GoAtt := False;
if (MytreeNode2 <> nil) and (Pos('Attach',MyTreeNode2.Text)>0) then
@@ -1869,14 +1980,14 @@
end;
DocListForm := TDocListForm.Create(self);
try
- InitialLanguage(DocListForm); //���J�h��y��
- //InitialLanguage(PatchDlg); //���J�h��y��
+ InitialLanguage(DocListForm); //載入多國語言
+ //InitialLanguage(PatchDlg); //載入多國語言
for i := 1 to FORM_INF_List.Count - 1 do
begin
FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
FormName := GetSQLData(FORM_INF_List,'T1.FORM_DESC',i);
DocNo := GetSQLData(FORM_INF_List,'T1.DOC_NO',i)+GetSQLData(FORM_INF_List,'T1.DOC_VERSION',i);
- if not FormIDAppear(FormID) then Continue;
+ if not FormIDAppear(FormID) then Continue; //20170816 先秀全部
//Showmessage(FORM_INF_List.Text);
//showmessage(inttostr(FORM_INF_List.Count)+#13+inttostr(self.Doc_Inf_List.Count));
@@ -1908,17 +2019,17 @@
Else
DocDir := FindLastestDocDir(NowCaseno,DocNo);
-
- if DocNoNeedDiv(DocNo) then //�n������
+//ShowMessage('DocNoNeedDiv(DocNo)='+BoolToStr(DocNoNeedDiv(DocNo),true));
+ if DocNoNeedDiv(DocNo) then //要分份數
begin
if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(NowCaseno,DocDir)>0)) or (DocDir = '') then
DocDir := DocNo2DocNoDir(ImageSavePath + NowCaseno+'\',DocNo);
end
- Else //��������
+ Else //不分份數
begin
if DocNo <> '' then
DocDir := DocNo
- else //Attach ����
+ else //Attach 附件
DocDir := DocNo2DocNoDir(ImageSavePath + NowCaseno+'\',DocNo);
end;
if (not DirectoryExists(ImageSavePath + NowCaseno+'\'+DocDir+'\')) and (DocDir <> AttName) then
@@ -1948,7 +2059,7 @@
end;
ReSortFileName(ExtractFilePath(iISB.FileName));
DrawDocItem2(MytreeNode1,NowCaseno);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
if GoAtt then
begin
@@ -1988,11 +2099,11 @@
GoAtt := True;
end;
- if InputQuery('��J��L���W��','���W��',CustomDocName) then
+ if InputQuery('輸入其他文件名稱','文件名稱',CustomDocName) then
begin
if FindCustomDocName(DisplayPath,CustomDocName) then
begin
- Showmessage(Format('���W��:"%s"�v�s�b',[CustomDocName]));
+ Showmessage(Format('文件名稱:"%s"己存在',[CustomDocName]));
Exit;
end;
CustomDocNo := GetNewCustomDocNo(DisplayPath,CustomDocName);
@@ -2032,7 +2143,7 @@
end;
ReSortFileName(ExtractFilePath(iISB.FileName));
DrawDocItem2(MytreeNode1,NowCaseno);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
if GoAtt then
begin
@@ -2071,7 +2182,7 @@
iISBName,OldName : String;
iISB : TImageScrollBox;
begin
- if MessageDlg('�O�_�T�w�R��??',mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+ if MessageDlg('是否確定刪除??',mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
for i := 0 to ComponentCount -1 do
begin
@@ -2080,14 +2191,26 @@
//Showmessage(Components[i].Name);
iISBName := ShapeName2PreViewISBName(TShape(Components[i]));
iISB := TImageScrollBox(FindComponent(iISBName));
+//ShowMessage('iISB.FileName='+iISB.FileName);
+//ShowMessage(ExtractFilePath(iISB.FileName)+','+ExtractFileName(iISB.FileName)+','+NowCaseNo);
+// if (FMode = 'ESCAN') and (FModeName<>'異動件') then
+// begin
+// if ISExistImg(iISB.FileName) then
+// begin
+// ShowMessage(_Msg('此圖為非當次掃瞄,不可刪除'));
+// Exit;
+// 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)]);
+ MyTreeNode1.Text := Format('%s-%d'+_Msg('頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
NewTreeNodeRefresh;
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
TreeView1click(self);
end;
@@ -2095,7 +2218,7 @@
var
mp:string;
begin
- mp := InputBox('���ʭ���','�п�J���J���X','');
+ mp := InputBox('移動頁數','請輸入移入頁碼','');
if (mp <> '') then
begin
MoveImage(DisplayPath+NowDocDir+'\',strtoint(mp));
@@ -2113,10 +2236,10 @@
begin
IF not InitialOk Then
begin
- Showmessage(_msg('��T�|���U������,�еy�ԩέ��s�i�J'));
+ Showmessage(_msg('資訊尚未下載完成,請稍候或重新進入'));
Exit;
end;
- if (FMode = 'RSCAN') or (FMode = 'ESCAN') then
+ if (FMode = 'RSCAN') or (FMode = 'ESCAN') or (FMode = 'DSCAN') then
begin
if NewTreeNode.Count > 0 then
begin
@@ -2124,6 +2247,7 @@
TreeView1click(nil);
FirstDocDir := '';
NowGuideFormID := '';
+ NowDivPageFormID :='';
AddScanBtnclick(nil);
end;
end
@@ -2139,6 +2263,7 @@
ScanPath := '';
ScanCaseno := '';
NowGuideFormID := '';
+ NowDivPageFormID :='';
ClearView(1);
ContextList.Clear;
Try
@@ -2183,15 +2308,15 @@
begin
IF not InitialOk Then
begin
- Showmessage(_msg('��T�|���U������,�еy�ԩέ��s�i�J'));
+ Showmessage(_msg('資訊尚未下載完成,請稍候或重新進入'));
Exit;
end;
- ShowText := _Msg('���˰ѼƳ]�w��,�еy��');
+ ShowText := _Msg('掃瞄參數設定中,請稍候');
DataLoading(True,True);
PatchDlg := TPatchDlg.Create(self);
try
- InitialLanguage(PatchDlg); //���J�h��y��
+ InitialLanguage(PatchDlg); //載入多國語言
PatchDlg.BlankuseCB.Checked := DeviceDelete;
if PatchDlg.BlankuseCB.Checked then
PatchDlg.SpinEdit5.Enabled := True
@@ -2303,9 +2428,10 @@
P,v,v1,v2,ln,i : Integer;
iDocDir,iDocNo : String;
begin
- if TreeView1.Selected = NewTreeNode then //���R //�s���y��
+ if TreeView1.Selected = NewTreeNode then //全刪 //新掃描件
begin
- If Messagedlg(_Msg('�O�_�R���Ҧ��ץ�?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+
+ If Messagedlg(_Msg('是否刪除所有案件?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
clearView(1);
Application.ProcessMessages;
_DelTree(ImageSavePath);
@@ -2315,11 +2441,12 @@
CreateEmptyCase(ImageSavePath,FCaseID);
end;
LoadImgFile;
- Showmessage(_Msg('�R������'));
+ Showmessage(_Msg('刪除完成'));
end
- Else if TreeView1.Selected = MyTreeNode1 then //�ץ�s��
+ Else if TreeView1.Selected = MyTreeNode1 then //案件編號
begin
- If Messagedlg(Format(_Msg('�s��(%s)�O�_�R��?'),[NowCaseno]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+
+ If Messagedlg(Format(_Msg('編號(%s)是否刪除?'),[NowCaseno]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
clearView(1);
Application.ProcessMessages;
if (FMode = 'ESCAN') then
@@ -2336,7 +2463,7 @@
_DelTree(ImageSavePath+NowCaseno+'\'+iDocDir);
SetUseCase('D',ImageSavePath+NowCaseno+'\',iDocDir,'','');
SetDocNoList('D',-1,NowCaseNo,iDocDir,'');
- if (Copy(iDocNo,1,5)='ZZZZZ') then //20140703 �R���۩w���ɭn�Rini�ɸ��
+ if (Copy(iDocNo,1,5)='ZZZZZ') then //20140703 刪除自定文件時要刪ini檔資料
DeleteCustomDocDir(ImageSavePath+NowCaseno+'\',iDocDir);
end
@@ -2346,7 +2473,7 @@
_DelTree(DisplayPath);
SetCaseList('D',NewTreeNode.IndexOf(MyTreeNode1),'');
end;
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
if (FMode = 'ESCAN') then
begin
@@ -2358,81 +2485,77 @@
end;
LoadImgFile;
end
- Else if TreeView1.Selected = MyTreeNode2 then //���h
+ Else if TreeView1.Selected = MyTreeNode2 then //文件層
begin
- If Messagedlg(Format(_Msg('���(%s)�O�_�R��?'),[DocNo2DocName(NowCaseno,NowDocNo)]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+ 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 �R���۩w���ɭn�Rini�ɸ��
+
+ if (Copy(NowDocNo,1,5)='ZZZZZ') then //20140703 刪除自定文件時要刪ini檔資料
DeleteCustomDocDir(ImageSavePath+NowCaseno+'\',NowDocDir);
DrawDocItem2(MytreeNode1,NowCaseno);
- MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
NewTreeNodeRefresh;
- {if (FMode <>'ESCAN') and (ContextList.Count = NowShowFileList.Count) then
- begin
- if Messagedlg(_Msg('�R����N�L�v��,�ץ�N�R��,�O�_�T�w?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
- _DelTree(DisplayPath);
- SetCaseList('D',NewTreeNode.IndexOf(MyTreeNode1),'');
- if (FMode = 'ESCAN') then
- begin
- MkDir(ImageSavePath+FCaseID);
- CreateEmptyCase(ImageSavePath,FCaseID);
- end;
- LoadImgFile;
- end
- Else
- begin
- DeleteShowFile(DisplayPath);
- DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);
- P := ContextList.Count;
- MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,p]);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
- NewTreeNodeRefresh;
- end;
- Showmessage(_Msg('�R������')); }
-
- //Showmessage(_Msg('�R������')); //20101102 User�n�D����
end
- Else if TreeView1.Selected = MyTreeNode3 then //FormID�h
+ Else if TreeView1.Selected = MyTreeNode3 then //FormID層
begin
- If Messagedlg(Format(_Msg('���(%s)�O�_�R��?'),[NowFormName]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+ If Messagedlg(Format(_Msg('文件(%s)是否刪除?'),[NowFormName]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+
DeleteFormCodeFile(NowCaseNo,NowDocDir,NowFormCode);
SetRecordEditedDocDir('A',NowCaseNo,NowDocDir);
DrawDocItem2(MytreeNode1,NowCaseno);
- MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
NewTreeNodeRefresh;
- {if (FMode <>'ESCAN') and (ContextList.Count = NowShowFileList.Count) then
- begin
- if Messagedlg(_Msg('�R����N�L�v��,�ץ�N�R��,�O�_�T�w?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
- _DelTree(DisplayPath);
- SetCaseList('D',NewTreeNode.IndexOf(MyTreeNode1),'');
- if (FMode = 'ESCAN') then
- begin
- MkDir(ImageSavePath+FCaseID);
- CreateEmptyCase(ImageSavePath,FCaseID);
- end;
- LoadImgFile;
- end
- Else
- begin
- DeleteShowFile(DisplayPath);
- DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);
- P := ContextList.Count;
- MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,p]);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
- NewTreeNodeRefresh;
- end;
- Showmessage(_Msg('�R������'));
- //Showmessage(_Msg('�R������')); //20101102 User�n�D���� }
end;
+end;
+
+function TCB_IMGPSScanX.DocNoIsExistImg(DocNopath:String):boolean;
+var
+ i:integer;
+ ST:TStringList;
+begin
+ Result:=False;
+ ST:=TStringList.Create;
+ ST.loadFromfile(DocNopath+'\Context.dat');
+//ShowMessage(ST.Text);
+ for I := 0 to ST.Count - 1 do
+ begin
+ if ISExistImg(DocNopath+ST.Strings[i]) then
+ begin
+
+ Result:=False;
+ Exit;
+ Break;
+ end;
+ end;
+ Result:=True;
+
+
+end;
+
+procedure TCB_IMGPSScanX._DelTreeForExistImg(ASourceDir:String);
+var
+ i:integer;
+ ST:TStringList;
+begin
+
end;
procedure TCB_IMGPSScanX.PM102Click(Sender: TObject);
@@ -2445,7 +2568,7 @@
GoViewMode;
ISB1.ZoomMode := zmFitWidth;
- NewCaseID := InputBox(_Msg('�ק�ץ�s��'),_Msg('�s�ץ�s��'),'');
+ NewCaseID := InputBox(_Msg('修改案件編號'),_Msg('新案件編號'),'');
ShowNewCaseID := NewCaseID;
ShowNowCaseID := NowCaseno;
@@ -2453,186 +2576,386 @@
IF Length(NewCaseID)<>CaseIDLength Then
begin
- Showmessage(_Msg('��J�榡���~'));
+ Showmessage(_Msg('輸入格式錯誤'));
Exit;
end;
if DirectoryExists(ImageSavePath+NewCaseID) then
begin
- Showmessage(NewCaseID+_Msg('�v�s�b,�L�k�ק�'));
+ Showmessage(NewCaseID+_Msg('己存在,無法修改'));
Exit;
end;
- if Messagedlg(Format(_Msg('�O�_�N%s�אּ%s'),[ShowNowCaseID,ShowNewCaseID]),Mtconfirmation,[mbyes,mbcancel],0) = mrcancel then
+ if Messagedlg(Format(_Msg('是否將%s改為%s'),[ShowNowCaseID,ShowNewCaseID]),Mtconfirmation,[mbyes,mbcancel],0) = mrcancel then
Exit;
ClearView(1);
RenameFile(ImageSavePath+NowCaseno,ImageSavePath+NewCaseID);
SetCaseList('E',NewTreeNode.IndexOf(MyTreeNode1),NewCaseID);
//P := ContextList.Count;
- MytreeNode1.Text := Format(_Msg('%s-%d��'),[NewCaseID,GetCasePage(ImageSavePath,NewCaseID)]);
+ MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NewCaseID,GetCasePage(ImageSavePath,NewCaseID)]);
//DrawDocItem(MyTreeNode1,FORM_INF_List,NewCaseID);
DrawDocItem2(MytreeNode1,NewCaseID);
- Showmessage(_Msg('�ק粒��'));
+ Showmessage(_Msg('修改完成'));
end;
procedure TCB_IMGPSScanX.PM103Click(Sender: TObject);
begin
if TreeView1.Selected = nil then Exit;
+
+ {if Treeview1.Selected = NewTreeNode then
+ begin
+ ShowMessage('AAAAA');
+ end;
+ if Treeview1.Selected = MyTreeNode1 then
+ begin
+ ShowMessage('BBBBB');
+ end;
+
+ if Treeview1.Selected = MyTreeNode2 then
+ begin
+ ShowMessage('CCCCC');
+ end;
+
+ if Treeview1.Selected = MyTreeNode3 then
+ begin
+ ShowMessage('DDDDD');
+ end;
+ }
if (Treeview1.Selected = NewTreeNode) {or (Treeview1.Selected = MyTreeNode1)} then
+ begin
+//ShowMessage('NewScanBtnClick');
NewScanBtnClick(self)
+ end
Else
+ begin
+//ShowMessage('AddScanBtnclick');
AddScanBtnclick(self);
+ 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;
-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;
+Begin
OpenDialog1.Filter := 'Image files|*.TIF;*.JPG';
- if OpenDialog1.Execute then
- begin
+ If OpenDialog1.Execute Then
+ Begin
ISB := TImageScrollBox.Create(self);
- try
- ShowText :=_Msg('�ɮץ[�J��,�еy��');
- DataLoading(True,True);
- if TreeView1.Selected = nil then Exit;
- FName := OpenDialog1.FileName;
- CaseID := NowCaseno ;
- imageCount := 0;
- P := ISB.ImageCountFromFile(OpenDialog1.FileName);
- for I := 1 to P do
- begin
- ShowText :=_Msg('�ɮץ[�J��,�еy��('+inttostr(i)+'/'+inttostr(P)+')');
- DataLoading(True,True);
- ISB.LoadFromFile(FName,i);
- DeskewImg(ISB.Graphic);
- if (TreeView1.Selected = NewTreeNode) or (TreeView1.Selected = MyTreeNode1) then
- begin
+try
+ ShowText := _Msg('檔案加入中,請稍候');
+ DataLoading(True, True);
+ If TreeView1.Selected = Nil Then
+ Exit;
+ FName := OpenDialog1.FileName;
+
+ FindFirst(FName, faAnyfile, FileRec);
+
+ 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;
+
+ 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);
+ 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-1 do
- begin
- if MpsBarcodeinf.r180[n] <> 0 then //�̱��X������v��
- 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; //���XFormID
+ End;
+ End;
+ FormID := BarCode2FormID;
+ // 取出FormID
SaveFilename := FormID;
- if (TreeView1.Selected = NewTreeNode) Then
- begin
- if FindDivFormCode(FormID) Then //�u������W���ץ���X
- 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 //�n������
- 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 //�O���Ĥ@���B�n����
- 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+'\'); //�g�J�ץ����
- 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;
- ISB.SaveToFile(SavePath+SaveFilename);
+ SaveFilename := Add_Zoo(ContextList.Count + 1, 3) + '_' +
+ SaveFilename + ext;
- 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);
+ 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;
+
+ 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;
- ISB.SaveToFile(SavePath+SaveFilename);
+ 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(iGraphic, MpsBarcodeinf.r180[n]);
+ MpsGetBarcode(iGraphic, MpsBarcodeinf);
+ Break;
+ End;
+ End;
+ // Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正
+
+ 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); //�M���ˮְO��
- if (TreeView1.Selected = MyTreeNode1) or (TreeView1.Selected = NewTreeNode) then
- begin
- LoadImgFile;
- end
- Else
- begin
- DrawDocItem2(MytreeNode1,CaseID); //���X���W�٪���öǦ^�O�_���ӽЮѪ��v��
- 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
@@ -2640,16 +2963,16 @@
CopyFormID,Copy2Caseno,CopyFileName : String;
S : TStringlist;
begin
- ShowText := _Msg('�ƻs���,�еy��');
+ ShowText := _Msg('複製文件中,請稍候');
DataLoading(True,True);
DocCopyForm := TDocCopyForm.Create(Self);
S := TStringlist.Create;
try
- InitialLanguage(DocCopyForm); //���J�h��y��
+ InitialLanguage(DocCopyForm); //載入多國語言
DocCopyForm.CopyFromGB.Caption := NowCaseno+DocCopyForm.CopyFromGB.Caption;
IF NewTreenode.Count = 1 Then
begin
- Showmessage(_Msg('�S����L�i�ƻs�����'));
+ Showmessage(_Msg('沒有其他可複製的文件'));
Exit;
end;
For i := 0 to MyTreeNode1.Count -1 do
@@ -2674,9 +2997,9 @@
if DocCopyForm.ShowModal = mrok then
begin
- If MessageDlg(_Msg('�O�_�T�w�n�N�Ŀ諸���ƻs��Ŀ諸�s����?'),MtConfirmation,[Mbyes,mbcancel],0) = mrCancel Then
+ If MessageDlg(_Msg('是否確定要將勾選的文件複製到勾選的編號裡?'),MtConfirmation,[Mbyes,mbcancel],0) = mrCancel Then
Exit;
- ShowText := _Msg('�ƻs��,�еy��');
+ ShowText := _Msg('複製中,請稍候');
DataLoading(True,True);
For i := 0 to DocCopyForm.CheckListBox2.Count -1 do
begin
@@ -2684,9 +3007,9 @@
begin
S.Clear;
Copy2Caseno := DocCopyForm.CheckListBox2.Items.Strings[i];
- ClearErrini(Copy2Caseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(Copy2Caseno,MyTreeNode1); //清掉檢核記錄
S.LoadFromFile(ImageSavePath + Copy2Caseno +'\Context.dat');
- For n := 0 to DocCopyForm.CheckListBox1.Count -1 do //���
+ For n := 0 to DocCopyForm.CheckListBox1.Count -1 do //文件
begin
If DocCopyForm.CheckListBox1.Checked[n] Then
begin
@@ -2699,7 +3022,7 @@
For x := 0 to ContextList.Count -1 do
begin
//Showmessage(CopyFormCode);
- //IF CopyFormID <> '' then //�����N��
+ //IF CopyFormID <> '' then //有文件代號
// begin
if FileName2FormCode(ContextList.Strings[x])=CopyFormID then
begin
@@ -2718,7 +3041,7 @@
end;
end;
DataLoading(False,False);
- Showmessage(_Msg('�ƻs����!!'));
+ Showmessage(_Msg('複製完成!!'));
LoadImgFile;
end;
finally
@@ -2742,12 +3065,12 @@
begin
DocListForm := TDocListForm.Create(self);
try
- InitialLanguage(PatchDlg); //���J�h��y��
+ InitialLanguage(PatchDlg); //載入多國語言
for i := 1 to FORM_INF_List.Count - 1 do
begin
NewFormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
NewFormName := GetSQLData(FORM_INF_List,'T1.FORM_DESC',i);
- if not FormIDAppear(NewFormID) then Continue;
+ if not FormIDAppear(NewFormID) then Continue; //20170816 先秀全部的
if (NewFormID <> FileName2FormCode(DisplayISB.FileName)) and FormIDExists(NewFormID,False,i) then
begin
DocListForm.FormIDList.Add(NewFormID+'#@#'+NewFormName);
@@ -2763,20 +3086,20 @@
NewFormID := DocListForm.DocLV.Selected.Caption;
if NowFormCode <> AttName then
begin
- If Messagedlg(Format(_Msg('�O�_�N"%s"���Ҧ��v���k����"%s"'),[FormCode2FormName(NowCaseNo,NowFormCode),FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then
+ 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('�O�_�N"%s"���Ҧ��v���k����"%s"'),[_Msg('����')+MyTreeNode3.Text,FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then
+ If Messagedlg(Format(_Msg('是否將"%s"的所有影像歸類成"%s"'),[_Msg('附件')+MyTreeNode3.Text,FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then
Exit;
end;
- ShowText := _Msg('�k����,�еy�J');
+ ShowText := _Msg('歸類中,請稍侯');
DataLoading(True,True);
//FormIDReplace(DisplayPath,NowFormCode,FormID);
//ShowFileReplace(DisplayPath,FormID);
FormIDReplace(NowCaseNo,NowDocDir,NowFormCode,NewFormID);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
DrawDocItem2(MytreeNode1,NowCaseno);
//DrawDocItem(MytreeNode1,FORM_INF_List,NowCaseno);
@@ -2801,11 +3124,11 @@
S := TStringlist.Create;
try
ClearView(1);
- ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+ ShowText := CaseID+_Msg('檢核中,請稍候');
DataLoading(True,True);
- ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+ ShowText := CaseID+_Msg('檢核中,請稍候');
DataLoading(True,True);
- If OMRCheckCase(CaseID) then //�����\
+ If OMRCheckCase(CaseID) then //有成功
begin
S.Add('Y');
S.SaveToFile(ImageSavePath+CaseID+'\OMRCheckOk.dat');
@@ -2817,7 +3140,7 @@
finally
S.Free;
end;
- Showmessage(_Msg('�ˮ֧���'));
+ Showmessage(_Msg('檢核完成'));
end;
procedure TCB_IMGPSScanX.PM110Click(Sender: TObject);
@@ -2827,13 +3150,13 @@
DocDir : String;
SavePath : String;
begin
- if InputQuery('��J��L���W��','���W��',CustomDocName) then
+ if InputQuery('輸入其他文件名稱','文件名稱',CustomDocName) then
begin
if CustomDocName <> '' then
begin
if FindCustomDocName(DisplayPath,CustomDocName) then
begin
- Showmessage(Format('���W��:"%s"�v�s�b',[CustomDocName]));
+ Showmessage(Format('文件名稱:"%s"己存在',[CustomDocName]));
Exit;
end;
@@ -2856,26 +3179,26 @@
begin
oldCopies := GetDocDirCopies(NowCaseno,NowDocDir);
try
- NewCopies := Strtoint(inputBox('�ק����','�п�J�ק�᪺����',inttostr(oldCopies)));
+ NewCopies := Strtoint(inputBox('修改份數','請輸入修改後的份數',inttostr(oldCopies)));
except
- Showmessage('��J���~');
+ Showmessage('輸入錯誤');
Exit;
end;
if (NewCopies <= 0) and (NewCopies >= 10000) then
begin
- Showmessage('��J�d����~');
+ Showmessage('輸入範圍錯誤');
Exit;
end;
if (oldCopies <> NewCopies) and (NewCopies > 0) and (NewCopies < 10000) then
begin
- if DocNoNeedDiv(NowDocNo) and (NewCopies = 1) and (MessageDlg('�ק��1���ᦹ���N�L�k�A�i����ƭק�,�O�_�T�w??',mtConfirmation,[mbyes,mbcancel],0)= mrcancel) then
+ if DocNoNeedDiv(NowDocNo) and (NewCopies = 1) and (MessageDlg('修改至1份後此文件將無法再進行份數修改,是否確定??',mtConfirmation,[mbyes,mbcancel],0)= mrcancel) then
Exit;
SetDocDirCopies(NowCaseno,NowDocDir,NewCopies);
SetRecordEditedDocDir('A',NowCaseNo,NowDocDir);
DrawDocItem2(MytreeNode1,NowCaseno);
- Showmessage('�ק粒��');
+ Showmessage('修改完成');
end;
end;
@@ -2900,7 +3223,7 @@
procedure TCB_IMGPSScanX.PM303Click(Sender: TObject);
begin
ScanColor := ifTrueColor;
- Ext := '.jpg'; //20130326 yuu���z�ߧ�sjpg
+ Ext := '.jpg'; //20130326 yuu說理賠改存jpg
ScanDpi := 200;
//Ext := '.tif';
PM303.Checked := True;
@@ -2952,7 +3275,7 @@
end;
Panel1.Enabled := True;
Panel2.Enabled := True;
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
end;
procedure TCB_IMGPSScanX.PM507Click(Sender: TObject);
@@ -2967,11 +3290,11 @@
PreNode2Name := '';
if TreeView1.Selected.Parent = MyTreeNode1 then
PreNode2Name:= GetNode2Name(MyTreeNode2);
- ShowText := _Msg('����k����,�еy��');
+ ShowText := _Msg('文件歸類中,請稍候');
DataLoading(True,True);
DocListForm := TDocListForm.Create(self);
try
- InitialLanguage(PatchDlg); //���J�h��y��
+ InitialLanguage(PatchDlg); //載入多國語言
for i := 1 to FORM_INF_List.Count - 1 do
begin
FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
@@ -2997,11 +3320,11 @@
NewName := Add_Zoo(FileName2ScanPage(OldName),3)+'_'+DocListForm.DocLV.Selected.Caption+Ext;
RenameFile(DisplayPath+OldName,DisplayPath+NewName);
ReNameContext(DisplayPath,OldName,NewName);
- //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno); //201408280��
+ //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno); //201408280改
DrawDocItem2(MytreeNode1,NowCaseno);
//DrawDocItem(MytreeNode1,FORM_INF_List,NowCaseno);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
- if PreNode2Name <> '' then // �^��쥻�I�諸���`�I�W
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
+ if PreNode2Name <> '' then // 回到原本點選的文件節點上
begin
for i := 0 to MyTreeNode1.Count - 1 do
begin
@@ -3013,7 +3336,7 @@
end;
end;
TreeView1click(self);
- //Showmessage(_Msg('�k������')); //20101103 User�n�D����
+ //Showmessage(_Msg('歸類完成')); //20101103 User要求拿掉
end;
finally
DataLoading(False,False);
@@ -3031,14 +3354,14 @@
if DisplayISB.FileName = '' then Exit;
if (ContextList.Count = 1) and ((FMode = 'NSCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'ISCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN')) then
begin
- if Messagedlg(_Msg('�R����(%s)�ץ�L�v��,�N�R�����ץ�,�O�_�T�w�R��?'),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
+ if Messagedlg(_Msg('刪除後(%s)案件無影像,將刪除此案件,是否確定刪除?'),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
_DelTree(DisplayPath);
SetCaseList('D',NewTreeNode.IndexOf(MyTreeNode1),'');
LoadImgFile;
end
Else
begin
- if Messagedlg(_Msg('�O�_�T�w�R��?'),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
+ if Messagedlg(_Msg('是否確定刪除?'),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
inx := ContextList.IndexOf(ExtractFileName(DisplayISB.FileName));
ContextList.Delete(inx);
ContextList.SaveToFile(ImageSavePath + NowCaseno+'\Context.dat');
@@ -3050,18 +3373,18 @@
Context_DocnoList.LoadFromFile(ImageSavePath + NowCaseno+'\Context_DocNo.dat');
if FileExists(ImageSavePath + NowCaseno+'\CustomDocNo.dat') then
Cust_DocNoList.LoadFromFile(ImageSavePath + NowCaseno+'\CustomDocNo.dat');
- //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno); //201408280��
+ //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno); //201408280改
DrawDocItem2(MytreeNode1,NowCaseno);
//DrawDocItem(MytreeNode1,FORM_INF_List,NowCaseno);
P := ContextList.Count;
- MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,p]);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,p]);
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
NewTreeNodeRefresh;
TreeView1Click(self);
end;
- //Showmessage(_Msg('�R������')); //20101101 User�n�D����
+ //Showmessage(_Msg('刪除完成')); //20101101 User要求拿掉
end;
procedure TCB_IMGPSScanX.PM509Click(Sender: TObject);
@@ -3073,99 +3396,165 @@
begin
DeskewImg(DisplayISB.Graphic);
DisplayISB.SaveToFile(DisplayISB.FileName);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
end;
procedure TCB_IMGPSScanX.PopupMenu1Popup(Sender: TObject);
begin
- PM101.Visible := False; //�R��
- PM102.Visible := False; //�ק�ץ�s��
- PM103.Visible := False; //���˾��[�J�v��
- PM104.Visible := False; //�ɮץ[�J�v��
- PM106.Visible := False; //�ƻs���ܨ�L�s��
- PM107.Visible := False; //�g�Ƶ�
- PM108.Visible := False; //�k��
- PM109.Visible := False; //�ˮ֦���
- PM110.Visible := False; //�s�W�ۭq���
- PM111.Visible := False; //�ק����
+ PM101.Visible := False; //刪除
+ PM102.Visible := False; //修改案件編號
+ PM103.Visible := False; //掃瞄器加入影像
+ PM104.Visible := False; //檔案加入影像
+ PM106.Visible := False; //複製文件至其他編號
+ PM107.Visible := False; //寫備註
+ PM108.Visible := False; //歸類
+ PM109.Visible := False; //檢核此筆
+ PM110.Visible := False; //新增自訂文件
+ PM111.Visible := False; //修改份數
if (FMode = 'SAMPLESCAN') then Exit;
if TreeView1.Selected = nil then Exit;
- if TreeView1.Selected = NewTreeNode then //�s���˥�
+ if TreeView1.Selected = NewTreeNode then //新掃瞄件
begin
if (FMode = 'NSCAN') then
begin
//ShowMessage('AAAA');
- PM101.Visible := True; //�R��
- PM103.Visible := True; //���˾��[�J�v��
- PM104.Visible := True; //�ɮץ[�J�v��
+ PM101.Visible := True; //刪除
+ PM103.Visible := True; //掃瞄器加入影像
+ PM104.Visible := True; //檔案加入影像
end;
+
+ if FModeName='異動件' then
+ begin
+ PM101.Visible := True;
+ end;
+// if FMode='ESCAN' then
+// begin
+// PM101.Visible := True;
+// end;
end
- Else if TreeView1.Selected = MyTreeNode1 then //�ץ�h
+ Else if TreeView1.Selected = MyTreeNode1 then //案件層
begin
- PM101.Visible := True; //�R��
+ PM101.Visible := True; //刪除
+
+ if FImgDelete='Y' then
+ begin
+ PM101.Visible:=True;
+ end;
+ if FImgDelete='N' then
+ begin
+ PM101.Visible:=false;
+ end;
+
+ if FMode='ESCAN' then
+ PM101.Visible:=false;
+
+ if FModeName='異動件' then
+ begin
+ PM101.Visible := True;
+ end;
+
if not CaseDelete_Enable(NowCaseno) then //
PM101.Enabled := False
else
PM101.Enabled := True;
- PM103.Visible := True; //���˾��[�J�v��
- //PM107.Visible := True; //�g�Ƶ�
- //PM109.Visible := True; //�ˮ֦���
- if FCustDocYN <> 'N' Then
- PM110.Visible := True; //�s�W�ۭq���
- PM104.Visible := True; //�ɮץ[�J�v��
+ PM103.Visible := True; //掃瞄器加入影像
+ //PM107.Visible := True; //寫備註
+ //PM109.Visible := True; //檢核此筆
+// if FCustDocYN <> 'N' Then
+// PM110.Visible := True; //新增自訂文件 20170914 先不在tree 中做自訂文件 讓user在縮圖做
+ PM104.Visible := True; //檔案加入影像
if (FMode = 'NSCAN') then
begin
- PM102.Visible := True; //�ק�ץ�s��
+ PM102.Visible := True; //修改案件編號
end;
+// if FMode='ESCAN' then
+// begin
+// PM101.Visible := True;
+// end;
end
- Else if TreeView1.Selected = MyTreeNode2 then //���h
+ Else if TreeView1.Selected = MyTreeNode2 then //文件層
begin
- PM101.Visible := True; //�R��
- //PM107.Visible := True; //�g�Ƶ�
- //PM109.Visible := True; //�ˮ֦���
- if FCustDocYN <> 'N' Then
- PM110.Visible := True; //�s�W�ۭq���
- if GetUseCase('T',DisplayPath,NowDocDir) <> '' then //�S���Q�ޥΨ���
- PM101.Enabled := False //�R��
- Else
- PM101.Enabled := True; //�R��
- if ((GetDocDirCopies(NowCaseno,NowDocDir) > 1) or (not DocNoNeedDiv(NowDocNo)) or (Copy(NowDocNo,1,5)='ZZZZZ')) and (NowDocNo<> 'Attach') and (NowDocNo<> 'S_Attach') then
- PM111.Visible := True; //�ק����
- if (FMode = 'NSCAN') then
- PM102.Visible := True; //�ק�ץ�s��
- end
- Else if TreeView1.Selected = MyTreeNode3 then //���h
- begin
- PM101.Visible := True; //�R��
- PM104.Visible := True; //�ɮץ[�J�v��
- PM108.Visible := True; //�k��
- PM103.Visible := True; //���˾��[�J�v��
- if FCustDocYN <> 'N' Then
- PM110.Visible := True; //�s�W�ۭq���
- if GetFormIDPage(ContextList,NowFormCode) < 1 Then
- PM108.Visible := False; //�k��
- if GetUseCase('T',DisplayPath,NowDocDir) <> '' then //�Q�ޥΨ���
+ PM101.Visible := True; //刪除
+ //PM107.Visible := True; //寫備註
+ //PM109.Visible := True; //檢核此筆
+// if FCustDocYN <> 'N' Then
+// PM110.Visible := True; //新增自訂文件
+ if FImgDelete='Y' then
begin
- PM101.Enabled := False; //�R��
- PM104.Enabled := False; //�ɮץ[�J�v��
- PM108.Enabled := False; //�k��
+ PM101.Visible:=True;
+ end;
+ if FImgDelete='N' then
+ begin
+ PM101.Visible:=false;
+ end;
+
+ if FModeName='異動件' then
+ begin
+ PM101.Visible := True;
+ end;
+
+ if GetUseCase('T',DisplayPath,NowDocDir) <> '' then //沒有被引用走的
+ PM101.Enabled := False //刪除
+ Else
+ PM101.Enabled := True; //刪除
+ if ((GetDocDirCopies(NowCaseno,NowDocDir) > 1) or (not DocNoNeedDiv(NowDocNo)) or (Copy(NowDocNo,1,5)='ZZZZZ')) and (NowDocNo<> 'Attach') and (NowDocNo<> 'S_Attach') then
+ PM111.Visible := True; //修改份數
+ if (FMode = 'NSCAN') then
+ PM102.Visible := True; //修改案件編號
+// if FMode='ESCAN' then
+// begin
+// PM101.Visible := True;
+// end;
+ end
+ Else if TreeView1.Selected = MyTreeNode3 then //表單層
+ begin
+ PM101.Visible := True; //刪除
+ PM104.Visible := True; //檔案加入影像
+ PM108.Visible := True; //歸類
+ PM103.Visible := True; //掃瞄器加入影像
+// if FCustDocYN <> 'N' Then
+// PM110.Visible := True; //新增自訂文件
+ if GetFormIDPage(ContextList,NowFormCode) < 1 Then
+ begin
+ PM108.Visible := False; //歸類
+ end;
+ if FImgDelete='Y' then
+ begin
+ PM101.Visible:=True;
+ end;
+ if FImgDelete='N' then
+ begin
+ PM101.Visible:=false;
+ end;
+
+ if FModeName='異動件' then
+ begin
+ PM101.Visible := True;
+ end;
+
+ if GetUseCase('T',DisplayPath,NowDocDir) <> '' then //被引用走的
+ begin
+ PM101.Enabled := False; //刪除
+ PM104.Enabled := False; //檔案加入影像
+ PM108.Enabled := False; //歸類
end
Else
begin
- PM101.Enabled := True; //�R��
- PM104.Enabled := True; //�ɮץ[�J�v��
- PM108.Enabled := True; //�k��
+ PM101.Enabled := True; //刪除
+ PM104.Enabled := True; //檔案加入影像
+ PM108.Enabled := True; //歸類
end;
if (FMode = 'NSCAN') then
- PM102.Visible := True; //�ק�ץ�s��
- //PM103.Visible := True; //���˾��[�J�v��
- //PM104.Visible := True; //�ɮץ[�J�v��
- //PM107.Visible := True; //�g�Ƶ�
- //PM109.Visible := True; //�ˮ֦���
+ begin
+ PM102.Visible := True; //修改案件編號
+ end;
end;
+
+
+
end;
procedure TCB_IMGPSScanX.PopupMenu4Popup(Sender: TObject);
@@ -3218,28 +3607,52 @@
procedure TCB_IMGPSScanX.PopupMenu6Popup(Sender: TObject);
begin
- PM601.Visible := False; //�k��
- PM602.Visible := False; //�ۦ�w�q���W��
- PM603.Visible := False; //���y��������
- PM604.Visible := False; //�n���B��
- PM605.Visible := False; //�R��
- if ((NowDocNo = 'Attach') or (NowDocNo = 'S_Attach')) and (FCustDocYN <> 'N') then
- PM602.Visible := True; //�ۦ�w�q���W��
- //PM603.Visible := True; //���y��������
- PM604.Visible := True; //�n���B��
- PM601.Visible := True; //�k��
- PM605.Visible := True; //�R��
+ PM601.Visible := True; //歸類
+ PM602.Visible := True; //自行定義文件名稱
+ PM603.Visible := False; //掃描替換此頁
+ PM604.Visible := False; //歪斜矯正
+ PM605.Visible := True; //刪除
- if CheckSelectImg_UseCase(DisplayPath,NowCaseNo) then //��ܪ��v�����i���ޥΪ�
+// if FMode='ESCAN' then
+// begin
+// PM601.Visible := False; //歸類
+// PM602.Visible := False; //自行定義文件名稱
+// PM603.Visible := False; //掃描替換此頁
+// PM604.Visible := False; //歪斜矯正
+// PM605.Visible := False; //刪除
+// end;
+
+ if ((NowDocNo = 'Attach') or (NowDocNo = 'S_Attach')) and (FCustDocYN <> 'N') then
begin
- PM601.Enabled := False; //�k��
- PM605.Enabled := False; //�R��
- end
- Else
- begin
- PM601.Enabled := True; //�k��
- PM605.Enabled := True; //�R��
+ PM602.Visible := True; //自行定義文件名稱
+ //PM603.Visible := True; //掃描替換此頁
+ PM604.Visible := True; //歪斜矯正
+ PM601.Visible := True; //歸類
+ PM605.Visible := True; //刪除
end;
+
+ if FModeName<>'異動件' then
+ begin
+ if (FImgDelete='Y') then
+ begin
+ PM605.Enabled:=True;
+ end;
+ if FImgDelete='N' then
+ begin
+ PM605.Enabled:=false;
+ end;
+ end;
+
+
+
+
+ if CheckSelectImg_UseCase(DisplayPath,NowCaseNo) then //選擇的影像不可有引用的
+ begin
+ PM601.Enabled := False; //歸類
+ PM605.Enabled := False; //刪除
+ end;
+
+
end;
procedure TCB_IMGPSScanX.PrePageBtnClick(Sender: TObject);
@@ -3274,18 +3687,32 @@
var
SampleFormID : String;
SendData : String;
+ buttonSelected : Integer;
begin
ScanMode := smSample;
ClearView(1);
- Vmode := 0; //�����歶
+ Vmode := 0; //切成單頁
GoViewMode;
ScanInfo.ImageCount := 0;
ScanPath := SamplePath;
ScanCaseno := '';
ContextList.Clear;
- ShowText := _Msg('�d�����y��,�еy��');
+ ShowText := _Msg('範本掃描中,請稍候');
DataLoading(True,True);
- SampleFormID := UpperCase(InputBox(_Msg('�d���ɱ��˿�J�e��'),_Msg('�п�J���s��'),''));
+ SampleFormID := UpperCase(InputBox(_Msg('範本檔掃瞄輸入畫面'),_Msg('請輸入文件編號'),''));
+
+ if SampleFormIDList.IndexOf(SampleFormID)<>-1 then
+ begin
+ // Show a custom dialog
+ buttonSelected := messagedlg(SampleFormID+'已有範本,是否取代?',mtCustom,
+ [mbYes,mbCancel], 0);
+ if buttonSelected = mrCancel then
+ begin
+ DataLoading(false,false);
+ Exit;
+ end;
+ end;
+
if SampleFormID <> '' then
begin
if FormIDExists(SampleFormID,False,0) then
@@ -3294,16 +3721,17 @@
end
Else
begin
- Showmessage(Format(_Msg('FormID:%s�|�����U'),[SampleFormID]));
+ Showmessage(Format(_Msg('FormID:%s尚未註冊'),[SampleFormID]));
Panel1.Enabled := True;
Panel2.Enabled := True;
+ DataLoading(false,false);
Exit;
end;
SampleAnchorMode := FormID2Anchor(SampleFormID);
Panel1.Enabled := False;
Panel2.Enabled := False;
-
+//ShowMessage('AAAAA');
Try
StatrTwainScan;
Except
@@ -3313,58 +3741,58 @@
if (ISB1.FileName <> '') and FileExists(SamplePath+SampleFormID+'.tif') then
begin
- ShowText := _Msg('�d���ǰe��,�еy��');
+ ShowText := _Msg('範本傳送中,請稍候');
DataLoading(True,True);
- //�h�s�@��jpg
+ //多存一份jpg
ImageScrollBox1.LoadFromFile(SamplePath+SampleFormID+'.tif',1);
BWTif2Jpg(ImageScrollBox1.Graphic);
ImageScrollBox1.SaveToFile(SamplePath+SampleFormID+'.jpg');
- //�h�s�@��jpg
+ //多存一份jpg
NowWork_No := FormCode2WorkNo(SampleFormID);
SendData := 'data='+FData+'&verify='+FVerify+'&work_no='+FWork_no+'&file_name='+SampleFormID+'.tif';
if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/sample',SendData,'file',SamplePath+SampleFormID+'.tif',FReWrite,Memo1,False) then
begin
- Showmessage(_Msg('�ǰe�d���ɮ�,�����o�Ϳ��~!!')+_MSg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
+ Showmessage(_Msg('傳送範本檔案時,網路發生錯誤!!')+_MSg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
DataLoading(False,False);
Exit;
end;
if memo1.Lines.Strings[0] = '1' then
begin
- Showmessage(_Msg('�ǰe�d���ɮ�,�����o�Ϳ��~!!')+_Msg('���~��]:')+memo1.Lines.Strings[1]);
+ Showmessage(_Msg('傳送範本檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+memo1.Lines.Strings[1]);
DataLoading(False,False);
Exit;
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- Showmessage(_Msg('�ǰe�d���ɮ�,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'));
+ Showmessage(_Msg('傳送範本檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'));
DataLoading(False,False);
Exit;
end;
- if FileExists(SamplePath+SampleFormID+'.jpg') then //�ǰeJPG�v��
+ if FileExists(SamplePath+SampleFormID+'.jpg') then //傳送JPG影像
begin
SendData := 'data='+FData+'&verify='+FVerify+'&work_no='+FWork_no+'&file_name='+SampleFormID+'.jpg';
if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/sample',SendData,'file',SamplePath+SampleFormID+'.jpg',FReWrite,Memo1,False) then
begin
- Showmessage(_Msg('�ǰe�d���ɮ�(JPG)��,�����o�Ϳ��~!!')+_MSg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
+ Showmessage(_Msg('傳送範本檔案(JPG)時,網路發生錯誤!!')+_MSg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
DataLoading(False,False);
Exit;
end;
if memo1.Lines.Strings[0] = '1' then
begin
- Showmessage(_Msg('�ǰe�d���ɮ�(JPG)��,�����o�Ϳ��~!!')+_Msg('���~��]:')+memo1.Lines.Strings[1]);
+ Showmessage(_Msg('傳送範本檔案(JPG)時,網路發生錯誤!!')+_Msg('錯誤原因:')+memo1.Lines.Strings[1]);
DataLoading(False,False);
Exit;
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- Showmessage(_Msg('�ǰe�d���ɮ�(JPG)��,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'));
+ Showmessage(_Msg('傳送範本檔案(JPG)時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'));
DataLoading(False,False);
Exit;
end;
end;
- Showmessage(_Msg('�ǰe����'));
+ Showmessage(_Msg('傳送完成'));
end;
end;
DataLoading(False,False);
@@ -3481,12 +3909,12 @@
begin
IF not InitialOk Then
begin
- Showmessage(_msg('��T�|���U������,�еy�ԩέ��s�i�J'));
+ Showmessage(_msg('資訊尚未下載完成,請稍候或重新進入'));
Exit;
end;
if MyTreeNode1 = nil then
begin
- Showmessage(_Msg('�Х���ܮץ�'));
+ Showmessage(_Msg('請先選擇案件'));
Exit;
end;
Panel1.Enabled := False;
@@ -3509,10 +3937,10 @@
//P := ContextList.Count;
GetCase_PageCount(CaseCount,PageCount);
v := Pos('-',NewTreeNode.Text);
- NewTreeNode.Text := Format(_Msg('%s-�@%d���@%d��'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
- MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseno)]);
+ NewTreeNode.Text := Format(_Msg('%s-共%d筆共%d頁'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
+ MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseno)]);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
SetDocDirtoSelected(MyTreeNode1,FirstDocDir);
TreeView1Click(self);
end;
@@ -3533,37 +3961,52 @@
//Case2upload(NowCaseNo);
//mkdir(DisplayPath+'Test\');
//Download2Case(DisplayPath+'Upload\',DisplayPath+'Test\');
- //CreateFormID_FormName(DisplayPath); //����FormID_FormName.dat
- //CreateDocNo_DocName(DisplayPath); //����DocNo_Name.dat
- //Showmessage(CreateDocNo_Info(DisplayPath)); //���� Docno,����,����;Docno,����,���� ���^�Ǧr��
-
+ //CreateFormID_FormName(DisplayPath); //產生FormID_FormName.dat
+ //CreateDocNo_DocName(DisplayPath); //產生DocNo_Name.dat
+ //Showmessage(CreateDocNo_Info(DisplayPath)); //產生 Docno,份數,頁數;Docno,份數,頁數 的回傳字串
+ lb1.Caption:='AAAAAAAAAAA';
//Showmessage(CreateDocnoFrom_Info(NowCaseno));
//Showmessage(self.CreateCustDocNoFrom_Info(NowCaseno));
-
- showmessage('FUrl='+FUrl);
- showmessage('FCaseID='+FCaseID);
- showmessage('FMode='+FMode);
- showmessage('FModeName='+FModeName);
- showmessage('FWork_no='+FWork_no);
- showmessage('FUserID='+FUserID);
- showmessage('FUserName='+FUserName);
- showmessage('FUserUnit='+FUserUnit);
- showmessage('FData='+FData);
- showmessage('FVerify='+FVerify);
- showmessage('FReWrite='+FReWrite);
- showmessage('FLanguage='+FLanguage);
- showmessage('FLoanDoc_Value='+FLoanDoc_Value);
- showmessage('FLoanDoc_Enable='+FLoanDoc_Enable);
- showmessage('FUseProxy='+FUseProxy);
- showmessage('FC_DocNoList='+FC_DocNoList);
- showmessage('FC_DocNameList='+FC_DocNameList);
- showmessage('FFixFileList='+FFixFileList);
- showmessage('FIs_In_Wh='+FIs_In_Wh);
- showmessage('FOldCaseInfo='+FOldCaseInfo);
- showmessage('FPrintyn='+FPrintyn);
- showmessage('FIs_OldCase='+FIs_OldCase);
- showmessage('FCustDocYN='+FCustDocYN);
+ initkscan;
+ showmessage('FUrl='+FUrl+#10#13+
+ 'FCaseID='+FCaseID+#10#13+
+ 'FMode='+FMode+#10#13+
+ 'FModeName='+FModeName+#10#13+
+ 'FWork_no='+FWork_no+#10#13+
+ 'FUserID='+FUserID+#10#13+
+ 'FUserName='+FUserName+#10#13+
+ 'FUserUnit='+FUserUnit+#10#13+
+ 'FData='+FData+#10#13+
+ 'FVerify='+FVerify+#10#13+
+ 'FReWrite='+FReWrite+#10#13+
+ 'FLanguage='+FLanguage+#10#13+
+ 'FLoanDoc_Value='+FLoanDoc_Value+#10#13+
+ 'FLoanDoc_Enable='+FLoanDoc_Enable+#10#13+
+ 'FUseProxy='+FUseProxy+#10#13+
+ 'FC_DocNoList='+FC_DocNoList+#10#13+
+ 'FC_DocNameList='+FC_DocNameList+#10#13+
+ 'FFixFileList='+FFixFileList+#10#13+
+ 'FIs_In_Wh='+FIs_In_Wh+#10#13+
+ 'FOldCaseInfo='+FOldCaseInfo+#10#13+
+ 'FPrintyn='+FPrintyn+#10#13+
+ 'FIs_OldCase='+FIs_OldCase+#10#13+
+ 'FCustDocYN='+FCustDocYN);
+ ShowMessage('FImgDPI='+IntToStr(FImgDPI)+#10#13+
+ 'FScanColor='+ IntToStr(FScanColor)+#10#13+
+ 'FFileSizeLimit='+ IntToStr(FFileSizeLimit) +#10#13+
+ 'FCaseNoLength='+ IntToStr(FCaseNoLength) +#10#13+
+ 'FImgDelete='+ FImgDelete+#10#13+
+ 'FIsExternal='+ FIsExternal+#10#13+
+ 'FWH_category='+FWH_category+
+ 'FCheck_main_form='+ FCheck_main_form);
+ //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+
+ 'DownRPoint='+IntToStr(DownRPoint.X)+','+IntToStr(DownRPoint.Y));
+ }
end;
procedure TCB_IMGPSScanX.Button4Click(Sender: TObject);
@@ -3574,11 +4017,13 @@
//Showmessage(self.Doc_Inf_List.Text);
//LoadImgFile;
//LoadImgFile1;
+ //ISB1.MouseMode:=mmAmplifier;
+
str:='';
- for I := 1 to 11 do // �� OMRErrInfo �����e
+ for I := 1 to 11 do // 看 OMRErrInfo 的內容
begin
- str:=str+BoolToStr(OMRErrInfo[i].Display)+','
- +BoolToStr(OMRErrInfo[i].Ignore)+','+OMRErrInfo[i].Info+','
+ str:=str+BoolToStr(OMRErrInfo[i].Display,true)+','
+ +BoolToStr(OMRErrInfo[i].Ignore,true)+','+OMRErrInfo[i].Info+','
+OMRErrInfo[i].Mode+#10#13;
end;
ShowMessage('OMRErrInfo='+str);
@@ -3589,6 +4034,14 @@
ShowMessage('MEMO_INF_List='+MEMO_INF_List.Text) ;
ShowMessage('WORK_INF_List='+WORK_INF_List.Text) ;
ShowMessage('LASTEST_FORM_INF_List='+LASTEST_FORM_INF_List.Text) ;
+ ShowMessage('SampleFormIDList='+SampleFormIDList.Text);
+ ShowMessage('ExistImgList='+ExistImgList.Text);
+ ShowMessage('LastInitFormidList='+LastInitFormidList.Text);
+ ShowMessage('IN_WH_DocNoList='+IN_WH_DocNoList.Text);
+
+// SampleFormIDList.Add('31A00101011706A');
+// SampleFormIDList.Add('31A00101021706A');
+// SampleFormIDList.Add('31A00101031706A');
end;
procedure TCB_IMGPSScanX.StatrTwainScan;
@@ -3597,7 +4050,7 @@
begin
if not Scanner.IsConfigured then
begin
- ShowMessage(_Msg('TWAIN �����X�ʩ|���w��'));
+ ShowMessage(_Msg('TWAIN 掃瞄驅動尚未安裝'));
Exit;
end;
FillChar(ScanInfo, SizeOf(ScanInfo), 0);
@@ -3605,7 +4058,8 @@
ScanInfo.ImageCount := 0;
ScanInfo.Graphic := TTiffGraphic.Create;
try
- ISB := nil; //�W�s
+ ISB := nil; //規零
+//ShowMessage(IntToStr(ScanDpi));
Scanner.RequestedXDpi := ScanDpi;
Scanner.RequestedYDpi := ScanDpi;
Scanner.RequestedImageFormat := ScanColor;
@@ -3613,15 +4067,15 @@
Try
Scanner.OpenSource;
- Scanner.Duplex := ScanDuplex; //����
- //Scanner.FEEDERENABLED := not ScanFlatCB.Checked; // ���������x
+ Scanner.Duplex := ScanDuplex; //雙面
+ //Scanner.FEEDERENABLED := not ScanFlatCB.Checked; // 先拿掉平台
If ScanImgSetUse Then
begin
Scanner.ScanBrightness := ScanBright;
Scanner.ScanContrast := ScanContrast;
end;
except
- Showmessage(_Msg('���˾��o�Ϳ��~!!'));
+ Showmessage(_Msg('掃瞄器發生錯誤!!'));
Scanner.CloseSource;
Exit;
end;
@@ -3695,18 +4149,18 @@
If (MpsBarcodeinf.r180[i] <> 0) and (Length(MpsBarcodeinf.Text[i])=FormIDLength) Then
begin
Rotate(pScanInfo^.Graphic,MpsBarcodeinf.r180[i]);
- MpsGetBarcode(pScanInfo^.Graphic,MpsBarcodeinf); //�����A�����@�����X��T
+ MpsGetBarcode(pScanInfo^.Graphic,MpsBarcodeinf); //旋轉後再重取一次條碼資訊
Break;
end;
end;
- //�v���ϦV
+ //影像反向
IF ScannerReverse then
NegativeImg(pScanInfo^.Graphic);
- //�ɱ��B��
+ //傾斜矯正
IF ScanDeskew Then
DeskewImg(pScanInfo^.Graphic);
- //�M����
+ //清黑邊
IF BoardClear then
CleanupBorder(pScanInfo^.Graphic);
end
@@ -3721,7 +4175,7 @@
If (MpsBarcodeinf.r180[i] <> 0) and (Length(MpsBarcodeinf.Text[i])=FormIDLength) Then
begin
Rotate(ISB_BW.Graphic,MpsBarcodeinf.r180[i]);
- MpsGetBarcode(ISB_BW.Graphic,MpsBarcodeinf); //�����A�����@�����X��T
+ MpsGetBarcode(ISB_BW.Graphic,MpsBarcodeinf); //旋轉後再重取一次條碼資訊
Break;
end;
end;
@@ -3746,7 +4200,7 @@
If (MpsBarcodeinf.r180[i] <> 0) and (Length(MpsBarcodeinf.Text[i])=FormIDLength) Then
begin
Rotate(ISB_BW.Graphic,MpsBarcodeinf.r180[i]);
- MpsGetBarcode(ISB_BW.Graphic,MpsBarcodeinf); //�����A�����@�����X��T
+ MpsGetBarcode(ISB_BW.Graphic,MpsBarcodeinf); //旋轉後再重取一次條碼資訊
Break;
end;
end;
@@ -3769,13 +4223,13 @@
//Application.ProcessMessages;
if CheckNeedCrop(iGraphic_First) Then
begin
- iRect.Left := pScanInfo^.Graphic.Width div 2; //�������䪺�v��
+ iRect.Left := pScanInfo^.Graphic.Width div 2; //先取左邊的影像
iRect.Top := 0;
iRect.Right := pScanInfo^.Graphic.Width;
iRect.Bottom := pScanInfo^.Graphic.Height;
CropImg(iGraphic_First,iRect);
- iGraphic_Sec.Assign(pScanInfo^.Graphic); //�A���k�䪺�v��
+ iGraphic_Sec.Assign(pScanInfo^.Graphic); //再取右邊的影像
iRect.Left := 0;
iRect.Top := 0;
iRect.Right := pScanInfo^.Graphic.Width div 2;
@@ -3850,21 +4304,21 @@
case ScanMode of
smNew:
begin
- if ScanImgShowMode = 0 then //�M�����
+ if ScanImgShowMode = 0 then //清楚顯示
begin
ISB := FindISB2View(VMode);
ISB.AntiAliased := True;
ISB.ZoomMode := zmFittopage;
ISB.LoadFromFile(PEFileName,1);
end
- Else if ScanImgShowMode = 1 then //�ҽk���
+ Else if ScanImgShowMode = 1 then //模糊顯示
begin
ISB := FindISB2View(VMode);
ISB.AntiAliased := False;
ISB.ZoomMode := zmFittopage;
ISB.LoadFromFile(PEFileName,1);
end
- Else if ScanImgShowMode = 1 then //�����
+ Else if ScanImgShowMode = 1 then //不顯示
begin
end
@@ -3907,31 +4361,44 @@
FormID:='';
FormVersion:='';
PEFileName := '';
- //if not FindNoSaveBarCode then //�S�����x�s�v�������X
+ //if not FindNoSaveBarCode then //沒有不儲存影像的條碼
//begin
if FormID = '' then
begin
- FormID := BarCode2FormID; //���XFormID
-
+ FormID := BarCode2FormID; //取出FormID
end;
- if (FormID <> '') and ISGuideFormID(FormID) then
- NowGuideFormID := FormID;
+ if (FormID <> '') and ISDivPageFormID(FormID) then
+ begin
+ NowDivPageFormID := FormID;
+ end;
+
+ if (FormID <> '') and ISGuideFormID(FormID) then
+ begin
+ NowGuideFormID := FormID;
+ end;
+//ShowMessage('NowGuideFormID='+NowGuideFormID);
if (not (FindDivFormCode(FormID))) and (NowGuideFormID <> '') {and (FormID = '')} then
FormID := NowGuideFormID;
DocNo := FormCode2DocNo(FormID);
-
- if (FormID <>'') and FindDivFormCode(FormID) Then //�u������W���ץ���X
+//ShowMessage('FormID='+FormID);
+//ShowMessage('ISDivPageFormID(FormID)='+BoolToStr(ISDivPageFormID(FormID),true));
+//ShowMessage('FindDivFormCode(FormID)='+BoolToStr(FindDivFormCode(FormID),true));
+//ShowMessage('A NowDivPageFormID='+NowDivPageFormID+#10#13+'FormID='+FormID+#10#13+'ScanCaseno='+ScanCaseno);
+ if (FormID <>'') and FindDivFormCode(FormID) and (NowDivPageFormID <> '') Then //只找分案頁上的案件條碼
begin
+
ScanInfo.ImageCount := 0;
ClearView(1);
ContextList.Clear;
Context_DocnoList.Clear;
- ClearCaseIndex; //�M���ץ����
- ScanCaseno := BarCode2CaseID; //���X�ץ�s��
+ ClearCaseIndex; //清掉案件索引
+ ScanCaseno := BarCode2CaseID; //取出案件編號
NowGuideFormID := '';
+ NowDivPageFormID :='';
+//ShowMessage('B NowGuideFormID='+NowGuideFormID+#10#13+'FormID='+FormID+#10#13+'ScanCaseno='+ScanCaseno);
end;
- if ScanCaseno = '' then //�@�}�l���S���
+ if ScanCaseno = '' then //一開始都沒找到
begin
ScanCaseno := GetNoNameCase(ImageSavePath);
end;
@@ -3949,7 +4416,8 @@
Str2Dir(ScanPath);
ScanDocDir := FindLastestDocDir(ScanCaseno,DocNo);
- if DocNoNeedDiv(DocNo) then //�n������
+
+ if DocNoNeedDiv(DocNo)then //要分份數
begin
//Showmessage(DocNo+#13+FormCode2Page(FormID)+#13+inttostr(GetDocDir_Page(ScanCaseno,ScanDocDir))+#13+ScanDocDir);
if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(ScanCaseno,ScanDocDir)>0)) or (ScanDocDir = '') then
@@ -3958,11 +4426,11 @@
ScanDocDir := DocNo2DocNoDir(ImageSavePath + ScanCaseno+'\',DocNo);
end;
end
- Else //��������
+ Else //不分份數
begin
if DocNo <> '' then
ScanDocDir := DocNo
- else //Attach ����
+ else //Attach 附件
ScanDocDir := DocNo2DocNoDir(ImageSavePath + ScanCaseno+'\',DocNo);
end;
//ScanDocDir := GetDocNoDir(ImageSavePath+ScanCaseno+'\',DocNo);
@@ -3982,17 +4450,17 @@
ScanSaveFilename := FormID;
Str2Dir(ScanPath);
- if ScanSaveFilename = '' then //����
+ if ScanSaveFilename = '' then //附件
ScanSaveFilename:= Add_Zoo(GetDocDir_Page(ScanCaseNo,ScanDocDir)+1,3)+ext
//ScanSaveFilename:= Add_Zoo(ScanInfo.ImageCount+1,3)+ext
Else
ScanSaveFilename := Add_Zoo(GetDocDir_Page(ScanCaseNo,ScanDocDir)+1,3)+'_'+ScanSaveFilename+ext;
- if not FindNoSaveBarCode then //�S�����x�s�v�������X
+ if not FindNoSaveBarCode then //沒有不儲存影像的條碼
begin
if ScanInfo.ImageCount = 0 then
begin
SetCaseList('A',-1,ScanCaseno);
- WriteCaseIndex(ImageSavePath + ScanCaseno+'\'); //�g�J�ץ����
+ WriteCaseIndex(ImageSavePath + ScanCaseno+'\'); //寫入案件索引
MyTreeNode1 := TreeView1.Items.AddChild(NewTreenode,ScanCaseno);
MyTreenode1.ImageIndex := 2;
MyTreenode1.SelectedIndex := 2;
@@ -4017,27 +4485,30 @@
smInsert:
begin
ScanSaveFilename := '';
- FormID := BarCode2FormID; //���XFormID
- if (FormID <> '') and ISGuideFormID(FormID) then
+ FormID := BarCode2FormID; //取出FormID
+ if (FormID <> '') and ISGuideFormID(FormID) then //20170510 註解 因為DSCAN 會全擠在導引頁下
NowGuideFormID := FormID;
- //Showmessage('A:'+FormID+#13+'B:'+NowGuideFormID);
- if (NowGuideFormID <> '') {and (FormID = '')} then
+ if (NowGuideFormID <> '') {and (FormID = '')} then //20170510 註解 因為DSCAN 會全擠在導引頁下
FormID := NowGuideFormID;
DocNo := FormCode2DocNo(FormID);
ScanDocDir := FindLastestDocDir(ScanCaseno,DocNo);
- if DocNoNeedDiv(DocNo) then //�n������
+//ShowMessage('ScanDocDir='+ScanDocDir);
+ if (DocNoNeedDiv(DocNo)) then //要分份數
begin
- if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(ScanCaseno,ScanDocDir)>0)) or (ScanDocDir = '') then
+ if TreeView1.Selected = MyTreeNode1 then //20170421 掃瞄插頁時選則在案號上才要分份數 選在FormID上就不分份數
begin
- ScanInfo.ImageCount := 0;
- ScanDocDir := DocNo2DocNoDir(ImageSavePath + ScanCaseno+'\',DocNo);
+ if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(ScanCaseno,ScanDocDir)>0)) or (ScanDocDir = '') then
+ begin
+ ScanInfo.ImageCount := 0;
+ ScanDocDir := DocNo2DocNoDir(ImageSavePath + ScanCaseno+'\',DocNo);
+ end;
end;
end
- Else //��������
+ Else //不分份數
begin
if DocNo <> '' then
ScanDocDir := DocNo
- else //Attach ����
+ else //Attach 附件
ScanDocDir := DocNo2DocNoDir(ImageSavePath + ScanCaseno+'\',DocNo);
end;
if FirstDocDir = '' Then
@@ -4050,7 +4521,7 @@
ScanSaveFilename := FormID;
Str2Dir(ScanPath);
- if ScanSaveFilename = '' then //����
+ if ScanSaveFilename = '' then //附件
ScanSaveFilename:= Add_Zoo(GetDocDir_Page(ScanCaseno,ScanDocdir)+1,3)+ext
Else
ScanSaveFilename := Add_Zoo(GetDocDir_Page(ScanCaseno,ScanDocdir)+1,3)+'_'+ScanSaveFilename+ext;
@@ -4072,7 +4543,7 @@
begin
BarStr := BarStr + MpsBarCodeinf.Text[i];
end;
- Showmessage(_Msg('���Ѩ쪺BarCode:')+#13+BarStr);
+ Showmessage(_Msg('辨識到的BarCode:')+#13+BarStr);
end;
end;
smRTS:
@@ -4097,7 +4568,7 @@
IIS_File2Web.S_LicEnName := SFileName;
IIS_File2Web.V_LicEnName := VFileName;
- /////�U��MPSLIC_SCAN.lic //////
+ /////下載MPSLIC_SCAN.lic //////
EnCodeDateTime := En_DecryptionStr_Base64('E',ServerDate+GetBalance2Time(Balance),Mpskey);
@@ -4106,24 +4577,24 @@
SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&work_no=PLN&file=MPSLIC_SCAN.lic';
if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC04/sample',SendData,LngPath+SFileName,FReWrite,Memo1,False,DownImgStatus) then
begin
- Showmessage(_Msg('�ˬd���U�ɮ�,�����o�Ϳ��~!!')+_Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+ Showmessage(_Msg('檢查註冊檔案時,網路發生錯誤!!')+_Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
Exit;
end;
- /////�U��MPSLIC_SCAN.lic /////
+ /////下載MPSLIC_SCAN.lic /////
- /////�U��MPSLIC_VIEW.lic //////
+ /////下載MPSLIC_VIEW.lic //////
EnCodeDateTime := En_DecryptionStr_Base64('E',ServerDate+GetBalance2Time(Balance),Mpskey);
- //SendData := 'checktime='+EnCodeDateTime+'&workno=CW&formid=MPSLIC_VIEW.lic'+'&mode=sample'; //�o�̧令����CW 20121212
+ //SendData := 'checktime='+EnCodeDateTime+'&workno=CW&formid=MPSLIC_VIEW.lic'+'&mode=sample'; //這裡改成必傳CW 20121212
//if not dnFile(HTTPSClient,Furl,'service/slic/SLIC04/sample',SendData,LngPath+VFileName,FReWrite,Memo1,False,DownImgStatus) then
SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&work_no=PLN&file=MPSLIC_VIEW.lic';
if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC04/sample',SendData,LngPath+VFileName,FReWrite,Memo1,False,DownImgStatus) then
begin
- Showmessage(_Msg('�ˬd���U�ɮ�,�����o�Ϳ��~!!')+_Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+ Showmessage(_Msg('檢查註冊檔案時,網路發生錯誤!!')+_Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
Exit;
end;
- /////�U��MPSLIC_VIEW.lic /////
+ /////下載MPSLIC_VIEW.lic /////
- ////��zip/////
+ ////壓zip/////
S := TStringlist.Create;
try
S.Add(En_DecryptionStr_Base64('E',GetDate,'9338430'));
@@ -4144,8 +4615,8 @@
DeleteFile(LngPath+VFileName);
DeleteFile(LngPath+'mps.dat');
end;
- ////��zip//////
- Showmessage('�ץX����,�ץX�ɮ�:'+LngPath+'mps.zip');
+ ////壓zip//////
+ Showmessage('匯出完成,匯出檔案:'+LngPath+'mps.zip');
end;
procedure TCB_IMGPSScanX.ImportBtClick(Sender: TObject);
@@ -4172,16 +4643,16 @@
str2dir(ZipPath);
if not ExecuteUnZip_Pwd(OpenDialog1.FileName,ZipPath,False,'9338430') then
- Showmessage('�L�k�����Y');
+ Showmessage('無法解壓縮');
if not FileExists(ZipPath+'mps.dat') then
begin
- Showmessage('�榡����,�L�k�פJ');
+ Showmessage('格式不符,無法匯入');
Exit;
end;
S.LoadFromFile(ZipPath+'mps.dat');
if (En_DecryptionStr_Base64('D',S.Strings[0],'9338430')<> ServerDate) then
begin
- Showmessage('�ɮL��,�L�k�פJ');
+ Showmessage('檔案過期,無法匯入');
Exit;
end;
@@ -4191,29 +4662,29 @@
RenameFile(ZipPath+S.Strings[i],ZipPath+LicName);
if (LicName = 'MPSLIC_SCAN.lic') or (LicName = 'MPSLIC_VIEW.lic') then
- /////�W��MPSLICXXXX.lic ////
+ /////上傳MPSLICXXXX.lic ////
//if not upFile(HTTPSClient,FUrl,'servlet/CWC04','formid='+LicName+'@workno=CW@mode=sample','file',ZipPath+LicName,FReWrite,Memo1,False) then
//begin
SendData := 'data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&work_no=PLN&file_name='+LicName;
if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/sample',SendData,'file',ZipPath+LicName,FReWrite,Memo1,False) then
begin
- Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_MSg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
+ Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_MSg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
DataLoading(False,False);
Exit;
end;
if memo1.Lines.Strings[0] = '1' then
begin
- Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_Msg('���~��]:')+memo1.Lines.Strings[1]);
+ Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_Msg('錯誤原因:')+memo1.Lines.Strings[1]);
DataLoading(False,False);
Exit;
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'));
+ Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'));
DataLoading(False,False);
Exit;
end;
- /////�W��MPSLICXXXX.lic /////
+ /////上傳MPSLICXXXX.lic /////
end;
end;
Finally
@@ -4221,7 +4692,7 @@
S.Free;
_DelTree(ZipPath);
end;
- Showmessage('�פJ����');
+ Showmessage('匯入完成');
end;
procedure TCB_IMGPSScanX.HotKeyDown (var Msg : TMessage);
@@ -4242,7 +4713,7 @@
NowForm := TForm(Sender);
FormName := NowForm.Name;
- IISUnit.IIS_LngfileName := LngPath+'Language.Lng'; //��IISUnit ��h��y���r���
+ IISUnit.IIS_LngfileName := LngPath+'Language.Lng'; //給IISUnit 轉多國語言字串用
if FLanguage = '' then
FLanguage := 'zh_tw';
IISUnit.IIS_NowLng := FLanguage;
@@ -4252,6 +4723,7 @@
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,'');
@@ -4313,21 +4785,39 @@
W,H : Integer;
begin
Result := 0;
+//ShowMessage('GetSiteOMR');
+
IF (ImageScrollBox1.FileName <> FileName) and (FileName <> '') then
begin
+//ShowMessage('11111'+ImageScrollBox1.FileName+#10#13+FileName);
ImageScrollBox1.LoadFromFile(FileName,1);
- FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,'NONE');
+{
+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+
+'DownRPoint='+IntToStr(DownRPoint.X)+','+IntToStr(DownRPoint.Y));
+ FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,'');
+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+
+'DownRPoint='+IntToStr(DownRPoint.X)+','+IntToStr(DownRPoint.Y));
+}
ClearLine(ISB_BW.Graphic,bt);
ISB_BW.Redraw(True);
Application.ProcessMessages;
end;
If ImageScrollBox1.FileName <> '' Then
begin
+
+//ShowMessage('22222'+ImageScrollBox1.FileName);
Xdpi := ImagescrollBox1.Graphic.XDotsPerInch;
Ydpi := ImagescrollBox1.Graphic.YDotsPerInch;
H := ImageScrollBox1.Graphic.Height;
W := ImageScrollBox1.Graphic.Width;
+//ShowMessage('Xdpi='+IntToStr(Xdpi)+#10#13+'Ydpi='+IntToStr(Ydpi)+#10#13+'H='+IntToStr(H)+#10#13+'W='+IntToStr(W)+#10#13);
+//ShowMessage('Site='+Site);
OMRRect := CM_Str2Rect(Site,Xdpi,UpLPoint);
+Display1.Lines.Add('UpLPoint=('+IntToStr(UpLPoint.X)+','+IntToStr(UpLPoint.Y)+');'+Site+';'+IntToStr(OMRRect.Left)+','+IntToStr(OMRRect.top)+','+IntToStr(OMRRect.Right)+','+IntToStr(OMRRect.Bottom));
if OMRRect.Left < 0 then
OMRRect.Left := 0;
if OMRRect.Top < 0 then
@@ -4338,10 +4828,12 @@
OMRRect.Bottom := ImageScrollBox1.Graphic.Height;
result := Get_OMR(ISB_BW.Graphic,OMRRect);
+//ShowMessage('result='+IntToStr(result));
+
end;
end;
-Function TCB_IMGPSScanX.FindISB2View(Vmode:Integer):TImageScrollBox; //���ISB�����
+Function TCB_IMGPSScanX.FindISB2View(Vmode:Integer):TImageScrollBox; //找空的ISB來顯示
var
i,n : Integer;
ISB : TImageScrollBox;
@@ -4367,7 +4859,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.R_W_Scanini(Mode:Char); //'R'��;'W'�g�J
+Procedure TCB_IMGPSScanX.R_W_Scanini(Mode:Char); //'R'讀取;'W'寫入
var
ini : Tinifile;
begin
@@ -4379,28 +4871,28 @@
DeviceDeleteSize := ini.ReadInteger('DeviceDelete','Size_New',Def_DeviceDeleteSize);
ScannerReverse := ini.ReadBool('Scanner','Reverse',Def_ScannerReverse);
BoardClear := ini.ReadBool('Scanner','BoardClear',Def_BoardClear);
- ScanDpi := ini.ReadInteger('Scanner','Dpi',Def_ScanDpi);
+ //ScanDpi := ini.ReadInteger('Scanner','Dpi',Def_ScanDpi);
//ScanDuplex := ini.ReadBool('Scanner','Duplex',Def_ScanDuplex);
ScanRotate := ini.ReadInteger('Scanner','ScanRotate',Def_ScanRotate);
ScanDeskew := ini.ReadBool('Scanner','ScanDeskew',Def_ScanDeskew);
ScanBright := ini.ReadInteger('Scanner','ScanBright',Def_ScanBright);
ScanContrast := ini.ReadInteger('Scanner','ScanContrast',Def_ScanContrast);
ScanImgShowMode := ini.ReadInteger('Scanner','ScanImgShowMode',Def_ScanImgShowMode);
- ScanImgSetUse := ini.ReadBool('Scanner','ScanImgSetUse',Def_ScanImgSetUse); //20101110 BA�����˾��t�Ӧ��ճ]�w�n�s�W���ﶵ�O�_�Ұ�
+ ScanImgSetUse := ini.ReadBool('Scanner','ScanImgSetUse',Def_ScanImgSetUse); //20101110 BA說掃瞄器廠商有調設定要新增此選項是否啟動
end;
'W':begin
ini.WriteBool('DeviceDelete','Mode',DeviceDelete);
ini.WriteInteger('DeviceDelete','Size_New',DeviceDeleteSize);
ini.WriteBool('Scanner','Reverse',ScannerReverse);
ini.WriteBool('Scanner','BoardClear',BoardClear);
- ini.ReadInteger('Scanner','Dpi',ScanDpi);
+ //ini.ReadInteger('Scanner','Dpi',ScanDpi);
//ini.WriteBool('Scanner','Duplex',ScanDuplex);
ini.WriteInteger('Scanner','ScanRotate',ScanRotate);
ini.WriteBool('Scanner','ScanDeskew',ScanDeskew);
ini.WriteInteger('Scanner','ScanBright',ScanBright);
ini.WriteInteger('Scanner','ScanContrast',ScanContrast);
ini.WriteInteger('Scanner','ScanImgShowMode',ScanImgShowMode);
- ini.WriteBool('Scanner','ScanImgSetUse',ScanImgSetUse); //20101110 BA�����˾��t�Ӧ��ճ]�w�n�s�W���ﶵ�O�_�Ұ�
+ ini.WriteBool('Scanner','ScanImgSetUse',ScanImgSetUse); //20101110 BA說掃瞄器廠商有調設定要新增此選項是否啟動
end;
end;
@@ -4409,17 +4901,17 @@
end;
end;
-Procedure TCB_IMGPSScanX.GetDefScanIni; //���o���˪��w�]��
+Procedure TCB_IMGPSScanX.GetDefScanIni; //取得掃瞄的預設值
var
i : Integer;
PARA_NO,PARA_CONTENT: String;
begin
Def_DeviceDelete := True;
- Def_DeviceDeleteSize := 3072; //20120821 �令3000(�X�{)
+ Def_DeviceDeleteSize := 3072; //20120821 改成3000(出現)
Def_ScannerReverse := False;
Def_BoardClear := False;
Def_ScanDpi := 300;
- Def_ScanDuplex := False;
+ Def_ScanDuplex := True;
Def_ScanRotate := 0;
Def_ScanDeskew := False;
Def_ScanImgSetUse := False;
@@ -4429,7 +4921,7 @@
for i := 0 to WORK_INF_List.Count - 1 do
begin
- IF GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BLANKDEL_USE' Then //�ťխ��Ұ�
+ IF GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BLANKDEL_USE' Then //空白頁啟動
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if UpperCase(PARA_CONTENT) ='Y' then
@@ -4437,7 +4929,7 @@
Else
Def_DeviceDelete := False;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BLANKDEL_SIZE' Then //�ťխ�Size
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BLANKDEL_SIZE' Then //空白頁Size
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if PARA_CONTENT = '' then
@@ -4446,7 +4938,7 @@
Def_DeviceDeleteSize := Strtoint(PARA_CONTENT);
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_REVERSE' Then //�O�_�ݤϬ�
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_REVERSE' Then //是否需反相
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if UpperCase(PARA_CONTENT) ='Y' then
@@ -4454,7 +4946,7 @@
Else
Def_ScannerReverse := False;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BOARDCLEAR' Then //�O�_�M����
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BOARDCLEAR' Then //是否清黑邊
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if UpperCase(PARA_CONTENT) ='Y' then
@@ -4462,7 +4954,7 @@
Else
Def_BoardClear := False;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DPI' Then //����DPI
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DPI' Then //掃瞄DPI
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if PARA_CONTENT = '' then
@@ -4470,7 +4962,7 @@
else
Def_ScanDpi := Strtoint(PARA_CONTENT);
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DUPLEX' Then //�O�_��������
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DUPLEX' Then //是否雙面掃瞄
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if UpperCase(PARA_CONTENT) ='Y' then
@@ -4479,7 +4971,7 @@
Def_ScanDuplex := False;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_ROTATE_MODE' Then //���ˮɱ��ਤ��
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_ROTATE_MODE' Then //掃瞄時旋轉角度
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if PARA_CONTENT = '0' then
@@ -4493,7 +4985,7 @@
Else
Def_ScanRotate := 0;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DESKEW' Then //�O�_�ɱ��B��
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DESKEW' Then //是否傾斜矯正
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if UpperCase(PARA_CONTENT) ='Y' then
@@ -4501,7 +4993,7 @@
Else
Def_ScanDeskew := False;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_IMGSET_USE' Then //�O�_�ϥΫG���]�w
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_IMGSET_USE' Then //是否使用亮度對比設定
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if UpperCase(PARA_CONTENT) ='Y' then
@@ -4509,7 +5001,7 @@
else
Def_ScanImgSetUse := False;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BRIGHT' Then //�G��
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BRIGHT' Then //亮度
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if PARA_CONTENT ='' then
@@ -4520,7 +5012,7 @@
Def_ScanBright := 0;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_CONTRAST' Then //���
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_CONTRAST' Then //對比
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
if PARA_CONTENT ='' then
@@ -4542,30 +5034,35 @@
Else
Def_ScanImgShowMode := 0;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'CASE_IN_TIME' Then //���i��I��ɶ�
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'CASE_IN_TIME' Then //取進件截止時間
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
ScanDenialTime := PARA_CONTENT;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_HINT' Then //���y���ܦr��
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_HINT' Then //掃描提示字串
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
ScanDenialHint := PARA_CONTENT;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'NO_SAVE_FORM_ID' Then //���y���s�ɤ����N��
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'NO_SAVE_FORM_ID' Then //掃描不存檔之表單代號
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
NoSaveBarCodeList.CommaText := PARA_CONTENT;
end
- Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'LOCAL_PATH' Then //�����ݸ��|
+ Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'LOCAL_PATH' Then //本機端路徑
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
ImagePath:= PARA_CONTENT;
end
- Else if UpperCase(GetSQLData(WORK_INF_List,'PARA_NO',i)) = 'GUIDEFORMID' Then //��ɤޭ������
+ Else if UpperCase(GetSQLData(WORK_INF_List,'PARA_NO',i)) = 'GUIDEFORMID' Then //當導引頁的表單
begin
PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
GuideFormIDList.CommaText := PARA_CONTENT;
+ end
+ Else if UpperCase(GetSQLData(WORK_INF_List,'PARA_NO',i)) = 'DIVPAGEFORMID' Then //當分案頁的表單
+ begin
+ PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
+ DivPageFormIDList.CommaText := PARA_CONTENT;
end;
end;
ScanDuplex := Def_ScanDuplex;
@@ -4617,6 +5114,7 @@
Md : TMouseMode;
ISB : TImageScrollBox;
begin
+//ShowMessage(IntToStr(v));
case v of
-1 : Md := TMouseMode(mmUser);
0 : Md := TMouseMode(mmAmplifier);
@@ -4631,6 +5129,7 @@
begin
ISB := TImageScrollBox(FindComponent('ISB'+inttostr(i)));
ISB.MouseMode := TMouseMode(Md);
+ //Label3.Caption:='v='+IntToStr(v)+' time'+FormatDateTime('yyyy/mm/dd HH:MM:SS', now);
end;
end;
@@ -4695,13 +5194,13 @@
Result := False; // http://192.168.0.101:8080/fbnp/servlet/CWC01?act=getservertime
If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/servertimeforocx','',FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
@@ -4710,19 +5209,52 @@
ServerDate := memo1.Lines.Strings[1];
ServerTime := Copy(ServerDate,9,6);
ServerDate := Copy(ServerDate,1,8);
- Balance := GetBalance(ServerTime); //Server ��Local���ɶ��t
+ Balance := GetBalance(ServerTime); //Server 跟Local的時間差
Result := True;
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
end;
-Function TCB_IMGPSScanX.GetSetInf1 : Boolean; //���t�γ]�w��TMode1 DOC_INF
+Function TCB_IMGPSScanX.GetSampleInf : Boolean;
+var
+ str:String;
+begin
+ Result := False;
+ If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/serversampleforocx','work_no='+FWork_no,FReWrite,Memo1,False) Then
+ begin
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ Result := False;
+ Exit;
+ end;
+ IF memo1.Lines.Strings[0] = '1' Then
+ begin
+ HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
+ Result := False;
+ Exit;
+ end
+ Else IF memo1.Lines.Strings[0] = '0' Then
+ begin
+ str := memo1.Lines.Strings[1];
+ SampleFormIDList.CommaText:=str;
+
+ Result := True;
+ end
+ Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
+ begin
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
+ Result := False;
+ Exit;
+ end;
+
+end;
+
+Function TCB_IMGPSScanX.GetSetInf1 : Boolean; //取系統設定資訊Mode1 DOC_INF
Var
ColumeStr : String;
S : TStringlist;
@@ -4737,14 +5269,14 @@
If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=1&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
@@ -4758,13 +5290,13 @@
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
end;
-Function TCB_IMGPSScanX.GetSetInf2 : Boolean; //���t�γ]�w��TMode2 DM_FORM_INF
+Function TCB_IMGPSScanX.GetSetInf2 : Boolean; //取系統設定資訊Mode2 DM_FORM_INF
var
ColumeStr : String;
S : TStringlist;
@@ -4777,13 +5309,13 @@
//If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=2&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=2&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
@@ -4797,13 +5329,13 @@
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
end;
-Function TCB_IMGPSScanX.GetSetInf3 : Boolean; //���t�γ]�w��Tmode3 FORM_INF
+Function TCB_IMGPSScanX.GetSetInf3 : Boolean; //取系統設定資訊mode3 FORM_INF
var
ColumeStr : String;
S : TStringlist;
@@ -4817,13 +5349,13 @@
//If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=3&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=3&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
@@ -4837,13 +5369,13 @@
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
end;
-Function TCB_IMGPSScanX.GetSetInf4 : Boolean; //���t�γ]�w��Tmode4 CHECK_RULE_INF
+Function TCB_IMGPSScanX.GetSetInf4 : Boolean; //取系統設定資訊mode4 CHECK_RULE_INF
var
ColumeStr : String;
S : TStringlist;
@@ -4857,13 +5389,13 @@
//If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=4&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=4&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
@@ -4877,14 +5409,14 @@
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
CheckRule2OMRErrInfo;
end;
-Function TCB_IMGPSScanX.GetSetInf5 : Boolean; //���t�γ]�w��Tmode5 MEMO_INF
+Function TCB_IMGPSScanX.GetSetInf5 : Boolean; //取系統設定資訊mode5 MEMO_INF
var
ColumeStr : String;
S : TStringlist;
@@ -4897,13 +5429,13 @@
//If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=5&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=5&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
@@ -4917,13 +5449,13 @@
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
end;
-Function TCB_IMGPSScanX.GetSetInf6 : Boolean; //���t�γ]�w��Tmode5 WORK_INF
+Function TCB_IMGPSScanX.GetSetInf6 : Boolean; //取系統設定資訊mode5 WORK_INF
var
ColumeStr : String;
S : TStringlist;
@@ -4937,13 +5469,13 @@
//If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=5&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=6&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
@@ -4957,13 +5489,13 @@
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
end;
-Function TCB_IMGPSScanX.GetSetInf7 : Boolean; //���t�γ]�w��Tmode5 LASTEST_FORM_INF
+Function TCB_IMGPSScanX.GetSetInf7 : Boolean; //取系統設定資訊mode5 LASTEST_FORM_INF
var
ColumeStr : String;
S : TStringlist;
@@ -4977,13 +5509,13 @@
//If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=5&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=7&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
@@ -4997,13 +5529,13 @@
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
end;
-Procedure TCB_IMGPSScanX.SetFormID_DocNo; //�NFormID��Docno��X�ӥt�s�Jlist�� 20130403�W�[
+Procedure TCB_IMGPSScanX.SetFormID_DocNo; //將FormID及Docno抽出來另存入list裡 20130403增加
var
i : Integer;
begin
@@ -5015,7 +5547,7 @@
end;
-Procedure TCB_IMGPSScanX.SetIn_WH_DocNo; //�N�n�J�w��DocNo��X�ӥt�s�Jlist��
+Procedure TCB_IMGPSScanX.SetIn_WH_DocNo; //將要入庫的DocNo抽出來另存入list裡
var
i : Integer;
begin
@@ -5029,7 +5561,7 @@
StringtoFile(IN_WH_DocNoList.Text,'D:\121.txt');}
end;
-Procedure TCB_IMGPSScanX.CheckRule2OMRErrInfo; //�ˮֳW�h��JOMRErrINFo Record
+Procedure TCB_IMGPSScanX.CheckRule2OMRErrInfo; //檢核規則填入OMRErrINFo Record
var i : Integer;
CheckNo : String;
begin
@@ -5040,14 +5572,14 @@
if FindSQLData(CHECK_RULE_INF_List,'MESG_SHOW_TYPE,MESG_DISP_TYPE,CHECK_MESG,SCAN_MODE','CHECK_NO',CheckNo,0,FindResult) then
begin
if GetFindResult('MESG_SHOW_TYPE') = '1' then
- OMRErrInfo[i].Display := True //���
+ OMRErrInfo[i].Display := True //顯示
Else if GetFindResult('MESG_SHOW_TYPE') = '2' then
- OMRErrInfo[i].Display := False; //�����
+ OMRErrInfo[i].Display := False; //不顯示
if GetFindResult('MESG_DISP_TYPE') = '1' then
- OMRErrInfo[i].Ignore := True //�i����
+ OMRErrInfo[i].Ignore := True //可忽略
Else if GetFindResult('MESG_DISP_TYPE') = '2' then
- OMRErrInfo[i].Ignore := False; //���i����
+ OMRErrInfo[i].Ignore := False; //不可忽略
OMRErrInfo[i].Info := GetFindResult('CHECK_MESG');
OMRErrInfo[i].Mode := GetFindResult('SCAN_MODE');
@@ -5074,14 +5606,17 @@
end;
end;
-Procedure TCB_IMGPSScanX.DeleteImageFile(Path,FileName,CaseID:String); // �R���ɮ� (�L�k�o��DocDir��)
+Procedure TCB_IMGPSScanX.DeleteImageFile(Path,FileName,CaseID:String); // 刪除檔案 (無法得到DocDir用)
var
i : Integer;
FileList:TStringlist;
DocDir : String;
begin
+
+
DeleteFile(Path+FileName);
DocDir := Path2DocDir(Path,CaseID);
+//ShowMessage('DocDir='+DocDir);
SetContextList('D',-1,CaseID,DocDir,FileName);
{FileList:=TStringlist.Create;
try
@@ -5103,7 +5638,7 @@
end;}
end;
-Procedure TCB_IMGPSScanX.DeleteFormCodeFile(CaseID,DocDir,FormID:String); //�R�����wFormID���
+Procedure TCB_IMGPSScanX.DeleteFormCodeFile(CaseID,DocDir,FormID:String); //刪除指定FormID文件
var
i: Integer;
FileList : TStringlist;
@@ -5118,6 +5653,15 @@
begin
if FileName2FormCode(FileList.Strings[i]) = FormID then
begin
+ if (FMode = 'ESCAN') and (FModeName<>'異動件') then
+ begin
+ if ISExistImg(ImageSavePath+CaseID+'\'+DocDir+'\'+FileList.Strings[i]) then
+ begin
+ //ShowMessage('有圖為非當次掃瞄,不可刪除');
+ Break;
+ end;
+ end;
+//ShowMessage(FileList.Strings[i]);
DeleteImageFile(ImageSavePath+CaseID+'\'+DocDir+'\',FileList.Strings[i],CaseID);
end;
end;
@@ -5128,7 +5672,7 @@
{for i := ContextList.Count - 1 downto 0 do
begin
FName := ContextList.Strings[i];
- if FormID = 'Err' then //�R�����U���
+ if FormID = 'Err' then //刪未註冊文件
begin
If not FormIDExists(FileName2FormCode(FName),False,0) Then
begin
@@ -5149,7 +5693,7 @@
ReSortFileName(Path); }
end;
-Function TCB_IMGPSScanX.DeleteDocNoFile(Path,DocNo:String):Boolean; //�R�����wDocNo���
+Function TCB_IMGPSScanX.DeleteDocNoFile(Path,DocNo:String):Boolean; //刪除指定DocNo文件
var
i: Integer;
FName : String;
@@ -5163,7 +5707,7 @@
DeleteFile(Path+FName);
ContextList.Delete(i);
Context_DocnoList.Delete(i);
- Result := True; //���R����w���
+ Result := True; //有刪到指定文件
end;
end;
ContextList.SaveToFile(Path+'Context.dat');
@@ -5175,7 +5719,41 @@
Cust_DocNoList.LoadFromFile(Path+'CustomDocNo.dat');
end;
-Procedure TCB_IMGPSScanX.DeleteShowFile(Path:String); //�R����ܤ����v��
+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;
DelFile : String;
@@ -5189,7 +5767,7 @@
end;
-Function TCB_IMGPSScanX.GetDataDocNoPage(MainDocNo,MainVersion:String):Integer; //���O�������_��������
+Function TCB_IMGPSScanX.GetDataDocNoPage(MainDocNo,MainVersion:String):Integer; //取記錄的文件_版本頁數
var
P : String;
begin
@@ -5204,28 +5782,37 @@
end;
end;
-Function TCB_IMGPSScanX.CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //���ץ�̪����_��������
+Function TCB_IMGPSScanX.CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //取案件裡的文件_版本頁數
var
i,n,Count : integer;
S : TStringlist;
FormCode,iPage : String;
begin
- Count := 1;
+ Count := 0;
S := TStringlist.Create;
try
S.LoadFromFile(ImageSavePath+CaseID+'\upload\Context.dat');
- for I := 0 to pages-1 do
+ for I := 1 to pages do //從0到pages-1 改成 1到pages 20170316 這樣可以修改檢核的頁數問題
begin
iPage := Add_Zoo(i,2);
for n := 0 to S.Count - 1 do
begin
+
+ if (FWH_category='N') and (FIs_In_Wh='Y') then
+ begin
+ if ISExistImg(ImageSavePath+CaseID+'\upload\'+S.Strings[n]) then
+ begin
+ Continue;
+ end;
+ end;
FormCode := FileName2FormCode(S.Strings[n]);
- //Showmessage('1:'+version+','+FormCode2Version(FormCode)+','+DocNo+','+FormCode2DocNo(FormCode)+','+iPage+','+FormCode2Page(FormCode));
+//Showmessage('1:'+version+','+FormCode2Version(FormCode)+','+DocNo+','+FormCode2DocNo(FormCode)+','+iPage+','+FormCode2Page(FormCode));
if (version = FormCode2Version(FormCode)) and (DocNo = FormCode2DocNo(FormCode)) and (ipage = FormCode2Page(FormCode)) then
begin
- //Showmessage(inttostr(Count+1));
+//Showmessage(version+','+DocNo+',iPage='+iPage);
+//Showmessage(inttostr(Count+1));
Inc(Count);
- Break; //���F...���}
+ Break; //找到了...離開
end;
end;
end;
@@ -5235,7 +5822,7 @@
Result := Count;
end;
-Function TCB_IMGPSScanX.FindFormCodePages(CaseID,FormCode:String):Integer; //�p��ץ��FormID������
+Function TCB_IMGPSScanX.FindFormCodePages(CaseID,FormCode:String):Integer; //計算案件裡FormID的頁數
var
i,Count : integer;
S : TStringlist;
@@ -5247,6 +5834,13 @@
S.LoadFromFile(ImageSavePath+CaseID+'\upload\Context.dat');
for i := 0 to S.Count - 1 do
begin
+ if FWH_category='N' then
+ begin
+ if ISExistImg(ImageSavePath+CaseID+'\upload\'+S.Strings[i]) then
+ begin
+ Continue;
+ end;
+ end;
iFormCode := FileName2FormCode(S.Strings[i]);
if FormCode = iFormCode then
begin
@@ -5259,7 +5853,7 @@
Result := Count;
end;
-Function TCB_IMGPSScanX.GetDataFormCodePages(FormCode:String):Integer; //���O����FormcID������
+Function TCB_IMGPSScanX.GetDataFormCodePages(FormCode:String):Integer; //取記錄的FormcID的頁數
begin
If FindSQLData(FORM_INF_List,'T1.MAX_PAGE','T1.FORM_ID',FormCode,0,FindResult) Then
begin
@@ -5270,7 +5864,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.CaseReSize(CaseID:String); //�ץv���Y��
+Procedure TCB_IMGPSScanX.CaseReSize(CaseID:String); //案件的影像縮放
var
S : TStringlist;
FileName : String;
@@ -5286,19 +5880,19 @@
For i := 0 to S.Count -1 do
begin
FileName := S.Strings[i];
- ImageReSize(CaseID,FileName); //�̤Q�r�w���I���Y��
+ ImageReSize_FormID(CaseID,FileName); //依十字定位點做縮放
end;
finally
S.Free;
end;
end;
-Procedure TCB_IMGPSScanX.ImageReSize(CaseID,FileName:String); //�̤Q�r�w���I���Y��
+Procedure TCB_IMGPSScanX.ImageReSize_FormID(CaseID,FileName:String); //依十字定位點做縮放
var
FormID : String;
DH,DW : String;
NowW,NowH : Integer;
- ANCHOR : String; //�O�_���Q�r�u
+ ANCHOR : String; //是否有十字線
SizeStr : String;
S : TStringlist;
v,v1:Integer;
@@ -5312,18 +5906,28 @@
DW := GetFindResult('T1.FORM_WIDTH');
ANCHOR := UpperCase(GetFindResult('T1.ANCHOR'));
ANCHOR := Index2Anchor(ANCHOR);
- if ((ANCHOR = 'ANCHOR') or (ANCHOR = 'FRAME')) and (DH <> '') and (DW <> '') then //���Q�r�w���I
+Display1.Lines.Add(FormID+','+DH+','+DW);
+//ShowMessage('AAAAAAAAA');
+ if ((ANCHOR = 'ANCHOR') or (ANCHOR = 'FRAME')) and (DH <> '') and (DW <> '') then //有十字定位點
begin
+//ShowMessage('BBBBBBB');
ImageScrollBox1.LoadFromFile(ImageSavePath+CaseID+'\Upload\'+FileName,1);
//FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH);
FindPoint(ISB_BW.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH,ANCHOR);
+
SizeStr := CheckSize(ISB_BW,UpLPoint,UpRPoint,DownLPoint,DW,DH);
+ ImageResize(ImageScrollBox1.Graphic,ISB_BW.Graphic.Width,ISB_BW.Graphic.Height);
+
+ FindPoint(ISB_BW.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH,ANCHOR);
v := 5;
v1 := length(SizeStr);
IF (SizeStr <> '') and (Copy(SizeStr,1,v) <> 'ERROR') then
begin
+//ShowMessage('CCCCC');
+
ImageScrollBox1.SaveToFile(ImageSavePath+CaseID+'\Upload\'+FileName);
- S := TStringlist.Create; ///20110422���� �����W�Ǥ~��
+//showmessage(ImageSavePath+CaseID+'\Upload\'+FileName);
+ S := TStringlist.Create; ///20110422拿掉 換成上傳才做
if FileExists(ImageSavePath+CaseID+'\Upload\ReSize.dat') then
S.LoadFromFile(ImageSavePath+CaseID+'\Upload\ReSize.dat');
//S.Add(FormCode2FormName(FormID)+' '+SizeStr);
@@ -5331,7 +5935,7 @@
S.SaveToFile(ImageSavePath+CaseID+'\Upload\ReSize.dat');
S.Free;
end;
- if (Copy(SizeStr,1,v) = 'ERROR') then //�����T�өw���I
+ if (Copy(SizeStr,1,v) = 'ERROR') then //未找到三個定位點
begin
S := TStringlist.Create;
if FileExists(ImageSavePath+CaseID+'\Upload\AnchorError.dat') then
@@ -5346,10 +5950,10 @@
end;
end;
-Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String); //�̤Q�r�w���I���Y��(�Ȧs��)
+Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String); //依十字定位點做縮放(暫存檔)
var
DH,DW : String;
- ANCHOR : String; //�O�_���Q�r�u
+ ANCHOR : String; //是否有十字線
SizeStr : String;
S : TStringlist;
begin
@@ -5359,7 +5963,7 @@
DW := GetFindResult('T1.FORM_WIDTH');
ANCHOR := UpperCase(GetFindResult('T1.ANCHOR'));
ANCHOR := Index2Anchor(ANCHOR);
- if ((ANCHOR = 'ANCHOR') or (ANCHOR = 'FRAME')) and (DH <> '') and (DW <> '') then //���Q�r�w���I
+ if ((ANCHOR = 'ANCHOR') or (ANCHOR = 'FRAME')) and (DH <> '') and (DW <> '') then //有十字定位點
begin
ImageScrollBox1.LoadFromFile(FileName,1);
SizeStr := CheckSize(ImageScrollBox1,UpLPoint,UpRPoint,DownLPoint,DW,DH);
@@ -5382,7 +5986,7 @@
end;
end;
-Function TCB_IMGPSScanX.TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //�ǰe�ץ�
+Function TCB_IMGPSScanX.TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //傳送案件
Var
i,n,v: Integer;
ZipFileList : TStringlist;
@@ -5395,7 +5999,15 @@
SendData:String;
Doc_Data,Doc_Data1 : String;
In_Doc1,In_Doc2 : String;
- AttachYN : String; //�O�_������ Y:�� N:�S��
+ AttachYN : String; //是否有附件 Y:有 N:沒有
+
+ ST1,ST2:TStringList;
+ str1,str2:String;
+ must_formidStr :string;
+ last_add_formidstr :string;
+ casepath:String;
+ filesizeInt:integer;
+ case_page:string;
begin
Result := True;
TransName := CaseID;
@@ -5407,69 +6019,150 @@
end;
if FileExists(Path+'CustomDocNo.dat') then
Cust_DocNoList.LoadFromFile(Path+'CustomDocNo.dat');
- Pages := ContextList.Count;
- if (FMode = 'NSCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN') or (FMode = 'RSCAN') or (FMode = 'ESCAN') then
+ Pages := ContextList.Count;
+ case_page:=IntToStr(pages);
+ if (FMode = 'NSCAN') or (FMode = 'ESCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN') or (FMode = 'RSCAN') then
begin
//Showmessage('1');
UpformID := GetCaseFormID(Path);
- {if UpformID = '' then //20131213 yuu�����ޥDform
+ {if UpformID = '' then //20131213 yuu說不管主form
begin
- Showmessage(_msg('������DFormID!!'));
+ Showmessage(_msg('取不到主FormID!!'));
Result := False;
DataLoading(False,False);
Exit;
end;}
end;
- CaseResort2Scanlist(Path); //�ɦW�ӳ]�w�ƧDz���scanlist.dat
- //CaseResort(Path); //�ɦW�ӳ]�w�Ƨ�
- CreateFormID_FormName(Path,CaseID); //����FormID_FormName.dat
- CreateDocNo_DocName(Path,CaseID); //����DocNo_Name.dat
- Doc_Data := CreateDocNo_Info(CaseID); //���ͫO�U��� Docno,����,����;Docno,����,���� ���^�Ǧr��
- Doc_Data1 := CreateCustDocNo_Info(CaseID); //���ͦ۩w��� Docname,����,����;Docno,����,���� ���^�Ǧr��
- In_Doc1 := CreateDocnoFrom_Info(CaseID); //���ͳQ�i���O�U����T Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
- In_Doc2 := CreateCustDocNoFrom_Info(CaseID); //���ͳQ�i���۩w����T Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
- AttachYN := CreateAttach_Info(CaseID); //�O�_�٦����� Y:�� N:�S��
+
+ CaseResort2Scanlist(Path); //檔名照設定排序產生scanlist.dat
+ //CaseResort(Path); //檔名照設定排序
+ CreateFormID_FormName(Path,CaseID); //產生FormID_FormName.dat
+ CreateDocNo_DocName(Path,CaseID); //產生DocNo_Name.dat
+//ShowMessage('EEEEEEEEEE');
+ Doc_Data := CreateDocNo_Info(CaseID); //產生保管袋文件 Docno,份數,頁數;Docno,份數,頁數 的回傳字串
+//ShowMessage('1111111111');
+ Doc_Data1 := CreateCustDocNo_Info(CaseID); //產生自定文件 Docname,份數,頁數;Docno,份數,頁數 的回傳字串
+//ShowMessage('2222222222');
+ In_Doc1 := CreateDocnoFrom_Info(CaseID); //產生被引進的保管袋文件資訊 Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
+//ShowMessage('333333333333333333');
+ In_Doc2 := CreateCustDocNoFrom_Info(CaseID); //產生被引進的自定文件資訊 Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
+//ShowMessage('4444444444444');
+ AttachYN := CreateAttach_Info(CaseID); //是否還有附件 Y:有 N:沒有
//self.ReadCaseIndex()
+//ShowMessage('555555555555');
ReadCaseIndex(Path);
+//ShowMessage('DDDDDDDDDD');
//LoanDoc := 'Y';
- //���;B�n�v��
- if FWork_No = 'CW' then
- HaveMask := Case2Mask(Path,MaskPath);
- //���;B�n�v��
+ //產生遮罩影像
+// if FWork_No = 'CW' then
+// HaveMask := Case2Mask(Path,MaskPath);
+ //產生遮罩影像
// S := S +#13+'5-->'+ Timetostr(now);
+ ///////必要formid 20170315 start //////////////////////////////
+ must_formidStr:='';
+ last_add_formidstr:='';
+ ST1:=TStringList.Create;
+ ST1.LoadFromFile(path+'FormCode_Name.dat');
+//ShowMessage(ST1.Text);
+//ShowMessage(LastInitFormidList.Text);
+ ST2:=TStringList.Create;
+
+ for I := 0 to ST1.Count - 1 do
+ begin
+ if (Pos('_',St1.Strings[i])<>1) and (Pos('_',St1.Strings[i])<>-11) then
+ begin
+ str1:=Copy(ST1.Strings[i],1,Pos('_',St1.Strings[i])-1);
+ ST2.Add(str1);
+ must_formidStr:= must_formidStr+str1+'@#,';
+ end;
+ end;
+ must_formidStr:=Copy(must_formidStr,1,Length(must_formidStr)-3) ;
+//ShowMessage('must_formidStr='+must_formidStr);
+//ShowMessage('AST2='+ST2.Text);
+ for I := 0 to LastInitFormidList.Count - 1 do
+ begin
+ if ST2.IndexOf(LastInitFormidList.Strings[i]) <> -1 then
+ begin
+ ST2.Delete(ST2.IndexOf(LastInitFormidList.Strings[i]));
+ end;
+ end;
+//ShowMessage('BST2='+ST2.Text);
+ for I := 0 to ST2.Count - 1 do
+ begin
+ last_add_formidstr:=last_add_formidstr+ST2.Strings[i]+'@#,';
+ end;
+ last_add_formidstr:=Copy(last_add_formidstr,1,Length(last_add_formidstr)-3) ;
+ ST1.Free;
+ ST2.Free;
+//ShowMessage('last_add_formidstr='+last_add_formidstr);
+ ///////必要formid 20170315 end //////////////////////////
+
+ ///保留外部影像 start///////////////////////////////
+ casepath:= Copy(Path,1,pos('Upload',path)-1);
+//ShowMessage('casepath='+casepath);
+//FIsExternal:='Y';
+ if (FMode='ESCAN') and (FIsExternal='Y') then
+ begin
+ if FileExists(casepath+'Download\FirstImg.zip') then
+ begin
+ CopyFile(PWChar(casepath+'Download\FirstImg.zip'),PWChar(path+'FirstImg.zip'),false);
+ end
+ else
+ begin
+ CopyFile(PWChar(casepath+'Download\'+CaseID+'.zip'),PWChar(path+'FirstImg.zip'),false);
+ end;
+ end;
+ ///保留外部影像 end///////////////////////////////
+
+ //file_size 計算 就先不做 20170316
+ filesizeInt:=0;
- //////����/////
+ //////壓檔/////
ZipMainFile(Path,Path,'Img.zip');
if HaveMask then
- ZipMaskFile(Path,MaskPath,Path,'MaskImg.zip'); //���B�n�]�w���~����
- /////����////
- ////�W��/////
- SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&form_id='+UpformID+'&loan_doc='+Case_loandoc+'&case_no='+TransName+'&doc_data='+HTTPEncode(UTF8Encode(Doc_Data))+'&doc_data1='+HTTPEncode(UTF8Encode(Doc_Data1))+'&attach='+AttachYN+'&in_doc1='+HTTPEncode(UTF8Encode(In_Doc1))+'&in_doc2='+HTTPEncode(UTF8Encode(In_Doc2));
-
+ ZipMaskFile(Path,MaskPath,Path,'MaskImg.zip'); //有遮罩設定的才產生
+ /////壓檔////
+ ////上傳/////
+ SendData:='data='+HTTPEncode(UTF8Encode(FData))
+ +'&verify='+FVerify
+ +'&form_id='+UpformID
+ +'&loan_doc='+Case_loandoc
+ +'&case_no='+TransName
+ +'&doc_data='+HTTPEncode(UTF8Encode(Doc_Data))
+ +'&doc_data1='+HTTPEncode(UTF8Encode(Doc_Data1))
+ +'&attach='+AttachYN
+ +'&case_page='+case_page
+ +'&file_size='+IntToStr(filesizeInt)
+ +'&must_formid='+must_formidStr //擁有的 formid
+ +'&last_add_formid='+last_add_formidstr //當次新加的 formid
+ +'&in_doc1='+HTTPEncode(UTF8Encode(In_Doc1))
+ +'&in_doc2='+HTTPEncode(UTF8Encode(In_Doc2));
+//ShowMessage('SendData='+SendData);
+//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('�ǰe�ץ�s��(%s)�ɮ�,�����o�Ϳ��~!!'+_Msg('���~�N�X:')),[CaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+ Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!'+_Msg('錯誤代碼:')),[CaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
Result := False;
Exit;
end;
if memo1.Lines.Strings[0] = '1' then
begin
- Showmessage(Format(_Msg('�ǰe�ץ�s��(%s)�ɮ�,�����o�Ϳ��~!!')+_Msg('���~��]:'),[CaseID])+memo1.Lines.Strings[1]);
+ Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!')+_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
begin
- Showmessage(Format(_Msg('�ǰe�ץ�s��(%s)�ɮ�,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'),[CaseID]));
+ Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'),[CaseID]));
Result := False;
Exit;
end;
- ////�W��////
+ ////上傳////
- if FMode = 'ESCAN' then //�W���¥�ޤJ�ɮ� //20140616 �쥻���h�¥�A�h�s��,�אּ���h�s��A�h�¥�
+ if FMode = 'ESCAN' then //上傳舊件引入檔案 //20140616 原本先搬舊件再搬新件,改為先搬新件再搬舊件
begin
if not TransOldCaseFile(ImageSavePath+CaseID+'\') then
begin
@@ -5480,22 +6173,22 @@
- // �I�sServer���� /////
+ // 呼叫Server完成 /////
{If not CaseComplete(Path,CaseID,MainCase) Then
begin
- Showmessage(_Msg('�q���ץ�ǰe������,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('通知案件傳送完成時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Result := False;
Exit;
end; }
- /// �I�sServer����////
+ /// 呼叫Server完成////
- ////�R��////
- //_DelTree(Path); //�|�u�RTransPath
+ ////刪檔////
+ //_DelTree(Path); //會只刪TransPath
//ShowMessage('STOP');
_DelTree(ImageSavePath+CaseID);
SetCaseList('D',-1,CaseID);
- ////�R��////
+ ////刪檔////
end;
Procedure TCB_IMGPSScanX.NewTreeNodeRefresh;
@@ -5503,10 +6196,10 @@
v : Integer;
begin
//v := Pos('-',NewTreeNode.Text);
- //NewTreeNode.Text := Copy(NewTreeNode.Text,1,v-1)+'-�@'+inttostr(NewTreeNode.Count)+'��';
+ //NewTreeNode.Text := Copy(NewTreeNode.Text,1,v-1)+'-共'+inttostr(NewTreeNode.Count)+'筆';
GetCase_PageCount(CaseCount,PageCount);
v := Pos('-',NewTreeNode.Text);
- NewTreeNode.Text := Format(_Msg('%s-�@%d���@%d��'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
+ NewTreeNode.Text := Format(_Msg('%s-共%d筆共%d頁'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
end;
Procedure TCB_IMGPSScanX.MyTreeNode1Refresh;
@@ -5514,7 +6207,7 @@
v : Integer;
begin
v := Pos('-',MyTreeNode1.Text);
- MyTreeNode1.Text := Format(_Msg('%s-%d��'),[Copy(MyTreeNode1.Text,1,v-1),MyTreeNode1.Count]);
+ MyTreeNode1.Text := Format(_Msg('%s-%d筆'),[Copy(MyTreeNode1.Text,1,v-1),MyTreeNode1.Count]);
end;
Procedure TCB_IMGPSScanX.MyTreeNode2ReFresh(CaseID:String);
@@ -5522,7 +6215,7 @@
P : Integer;
begin
//p:= ContextList.Count;
- //MytreeNode1.Text := Format(_Msg('%s-%d��'),[CaseID,p]);
+ //MytreeNode1.Text := Format(_Msg('%s-%d頁'),[CaseID,p]);
DrawDocItem2(MytreeNode1,CaseID);
//DrawDocItem(MytreeNode1,FORM_INF_List,CaseID);
end;
@@ -5530,12 +6223,12 @@
Procedure TCB_IMGPSScanX.MyTreeNode3ReFresh(CaseID:String);
begin
- //DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseID); //201408280��
+ //DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseID); //201408280改
DrawDocItem2(MytreeNode1,CaseID);
//DrawDocItem(MytreeNode1,FORM_INF_List,CaseID);
end;
-Function TCB_IMGPSScanX.Node2DocNo(Node2:TTreeNode):String; //MyTreeNode2��DocNo�X��
+Function TCB_IMGPSScanX.Node2DocNo(Node2:TTreeNode):String; //MyTreeNode2取DocNo出來
var
v,v1,v2 : Integer;
begin
@@ -5549,7 +6242,7 @@
end;
end;
-Function TCB_IMGPSScanX.Node3DocNo(Node3:TTreeNode):String; //MyTreeNode3��DocNo�X��
+Function TCB_IMGPSScanX.Node3DocNo(Node3:TTreeNode):String; //MyTreeNode3取DocNo出來
var
v,v1,v2 : Integer;
begin
@@ -5563,7 +6256,7 @@
end;
end;
-Function TCB_IMGPSScanX.Node3FormID(Node3:TTreeNode):String; //MyTreeNode3��FormCode�X��
+Function TCB_IMGPSScanX.Node3FormID(Node3:TTreeNode):String; //MyTreeNode3取FormCode出來
var
v,v1,v2 : Integer;
begin
@@ -5578,7 +6271,7 @@
end;
-Function TCB_IMGPSScanX.GetNode2Name(Node2:TTreeNode):String; //��MyTreeNode2���ѧO�r�X��(�O���e�I���)
+Function TCB_IMGPSScanX.GetNode2Name(Node2:TTreeNode):String; //取MyTreeNode2的識別字出來(記之前點選用)
var
v : Integer;
begin
@@ -5605,19 +6298,19 @@
DownUrl := FUrl+CaseID+'&checktime='+EnCodeDateTime;
if not dnFile(HTTPSClient,DownUrl,'','',DPath+CaseID+'.zip',FReWrite,Memo1,False,DownImgStatus) then
begin
- HttpErrStr := _Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason;
Result := False;
Exit;
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
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
@@ -5637,14 +6330,14 @@
end
Else
begin
- if ((FMode = 'FSCAN') or (FMode = 'ISCAN')) and (Memo1.Lines.Strings[0] ='NO_FILE') then //FGIS�e�x�פJ��S���v���O�諸
+ if ((FMode = 'FSCAN') or (FMode = 'ISCAN')) and (Memo1.Lines.Strings[0] ='NO_FILE') then //FGIS前台匯入件沒有影像是對的
begin
SC.Clear;
SC.SaveToFile(DPath+'Context.dat');
end
Else
begin
- HttpErrStr := _Msg('�䤣��v��');
+ HttpErrStr := _Msg('找不到影像');
Result := False;
Exit;
end;
@@ -5660,7 +6353,7 @@
Version := FormCode2Version(FormID);
If FindSQLData(Doc_Inf_List,'ADD_SCAN_RULE','DOC_NO,DOC_VERSION',DocNo+','+Version,0,FindResult) Then
begin
- if GetFindResult('ADD_SCAN_RULE') = 'R' then //���������R�A�[ 20101026 User�ѧRFormCode��RDocNo
+ if GetFindResult('ADD_SCAN_RULE') = 'R' then //替換的先刪再加 20101026 User由刪FormCode改刪DocNo
begin
//DeleteFormCodeFile(DPath,FormID);
ContextList.LoadFromFile(DPath+'Context.dat');
@@ -5668,7 +6361,7 @@
end;
end;
end;
- for I := 0 to SC.Count - 1 do //�ƻs�ɥR�i�Ӫ��v��
+ for I := 0 to SC.Count - 1 do //複製補充進來的影像
begin
OldFName := SC.Strings[i];
Main_C.LoadFromFile(DPath+'Context.dat');
@@ -5681,7 +6374,7 @@
begin
CopyFile(PWideChar(SPath+OldFName),PWideChar(DPath+NewMainFName),False);
end;
- if FormID = '' then //����
+ if FormID = '' then //附件
begin
CopyFile(PWideChar(SPath+OldFName),PWideChar(DPath+NewMainFName),False);
end;
@@ -5692,7 +6385,7 @@
SC.Free;
Main_C.Free;
end;
- ///�[�J���q�l�ɶפJ�ץ��
+ ///加入的電子檔匯入案件裡
if DirectoryExists(SPath+'AttFile\') then
AttFile_Arrange(SPath+'AttFile\',DPath+'AttFile\');
end;}
@@ -5710,22 +6403,23 @@
//ShowMessage(SendData);
if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC04/case',SendData,Path+CaseID+'.zip',FReWrite,Memo1,False,DownImgStatus) then
begin
- HttpErrStr := _Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason;
Result := False;
Exit;
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
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
+//ShowMessage('替換zip');
AttPath := Path + 'AttFile\';
if FileExists(Path+CaseID+'.zip') then
begin
@@ -5742,28 +6436,28 @@
end
Else
begin
- HttpErrStr := _Msg('�䤣��v��');
+ HttpErrStr := _Msg('找不到影像');
Result := True;
Exit;
end;
end;
-Function TCB_IMGPSScanX.GetNoNameCase(Path:String):String; //�����t��XXXX
+Function TCB_IMGPSScanX.GetNoNameCase(Path:String):String; //取未配號XXXX
var
i : Integer;
begin
for i := 1 to 9999 do
begin
- if Not DirectoryExists(Path+_Msg('���t��')+Add_Zoo(i,4)) then
+ if Not DirectoryExists(Path+_Msg('未配號')+Add_Zoo(i,4)) then
begin
- Result := _Msg('���t��')+Add_Zoo(i,4);
+ Result := _Msg('未配號')+Add_Zoo(i,4);
Break;
end;
end;
end;
-Procedure TCB_IMGPSScanX.CaseResort(Path:String); //�ץ��ɮ��s�Ƨ�(������Docno��)
+Procedure TCB_IMGPSScanX.CaseResort(Path:String); //案件的檔案重新排序(次文件依Docno排)
var
i,n,v,v1 : Integer;
S,S1 : TStringlist;
@@ -5775,7 +6469,7 @@
try
S.LoadFromFile(Path+'Context.dat');
X := 0;
- {for I := 1 to FORM_INF_List.Count - 1 do //�bFormID���]�w�� //�D��� ��SQL�� 20101028��
+ {for I := 1 to FORM_INF_List.Count - 1 do //在FormID有設定的 //主文件 照SQL排 20101028改
begin
FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
if FormCode2FileName(FormID,S) = '' then
@@ -5787,15 +6481,15 @@
begin
Inc(X);
OldName := S.Strings[n];
- //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
- NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+ //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+ NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
S.Strings[n] := '*'+S.Strings[n];
S1.Add(OldName+','+NewName);
end;
end;
end;}
- {for I := 0 to FORM_INF_List.Count - 1 do //����� ��FormID 1~8�X+���˶��DZ� 20110512���F�Y�Ӥ��n��������]�n�D��
+ {for I := 0 to FORM_INF_List.Count - 1 do //次文件 照FormID 1~8碼+掃瞄順序排 20110512為了某個文件要先打的原因要求改
begin
for n := 0 to S.Count - 1 do
begin
@@ -5805,13 +6499,13 @@
begin
Inc(X);
OldName := S.Strings[n];
- NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
+ NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
S.Strings[n] := '*'+S.Strings[n];
S1.Add(OldName+','+NewName);
end;
end;
end;}
- for I := 0 to Doc_Inf_List.Count - 1 do //�D��� �Ӥ��N�X+���˶��DZ� 20101101�� 20110512�ߤW�S����^��
+ for I := 0 to Doc_Inf_List.Count - 1 do //主文件 照文件代碼+掃瞄順序排 20101101改 20110512晚上又說改回來
begin
DocNo := GetSQLData(Doc_Inf_List,'DOC_NO',i);
if DocNo2FileName(DocNo,S) = '' then
@@ -5823,8 +6517,8 @@
begin
Inc(X);
OldName := S.Strings[n];
- //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
- NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+ //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+ NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
S.Strings[n] := '*'+S.Strings[n];
S1.Add(OldName+','+NewName);
end;
@@ -5832,7 +6526,7 @@
end;
- for I := 0 to Doc_Inf_List.Count - 1 do //����� �Ӥ��N�X+���˶��DZ� 20101101�� 20110512�ߤW�S����^��
+ for I := 0 to Doc_Inf_List.Count - 1 do //次文件 照文件代碼+掃瞄順序排 20101101改 20110512晚上又說改回來
begin
DocNo := GetSQLData(Doc_Inf_List,'DOC_NO',i);
if DocNo2FileName(DocNo,S) = '' then
@@ -5844,15 +6538,15 @@
begin
Inc(X);
OldName := S.Strings[n];
- //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
- NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+ //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+ NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
S.Strings[n] := '*'+S.Strings[n];
S1.Add(OldName+','+NewName);
end;
end;
end;
- {for n := 0 to S.Count - 1 do //����� �ӱ��˶��DZ� 20101028��
+ {for n := 0 to S.Count - 1 do //次文件 照掃瞄順序排 20101028改
begin
FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
Doc_Type := GetSQLData(FORM_INF_List,'T2.DOC_TYPE',i);
@@ -5862,13 +6556,13 @@
begin
Inc(X);
OldName := S.Strings[n];
- NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
+ NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
S.Strings[n] := '*'+S.Strings[n];
S1.Add(OldName+','+NewName);
end;
end;
end;}
- for i := 0 to S.Count - 1 do //FormID�S�]�w������
+ for i := 0 to S.Count - 1 do //FormID沒設定的或附件
begin
if S.Strings[i][1] <> '*' then
begin
@@ -5881,7 +6575,7 @@
end;
end;
S.Clear;
- for i := 0 to S1.Count - 1 do //�}�l�ഫ�ɦW
+ for i := 0 to S1.Count - 1 do //開始轉換檔名
begin
v := Pos(',',S1.Strings[i]);
v1 := length(S1.Strings[i]);
@@ -5901,7 +6595,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.CaseResort2Scanlist(Path:String); //�ץ��ɮ��s�Ƨǵ�scanlist(������FormID��)
+Procedure TCB_IMGPSScanX.CaseResort2Scanlist(Path:String); //案件的檔案重新排序給scanlist(次文件依FormID排)
var
i,n,v,v1 : Integer;
S,S1 : TStringlist;
@@ -5914,7 +6608,7 @@
if FileExists(Path+'Context.dat') then
S.LoadFromFile(Path+'Context.dat');
X := 0;
- for I := 1 to FORM_INF_List.Count - 1 do //�bFormID���]�w�� //�D��� ��SQL�� 20101028��
+ for I := 1 to FORM_INF_List.Count - 1 do //在FormID有設定的 //主文件 照SQL排 20101028改
begin
FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
if FormCode2FileName(FormID,S) = '' then
@@ -5926,15 +6620,15 @@
begin
Inc(X);
OldName := S.Strings[n];
- //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
- NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+ //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+ NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
S.Strings[n] := '*'+S.Strings[n];
S1.Add(OldName+','+NewName);
end;
end;
end;
- for I := 0 to FORM_INF_List.Count - 1 do //����� ��SQL�� 20110512���F�Y�Ӥ��n��������]�n�D��
+ for I := 0 to FORM_INF_List.Count - 1 do //次文件 照SQL排 20110512為了某個文件要先打的原因要求改
begin
FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
@@ -5947,15 +6641,15 @@
begin
Inc(X);
OldName := S.Strings[n];
- //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
- NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+ //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+ NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
S.Strings[n] := '*'+S.Strings[n];
S1.Add(OldName+','+NewName);
end;
end;
end;
- {for I := 0 to Doc_Inf_List.Count - 1 do //����� �Ӥ��N�X+���˶��DZ� 20101101�� 20110512�ߤW�S����^��
+ {for I := 0 to Doc_Inf_List.Count - 1 do //次文件 照文件代碼+掃瞄順序排 20101101改 20110512晚上又說改回來
begin
DocNo := GetSQLData(Doc_Inf_List,'DOC_NO',i);
Doc_Type := GetSQLData(Doc_Inf_List,'DOC_TYPE',i);
@@ -5965,14 +6659,14 @@
begin
Inc(X);
OldName := S.Strings[n];
- NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
+ NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
S.Strings[n] := '*'+S.Strings[n];
S1.Add(OldName+','+NewName);
end;
end;
end;}
- {for n := 0 to S.Count - 1 do //����� �ӱ��˶��DZ� 20101028��
+ {for n := 0 to S.Count - 1 do //次文件 照掃瞄順序排 20101028改
begin
for i := 0 to FORM_INF_List.Count - 1 do
begin
@@ -5982,13 +6676,13 @@
begin
Inc(X);
OldName := S.Strings[n];
- NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
+ NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
S.Strings[n] := '*'+S.Strings[n];
S1.Add(OldName+','+NewName);
end;
end;
end;}
- for i := 0 to S.Count - 1 do //FormID�S�]�w������
+ for i := 0 to S.Count - 1 do //FormID沒設定的或附件
begin
if S.Strings[i][1] <> '*' then
begin
@@ -6002,7 +6696,7 @@
end;
S.Clear;
- for i := 0 to S1.Count - 1 do //�}�l�ഫ�ɦW
+ for i := 0 to S1.Count - 1 do //開始轉換檔名
begin
v := Pos(',',S1.Strings[i]);
v1 := length(S1.Strings[i]);
@@ -6023,7 +6717,7 @@
end;
-Procedure TCB_IMGPSScanX.DistinctDocinCase(Path:String); //�C�X�ץ�̪�Docno_����
+Procedure TCB_IMGPSScanX.DistinctDocinCase(Path:String); //列出案件裡的Docno_版本
var
i,n,v : Integer;
S : TStringlist;
@@ -6037,6 +6731,13 @@
S.LoadFromFile(Path+'Context.dat');
for I := 0 to S.Count - 1 do
begin
+ if FWH_category='N' then
+ begin
+ if ISExistImg(Path+S.Strings[i]) then
+ begin
+ Continue;
+ end;
+ end;
FormCode := FileName2FormCode(S.Strings[i]);
DocNo := FormCode2DocNo(FormCode);
Ver := FormCode2Version(FormCode);
@@ -6061,7 +6762,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.DistinctDocNoinCase(Path:String); //�C�X�ץ�̪�Docno
+Procedure TCB_IMGPSScanX.DistinctDocNoinCase(Path:String); //列出案件裡的Docno
var
i,n,v : Integer;
S : TStringlist;
@@ -6097,7 +6798,7 @@
end;
-Procedure TCB_IMGPSScanX.ClearErrini(CaseID:String;CaseNode:TTreeNode); //�M���ˮ��ɮ�
+Procedure TCB_IMGPSScanX.ClearErrini(CaseID:String;CaseNode:TTreeNode); //清掉檢核檔案
var
i : Integer;
begin
@@ -6105,7 +6806,7 @@
DeleteFile(ImageSavePath+CaseID+'\Checkerr.ini');
if FileExists(ImageSavePath+CaseID+'\CheckMemo.dat') then
DeleteFile(ImageSavePath+CaseID+'\CheckMemo.dat');
- {if FileExists(ImageSavePath+CaseID+'\ReSize.dat') then //20110421���� �]���O���|����
+ {if FileExists(ImageSavePath+CaseID+'\ReSize.dat') then //20110421拿掉 因為記錄會不見
DeleteFile(ImageSavePath+CaseID+'\ReSize.dat');}
if FileExists(ImageSavePath+CaseID+'\RemoveMemo.dat') then
DeleteFile(ImageSavePath+CaseID+'\RemoveMemo.dat');
@@ -6116,7 +6817,7 @@
CaseNode.SelectedIndex := 2;
end;
-Procedure TCB_IMGPSScanX.SetCaseList(Mode:Char;Index:Integer;text:String); //'A:�[�J,I:���J,D:�R��,E:�ק�'
+Procedure TCB_IMGPSScanX.SetCaseList(Mode:Char;Index:Integer;text:String); //'A:加入,I:插入,D:刪除,E:修改'
var
i : Integer;
begin
@@ -6155,7 +6856,7 @@
CaseList.SaveToFile(ImageSavePath+'CaseList.dat');
end;
-Procedure TCB_IMGPSScanX.SetDocNoList(Mode:Char;Index:Integer;CaseNo,DocDir,Copies:String); //'A:�[�J,I:���J,D:�R��,E:�ק�'
+Procedure TCB_IMGPSScanX.SetDocNoList(Mode:Char;Index:Integer;CaseNo,DocDir,Copies:String); //'A:加入,I:插入,D:刪除,E:修改'
var
i : Integer;
CaseDocNoList : TStringlist;
@@ -6186,8 +6887,9 @@
'D':begin
if Index <> -1 then
begin
- //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[Index]); //20140624 �ק�R�����ɤ]�O�@������,�R���|�L�k�q���e�ݺ���������
- SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[Index]);
+ //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[Index]); //20140624 修改刪除文件時也記一筆異動,刪掉會無法通知前端網頁有異動
+ SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[Index]); //20170912 要刪除 不然我寫不下去
+
CaseDocNoList.Delete(Index);
CaseDocNo_CopiesList.Delete(Index);
@@ -6198,8 +6900,8 @@
begin
if DocDir = CaseDocNoList.Strings[i] then
begin
- //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[i]); //20140624 �ק�R�����ɤ]�O�@������,�R���|�L�k�q���e�ݺ���������
- SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[i]);
+ //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[i]); //20140624 修改刪除文件時也記一筆異動,刪掉會無法通知前端網頁有異動
+ SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[i]); //20170912 要刪除 不然我寫不下去
CaseDocNoList.Delete(i);
CaseDocNo_CopiesList.Delete(i);
Break;
@@ -6213,11 +6915,11 @@
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');
- //Showmessage('�s�F');
+ //Showmessage('存了');
end;
finally
CaseDocNoList.Free;
@@ -6225,18 +6927,19 @@
end;
end;
-Procedure TCB_IMGPSScanX.SetContextList(Mode:Char;Index:Integer;CaseNo,DocDir,FileName:String); //'A:�[�J,I:���J,D:�R��,E:�ק�'
+Procedure TCB_IMGPSScanX.SetContextList(Mode:Char;Index:Integer;CaseNo,DocDir,FileName:String); //'A:加入,I:插入,D:刪除,E:修改'
var
i : Integer;
//DocNo:String;
begin
//DocNo := FormCode2DocNo(FileName2FormCode(FileName));
+//ShowMessage('FileName='+FileName);
if DocDir = '' then
- DocDir := AttName ; //����
+ DocDir := AttName ; //附件
ContextList.Clear;
if FileExists(ImageSavePath+CaseNo+'\'+DocDir+'\Context.dat') then
ContextList.LoadFromFile(ImageSavePath+CaseNo+'\'+DocDir+'\Context.dat');
- SetRecordEditedDocDir('A',CaseNo,DocDir); //�O�������
+ SetRecordEditedDocDir('A',CaseNo,DocDir); //記錄文件有異動
case Mode of
'A':begin
ContextList.Add(FileName);
@@ -6273,7 +6976,7 @@
end;
end;
-Function TCB_IMGPSScanX.checkCaseOMRDone:Boolean; //�ˬd�ץ�O�_����OMR�ˮ�
+Function TCB_IMGPSScanX.checkCaseOMRDone:Boolean; //檢查案件是否完成OMR檢核
var
i : Integer;
begin
@@ -6288,14 +6991,35 @@
end;
end;
-Function TCB_IMGPSScanX.CheckCaseID_OK:Boolean; //�ˬd�O�_�����t�����ץ�
+function TCB_IMGPSScanX.checkFormCodeIsCustom(path, formcode: string): boolean;
+var
+ i:integer;
+ ini : Tmeminifile;
+ str1:String;
+begin
+//ShowMessage(path);
+ ini := Tmeminifile.Create(Path+'CustomDocNo.ini');
+ str1:=ini.ReadString(Copy(formcode,1,8),'FormID','');
+//ShowMessage('str1'+str1);
+ if str1 = formcode then
+ begin
+ Result:=True;
+ end
+ else
+ begin
+ Result := False;
+ end;
+
+end;
+
+Function TCB_IMGPSScanX.CheckCaseID_OK:Boolean; //檢查是否有未配號的案件
var
i,n : Integer;
begin
Result := True;
for i := 0 to NewTreeNode.Count - 1 do
begin
- if Pos(_msg('���t��'),NewTreeNode.Item[i].Text) > 0 then
+ if Pos(_msg('未配號'),NewTreeNode.Item[i].Text) > 0 then
begin
Result := False;
Break;
@@ -6303,7 +7027,25 @@
end;
end;
-Procedure TCB_IMGPSScanX.CreateEmptyCase(Path,CaseID:String); //���ͪťծ�(�������)
+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;
begin
@@ -6347,7 +7089,7 @@
ScrollRec[Index].Rate := iRate;
end;
-Procedure TCB_IMGPSScanX.FormIDReplace(CaseID,DocDir,OldFormID,NewFormID:String); //���wFormID���s��FormID
+Procedure TCB_IMGPSScanX.FormIDReplace(CaseID,DocDir,OldFormID,NewFormID:String); //指定FormID更換成新的FormID
var
i : Integer;
OldFileList,NewFileList : TStringlist;
@@ -6410,7 +7152,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.ShowFileReplace(Path,NewFormID:String);//��ܪ��v�������s��FormID
+Procedure TCB_IMGPSScanX.ShowFileReplace(Path,NewFormID:String);//顯示的影像換成新的FormID
var
i,n : Integer;
OldFile,NewFile:String;
@@ -6426,7 +7168,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.PageReplaceFormID(Path,NowFormID,NewFormID:String); //�������FormID
+Procedure TCB_IMGPSScanX.PageReplaceFormID(Path,NowFormID,NewFormID:String); //選取頁更換FormID
var
i,n : Integer;
S,S1 : TStringlist;
@@ -6476,19 +7218,19 @@
end;
end;
-Function TCB_IMGPSScanX.ModeNeedCheck(OMRMode,ScanMode:String):Boolean; //���˼Ҧ��O�_�n���ˮ�
+Function TCB_IMGPSScanX.ModeNeedCheck(OMRMode,ScanMode:String):Boolean; //掃瞄模式是否要做檢核
begin
Result := False;
if Pos(ScanMode,OMRMode) > 0 then
Result := True;
end;
-Function TCB_IMGPSScanX.GetInputMask:String; //���o��J���O�渹�X
+Function TCB_IMGPSScanX.GetInputMask:String; //取得輸入的保單號碼
var
InputMaskForm: TInputMaskForm;
begin
Result := '';
- ShowText := _msg('��J�O�渹�X��');
+ ShowText := _msg('輸入保單號碼中');
DataLoading(True,True);
InputMaskForm := TInputMaskForm.Create(self);
try
@@ -6505,13 +7247,14 @@
Function TCB_IMGPSScanX.GetCasePage(Path,CaseID:String):Integer;
var
- DocDirList,FileList :TStringlist;
+ DocDirList,FileList,ST1 :TStringlist;
iDocDir,iDocNo : String;
- i,Count : Integer;
+ i,n,Count : Integer;
begin
Count := 0;
DocDirList := TStringlist.Create;
FileList := TStringlist.Create;
+ ST1:=TStringList.Create;
try
if FileExists(Path+CaseID+'\CaseDocNo.dat') then
DocDirList.LoadFromFile(Path+CaseID+'\CaseDocNo.dat');
@@ -6520,17 +7263,41 @@
begin
iDocDir := DocDirList.Strings[i];
iDocno := DocNoDir2DocNo(iDocDir);
- {if (((FIs_In_Wh = 'Y') and (not DocNoIs_In_WH(iDocNo))) or //�J�w���y���ݫD�J�w���
+ {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 //�D�J�w���y���ݤJ�w���
+ ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then //非入庫掃描不看入庫文件
begin
Continue;
end;}
- if not DocNoAppear(iDocNo) then Continue;
+ //if not DocNoAppear(iDocNo) then Continue; //20170817 先註解
FileList.Clear;
if FileExists(Path+CaseID+'\'+iDocDir+'\Context.dat') then
+ begin
FileList.LoadFromFile(Path+CaseID+'\'+iDocDir+'\Context.dat');
+
+ if (FWH_category='N') and (FIs_In_Wh='Y') then
+ begin
+ ST1.Clear;
+ for n := 0 to FileList.Count - 1 do
+ begin
+ if ISExistImg(Path+CaseID+'\'+iDocDir+'\'+FileList.Strings[n]) then
+ begin
+ ST1.Add(FileList.Strings[n]);
+ end;
+ end;
+
+ for n := 0 to ST1.Count - 1 do
+ begin
+ if (FileList.IndexOf(ST1.Strings[n])<>-1) and (not DocNoIs_In_WH(iDocNo)) then
+ begin
+ FileList.Delete(FileList.IndexOf(ST1.Strings[n]));
+ end;
+ end;
+ end;
+ end;
+
+
Count := Count+ FileList.Count;
end;
if FileExists(Path+CaseID+'\'+AttName+'\Context.dat') then
@@ -6543,6 +7310,7 @@
finally
DocDirList.Free;
FileList.Free;
+ ST1.free;
end;
end;
@@ -6575,7 +7343,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.WriteResize(ImgName,TxtName:String); //����Resize.dat
+Procedure TCB_IMGPSScanX.WriteResize(ImgName,TxtName:String); //產生Resize.dat
var
TagTxt : String;
RecHeight,RecWidth : String;
@@ -6609,7 +7377,7 @@
if FileExists(TxtName) then
S.LoadFromFile(TxtName);
if (RecHeight <> '') and (RecWidth <> '') and ((RecHeight<>ImgHeight) or (RecWidth<>ImgWidth)) then
- S.Add(ExtractfileName(ImgName)+',���:'+RecHeight+',��e:'+RecWidth+',���ܰ�:'+ImgHeight+',�e�ܰ�:'+ImgWidth);
+ S.Add(ExtractfileName(ImgName)+',原長:'+RecHeight+',原寬:'+RecWidth+',長變動:'+ImgHeight+',寬變動:'+ImgWidth);
S.SaveToFile(TxtName);
finally
S.Free;
@@ -6618,10 +7386,10 @@
end;
-Function TCB_IMGPSScanX.GetCase_PageCount(var CaseCount,PageCount:Integer):Boolean; //���X�ץƶq�έ���
+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;
@@ -6629,19 +7397,23 @@
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
@@ -6653,19 +7425,46 @@
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;
-Function TCB_IMGPSScanX.FindNoSaveBarCode : Boolean; //��O�_�����n�x�s�v�������X
+Function TCB_IMGPSScanX.FindNoSaveBarCode : Boolean; //找是否有不要儲存影像的條碼
var
i,n : Integer;
begin
@@ -6685,12 +7484,12 @@
end;
end;
-Function TCB_IMGPSScanX.BarCode2CaseID : String; //Barcode�̳W�h�নCaseID
+Function TCB_IMGPSScanX.BarCode2CaseID : String; //Barcode依規則轉成CaseID
var
i : Integer;
iCaseID : String;
begin
- Result := ''; //�S���
+ Result := ''; //沒找到
iCaseID := '';
for i := 1 to MpsBarcodeinf.Count-1 do
begin
@@ -6703,12 +7502,12 @@
end;
end;
-Function TCB_IMGPSScanX.BarCode2FormID : String; //Barcode�̳W�h�নFormID
+Function TCB_IMGPSScanX.BarCode2FormID : String; //Barcode依規則轉成FormID
var
i : Integer;
FormID : String;
begin
- Result := ''; //�S���
+ Result := ''; //沒找到
FormID := '';
for i := 1 to MpsBarcodeinf.Count do
begin
@@ -6718,7 +7517,7 @@
if not FormIDAppear(FormID) then
FormID := '';
end;
- if (FormID <> '') and FormIDExists(FormID,False,0) then //���i��FormID�N���}
+ if (FormID <> '') and FormIDExists(FormID,False,0) then //有可用的FormID就離開
begin
Result := FormID;
Break;
@@ -6733,8 +7532,12 @@
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;
@@ -6796,7 +7599,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetDocNoDir(Path,DocNo:String):String; //���X�ثeDocNo������
+Function TCB_IMGPSScanX.GetDocNoDir(Path,DocNo:String):String; //取出目前DocNo的份數
var
i : Integer;
iDocNo : String;
@@ -6818,7 +7621,7 @@
end;
end;
-Function TCB_IMGPSScanX.CheckFormIDExists(DocNoNode:TTreeNode;FormID:String):Boolean; //�ˬdFormID�O�_�s�b����
+Function TCB_IMGPSScanX.CheckFormIDExists(DocNoNode:TTreeNode;FormID:String):Boolean; //檢查FormID是否存在文件裡
var
i : Integer;
begin
@@ -6833,7 +7636,7 @@
end;
end;
-Function TCB_IMGPSScanX.DocNo2DocNoDir(Path,DocNo:String):String; //DocNo�নDocNo(����)�ؿ�
+Function TCB_IMGPSScanX.DocNo2DocNoDir(Path,DocNo:String):String; //DocNo轉成DocNo(份數)目錄
var
i : Integer;
iDocNo : String;
@@ -6855,7 +7658,7 @@
end;
end;
-Function TCB_IMGPSScanX.DocNoDir2DocNo(DocNoDir:String):String; //DocNo(����)�ؿ��নDocNo
+Function TCB_IMGPSScanX.DocNoDir2DocNo(DocNoDir:String):String; //DocNo(份數)目錄轉成DocNo
var
v,ln : Integer;
begin
@@ -6871,7 +7674,7 @@
Result := DocNoDir
end;
-Function TCB_IMGPSScanX.DocNoDir2Index(Path,DocNoDir:String):Integer; //DocNo(����)�ؿ��নindex
+Function TCB_IMGPSScanX.DocNoDir2Index(Path,DocNoDir:String):Integer; //DocNo(份數)目錄轉成index
var
i : Integer;
CaseNo_List : TStringlist;
@@ -6941,6 +7744,12 @@
if FileExists(SoPath+'UseCase.ini') then
ZipfileList.Add(SoPath+'UseCase.ini');
+ if FileExists(SoPath+'FirstImg.zip') then//20170315 加的
+ begin
+ ZipfileList.Add(SoPath+'FirstImg.zip');
+ end;
+
+
ExeCuteZip(DePath+ZipName,SoPath,ZipFileList,False,False);
//Showmessage('111');
finally
@@ -6948,7 +7757,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.ZipMaskFile(SoPath,MarkPath,DePath,ZipName:String); //���Y�B�n�v����
+Procedure TCB_IMGPSScanX.ZipMaskFile(SoPath,MarkPath,DePath,ZipName:String); //壓縮遮罩影像檔
var
ZipFileList : TStringlist;
n : Integer;
@@ -6982,7 +7791,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.ParserPoint(S:String); //�ѪR�Q�r�I���r��
+Procedure TCB_IMGPSScanX.ParserPoint(S:String); //解析十字點的字串
var
PointList : TStringlist;
Rect : TRect;
@@ -7027,7 +7836,7 @@
end;
end;
-Function TCB_IMGPSScanX.FormID2Anchor(FormID:String):String; //��FormID���X�Q�r�Ҧ�
+Function TCB_IMGPSScanX.FormID2Anchor(FormID:String):String; //用FormID取出十字模式
var
Anchor : String;
begin
@@ -7039,7 +7848,7 @@
Result := Index2Anchor(Anchor);
end;
-Function TCB_IMGPSScanX.Index2Anchor(Anchor:String):String; //�Q�r�Ҧ� 0->NONE;1->ANCHOR;2->FRAME
+Function TCB_IMGPSScanX.Index2Anchor(Anchor:String):String; //十字模式 0->NONE;1->ANCHOR;2->FRAME
begin
if Anchor = '0' then
Result := 'NONE'
@@ -7052,7 +7861,7 @@
procedure TCB_IMGPSScanX.ScanDuplexCBClick(Sender: TObject);
begin
ScanDuplex := ScanDuplexCB.Checked;
- //R_W_ScanIni('W'); //user�n�D�令�w�]�ᤣ���
+ //R_W_ScanIni('W'); //user要求改成預設後不能改
end;
Function TCB_IMGPSScanX.GetFormatID(CaseID: string):String;
@@ -7066,26 +7875,26 @@
if FileExists(ImageSavePath+CaseID+'\CaseIndex.dat') then
begin
S.LoadFromFile(ImageSavePath+CaseID+'\CaseIndex.dat');
- //Format_ID := S.Strings[5]; //�D��� (�����渹or��O�渹or�O�渹�Xor�O�I�Ҹ�or��ץ���s)
+ //Format_ID := S.Strings[5]; //主鍵值 (報價單號or續保單號or保單號碼or保險證號or原案件受編)
//Result := Format_ID;
- //Handle_No := S.Strings[0]; //�g��N��
- //Cen_Uid := S.Strings[1]; //�Q�O�HID
- //Cen_Cliname := S.Strings[2]; //�Q�O�H�m�W
- //Cen_Platno := S.Strings[3]; //����
- //Case_Priority := S.Strings[4];//�ץ�
+ //Handle_No := S.Strings[0]; //經辦代號
+ //Cen_Uid := S.Strings[1]; //被保人ID
+ //Cen_Cliname := S.Strings[2]; //被保人姓名
+ //Cen_Platno := S.Strings[3]; //車號
+ //Case_Priority := S.Strings[4];//案件等級
end;
finally
S.Free;
end;
end;
-Function TCB_IMGPSScanX.MemoInfoTransfer(Mode,Str:String;ID_S,Name_S:TStringlist):String; //���O�N�X���O���O�ഫ Mode 'ID':�N�X��W��;'NAME':�W����N�X
+Function TCB_IMGPSScanX.MemoInfoTransfer(Mode,Str:String;ID_S,Name_S:TStringlist):String; //註記代碼註記類別轉換 Mode 'ID':代碼轉名稱;'NAME':名稱轉代碼
var
i : Integer;
begin
if Mode = 'ID' then
begin
- Result := '�ۦ��J';
+ Result := '自行輸入';
for i := 0 to ID_S.Count - 1 do
begin
if Str = ID_S.Strings[i] then
@@ -7109,7 +7918,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.SetSQLData(ColumeStr:String;FromList,ToList:TStringlist); //��SQL�ȶ�J
+Procedure TCB_IMGPSScanX.SetSQLData(ColumeStr:String;FromList,ToList:TStringlist); //把SQL值塞入
var
i : Integer;
begin
@@ -7121,7 +7930,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetSQLData(TableList:TStringlist;Colname:String;colNo:Integer):String; //�����ί��ި���
+Function TCB_IMGPSScanX.GetSQLData(TableList:TStringlist;Colname:String;colNo:Integer):String; //依欄位及索引取值
var
i,col,v,v1 : Integer;
ColStr,DataStr: TStringList;
@@ -7182,7 +7991,7 @@
DataStr.Free;
end;
-Function TCB_IMGPSScanX.FindSQLData(TableList:TStringlist;ColumeStr,KeyColumeStr,KeyStr:String;ColNo:Integer;Var ResultList:TStringlist):Boolean; //����w�����
+Function TCB_IMGPSScanX.FindSQLData(TableList:TStringlist;ColumeStr,KeyColumeStr,KeyStr:String;ColNo:Integer;Var ResultList:TStringlist):Boolean; //找指定的資料
Var i,n,Findindex : Integer;
ColList,KeyColList,KeyList : TStringlist;
Cols,Keycols,keys :String;
@@ -7204,7 +8013,7 @@
KeyList.CommaText := KeyStr;
if ColNo = 0 then
begin
- for i := 1 to TableList.Count -1 do //��key�藍��
+ for i := 1 to TableList.Count -1 do //找key對不對
begin
Findindex := i;
for n := 0 to KeyColList.Count - 1 do
@@ -7214,16 +8023,16 @@
keys := KeyList.Strings[n];
//Showmessage(keys);
//Showmessage(TableList.Strings[i]);
- if GetSQLData(TableList,Keycols,i) = keys then //��.�~��
- //if Pos('!@!'+keys+'!@!','!@!'+TableList.Strings[i]+'!@!') >0 then //�b��ƦC�e��[!@! ��pos���覡�ӧﵽ�t�� //20130521�o�{���Ʒ|�����D
+ if GetSQLData(TableList,Keycols,i) = keys then //對.繼續
+ //if Pos('!@!'+keys+'!@!','!@!'+TableList.Strings[i]+'!@!') >0 then //在資料列前後加!@! 用pos的方式來改善速度 //20130521發現找資料會有問題
Continue
- Else //����.���}
+ Else //不對.離開
begin
Find := False;
Break;
end;
end;
- if Find then Break; // ���F���}
+ if Find then Break; // 找到了離開
end;
end
Else
@@ -7235,17 +8044,17 @@
Find := True;
Keycols := KeyColList.Strings[n];
keys := KeyList.Strings[n];
- //if GetSQLData(TableList,Keycols,i) = keys then //��.�~��
- if Pos('!@!'+keys+'!@!','!@!'+TableList.Strings[i]+'!@!') >0 then //�b��ƦC�e��[!@! ��pos���覡�ӧﵽ�t��
+ //if GetSQLData(TableList,Keycols,i) = keys then //對.繼續
+ if Pos('!@!'+keys+'!@!','!@!'+TableList.Strings[i]+'!@!') >0 then //在資料列前後加!@! 用pos的方式來改善速度
Continue
- Else //����.���}
+ Else //不對.離開
begin
Find := False;
Break;
end;
end;
end;
- if Find then //�����key
+ if Find then //有找到key
begin
for n := 0 to ColList.Count -1 do
begin
@@ -7280,7 +8089,7 @@
end;
-Procedure TCB_IMGPSScanX.DataLoading(Loading:Boolean;UseTimer:Boolean); //��Ƹ��J���n�����I�諸�ʧ@
+Procedure TCB_IMGPSScanX.DataLoading(Loading:Boolean;UseTimer:Boolean); //資料載入中要停止點選的動作
begin
If Loading Then
begin
@@ -7320,8 +8129,9 @@
ErrlistForm : TErrlistForm;
S : TStringlist;
UpFormID : String;
+ Anchor : String;
begin
- ShowText := _Msg('�B�z�ˮ֥��Ѥ�,�еy��');
+ ShowText := _Msg('處理檢核失敗中,請稍候');
DataLoading(True,True);
ErrlistForm := TErrlistForm.Create(Self);
RejectCase := False;
@@ -7336,15 +8146,15 @@
ErrlistForm.Timer1.Enabled := true;
if ErrlistForm.ShowModal = mrok then
begin
- TransPath := ImageSavePath+NowCaseNo+'\';
+ TransPath := ImageSavePath+NowCaseNo+'\upload\';
if FMode = 'ISCAN' then
TransPath := ImageSavePath + NowCaseNo+'\DownTemp\';
- ShowText := NowCaseNo+_Msg('��ƤW�Ǥ�,�еy��');
+ ShowText := NowCaseNo+_Msg('資料上傳中,請稍候');
DataLoading(True,True);
if FMode = 'ISCAN' then
begin
- If Not TransCaseID(TransPath,NowCaseNo,True) Then //�ǰe�ץ�
+ If Not TransCaseID(TransPath,NowCaseNo,True) Then //傳送案件
begin
DataLoading(False,False);
Exit;
@@ -7352,7 +8162,7 @@
end
Else
begin
- If Not TransCaseID(TransPath,NowCaseNo,True) Then //�ǰe�ץ�
+ If Not TransCaseID(TransPath,NowCaseNo,True) Then //傳送案件
begin
DataLoading(False,False);
Exit;
@@ -7360,7 +8170,7 @@
end;
CaseHelpBtn.Visible := False;
LoadImgFile;
- Showmessage(NowCaseNo+_Msg('�ǰe����'));
+ Showmessage(NowCaseNo+_Msg('傳送完成'));
DataLoading(False,False);
end
Else
@@ -7382,27 +8192,27 @@
begin
//if TreeView1.Selected = nil then Exit;
//if TreeView1.Selected = NewTreeNode then Exit;
- Displaypath := ''; //20130327 �ץ������渹�|���m�����D
+ Displaypath := ''; //20130327 修正報價單號會錯置的問題
S := TStringlist.Create;
try
ClearView(1);
- ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+ ShowText := CaseID+_Msg('檢核中,請稍候');
DataLoading(True,True);
For i := 0 to NewTreeNode.Count -1 do
begin
v := posend('-',NewTreenode.Item[i].Text);
CaseID := Copy(NewTreenode.Item[i].Text,1,v-1);
- ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+ ShowText := CaseID+_Msg('檢核中,請稍候');
DataLoading(True,True);
- if (NewTreenode.Item[i].ImageIndex <> 7) and (NewTreenode.Item[i].ImageIndex <> 5) then //�ˮ֧��������A�ˮ�
+ if (NewTreenode.Item[i].ImageIndex <> 7) and (NewTreenode.Item[i].ImageIndex <> 5) then //檢核完成的不再檢核
begin
- If OMRCheckCase(CaseID) then //�����\
+ If OMRCheckCase(CaseID) then //有成功
begin
S.Add('Y');
S.SaveToFile(ImageSavePath+CaseID+'\OMRCheckOk.dat');
end;
end;
- //MyTreeNode2ReFresh(CaseID); //�쥻�OOMR��@�ץ�,��令OMR�����ץ� �ҥH�o�ӭnmark
+ //MyTreeNode2ReFresh(CaseID); //原本是OMR單一案件,後改成OMR全部案件 所以這個要mark
end;
LoadImgFile;
TreeView1Click(nil);
@@ -7410,7 +8220,7 @@
finally
S.Free;
end;
- Showmessage(_Msg('�ˮ֧���'));
+ Showmessage(_Msg('檢核完成'));
end;
procedure TCB_IMGPSScanX.ClearView(stkv:Integer);
@@ -7429,7 +8239,7 @@
ISB1Click(ISB1);
end;
-Function TCB_IMGPSScanX.DrawDocItem2(CaseNode : TTreenode;Caseno:String):Boolean; //�e�X���W�٪�Tree
+Function TCB_IMGPSScanX.DrawDocItem2(CaseNode : TTreenode;Caseno:String):Boolean; //畫出文件名稱的Tree
Var
i,n,m : Integer;
DocNode,FormNode : TTreeNode;
@@ -7442,16 +8252,18 @@
FormName : String;
CaseDocNoList,CaseDocNo_CopiesList,StrList : TStringlist;
iiDocNo,iiFormID,iiDocVer : String;
+ ST1:TStringList;
begin
Result := False;
FileList := TStringlist.Create;
CaseDocNoList := TStringlist.Create;
CaseDocNo_CopiesList := TStringlist.Create;
StrList := TStringlist.Create;
+ ST1:=TStringList.Create;
try
CaseNode.ImageIndex := 1;
CaseNode.SelectedIndex := 1;
- While CaseNode.Count > 0 do //���R
+ While CaseNode.Count > 0 do //全刪
begin
CaseNode.Item[0].Delete;
end;
@@ -7466,24 +8278,52 @@
//Showmessage(ImageSavePath+Caseno+'\'+CaseDocNoList.Strings[i]+'\Context.dat');
if FileExists(ImageSavePath+Caseno+'\'+CaseDocNoList.Strings[i]+'\Context.dat') then
FileList.LoadFromFile(ImageSavePath+Caseno+'\'+CaseDocNoList.Strings[i]+'\Context.dat');
- //Showmessage('aaa '+FileList.Text);
+ iDocNo := DocNoDir2DocNo(CaseDocNoList.Strings[i]);
+ ST1.Clear;
+//ShowMessage(FileList.Text);
+ if (FWH_category='N') and (FIs_In_Wh='Y') then
+ begin
+ for n := 0 to FileList.Count - 1 do
+ begin
+ if ISExistImg(ImageSavePath+Caseno+'\'+CaseDocNoList.Strings[i]+'\'+FileList.Strings[n]) then
+ begin
+ ST1.Add(FileList.Strings[n]);
+ end;
+ end;
+
+ for n := 0 to ST1.Count - 1 do
+ begin
+ if (FileList.IndexOf(ST1.Strings[n])<>-1) and (not DocNoIs_In_WH(iDocNo)) then
+ begin
+ FileList.Delete(FileList.IndexOf(ST1.Strings[n]));
+ end;
+ end;
+ end;
+
+
+ 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));
- {if (((FIs_In_Wh = 'Y') and (not DocNoIs_In_WH(iDocNo))) or //�J�w���y���ݫD�J�w���
+//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 //�D�J�w���y���ݤJ�w���
+ ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then //非入庫掃描不看入庫文件
begin
Continue;
end;}
- if not DocNoAppear(iDocNo) then Continue;
+
+ //if not DocNoAppear(iDocNo) then Continue;
- //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('��'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoPage]));
- //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('��'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoCopies]));
- DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('��'),[DocNo2DocName(Caseno,iDocNo),CaseDocNoList.Strings[i],DocNoCopies]));
+ //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('頁'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoPage]));
+ //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoCopies]));
+ DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[DocNo2DocName(Caseno,iDocNo),CaseDocNoList.Strings[i],DocNoCopies]));
if GetUseCase('F',ImageSavePath+Caseno+'\',CaseDocNoList.Strings[i]) <> '' Then
begin
@@ -7500,7 +8340,7 @@
DocNode.ImageIndex := 2;
DocNode.SelectedIndex := 2;
end;
- if ((Pos('ZZZZZ',DocNode.Text) = 0) and (Pos('YYYYY',DocNode.Text) = 0)) and (FileList.Count =0) then //����
+ if ((Pos('ZZZZZ',DocNode.Text) = 0) and (Pos('YYYYY',DocNode.Text) = 0)) and (FileList.Count =0) then //制式文件
begin
for n := 1 to LASTEST_FORM_INF_List.Count - 1 do
begin
@@ -7512,27 +8352,27 @@
FormID := iiFormID;
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 := 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;
DocNode.AlphaSort(True);
end;
end;
end
- else if (Pos('ZZZZZ',DocNode.Text) > 0) or (Pos('YYYYY',DocNode.Text) > 0) then //�ۭq���
+ else if (Pos('ZZZZZ',DocNode.Text) > 0) or (Pos('YYYYY',DocNode.Text) > 0) then //自訂文件
begin
FormID := GetCustomFormID(ImageSavePath+Caseno+'\',CaseDocNoList.Strings[i]);
//showmessage(FileList.Text);
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 := 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;
DocNode.AlphaSort(True);
end;
- SortDocDir_FormID(Caseno,CaseDocNoList.Strings[i]); //�ɦW��FormID�Ƨ�
+ SortDocDir_FormID(Caseno,CaseDocNoList.Strings[i]); //檔名依FormID排序
for n := 0 to FileList.Count - 1 do
begin
@@ -7552,8 +8392,8 @@
FormID := iiFormID;
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 := 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;
@@ -7567,7 +8407,7 @@
// Application.ProcessMessages;
// FormPage := GetFormIDPage(FileList,FormID);
/// FormName := FormCode2FormName(Caseno,FormID);
- /// FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('��'));
+ /// FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('頁'));
// FormNode.ImageIndex := 4;
// FormNode.SelectedIndex := 4;
//end;
@@ -7576,6 +8416,7 @@
if DirectoryExists(ImageSavePath+Caseno+'\'+AttName) then
begin
+
FileList.Clear;
if FileExists(ImageSavePath+Caseno+'\'+AttName+'\Context.dat') then
FileList.LoadFromFile(ImageSavePath+Caseno+'\'+AttName+'\Context.dat')
@@ -7586,8 +8427,8 @@
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),AttName,1]));
+ //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),AttName,1]));
DocNode.ImageIndex := 2;
DocNode.SelectedIndex := 2;
for n := 0 to FileList.Count - 1 do
@@ -7597,19 +8438,56 @@
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 := 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;
+
+ 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;
+
Finally
FileList.Free;
CaseDocNoList.Free;
CaseDocNo_CopiesList.Free;
StrList.Free;
+ ST1.Free;
end;
end;
@@ -7634,6 +8512,47 @@
end;
end;
+procedure TCB_IMGPSScanX.initParameter;
+begin
+
+// if FCaseNoLength=0 then
+// begin
+//
+// end;
+
+ if FFileSizeLimit = 0 then
+ begin
+ FFileSizeLimit := 5*1024;
+ end;
+
+
+ if FImgDPI=0 then
+ begin
+ FImgDPI := 300;
+ ScanDpi := FImgDPI;
+ end
+ else
+ begin
+ //FImgDPI := StrToInt(Value);
+ ScanDpi := FImgDPI;
+ end;
+
+ if FScanColor = 0 then
+ begin
+ ScanColor := ifBlackWhite;
+ end;
+
+ if FScanColor = 1 then
+ begin
+ ScanColor := ifGray256 ;
+ end;
+
+ if FScanColor = 2 then
+ begin
+ ScanColor := ifTrueColor ;
+ end;
+end;
+
procedure TCB_IMGPSScanX.PrtLbClick(Sender: TObject);
var
Width : Double;
@@ -7644,9 +8563,9 @@
PrtDialog : TPrintDialog;
S : String;
begin
- ShowText := '�C�L��,�еy��';
+ ShowText := '列印中,請稍候';
DataLoading(True,True);
- Case2upload(NowCaseNo); //���ͭ�v�����c
+ Case2upload(NowCaseNo); //產生原影像結構
//ontextList.LoadFromFile(ImageSavePath+NowCaseNo+'\Upload\Context.dat');
@@ -7658,7 +8577,7 @@
FileList.LoadFromFile(ImageSavePath+NowCaseNo+'\Upload\Context.dat');
DocDirList.LoadFromFile(ImageSavePath+NowCaseNo+'\Upload\DocDir.dat');
- InitialLanguage(PrintForm); //���J�h��y��
+ InitialLanguage(PrintForm); //載入多國語言
PrintForm.CheckListBox1.Items.Clear;
For i := 0 to FileList.Count - 1 do
begin
@@ -7687,7 +8606,7 @@
end;
if S = '' then
begin
- Showmessage(_msg('�|����ܱ��C�L���'));
+ Showmessage(_msg('尚未選擇欲列印文件'));
Exit;
end
Else
@@ -7737,7 +8656,7 @@
OldCaseInfoForm.FReWrite := FReWrite;
OldCaseInfoForm.FOldCaseInfo := FOldCaseInfo;
- //OldCaseInfoList �ץ�s��@#,�~��@#,�~�ȧO@#,�O�_�¥�@#,���s��[����]@#,���s��[����] tab �ץ�s��@#,�~��@#,�~�ȧO@#,�O�_�¥�@#,���s��[����]@#,���s��[����]
+ //OldCaseInfoList 案件編號@#,年度@#,業務別@#,是否舊件@#,文件編號[份數]@#,文件編號[份數] tab 案件編號@#,年度@#,業務別@#,是否舊件@#,文件編號[份數]@#,文件編號[份數]
OldCaseInfoList.StrictDelimiter := true;
OldCaseInfoList.Delimiter := #9;
OldCaseInfoList.DelimitedText := FOldCaseInfo;
@@ -7804,7 +8723,7 @@
iDocNoList.Add(NewDocDir);
- Oldcopies := GetDocDirCopies(NowCaseNo+'\'+OldCaseInfoForm.UseCaseID,OldDocDir); //�®ת�CaseID ��b�s��CaseID�ؿ���
+ Oldcopies := GetDocDirCopies(NowCaseNo+'\'+OldCaseInfoForm.UseCaseID,OldDocDir); //舊案的CaseID 放在新案CaseID目錄裡
if FileExists(ImageSavePath+NowCaseNo+'\'+OldCaseInfoForm.UseCaseID+'\CaseDocNo_Copies.dat') then
iDocNo_CopiesList.Add(inttostr(Oldcopies))
else
@@ -7815,9 +8734,9 @@
end;
MkDir(NewPath+NewDocDir);
end;
- SetUseCase('A',NewPath,NewDocDir,OldCaseInfoForm.UseCaseID,''); //NewDocDir �q���Ӫ�
- SetUseCase('A',OldPath,OldDocDir,'',NowCaseNo); //OldDocDir �h���F
- StringtoFile('Y',OldPath+'UseCase.dat'); //�n�W��
+ SetUseCase('A',NewPath,NewDocDir,OldCaseInfoForm.UseCaseID,''); //NewDocDir 從哪來的
+ SetUseCase('A',OldPath,OldDocDir,'',NowCaseNo); //OldDocDir 去哪了
+ StringtoFile('Y',OldPath+'UseCase.dat'); //要上傳
for n := 0 to DocNoList.Count - 1 do
begin
if OldDocDir = DocNoList.Strings[n] then
@@ -7838,9 +8757,9 @@
iDocNoList.SaveToFile(NewPath+'CaseDocNo.dat');
iDocNo_CopiesList.SaveToFile(NewPath+'CaseDocNo_Copies.dat');
DrawDocItem2(MyTreeNode1,NowCaseNo);
- MyTreeNode1.Text := Format('%s-%d'+_Msg('��'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
+ MyTreeNode1.Text := Format('%s-%d'+_Msg('頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
NewTreeNodeRefresh;
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
end;
finally
OldCaseInfoForm.OldDocDirList.Free;
@@ -7857,7 +8776,52 @@
end;
end;
-procedure TCB_IMGPSScanX.LoadImgFile; //���J�s������
+procedure TCB_IMGPSScanX.LastInitFormidListCreate(path: string);
+var
+ i:integer;
+ ST1:TStringList;
+ str1:string;
+begin
+//ShowMessage('path='+path);
+ ST1:=TStringList.Create;
+ 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
+ begin
+ str1:=Copy(ST1.Strings[i],1,Pos('_',St1.Strings[i])-1);
+ LastInitFormidList.Add(str1);
+ end;
+ end;
+
+ ST1.Free;
+end;
+
+function TCB_IMGPSScanX.LoadFileGetMD5(const filename: string): string;
+var
+ Stream: TFileStream;
+ //Buffer: array[0..1023] of AnsiChar;
+ Buffer: array[0..1023] of AnsiChar;
+ TempStr: string;
+ i: Integer;
+ idmd5:TIdHashMessageDigest5; //import IdHashMessageDigest, idHash
+
+begin
+ idmd5 := TIdHashMessageDigest5.Create;
+
+ try
+ Stream := TFileStream.Create(filename, fmOpenRead);
+ Stream.Read(Buffer[0], SizeOf(Buffer));
+
+ result := idmd5.HashStreamAsHex(Stream) ;
+ finally
+ idmd5.Free;
+ Stream.Free;
+
+ end;
+end;
+
+procedure TCB_IMGPSScanX.LoadImgFile; //載入新件及替換件
Var
i,v,v1,m : Integer;
CasePage : integer;
@@ -7871,16 +8835,16 @@
DisplayPath := '';
ClearCaseIndex;
CaseHelpBtn.Visible := False;
- //Del_Sub_NothingPath(ImageSavePath); //�M���ץ�ؿ��O�Ū�
+ //Del_Sub_NothingPath(ImageSavePath); //清掉案件目錄是空的
TreeView1.Items.Clear;
NewTreeNode := nil;
MyTreenode1 := nil;
MyTreenode2 := nil;
MyTreenode3 := nil;
- NewTreeNode := TreeView1.Items.Add(nil,Format(_Msg('%s-�@%d���@%d��'),[FModeName,0,0]));
+ NewTreeNode := TreeView1.Items.Add(nil,Format(_Msg('%s-共%d筆共%d頁'),[FModeName,0,0]));
NewTreenode.ImageIndex := 0;
NewTreenode.SelectedIndex := 0;
- Del_Sub_NothingPath(ImageSavePath); //�M���ץ�ؿ��O�Ū�
+ Del_Sub_NothingPath(ImageSavePath); //清掉案件目錄是空的
GetCase_PageCount(CaseCount,PageCount);
CaseList.Clear;
if FileExists(ImageSavePath + 'CaseList.dat') then
@@ -7901,11 +8865,12 @@
end;
CasePage := GetCasePage(ImageSavePath,CaseList.Strings[i]);
- MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d��'),[CaseList.Strings[i],CasePage]));
+//ShowMessage('CasePage='+IntToStr(CasePage));
+ MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d頁'),[CaseList.Strings[i],CasePage]));
MytreeNode1.ImageIndex := 1;
MytreeNode1.SelectedIndex := 1;
- DrawDocItem2(MytreeNode1,CaseList.Strings[i]); //���X���W�٪���öǦ^�O�_���ӽЮѪ��v��
- if Pos(_Msg('���t��'),CaseList.Strings[i]) > 0 then
+ DrawDocItem2(MytreeNode1,CaseList.Strings[i]); //長出文件名稱的樹並傳回是否有申請書的影像
+ if Pos(_Msg('未配號'),CaseList.Strings[i]) > 0 then
begin
MytreeNode1.ImageIndex := 5;
MytreeNode1.SelectedIndex := 5;
@@ -7921,7 +8886,7 @@
MyTreenode1.ImageIndex := 5;
MyTreenode1.SelectedIndex := 5;
- //AllEnforceLb.Visible := True; //�����j���e��
+ //AllEnforceLb.Visible := True; //全部強迫送件
end;
end;
MyTreenode1 := nil;
@@ -7935,11 +8900,11 @@
begin
GetCase_PageCount(CaseCount,PageCount);
v := Pos('-',NewTreeNode.Text);
- NewTreeNode.Text := Format(_Msg('%s-�@%d���@%d��'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
+ NewTreeNode.Text := Format(_Msg('%s-共%d筆共%d頁'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
end;
end;
-procedure TCB_IMGPSScanX.LoadImgFile1; //���J�s������
+procedure TCB_IMGPSScanX.LoadImgFile1; //載入新件及替換件
Var
i,n,v,v1,m : Integer;
p : integer;
@@ -7954,17 +8919,17 @@
DisplayPath := '';
ClearCaseIndex;
CaseHelpBtn.Visible := False;
- //Del_Sub_NothingPath(ImageSavePath); //�M���ץ�ؿ��O�Ū�
+ //Del_Sub_NothingPath(ImageSavePath); //清掉案件目錄是空的
TreeView1.Items.Clear;
NewTreeNode := nil;
MyTreenode1 := nil;
MyTreenode2 := nil;
MyTreenode3 := nil;
- NewTreeNode := TreeView1.Items.Add(nil,Format(_Msg('%s-�@%d���@%d��'),[FModeName,0,0]));
+ NewTreeNode := TreeView1.Items.Add(nil,Format(_Msg('%s-共%d筆共%d頁'),[FModeName,0,0]));
NewTreenode.ImageIndex := 0;
NewTreenode.SelectedIndex := 0;
- Del_Sub_NothingPath(ImageSavePath); //�M���ץ�ؿ��O�Ū�
+ Del_Sub_NothingPath(ImageSavePath); //清掉案件目錄是空的
GetCase_PageCount(CaseCount,PageCount);
CaseList.Clear;
if FileExists(ImageSavePath + 'CaseList.dat') then
@@ -7979,7 +8944,7 @@
for m := 0 to CaseDocNoList.Count - 1 do
begin
iDocNo := CaseDocNoList.Strings[i];
- MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d��'),[CaseList.Strings[n],p]));
+ MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d頁'),[CaseList.Strings[n],p]));
MytreeNode1.ImageIndex := 1;
MytreeNode1.SelectedIndex := 1;
end;
@@ -8005,13 +8970,13 @@
Cust_DocNoList.LoadFromFile(ImageSavePath+CaseList.Strings[n]+'\CustomDocNo.dat');
P := ContextList.Count;
- MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d��'),[CaseList.Strings[n],p]));
+ MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d頁'),[CaseList.Strings[n],p]));
MytreeNode1.ImageIndex := 1;
MytreeNode1.SelectedIndex := 1;
- //DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseList.Strings[n]); //���X���W�٪���öǦ^�O�_���ӽЮѪ��v��
- DrawDocItem2(MytreeNode1,CaseList.Strings[n]); //���X���W�٪���öǦ^�O�_���ӽЮѪ��v�� 20140820��
+ //DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseList.Strings[n]); //長出文件名稱的樹並傳回是否有申請書的影像
+ DrawDocItem2(MytreeNode1,CaseList.Strings[n]); //長出文件名稱的樹並傳回是否有申請書的影像 20140820改
- if Pos(_Msg('���t��'),CaseList.Strings[n]) > 0 then
+ if Pos(_Msg('未配號'),CaseList.Strings[n]) > 0 then
begin
MytreeNode1.ImageIndex := 5;
MytreeNode1.SelectedIndex := 5;
@@ -8027,7 +8992,7 @@
MyTreenode1.ImageIndex := 5;
MyTreenode1.SelectedIndex := 5;
- //AllEnforceLb.Visible := True; //�����j���e��
+ //AllEnforceLb.Visible := True; //全部強迫送件
end;
end;
end;
@@ -8045,11 +9010,11 @@
begin
GetCase_PageCount(CaseCount,PageCount);
v := Pos('-',NewTreeNode.Text);
- NewTreeNode.Text := Format(_Msg('%s-�@%d���@%d��'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
+ NewTreeNode.Text := Format(_Msg('%s-共%d筆共%d頁'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
end;
end;
-Function TCB_IMGPSScanX.FindDivFormCode(FormCode:String):Boolean; //�䦳�S�����ת����X
+Function TCB_IMGPSScanX.FindDivFormCode(FormCode:String):Boolean; //找有沒有分案的條碼
var
i : Integer;
DelBarCode : String;
@@ -8063,7 +9028,7 @@
IF FindSQLData(FORM_INF_List,'T1.FORM_ID,T1.DIVISION','T1.FORM_ID',FormCode,0,FindResult) then
begin
S.CommaText := GetFindResult('T1.DIVISION');
- for i := 0 to S.Count - 1 do //�i��h��
+ for i := 0 to S.Count - 1 do //可能有多組
begin
if S.Strings[i] = iMode then
begin
@@ -8077,7 +9042,7 @@
end;
end;
-Function TCB_IMGPSScanX.CheckAvailable:Boolean; //�ˬd�O�_�i�ϥΤ���
+Function TCB_IMGPSScanX.CheckAvailable:Boolean; //檢查是否可使用元件
var
SendData : String;
Msg:String;
@@ -8085,20 +9050,20 @@
MacID,IPStr,LegalDate :String;
begin
Result := False;
- /////�U��MPSLIC_SCAN.lic //////
+ /////下載MPSLIC_SCAN.lic //////
SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&work_no=PLN&file=MPSLIC_SCAN.lic';
if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC04/sample',SendData,LngPath+'MPSLIC_SCAN.lic',FReWrite,Memo1,False,DownImgStatus) then
begin
- Showmessage(_Msg('�ˬd���U�ɮ�,�����o�Ϳ��~!!')+_Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+ Showmessage(_Msg('檢查註冊檔案時,網路發生錯誤!!')+_Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
Exit;
end;
- /////�U��MPSLIC_SCAN.lic ///
+ /////下載MPSLIC_SCAN.lic ///
- if CheckLicensebyIP_new(LngPath+'MPSLIC_SCAN.lic',MacID,IPStr,LegalDate,Msg,Nowcount,Totalcount,Lic_Idx) then //�ˬd�O�_�v���U�L
+ if CheckLicensebyIP_new(LngPath+'MPSLIC_SCAN.lic',MacID,IPStr,LegalDate,Msg,Nowcount,Totalcount,Lic_Idx) then //檢查是否己註冊過
begin
if (LegalDate <> '') and (ServerDate>LegalDate) and (Lic_Idx>(Totalcount)) then
begin
- Showmessage(_Msg('�w�g�W�L�i�ϥδ����ζW�X���v�ƽгs���t��'));
+ Showmessage(_Msg('已經超過可使用期限及超出授權數請連絡廠商'));
Result := False;
//Exit;
end
@@ -8109,7 +9074,7 @@
begin
if Msg <> '' then
begin
- Showmessage(Format(_Msg('���U�ɦ����D,�гs���t�� ���~��]:%s'),[Msg]));
+ Showmessage(Format(_Msg('註冊檔有問題,請連絡廠商 錯誤原因:%s'),[Msg]));
Result := false;
Exit;
end
@@ -8118,51 +9083,51 @@
if (LegalDate <> '') and (ServerDate>LegalDate) and (NowCount =0 ) then
begin
Lic_Idx := 0;
- Showmessage(_Msg('�w�g�W�L�i�ϥδ����гs���t��'));
+ Showmessage(_Msg('已經超過可使用期限請連絡廠商'));
Result := False;
//Exit;
end
- //else if (LegalDate = '') and (Nowcount >= Totalcount+10) then //�W�L���U�ƶq
- else if ((LegalDate = '') or ((LegalDate <> '') and (ServerDate>LegalDate)) ) and (Nowcount >= Totalcount) then //�W�L���U�ƶq 20150717 yuu�������e��10��
+ //else if (LegalDate = '') and (Nowcount >= Totalcount+10) then //超過註冊數量
+ else if ((LegalDate = '') or ((LegalDate <> '') and (ServerDate>LegalDate)) ) and (Nowcount >= Totalcount) then //超過註冊數量 20150717 yuu說拿掉送的10個
begin
Lic_Idx := 0;
- Showmessage(_Msg('�w�g�W�L���v�ƽгs���t��'));
+ Showmessage(_Msg('已經超過授權數請連絡廠商'));
Result := False;
end
- Else //���W�L���U�ƶq�n�g�J���U��
+ Else //未超過註冊數量要寫入註冊檔
begin
- {if Messagedlg(_Msg('�z�|�����U���v�O�_�n�i����U??'),MtConfirmation,[mbyes,mbcancel],0) = mrcancel then
+ {if Messagedlg(_Msg('您尚未註冊授權是否要進行註冊??'),MtConfirmation,[mbyes,mbcancel],0) = mrcancel then
begin
Result := False;
Exit;
end;}
- ShowText := _Msg('���v��,�еy��');
+ ShowText := _Msg('授權中,請稍候');
AddLicense(LngPath+'MPSLIC_SCAN.lic',MacID,IPStr,Msg);
Nowcount := Nowcount + 1;
DataLoading(True,True);
- /////�W��MPSLICSCAN.lic ////
+ /////上傳MPSLICSCAN.lic ////
SendData:='data='+HTTPEncode(UTF8Encode(FData))+'@verify='+FVerify+'@work_no=PLN@file_name=MPSLIC_SCAN.lic';
if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/sample',SendData,'file',LngPath+'MPSLIC_SCAN.lic',FReWrite,Memo1,False) then
begin
- Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_MSg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
+ Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_MSg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
DataLoading(False,False);
Exit;
end;
if memo1.Lines.Strings[0] = '1' then
begin
- Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_Msg('���~��]:')+memo1.Lines.Strings[1]);
+ Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_Msg('錯誤原因:')+memo1.Lines.Strings[1]);
DataLoading(False,False);
Exit;
end
Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
begin
- Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'));
+ Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'));
DataLoading(False,False);
Exit;
end;
- /////�W��MPSLICSCAN.lic /////
- //Sleep(30000); //�Ĥ@�����U��30�� ������
+ /////上傳MPSLICSCAN.lic /////
+ //Sleep(30000); //第一次註冊睡30秒 先不睡
Result := True;
end;
end;
@@ -8170,9 +9135,9 @@
if FileExists(LngPath+'MPSLIC_SCAN.lic') then
DeleteFile(LngPath+'MPSLIC_SCAN.lic');
if LegalDate = '' then
- StatusBar1.Panels[4].Text := '���U��:'+MacID+' �Ѿl���U��:'+inttostr(Totalcount-Nowcount);
+ StatusBar1.Panels[4].Text := '註冊號:'+MacID+' 剩餘註冊數:'+inttostr(Totalcount-Nowcount);
if LegalDate <> '' then
- StatusBar1.Panels[4].Text := '*���U��:'+MacID+'('+inttostr(Lic_Idx)+')'+' �Ѿl���U��:'+inttostr(Totalcount-Nowcount);
+ StatusBar1.Panels[4].Text := '*註冊號:'+MacID+'('+inttostr(Lic_Idx)+')'+' 剩餘註冊數:'+inttostr(Totalcount-Nowcount);
end;
procedure TCB_IMGPSScanX.SmoothCBClick(Sender: TObject);
@@ -8184,7 +9149,7 @@
end;
end;
-Function TCB_IMGPSScanX.Case2Mask(SoPath,DePath:String):Boolean;//���;B�n�v��
+Function TCB_IMGPSScanX.Case2Mask(SoPath,DePath:String):Boolean;//產生遮罩影像 20170639 發現沒用到
var
XT : TXMLTool;
i : Integer;
@@ -8216,7 +9181,7 @@
Anchor := FormID2Anchor(FormID);
//ParserPoint(CropMpsV.FindPoint(Anchor));
FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,Anchor);
- if FileExists(CheckXmlPath+FormID+'.xml') then //�S��Xml�N���ξB�n
+ if FileExists(CheckXmlPath+FormID+'.xml') then //沒有Xml就不用遮罩
begin
XT.LoadFromFile(CheckXmlPath+FormID+'.xml');
if XT.SubNodes['/form/settype10/'].First then
@@ -8229,7 +9194,7 @@
begin
Site := XT.Node['/form/settype10/'+ColEName+'/'+nodename+'/'].Attributes['colxy'];
SiteList.Add(Site);
- Result := True; //���]�w
+ Result := True; //有設定
end
Else
begin
@@ -8248,7 +9213,7 @@
end;
end;
-Function TCB_IMGPSScanX.CheckNeedCrop(Graphic:TDibGraphic):Boolean; //�O�_�OA3�n���v��
+Function TCB_IMGPSScanX.CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像
Var
i,FormIDCount : Integer;
begin
@@ -8266,13 +9231,15 @@
end;
end;
+
+//ShowMessage('FormIDCount='+IntToStr(FormIDCount)+#10#13+'MpsBarcodeinf.count='+IntToStr(MpsBarcodeinf.count));
if FormIDCount = 2 then
begin
Result := True;
end;
end;
-Function TCB_IMGPSScanX.GetNewCustomDocNo(Path,DocName:String):String; //���X���ϥΪ��ۭq���N��
+Function TCB_IMGPSScanX.GetNewCustomDocNo(Path,DocName:String):String; //取出未使用的自訂文件代號
var
ini : Tinifile;
Ct:Integer;
@@ -8289,8 +9256,14 @@
Ct := ini.ReadInteger('CustomCount','Count',0);
inc(Ct);
DocNo := 'ZZZZZ'+Add_Zoo(Ct,3);
- if FIs_In_Wh <> 'Y' then //���O�J�w���
+ 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);
@@ -8305,7 +9278,7 @@
NewDocNo :='ZZZZZ001';
if FileExists(Path+'CustomDocNo.dat') then
begin
- /// ZZZZZ001_�۩w���W�� 001_�۩w���W��
+ /// ZZZZZ001_自定文件名稱 001_自定文件名稱
S.LoadFromFile(Path+'CustomDocNo.dat');
for i := 0 to S.Count - 1 do
begin
@@ -8315,7 +9288,7 @@
C_Name := Copy(S.Strings[i],v+1,ln-v);
if DocName = C_Name then
begin
- Showmessage('���W�٤w�s�b');
+ Showmessage('文件名稱已存在');
Result := '';
Exit;
end;
@@ -8331,7 +9304,7 @@
end; }
end;
-Function TCB_IMGPSScanX.GetCustomDocName(Path,DocNo:String):String; //���X�۩w���W��
+Function TCB_IMGPSScanX.GetCustomDocName(Path,DocNo:String):String; //取出自定文件名稱
var
ini : Tinifile;
begin
@@ -8343,7 +9316,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetCustomFormID(Path,DocNo:String):String; //���X�۩w���FormID
+Function TCB_IMGPSScanX.GetCustomFormID(Path,DocNo:String):String; //取出自定文件FormID
var
ini : Tinifile;
begin
@@ -8355,7 +9328,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetCustomDocDir(Path,DocName:String):String; //���X�۩w���DocDir
+Function TCB_IMGPSScanX.GetCustomDocDir(Path,DocName:String):String; //取出自定文件DocDir
var
i,ct:integer;
ini : Tinifile;
@@ -8382,7 +9355,7 @@
end;
end;
-Function TCB_IMGPSScanX.FindCustomDocName(Path,DocName:String):Boolean; //�M��۩w���W�٬O�_�s�b
+Function TCB_IMGPSScanX.FindCustomDocName(Path,DocName:String):Boolean; //尋找自定文件名稱是否存在
var
ini : Tinifile;
Ct,i:Integer;
@@ -8406,7 +9379,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.DeleteCustomDocDir(Path,DocNo:String); //�R���۩w���DocNo
+Procedure TCB_IMGPSScanX.DeleteCustomDocDir(Path,DocNo:String); //刪除自定文件DocNo
var
ini : Tinifile;
begin
@@ -8418,7 +9391,7 @@
end;
end;
-Function TCB_IMGPSScanX.CheckFormID_Prt(FormID:String):Boolean; //�ǤJ��FormID�O�_�w�]�C�L
+Function TCB_IMGPSScanX.CheckFormID_Prt(FormID:String):Boolean; //傳入的FormID是否預設列印
begin
Result := False;
If FindSQLData(FORM_INF_List,'T1.IS_PRINT','T1.FORM_ID',FormID,0,FindResult) Then
@@ -8452,7 +9425,7 @@
Printer object. Otherwise, if UsePrintJob is True, the Title
property of the TDibGraphicPrinter object is used to specify the
job name. }
- Printer.Title := '�v���C�L';
+ Printer.Title := '影像列印';
end;
IF (Page mod 2) = 1 Then
@@ -8462,7 +9435,7 @@
ImageScrollBox1.DisplayedGraphic.Canvas.Font.Size := 24;
- //ImageScrollBox1.DisplayedGraphic.Canvas.TextOut(20,20, _Msg('�C�L�H��:')+LoginID+' '+_Msg('�C�L����:')+FUserUnit+' '+_Msg('�C�L���:')+DateTime);
+ //ImageScrollBox1.DisplayedGraphic.Canvas.TextOut(20,20, _Msg('列印人員:')+LoginID+' '+_Msg('列印分行:')+FUserUnit+' '+_Msg('列印日期:')+DateTime);
GraphicPrinter.Print(ImageScrollBox1.DisplayedGraphic);
@@ -8477,7 +9450,7 @@
procedure PrintWithAutoPrintJob;
begin
GraphicPrinter.UsePrintJob := True;
- GraphicPrinter.Title := '�v���C�L';
+ GraphicPrinter.Title := '影像列印';
GraphicPrinter.Print(ImageScrollBox1.Graphic);
end;
@@ -8485,6 +9458,7 @@
S := TStringlist.Create;
GraphicPrinter := TDibGraphicPrinter.Create;
PrtDialog := TPrintDialog.Create(self);
+ //PrtDialog.Copies:=99;
try
IF PrtDialog.Execute Then
begin
@@ -8506,7 +9480,7 @@
end;
end;
-Function TCB_IMGPSScanX.FindLastestDocDir(CaseID,DocNo:String):String; //��X�̷s��DocDir
+Function TCB_IMGPSScanX.FindLastestDocDir(CaseID,DocNo:String):String; //找出最新的DocDir
var
i : Integer;
DocNoList,FileList : TStringlist;
@@ -8531,7 +9505,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.Create_Cust_DocDir(CaseID:String); //���ͥ~���ǤJ�����N���Φ۩w���
+Procedure TCB_IMGPSScanX.Create_Cust_DocDir(CaseID:String); //產生外面傳入的文件代號及自定文件
var
i,n : Integer;
C_DocNoList,C_DocNameList : TStringlist;
@@ -8553,7 +9527,7 @@
for i := 0 to C_DocNoList.Count - 1 do
begin
DocNo := C_DocNoList.Strings[i];
- //�¥��X���~�����X��
+ //舊件不長出錯誤的文件出來
if (FIs_OldCase = 'Y') and (FWork_no='HLN') and (DocNo = FormCode2DocNo('10000001011112A')) then
Continue;
NowDocNo_Ct := GetDocNoCount(CaseID,DocNo);
@@ -8567,9 +9541,9 @@
end;
if DocNo_CT <= NowDocNo_Ct then
Continue;
- if DirectoryExists(ImageSavePath+CaseID+'\'+DocNo+'('+inttostr(DocNo_Ct)+')') then //�s�b�F
+ if DirectoryExists(ImageSavePath+CaseID+'\'+DocNo+'('+inttostr(DocNo_Ct)+')') then //存在了
Continue;
- if (DocNo_Ct = 1) and DirectoryExists(ImageSavePath+CaseID+'\'+DocNo) then //�s�b�F 20140327�[
+ if (DocNo_Ct = 1) and DirectoryExists(ImageSavePath+CaseID+'\'+DocNo) then //存在了 20140327加
Continue;
DocDir := DocNo2DocNoDir(ImageSavePath+CaseID+'\',DocNo)
@@ -8583,7 +9557,7 @@
MkDir(ImageSavePath+CaseID+'\'+DocDir);
SetDocNoList('A',-1,CaseID,DocDir,'1');
end;
- if not DocNoNeedDiv(DocNo) then //���������q��
+ if not DocNoNeedDiv(DocNo) then //不分份的秀數
SetDocDirCopies(CaseID,DocNo,GetCustomDocNoCount(DocNo));
end;
@@ -8622,7 +9596,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.OldCasetoNewCase(CaseID:String); //�N�®ץ����ন�s�W�h
+Procedure TCB_IMGPSScanX.OldCasetoNewCase(CaseID:String); //將舊案份數轉成新規則
var
i,n : Integer;
C_DocNoList,C_DocNameList : TStringlist;
@@ -8650,7 +9624,7 @@
for i := 0 to DocNoList.Count - 1 do
begin
//DocNo := DocNoList.Strings[i];
- DocNo := DocNoDir2DocNo(DocNoList.Strings[i]); //20140812 �]���®��~��|�X�{DocnoDir
+ DocNo := DocNoDir2DocNo(DocNoList.Strings[i]); //20140812 因轉舊案錯誤件會出現DocnoDir
DocNo_Ct := 0;
for n := 0 to C_DocNoList.Count - 1 do
begin
@@ -8691,7 +9665,7 @@
end;
-Procedure TCB_IMGPSScanX.ErrFormtoCurrentForm(CaseID,EFormID,CFormID:String);//�N�®ת����~FormID�勵�T��FormID
+Procedure TCB_IMGPSScanX.ErrFormtoCurrentForm(CaseID,EFormID,CFormID:String);//將舊案的錯誤FormID改正確的FormID
var
DocNoList,FileList :TStringlist;
EDocNo,CDocNo,iDocNo,iFormID :String;
@@ -8711,7 +9685,7 @@
EDocDir := DocNoList.Strings[i];
iDocNo := DocNoDir2DocNo(DocNoList.Strings[i]);
iPath := ImageSavePath+CaseID+'\'+EDocDir+'\';
- if FileExists(iPath+'Context.dat') then //20140909�|�[�o�ӧP�_�y���ۭq�����S�v���|�X���~�T��
+ if FileExists(iPath+'Context.dat') then //20140909漏加這個判斷造成自訂文件但沒影像會出錯誤訊息
FileList.LoadFromFile(iPath+'Context.dat');
for n := 0 to FileList.Count - 1 do
begin
@@ -8732,7 +9706,7 @@
MoveFile(PWideChar(iPath),PWideChar(iiPath));
DocNoList.Strings[i] := StringReplace(DocNoList.Strings[i],iDocNo,CDocNo,[rfReplaceAll]);
DocNoList.SaveToFile(ImageSavePath+CaseID+'\CaseDocNo.dat');
- //SetRecordEditedDocDir('A',CaseID,CDocNo); //20140918 yuu���令������
+ //SetRecordEditedDocDir('A',CaseID,CDocNo); //20140918 yuu說改成不紀錄
end;
end;
finally
@@ -8741,7 +9715,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.SetRecordEditedDocDir(Mode:Char;CaseID,DocDir:String); //�O���Q���ʪ����ؿ� 'A:�[�JD:�R��'
+Procedure TCB_IMGPSScanX.SetRecordEditedDocDir(Mode:Char;CaseID,DocDir:String); //記錄被異動的文件目錄 'A:加入D:刪掉'
var
i : Integer;
Exists : Boolean;
@@ -8831,7 +9805,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetDocNo_IS_WH(DocNo:String):Boolean; //DocNo�O�_���J�w���
+Function TCB_IMGPSScanX.GetDocNo_IS_WH(DocNo:String):Boolean; //DocNo是否為入庫文件
var
i :Integer;
begin
@@ -8846,7 +9820,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.SortDocDir_FormID(CaseID,DocDir:String); //�NDocDir�̪����s���Ƨ�
+Procedure TCB_IMGPSScanX.SortDocDir_FormID(CaseID,DocDir:String); //將DocDir裡的文件編號排序
var
i,n,v,ln : Integer;
Exists:Boolean;
@@ -8861,13 +9835,13 @@
if FileExists(ImageSavePath+CaseID+'\'+DocDir+'\Context.dat') then
begin
FileList.LoadFromFile(ImageSavePath+CaseID+'\'+DocDir+'\Context.dat');
- ////���XFormID/////
+ ////取出FormID/////
for i := 0 to FileList.Count - 1 do
begin
FormID := FileName2FormCode(FileList.Strings[i]);
- if (FormID = 'Attach') or (FormID = 'S_Attach') then Continue; //�������}
+ if (FormID = 'Attach') or (FormID = 'S_Attach') then Continue; //附件離開
Exists := False;
- for n := 0 to FormIDList.Count - 1 do //�d�@�UFORMID�O�_�w�g�s�b�F
+ for n := 0 to FormIDList.Count - 1 do //查一下FORMID是否已經存在了
begin
if FormID = FormIDList.Strings[n] then
begin
@@ -8879,7 +9853,7 @@
FormIDList.Add(FormID);
end;
FormIDList.Sort;
- //�ƧǫᲣ�n��W���M��
+ //排序後產要更名的清單
for i := 0 to FormIDList.Count - 1 do
begin
iFormID := FormIDList.Strings[i];
@@ -8892,7 +9866,7 @@
end;
end;
FileList.Clear;
- //��W���s���Ǫ��ɦW
+ //更名成新順序的檔名
for i := 0 to SortFileList.Count - 1 do
begin
v := Pos(',',SortFileList.Strings[i]);
@@ -8902,7 +9876,7 @@
RenameFile(ImageSavePath+CaseID+'\'+DocDir+'\'+OldName,ImageSavePath+CaseID+'\'+DocDir+'\'+NewName);
FileList.Add(NewName);
end;
- //�h��@�}�Y
+ //去掉@開頭
for i := 0 to FileList.Count - 1 do
begin
OldName := FileList.Strings[i];
@@ -8941,12 +9915,12 @@
//TreeView1click(nil);
end;
-Function TCB_IMGPSScanX.DocNoIs_In_WH(DocNo:String):Boolean; //DocNo�O�_���J�w���
+Function TCB_IMGPSScanX.DocNoIs_In_WH(DocNo:String):Boolean; //DocNo是否為入庫文件
var
i : Integer;
begin
Result := False;
- if (Copy(DocNo,1,5)='ZZZZZ') then //20140728 yuu ���ۭq���]�O�J�w���
+ if (Copy(DocNo,1,5)='ZZZZZ') then //20140728 yuu 說自訂文件也是入庫文件
begin
Result := True;
Exit;
@@ -8979,7 +9953,7 @@
for i := 0 to FileList.Count - 1 do
begin
Docno := FormCode2DocNo(FileName2FormCode(FileList.Strings[i]));
-ShowMessage('Docno='+Docno);
+//ShowMessage('Docno='+Docno);
DocNoList.Add(DocNo);
Exists := False;
for n := 0 to CaseDocNoList.Count - 1 do
@@ -8993,7 +9967,7 @@
CaseDocNo_CopiesList.Add('1');
end;
end;
-ShowMessage('CreateCaseNeedData DocNoList='+DocNoList.Text);
+//ShowMessage('CreateCaseNeedData DocNoList='+DocNoList.Text);
DocNoList.SaveToFile(Path+'DocDir.dat');
CaseDocNoList.SaveToFile(Path+'CaseDocNo.dat');
CaseDocNo_CopiesList.SaveToFile(Path+'CaseDocNo_Copies.dat')
@@ -9020,7 +9994,7 @@
end;
end;
-Function TCB_IMGPSScanX.CheckSelectImg_UseCase(Path,CaseID:String):Boolean; //�ˬd��ܪ��v���O�_���]�t�Q�ޥΪ��v��
+Function TCB_IMGPSScanX.CheckSelectImg_UseCase(Path,CaseID:String):Boolean; //檢查選擇的影像是否有包含被引用的影像
var
i : Integer;
iISBName : String;
@@ -9070,33 +10044,33 @@
OldCasePath := Path+OldCaseID+'\';
if FileExists(OldCasePath+'UseCase.dat') and FileExists(OldCasePath+'UseCase.ini') then
begin
- //////����/////
+ //////壓檔/////
//ZipMainFile(Path,Path,'Img.zip');
- ////�W��/////
+ ////上傳/////
SendData:='data='+HTTPEncode(UTF8Encode(Data))+'&verify='+Verify+'&other_case_no='+OldCaseID;
//Showmessage(FUrl+'service/slic/SLIC02/useOther?'+senddata);
if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/useOther',SendData,'file',OldCasePath+'UseCase.ini',FReWrite,Memo1,False) then
begin
- Showmessage(Format(_Msg('�ǰe�¥�s��(%s)�ɮ�,�����o�Ϳ��~!!'+_Msg('���~�N�X:')),[OldCaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+ Showmessage(Format(_Msg('傳送舊件編號(%s)檔案時,網路發生錯誤!!'+_Msg('錯誤代碼:')),[OldCaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
Result := False;
Exit;
end;
if memo1.Lines.Strings[0] = '1' then
begin
- Showmessage(Format(_Msg('�ǰe�¥�s��(%s)�ɮ�,�����o�Ϳ��~!!')+_Msg('���~��]:'),[OldCaseID])+memo1.Lines.Strings[1]);
+ Showmessage(Format(_Msg('傳送舊件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:'),[OldCaseID])+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
begin
- Showmessage(Format(_Msg('�ǰe�¥�s��(%s)�ɮ�,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'),[OldCaseID]));
+ Showmessage(Format(_Msg('傳送舊件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'),[OldCaseID]));
Result := False;
Exit;
end;
end;
- ////�W��////
+ ////上傳////
end;
finally
OldCaseInfoList.Free;
@@ -9112,46 +10086,61 @@
SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&case_no='+CaseID;
If not ProcessServlet(HTTPSClient,FURL+'service/imgpsc/IMGPSC06/printlog',SendData,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
end;
-Function TCB_IMGPSScanX.FormIDAppear(FormID:String):Boolean; //FormID�O�_�i�X�{
+Function TCB_IMGPSScanX.FormIDAppear(FormID:String):Boolean; //FormID是否可出現
var
iDocNo : String;
begin
Result := True;
iDocNo := FormCode2DocNo(FormID);
- if (((FIs_In_Wh = 'Y') and (not DocNoIs_In_WH(iDocNo))) or //�J�w���y���ݫD�J�w���
- ((FIs_In_Wh = 'N') and (DocNoIs_In_WH(iDocNo)))) and //�D�J�w���y���ݤJ�w���
+ 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 (iDocNo <> 'S_Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then
Result := False;
+
+ if (FIs_In_Wh='Y') and (FWH_category='Y') then //20170816 新加
+ begin
+ 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 (iDocNo <> 'S_Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then
+ Result := False;
+ end;
+
+ if (FIs_In_Wh='Y') and (FWH_category='N') then //20170816 新加
+ begin
+ Result:=True;
+ end;
+
end;
-Function TCB_IMGPSScanX.DocNoAppear(DocNo:String):Boolean; //DocNo�O�_�i�X�{
+Function TCB_IMGPSScanX.DocNoAppear(DocNo:String):Boolean; //DocNo是否可出現
begin
Result := True;
- if (((FIs_In_Wh = 'Y') and (not DocNoIs_In_WH(DocNo)) or (DocNo ='S_Attach')) or //�J�w���y���ݫD�J�w���
- ((FIs_In_Wh = 'N') and (DocNoIs_In_WH(DocNo)) or (DocNo ='Attach') )) {and //�D�J�w���y���ݤJ�w���
+ if (((FIs_In_Wh = 'Y') and (not DocNoIs_In_WH(DocNo)) or (DocNo ='S_Attach')) or //入庫掃描不看非入庫文件
+ ((FIs_In_Wh = 'N') and (DocNoIs_In_WH(DocNo)) or (DocNo ='Attach') )) {and //非入庫掃描不看入庫文件
(Copy(DocNo,1,5)<>'ZZZZZ')} then
Result := False;
+
end;
-Function TCB_IMGPSScanX.GetDocNoCount(CaseID,DocNo:String):Integer; //��DocNo�ƶq
+Function TCB_IMGPSScanX.GetDocNoCount(CaseID,DocNo:String):Integer; //取DocNo數量
var
i : Integer;
Doc_Ct:Integer;
@@ -9181,12 +10170,12 @@
end;
end;
-Function TCB_IMGPSScanX.GetDocDirCopies(CaseID,DocDir:String):Integer; //��DocDir�ƶq
+Function TCB_IMGPSScanX.GetDocDirCopies(CaseID,DocDir:String):Integer; //取DocDir數量
var
i : Integer;
DocNoList,DocNo_CopiesList : TStringlist;
begin
- Result := 1; //�w�]�^��1 //20140521 ��0�令1
+ Result := 1; //預設回傳1 //20140521 由0改成1
DocNoList := TStringlist.Create;
DocNo_CopiesList := TStringlist.Create;
try
@@ -9211,7 +10200,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.SetDocDirCopies(CaseID,DocDir:String;NewCopies:Integer); //�ק�DocDir����
+Procedure TCB_IMGPSScanX.SetDocDirCopies(CaseID,DocDir:String;NewCopies:Integer); //修改DocDir份數
var
i : Integer;
DocNoList,DocNo_CopiesList : TStringlist;
@@ -9239,7 +10228,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetDocDirCopies_Rec(Path,CaseID,DocDir:String):Integer; //���O���̪�DocDir����
+Function TCB_IMGPSScanX.GetDocDirCopies_Rec(Path,CaseID,DocDir:String):Integer; //取記錄裡的DocDir份數
var
i,n,v,v1 : Integer;
OldCaseInfoList,Caseinfolist : TStringlist;
@@ -9249,7 +10238,7 @@
OldCaseInfoList := TStringlist.Create;
Caseinfolist := TStringlist.Create;
try
- //OldCaseInfoList �ץ�s��@#,�~��@#,�~�ȧO@#,�O�_�¥�@#,Data@#,Verify@#,���s��[����]@#,���s��[����] tab �ץ�s��@#,�~��@#,�~�ȧO@#,�O�_�¥�@#,Data@#,Verify@#,���s��[����]@#,���s��[����]
+ //OldCaseInfoList 案件編號@#,年度@#,業務別@#,是否舊件@#,Data@#,Verify@#,文件編號[份數]@#,文件編號[份數] tab 案件編號@#,年度@#,業務別@#,是否舊件@#,Data@#,Verify@#,文件編號[份數]@#,文件編號[份數]
OldCaseInfoList.StrictDelimiter := true;
OldCaseInfoList.Delimiter := #9;
OldCaseInfoList.DelimitedText := FOldCaseInfo;
@@ -9291,7 +10280,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetCustomNameCount(CustomName:String):Integer; //���~�Ǫ��W�ټƶq
+Function TCB_IMGPSScanX.GetCustomNameCount(CustomName:String):Integer; //取外傳的名稱數量
var
i,ct : Integer;
C_DocNameList : TStringlist;
@@ -9315,7 +10304,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetCustomDocNoCount(Docno:String):Integer; //���~�Ǫ�DocNo�ƶq
+Function TCB_IMGPSScanX.GetCustomDocNoCount(Docno:String):Integer; //取外傳的DocNo數量
var
i,ct : Integer;
C_DocNoList : TStringlist;
@@ -9354,7 +10343,35 @@
end;
end;
-Function TCB_IMGPSScanX.CaseDelete_Enable(CaseID:String):Boolean; //�ץ�i�_�Q�R��
+Function TCB_IMGPSScanX.ISDivPageFormID(FormID:String):Boolean;
+var
+ i : Integer;
+begin
+ Result := False;
+
+ for i := 0 to DivPageFormIDList.Count - 1 do
+ begin
+ if FormID = DivPageFormIDList.Strings[i] then
+ begin
+ Result := True;
+ Break;
+ end;
+ end;
+end;
+
+function TCB_IMGPSScanX.ISExistImg(const filename: string): boolean;
+begin
+ if ExistImgList.IndexOf(LoadFileGetMD5(filename))<>-1 then
+ begin
+ Result:=True;
+ end
+ else
+ begin
+ Result:=False;
+ end;
+end;
+
+Function TCB_IMGPSScanX.CaseDelete_Enable(CaseID:String):Boolean; //案件可否被刪除
var
i : Integer;
CaseDocNoList : TStringlist;
@@ -9366,7 +10383,7 @@
CaseDocNoList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo.dat');
for i := 0 to CaseDocNoList.Count - 1 do
begin
- if GetUseCase('T',DisplayPath,CaseDocNoList.Strings[i]) <> '' then //���Q�ޥΨ���
+ if GetUseCase('T',DisplayPath,CaseDocNoList.Strings[i]) <> '' then //有被引用走的
Result := False;
end;
@@ -9375,7 +10392,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.MoveImage(Path:String;mp:Integer); //���ʭ���
+Procedure TCB_IMGPSScanX.MoveImage(Path:String;mp:Integer); //移動頁數
var
i,n,inx:Integer;
FList,D_Flist:TStringlist;
@@ -9433,7 +10450,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.MoveImage_Drag(Path:String;fp,tp:Integer); //��Բ��ʭ���
+Procedure TCB_IMGPSScanX.MoveImage_Drag(Path:String;fp,tp:Integer); //拖拉移動頁數
var
i,n,inx:Integer;
FList,D_Flist:TStringlist;
@@ -9491,7 +10508,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.SetUseCase(Mode:Char;Path,DocDir,FormCaseID,ToCaseID:String); //�O���ޥΨ�L�ץ� A:�[�J D:�R��
+Procedure TCB_IMGPSScanX.SetUseCase(Mode:Char;Path,DocDir,FormCaseID,ToCaseID:String); //記錄引用其他案件 A:加入 D:刪掉
var
ini : Tinifile;
begin
@@ -9512,7 +10529,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetUseCase(Mode:Char;Path,DocDir:String):String; //F:���Q�ޥ� To:�ޥ�
+Function TCB_IMGPSScanX.GetUseCase(Mode:Char;Path,DocDir:String):String; //F:取被引用 To:引用
var
ini : Tinifile;
begin
@@ -9560,7 +10577,15 @@
CopyFile(PWideChar(OldPath+'UseCase.ini'),PWideChar(NewPath+'UseCase.ini'),False);
if FileExists(OldPath+'CaseDocNo.dat') then
+ begin
DocNoList.LoadFromFile(OldPath+'CaseDocNo.dat');
+ end
+ else
+ begin
+ DocNoList.SaveToFile(OldPath+'CaseDocNo.dat');
+ CopyFile(PWideChar(OldPath+'CaseDocNo.dat'),PWideChar(NewPath+'CaseDocNo.dat'),False);
+ end;
+
for i := 0 to DocNoList.Count-1 do
begin
DocDir := DocNoList.Strings[i];
@@ -9644,20 +10669,11 @@
iFileList,iFile_DocDirList :TStringlist;
AA,AA2,AA3,AA4:Boolean;
begin
-ShowMessage('aaaaaaaa');
- if not FileExists(SoDir+'CaseDocNo.dat') then
- begin
-ShowMessage('1111111111');
- end;
- if not FileExists(SoDir+'DocDir.dat') then
- begin
-ShowMessage('222222222');
- end;
- if (not FileExists(SoDir+'CaseDocNo.dat')) or (not FileExists(SoDir+'DocDir.dat')) then //�I�e���|�S�o����
+ if (not FileExists(SoDir+'CaseDocNo.dat')) or (not FileExists(SoDir+'DocDir.dat')) then //截畫面會沒這些檔
begin
-ShowMessage('���ͥ��n����r��');
- CreateCaseNeedData(SoDir); //���ͥ��n����r��
+//ShowMessage('產生必要的文字檔');
+ CreateCaseNeedData(SoDir); //產生必要的文字檔
end;
AA:=CopyFile(PWideChar(SoDir+'CaseDocNo.dat'),PWideChar(DeDir+'CaseDocNo.dat'),False);
@@ -9665,7 +10681,7 @@
AA3:=CopyFile(PWideChar(SoDir+'CustomDocNo.ini'),PWideChar(DeDir+'CustomDocNo.ini'),False);
AA4:=CopyFile(PWideChar(SoDir+'UseCase.ini'),PWideChar(DeDir+'UseCase.ini'),False);
//ShowMessage(BoolToStr(AA)+#10#13+BoolToStr(AA2)+#10#13+BoolToStr(AA3)+#10#13+BoolToStr(AA4));
- if FileExists(SoDir+'DocDir.dat') then
+ if FileExists(SoDir+'DocDir.dat') then //20170222 新加
begin
CopyFile(PWideChar(SoDir+'DocDir.dat'),PWideChar(DeDir+'DocDir.dat'),False);
end;
@@ -9702,7 +10718,7 @@
DocDir := DocNoList.Strings[i];
MkDir(DeDir+DocDir);
end;}
-ShowMessage('DocNoList='+DocNoList.Text);
+//ShowMessage('DocNoList='+DocNoList.Text);
for i := DocNoList.Count - 1 downto 0 do
begin
@@ -9715,18 +10731,18 @@
end
else
begin
-ShowMessage('GGG');
+//ShowMessage('GGG');
DocNoList.Delete(i);
DocNoList.SaveToFile(DeDir+'CaseDocNo.dat');
if i <= CaseDocNo_CopiesList.Count-1 then
begin
-ShowMessage('KKKK');
+//ShowMessage('KKKK');
CaseDocNo_CopiesList.Delete(i);
CaseDocNo_CopiesList.SaveToFile(DeDir+'CaseDocNo_Copies.dat');
end;
end;
end;
- //20170221 �����Ѱ_�� �]���L�b�ɥR���ˮɦn���|����ܪ����D
+ //20170221 先註解起來 因為他在補充掃瞄時好像會有顯示的問題
for i := 0 to iFileList.Count - 1 do
begin
@@ -9789,6 +10805,12 @@
end;
end;}
+ if FMode='ESCAN' then
+ begin
+ InitExistImgList(DeDir);
+ end;
+
+
finally
iFileList.Free;
FileList.Free;
@@ -9797,7 +10819,7 @@
end;
end;
-Function TCB_IMGPSScanX.FormCode2FormName(CaseID,FormCode:String):String; //��FormCode�ন���W��
+Function TCB_IMGPSScanX.FormCode2FormName(CaseID,FormCode:String):String; //用FormCode轉成文件名稱
var
i,v,ln : Integer;
DelBarCode : String;
@@ -9805,13 +10827,13 @@
begin
Result := '';
if (FormCode = '') or (FormCode = 'Attach') or (FormCode = 'S_Attach') then
- Result := _Msg('���k��')
+ Result := _Msg('未歸類')
//showmessage('a');
//stringtofile(FORM_INF_List.Text,'D:\121.txt');
Else If FindSQLData(FORM_INF_List,'T1.FORM_ID,T1.FORM_DESC','T1.FORM_ID',FormCode,0,FindResult) then
Result := GetFindResult('T1.FORM_DESC');
- ////// ��ۭq����//////
+ ////// 到自訂文件找//////
if Result = '' then
Result := GetCustomDocName(ImageSavePath+CaseID+'\',FormCode2DocNo(FormCode));
{for i := 0 to Cust_DocNoList.Count - 1 do
@@ -9829,7 +10851,7 @@
{DelBarCode := '**'+FormCode;
for I := 0 to FormCodeList.Count - 1 do
begin
- if FindDel then //�n��U�[��
+ if FindDel then //要找下架的
begin
if (FormCode = FormCodeList.Strings[i]) or (DelBarCode = FormCodeList.Strings[i]) then
begin
@@ -9848,7 +10870,7 @@
end; }
end;
-Function TCB_IMGPSScanX.FormCode2FileName(FormCode:String;List:TStrings):String; //��FormCode��X�ɦW(�Ĥ@��)
+Function TCB_IMGPSScanX.FormCode2FileName(FormCode:String;List:TStrings):String; //用FormCode找出檔名(第一頁)
var
i : Integer;
v,v1 : Integer;
@@ -9858,7 +10880,7 @@
begin
V := pos('_',List.Strings[i]);
v1 := pos('.',List.Strings[i]);
- if (FormCode = '') and (V = 0)then //FormCode �����h�����X��
+ if (FormCode = '') and (V = 0)then //FormCode 為空的則找附件出來
begin
Result := List.Strings[i];
Break;
@@ -9871,7 +10893,7 @@
end;
end;
-Function TCB_IMGPSScanX.FileName2FormCode(FileName:String):String; //�q�ɦW���XFormCode
+Function TCB_IMGPSScanX.FileName2FormCode(FileName:String):String; //從檔名取出FormCode
var
v,v1 : Integer;
begin
@@ -9882,43 +10904,43 @@
begin
Result := Copy(FileName,v+1,v1-v-1);
end
- Else //����
+ Else //附件
begin
Result := '';
end;
end;
-Function TCB_IMGPSScanX.FileName2FormName(CaseID,FileName:String):String; //�q�ɦW���X���W��
+Function TCB_IMGPSScanX.FileName2FormName(CaseID,FileName:String):String; //從檔名取出文件名稱
begin
Result := FormCode2FormName(CaseID,FileName2FormCode(FileName));
end;
-Function TCB_IMGPSScanX.FileName2ScanPage(FileName:String):Integer; //�q�ɦW��X���˭���
+Function TCB_IMGPSScanX.FileName2ScanPage(FileName:String):Integer; //從檔名轉出掃瞄頁數
Var
v : Integer;
FName : String;
begin
FName := ExtractFileName(FileName);
v := Pos('_',FName);
- if v = 0 then //����
+ if v = 0 then //附件
v := pos('.',FName);
Result := Strtoint(Copy(FName,1,v-1));
end;
-Function TCB_IMGPSScanX.FileName2NoQuene_Filename(FileName:String):String; //���X�S���Ǹ����ɦW
+Function TCB_IMGPSScanX.FileName2NoQuene_Filename(FileName:String):String; //取出沒有序號的檔名
var
v,v1 : Integer;
FName : String;
begin
FName := ExtractFileName(FileName);
v := Pos('_',FName);
- if v = 0 then //����
+ if v = 0 then //附件
v := pos('.',FName);
v1 := length(FName);
Result := Copy(FName,v,v1-v+1);
end;
-Function TCB_IMGPSScanX.FileName2Index(FileName:String):Integer; //�q�ɦW���X�bContextList���Ǹ�
+Function TCB_IMGPSScanX.FileName2Index(FileName:String):Integer; //從檔名取出在ContextList的序號
var
i : Integer;
begin
@@ -9932,7 +10954,7 @@
end;
end;
-Function TCB_IMGPSScanX.FileName2NowDcoNo(FileName:String;CtList,DNList:TStrings):String; //�q�ɦW���X�k�ݪ����N��
+Function TCB_IMGPSScanX.FileName2NowDcoNo(FileName:String;CtList,DNList:TStrings):String; //從檔名取出歸屬的文件代號
var
i : Integer;
begin
@@ -9946,7 +10968,7 @@
end;
end;
-Function TCB_IMGPSScanX.FormCode2DocNo(FormCode:String):String; //FormCode��Docno
+Function TCB_IMGPSScanX.FormCode2DocNo(FormCode:String):String; //FormCode轉Docno
Var
i : Integer;
begin
@@ -9960,28 +10982,28 @@
end;
end;
- if (FormCode <> '') and (Result = '') then //�O�ۭq���
+ if (FormCode <> '') and (Result = '') then //是自訂文件
begin
- Result := Copy(FormCode,1,8);
+ Result := Copy(FormCode,1,8); //20170224 DocNo 固定長度8碼
end;
- {If FindSQLData(FORM_INF_List,'T1.DOC_NO','T1.FORM_ID',FormCode,0,FindResult) Then //20130403�ӺC�F..����
+ {If FindSQLData(FORM_INF_List,'T1.DOC_NO','T1.FORM_ID',FormCode,0,FindResult) Then //20130403太慢了..換掉
begin
Result := GetFindResult('T1.DOC_NO');
end;}
end;
-Function TCB_IMGPSScanX.FormCode2Version(FormCode:String):String; //FormCode���
+Function TCB_IMGPSScanX.FormCode2Version(FormCode:String):String; //FormCode轉版本
begin
Result := Copy(FormCode,11,5);
end;
-Function TCB_IMGPSScanX.FormCode2Page(FormCode:String):String; //FormCode�୶��
+Function TCB_IMGPSScanX.FormCode2Page(FormCode:String):String; //FormCode轉頁數
begin
Result := Copy(FormCode,9,2)
end;
-Function TCB_IMGPSScanX.DocNo2DocName(CaseID,DocNo:String):String; //Docno��Doc�W��
+Function TCB_IMGPSScanX.DocNo2DocName(CaseID,DocNo:String):String; //Docno轉Doc名稱
var
i,v,ln : Integer;
CusDocNo,CusDocName : String;
@@ -9989,7 +11011,7 @@
Result := '';
if DocNo = AttName then
begin
- Result := _Msg('���k��');
+ Result := _Msg('未歸類');
end
Else
begin
@@ -9999,7 +11021,7 @@
end;
end;
- if Result = '' then //�h�ۭq���̧�
+ if Result = '' then //去自訂文件裡找
begin
Result := GetCustomDocName(ImageSavePath+CaseID+'\',DocNo);
{for i := 0 to Cust_DocNoList.Count - 1 do
@@ -10018,7 +11040,7 @@
end;
-Function TCB_IMGPSScanX.DocNo2FileName(DocNo:String;List:TStrings):String; //��DocNo��X�ɦW(�Ĥ@��)
+Function TCB_IMGPSScanX.DocNo2FileName(DocNo:String;List:TStrings):String; //用DocNo找出檔名(第一頁)
var
i : Integer;
begin
@@ -10033,7 +11055,7 @@
end;
end;
-Function TCB_IMGPSScanX.FormCode2WorkNo(FormCode:String):String; //��FormCode���X�@�~�O
+Function TCB_IMGPSScanX.FormCode2WorkNo(FormCode:String):String; //用FormCode取出作業別
begin
Result := '';
If FindSQLData(FORM_INF_List,'T1.WORK_NO','T1.FORM_ID',FormCode,0,FindResult) Then
@@ -10042,7 +11064,7 @@
end;
end;
-Function TCB_IMGPSScanX.DocNo2WorkNo(DocNo:String):String; //��DocNo���X�@�~�O
+Function TCB_IMGPSScanX.DocNo2WorkNo(DocNo:String):String; //用DocNo取出作業別
begin
Result := '';
If FindSQLData(Doc_Inf_List,'WORK_NO','DOC_NO',DocNo,0,FindResult) Then
@@ -10051,7 +11073,7 @@
end;
end;
-Function TCB_IMGPSScanX.DocNoNeedDiv(DocNo:String):Boolean; //�O�_�O�ݤ����ƪ����N��
+Function TCB_IMGPSScanX.DocNoNeedDiv(DocNo:String):Boolean; //是否是需分份數的文件代號
var
NeedDiv : String;
begin
@@ -10064,11 +11086,11 @@
end;
end;
-Function TCB_IMGPSScanX.CaseNode2Info(Node:TTreeNode;Mode:Char):String; //�ץ�Node���ץ�s�� Mode: I:Caseno;P:Page
+Function TCB_IMGPSScanX.CaseNode2Info(Node:TTreeNode;Mode:Char):String; //案件Node取案件編號 Mode: I:Caseno;P:Page
var
v,ln : Integer;
begin
- //XXXXXX-XX��
+ //XXXXXX-XX頁
V := Pos('-',Node.Text);
ln := Length(Node.Text);
case Mode of
@@ -10078,11 +11100,11 @@
end;
-Function TCB_IMGPSScanX.DocNode2Info(Node:TTreeNode;Mode:Char):String; //���Node�����N�� Mode: I:Docno;N:Docname;P:Page;G:Group
+Function TCB_IMGPSScanX.DocNode2Info(Node:TTreeNode;Mode:Char):String; //文件Node取文件代號 Mode: I:Docno;N:Docname;P:Page;G:Group
var
v,v1,v2,v3,ln :integer;
begin
- //���W��@�ռ�{���N��}-XX��
+ //文件名稱@組數{文件代號}-XX頁
V := PosEnd('@',Node.Text);
v1 := PosEnd('{',Node.Text);
v2 := PosEnd('}',Node.Text);
@@ -10096,11 +11118,11 @@
end;
end;
-Function TCB_IMGPSScanX.FormNode2Info(Node:TTreeNode;Mode:Char):String; //���Node�����N�� Mode: I:FormID;N:FormName;P:Page
+Function TCB_IMGPSScanX.FormNode2Info(Node:TTreeNode;Mode:Char):String; //表單Node取表單代號 Mode: I:FormID;N:FormName;P:Page
var
v,v1,v2,ln :integer;
begin
- //���N��{���W��}-XX��
+ //表單代號{表單名稱}-XX頁
v := Pos('{',Node.Text);
v1 := PosEnd('}',Node.Text);
v2 := PosEnd('-',Node.Text);
@@ -10112,7 +11134,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.PriorPage(Page:Integer); //�W�@��
+Procedure TCB_IMGPSScanX.PriorPage(Page:Integer); //上一頁
var
iISB : TImageScrollBox;
begin
@@ -10123,7 +11145,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.NextPage(Page:Integer); //�U�@��
+Procedure TCB_IMGPSScanX.NextPage(Page:Integer); //下一頁
var
iISB : TImageScrollBox;
begin
@@ -10134,7 +11156,7 @@
end;
end;
-Function TCB_IMGPSScanX.DocNoExistsinTree(CaseNode:TTreeNode;DocNo:String):Boolean; //�O�_�v�s�b���
+Function TCB_IMGPSScanX.DocNoExistsinTree(CaseNode:TTreeNode;DocNo:String):Boolean; //是否己存在樹裡
var
i : Integer;
begin
@@ -10150,7 +11172,7 @@
end;
-Function TCB_IMGPSScanX.DocnoNeedGroup(DocNo:String):Boolean; //�ǤJ��DocNo�O�_�ݤ���
+Function TCB_IMGPSScanX.DocnoNeedGroup(DocNo:String):Boolean; //傳入的DocNo是否需分組
begin
Result := False;
If FindSQLData(Doc_Inf_List,'IS_DOC_DIV','DOC_NO',DocNo,0,FindResult) Then
@@ -10160,7 +11182,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.DistinctFormCode(CaseID:String); //�q�ץ�̪�FormCode���X�Ĥ@��
+Procedure TCB_IMGPSScanX.DistinctFormCode(CaseID:String); //從案件裡的FormCode取出第一頁
var
i,n : Integer;
LForm,OForm : String;
@@ -10172,6 +11194,14 @@
S.LoadFromFile(ImageSavePath + CaseID+'\upload\Context.dat');
for i := 0 to S.Count - 1 do
begin
+ if FWH_category='N' then
+ begin
+ if ISExistImg(ImageSavePath+CaseID+'\upload\'+S.Strings[i]) then
+ begin
+ Continue;
+ end;
+ end;
+
LForm := FileName2FormCode(S.Strings[i]);
AddOk := True;
for n := 0 to OMRFileList.Count - 1 do
@@ -10195,7 +11225,7 @@
end;
-Function TCB_IMGPSScanX.OMRCheckCase(CaseID:String):Boolean; //OMR�ˮ�
+Function TCB_IMGPSScanX.OMRCheckCase(CaseID:String):Boolean; //OMR檢核
var
i,n,m,v,v1 : Integer;
XT,RelaXT,ValueXT : TXmltool;
@@ -10209,22 +11239,24 @@
OMROK : Boolean;
CaseOk : Boolean;
ErrStr : String;
- SiteRec,RelaSiteRec : String; //�h�զ�m�O��
+ SiteRec,RelaSiteRec : String; //多組位置記錄
OMRValue : String;
- MainFormID,MainDocNo,MainVersion : String; //�DFormID
- MainFormPage,CaseFormPage : Integer; //�D�n���ݭn������
- NeedDocNoStr,NoDocNoStr : String; //�ۨ� �������r��
+ MainFormID,MainDocNo,MainVersion : String; //主FormID
+ MainFormPage,CaseFormPage : Integer; //主要文件需要的頁數
+ NeedDocNoStr,NoDocNoStr : String; //相依 互斥文件字串
List : TStringlist;
FormCode : String;
FormDataPages : Integer;
- NoSite : Boolean; //���w��
+ NoSite : Boolean; //未定位
Anchor,Anchor1 : String;
OMROkCount : Integer;
- //Casecheck : Boolean; //�O�_�n���ˮ�
- //AllCheck : Boolean; //�O�_�n�������ˮ�
+ //Casecheck : Boolean; //是否要做檢核
+ //AllCheck : Boolean; //是否要做完整檢核
+
+ ISB8W,ISB8H:integer;
begin
- ///OMRErrInfo 1: ���n��� 2:�̤ۨ�� 3:������� 4:���� 5:��즳�Ȫ���� 6:��즳�Ȥ������
- /// 7: ��즳�Ȭ������]�n���� 8:��즳�ȭn�g�Ƶ� 9:���Τ�� 10:�̤j����
+ ///OMRErrInfo 1: 必要文件 2:相依文件 3:互斥文件 4:必填 5:欄位有值附文件 6:欄位有值不附文件
+ /// 7: 欄位有值相關欄位也要有值 8:欄位有值要寫備註 9:停用日期 10:最大頁數
//Casecheck := True;
//Allcheck := True;
//if (FMode = 'ISCAN') then
@@ -10249,22 +11281,28 @@
begin
end;
+//ShowMessage('MainFormID='+MainFormID);
if MainFormID = ''then
begin
- //20131203 yuu�����ˬd�o��,������
- {if FMode <> 'SSCAN' then //ñ�p����|���DFormID,�����L
+ //20131203 yuu說不檢查這個,先拿掉 20170315 楷琳說未歸類要擋 20170726 因此有檢查必要FormID 所以 可以拿掉
+ {if FCheck_main_form='Y' then
begin
- ErrStr:=_Msg('�䤣����פ��'); //�䤣��D���
- OMRErr2ini(CaseID,ErrStr,'','','','','','',False,False,True);
- CaseOk := false;
- end;}
+ if (FMode <> 'SSCAN') AND (FMode<>'ESCAN') then //簽署章件會換主FormID,先跳過 20170629 ESCAN 也不檢查
+ begin
+ ErrStr:=_Msg('找不到分案文件'); //找不到主文件
+ OMRErr2ini(CaseID,ErrStr,'','','','','','',False,False,True);
+ CaseOk := false;
+//ShowMessage('AAAAA');
+ end;
+ end;
+ }
end
Else
begin
- //////�D�n�D�D�n���//////
+ //////主要非主要文件//////
DistinctDocinCase(ImageSavePath+CaseID+'\upload\');
-
- if ModeNeedCheck(OMRErrInfo[1].Mode,FMode) then //�O�_�n�ˮ�
+//ShowMessage(DocNo_VerinCase.Text);
+ if ModeNeedCheck(OMRErrInfo[1].Mode,FMode) then //是否要檢核
begin
for i := 0 to DocNo_VerinCase.Count - 1 do
begin
@@ -10272,18 +11310,18 @@
v1 := length(DocNo_VerinCase.Strings[i]);
MainDocNo := Copy(DocNo_VerinCase.Strings[i],1,v-1); //FormCode2DocNo(MainFormID);
MainVersion :=Copy(DocNo_VerinCase.Strings[i],v+1,v1-v); //FormCode2Version(MainFormID);
- MainFormPage := GetDataDocNoPage(MainDocNo,MainVersion); //��Ʈw�O���D���
- CaseFormPage := CheckCaseDocNoPage(CaseID,MainDocNo,MainVersion,MainFormPage); //�ץ�D�����
+ MainFormPage := GetDataDocNoPage(MainDocNo,MainVersion); //資料庫記錄主文件頁數
+ CaseFormPage := CheckCaseDocNoPage(CaseID,MainDocNo,MainVersion,MainFormPage); //案件主文件的頁數
IF (MainFormPage > 0) and (MainFormPage <> CaseFormPage) then
begin
- ErrStr:=MainDocNo+Format(OMRErrInfo[1].Info,[Inttostr(MainFormPage),Inttostr(CaseFormPage)]); //�D�n���ݦ�XX���Ȫ�XX��
+ ErrStr:=MainDocNo+Format(OMRErrInfo[1].Info,[Inttostr(MainFormPage),Inttostr(CaseFormPage)]); //主要文件需有XX頁僅附XX頁
OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[1].Ignore,OMRErrInfo[1].Display);
if OMRErrInfo[1].Display then
CaseOk := false;
end;
end;
end;
- //////�D�n�D�D�n���/////
+ //////主要非主要文件/////
//showmessage(MainFormID);
MainDocNo := FormCode2DocNo(MainFormID);
MainVersion := FormCode2Version(MainFormID);
@@ -10298,129 +11336,162 @@
NoDocNoStr := GetFindResult('MUTEX_FORM_ID');
end;
- //////�̤ۨ��/////
- if ModeNeedCheck(OMRErrInfo[2].Mode,FMode) then //�O�_�n�ˮ�
+ //////相依文件/////
+ if ModeNeedCheck(OMRErrInfo[2].Mode,FMode) then //是否要檢核
begin
List.CommaText := NeedDocNoStr;
for I := 0 to List.Count - 1 do
begin
- if not Case_DocNoExists(CaseID,List.Strings[i]) then //�S���̤ۨ��
+ if not Case_DocNoExists(CaseID,List.Strings[i]) then //沒附相依文件
begin
- ErrStr:=Format(OMRErrInfo[2].Info,[DocNo2DocName(CaseID,List.Strings[i])]); //�S���̤ۨ��
+ if FWH_category='N' then
+ begin
+ if ISExistImg(ImageSavePath+CaseID+'\upload\'+List.Strings[i]) then
+ begin
+ Continue;
+ end;
+ end;
+ ErrStr:=Format(OMRErrInfo[2].Info,[DocNo2DocName(CaseID,List.Strings[i])]); //沒附相依文件
OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[2].Ignore,OMRErrInfo[2].Display);
if OMRErrInfo[2].Display then
CaseOk := false;
end;
end;
end;
- //////�̤ۨ��/////
+ //////相依文件/////
- //////�������/////
- if ModeNeedCheck(OMRErrInfo[3].Mode,FMode) then //�O�_�n�ˮ�
+ //////互斥文件/////
+ if ModeNeedCheck(OMRErrInfo[3].Mode,FMode) then //是否要檢核
begin
List.CommaText := NoDocNoStr;
for I := 0 to List.Count - 1 do
begin
- if Case_DocNoExists(CaseID,List.Strings[i]) then //���F�������
+ if Case_DocNoExists(CaseID,List.Strings[i]) then //附了互斥文件
begin
- ErrStr:=Format(OMRErrInfo[3].Info,[DocNo2DocName(CaseID,List.Strings[i])]); //�����������
+ if FWH_category='N' then
+ begin
+ if ISExistImg(ImageSavePath+CaseID+'\upload\'+List.Strings[i]) then
+ begin
+ Continue;
+ end;
+ end;
+ ErrStr:=Format(OMRErrInfo[3].Info,[DocNo2DocName(CaseID,List.Strings[i])]); //有附互斥文件
OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[3].Ignore,OMRErrInfo[3].Display);
if OMRErrInfo[3].Display then
CaseOk := false;
end;
end;
end;
- //////�������/////
+ //////互斥文件/////
end;
//end;
List.LoadFromFile(ImageSavePath + CaseID+'\upload\Context.dat');
for i := 0 to List.Count - 1 do
begin
FormCode := FileName2FormCode(List.Strings[i]);
- /////���k��///
- {IF FormCode = 'Attach' Then //20140211 yuu�����ˬd�F
+ /////未歸類///
+ {IF FormCode = 'Attach' Then //20140211 yuu說不檢查了
begin
- ErrStr:=_Msg('�|������k��');
+ ErrStr:=_Msg('尚有文件未歸類');
OMRErr2ini(CaseID,ErrStr,'','','','','','',False,False,True);
CaseOk := false;
end; }
- /////���k��//////
+ /////未歸類//////
- /////�����U���/////
- {IF not FormIDExists(FormCode,False) then //�����U���
+ /////未註冊文件/////
+ {IF not FormIDExists(FormCode,False) then //未註冊文件
begin
- ErrStr:=FormCode+_Msg('�������~�Ȫ����N�X');
+ ErrStr:=FormCode+_Msg('不為此業務的表單代碼');
OMRErr2ini(CaseID,ErrStr,'','','','',False,False,True);
CaseOk := false;
end }
- /////�����U���/////
- //////�����//
- {Else} IF ModeNeedCheck(OMRErrInfo[9].Mode,FMode) and (not FormIDExists(FormCode,True,0)) then //���������
+ /////未註冊文件/////
+ //////停用文件//
+ {Else} IF ModeNeedCheck(OMRErrInfo[9].Mode,FMode) and (not FormIDExists(FormCode,True,0)) and (not checkFormCodeIsCustom(ImageSavePath + CaseID+'\upload\',FormCode)) then //有停用的文件
begin
- ErrStr:=Format(OMRErrInfo[9].Info,[FormCode2FormName(CaseID,FormCode)]); //�������
+//ShowMessage('AAAA');
+ ErrStr:=Format(OMRErrInfo[9].Info,[FormCode2FormName(CaseID,FormCode)]); //有停用文件
OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[9].Ignore,OMRErrInfo[9].Display);
+//ShowMessage('ErrStr='+ErrStr);
if OMRErrInfo[9].Display then
CaseOk := false;
end;
- //////�����////
+ //////停用文件////
end;
finally
List.Free;
end;
//if AllCheck then
//begin
- //////�̤j����/////
+ //////最大頁數/////
DistinctFormCode(CaseID);
- if ModeNeedCheck(OMRErrInfo[10].Mode,FMode) then //�O�_�n�ˮ�
+ if ModeNeedCheck(OMRErrInfo[10].Mode,FMode) then //是否要檢核
begin
+//ShowMessage('AAA'+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;
FormCode := FileName2FormCode(OMRFileList.Strings[i]);
FormDataPages := GetDataFormCodePages(FormCode);
- IF (FormCode <> '') and (FormDataPages > 0) and (FindFormCodePages(CaseID,FormCode) > FormDataPages) then //���W�L�̤j���ƪ����
+ IF (FormCode <> '') and (FormDataPages > 0) and (FindFormCodePages(CaseID,FormCode) > FormDataPages) then //有超過最大頁數的文件
begin
- ErrStr:=Format(OMRErrInfo[10].Info,[FormCode2FormName(CaseID,FormCode),inttostr(FormDataPages)]); //���W�L�̤j���Ƥ��
+ ErrStr:=Format(OMRErrInfo[10].Info,[FormCode2FormName(CaseID,FormCode),inttostr(FormDataPages)]); //有超過最大頁數文件
OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[10].Ignore,OMRErrInfo[10].Display);
if OMRErrInfo[10].Display then
CaseOk := false;
end;
end;
end;
- /////�̤j����/////
+ /////最大頁數/////
//end;
ImageScrollBox1.FileName := '';
- //if FWork_No = 'CW' then //�z�ߴN�����U�����ˮ֤F
+ //if FWork_No = 'CW' then //理賠就不做下面的檢核了
//begin
- //////OMR�ˮ�///////
+ //////OMR檢核///////
ContextList.LoadFromFile(ImageSavePath+CaseID+'\upload\Context.dat');
DistinctFormCode(CaseID);
ValueXT := TXmltool.Create;
Try
+//ShowMessage('必填'+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;
OMRFile := OMRFileList.Strings[i];
OMRFormCode := FileName2FormCode(OMRFileList.Strings[i]);
OMRFormName := FormCode2FormName(CaseID,OMRFormCode);
Anchor := FormID2Anchor(OMRFormCode);
- ///�̤Q�r�w���I�Y��////
- ImageReSize(CaseID,OMRFile);
- ////�̤Q�r�w���I�Y��////
- if not FileExists(CheckXmlPath+OMRFormCode+'.xml') then //�S��Xml�N�����ˮ�
+ ///依十字定位點縮放////
+ ImageReSize_FormID(CaseID,OMRFile);
+ ////依十字定位點縮放///
+//Display1.Lines.Add('OMRFile='+OMRFile+',OMRFormCode='+OMRFormCode+',OMRFormName='+OMRFormName);
+ if not FileExists(CheckXmlPath+OMRFormCode+'.xml') then //沒有Xml就不用檢核
Continue;
XT := TXmltool.Create(CheckXmlPath+OMRFormCode+'.xml');
RelaXT := TXmltool.Create;
-
+//ShowMessage('ModeNeedCheck='+BoolToStr(ModeNeedCheck(OMRErrInfo[4].Mode,FMode),true));
try
- //*******����********
- if ModeNeedCheck(OMRErrInfo[4].Mode,FMode) then //�O�_�n�ˮ�
+ //*******必填********
+ if ModeNeedCheck(OMRErrInfo[4].Mode,FMode) then //是否要檢核
begin
if XT.SubNodes['/form/settype1/'].First then
Repeat
OMROK := False;
- SiteRec := ''; //�M��
+ SiteRec := ''; //清掉
ColEName := XT.SubNodes['/form/settype1/'].NodeName;
ColCName := XT.Node['/form/settype1/'+ColEName+'/'].Attributes['coldesc'];
ColCName := Copy(ColCName,1,length(ColCName)-6);
@@ -10431,12 +11502,15 @@
begin
Pixel := Strtoint(XT.Node['/form/settype1/'+ColEName+'/'+nodename+'/'].Attributes['pixel']);
Site := XT.Node['/form/settype1/'+ColEName+'/'+nodename+'/'].Attributes['colxy'];
- if SiteRec= '' then //�O����m
+ if SiteRec= '' then //記錄位置
SiteRec := Site
else
SiteRec := SiteRec+'@'+Site;
- //����Nok
+ //有填就ok
//Showmessage(ColCName +','+ inttostr(OMRMpsV1.GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site))+','+inttostr(Pixel + SafePixel));
+//SafePixel:=90000;
+Display1.Lines.Add(ColEName+' '+ColCName+' 圖像實際點數='+IntToStr(GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt))+' 設定點數='+IntToStr( (Pixel + SafePixel)));
+//FindPoint(ISB_BW.Graphic,UpLPoint,UpRPoint,DownLPoint,ANCHOR);
if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
begin
//Showmessage('oh');
@@ -10451,19 +11525,19 @@
Until not XT.SubNodes['/form/settype1/'+ColEName+'/'].Next;
if not OMROk then
begin
- ErrStr:=Format(OMRErrInfo[4].Info,[ColCName]); //XX��쥼��g
+ ErrStr:=Format(OMRErrInfo[4].Info,[ColCName]); //XX欄位未填寫
OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,'','',Anchor,Anchor1,False,OMRErrInfo[4].Ignore,OMRErrInfo[4].Display);
if OMRErrInfo[4].Display then
CaseOk := false;
end;
Until not XT.SubNodes['/form/settype1/'].Next ;
end;
- //*******����********
+ //*******必填********
//if AllCheck then
//begin
- //*******���Ȭ���������]�n����*******
- if ModeNeedCheck(OMRErrInfo[7].Mode,FMode) then //�O�_�n�ˮ�
+ //*******有值相關文件的欄位也要有值*******
+ if ModeNeedCheck(OMRErrInfo[7].Mode,FMode) then //是否要檢核
begin
if XT.SubNodes['/form/settype3/'].First then
Repeat
@@ -10473,14 +11547,15 @@
ColCName := XT.Node['/form/settype3/'+ColEName+'/'].Attributes['coldesc'];
ColCName := Copy(ColCName,1,length(ColCName)-6);
Site := XT.Node['/form/settype3/'+ColEName+'/'].Attributes['colxy'];
- if SiteRec= '' then //�O����m
+ if SiteRec= '' then //記錄位置
SiteRec := Site
else
SiteRec := SiteRec+'@'+Site;
Pixel := XT.Node['/form/settype3/'+ColEName+'/'].Attributes['pixel'];
+Display1.Lines.Add(ColEName+' '+ColCName+' 圖像實際點數='+IntToStr(GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt))+' 設定點數='+IntToStr( (Pixel + SafePixel)));
if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
begin
- ////����g////
+ ////有填寫////
if XT.SubNodes['/form/settype3/'+ColEName+'/'].First then
Repeat
@@ -10496,6 +11571,11 @@
RelaFormName := FormCode2FormName(CaseID,RelaFormCode);
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 抓相關然欄位所在圖檔的定位
OMROK := False;
//OMROK := False;
//if RelaXT.SubNodes['/form/settype2/'].First then
@@ -10510,32 +11590,33 @@
begin
RelaPixel := Strtoint(RelaXT.Node['/form/settype2/'+RelaColEName+'/'+nodename+'/'].Attributes['pixel']);
RelaSite := RelaXT.Node['/form/settype2/'+RelaColEName+'/'+nodename+'/'].Attributes['colxy'];
- if RelaSiteRec= '' then //�O����m
+ if RelaSiteRec= '' then //記錄位置
RelaSiteRec := RelaSite
else
RelaSiteRec := RelaSiteRec+'@'+RelaSite;
if FileExists(ImageSavePath+CaseID+'\upload\'+RelaFile) then
begin
+Display1.Lines.Add(ColEName+' '+ColCName+' 圖像實際點數='+IntToStr(GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt))+' 設定點數='+IntToStr( (Pixel + SafePixel)));
if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+RelaFile,RelaSite,Bt) > (RelaPixel + SafePixel) then
begin
OMROK := True;
Break;
end;
+ ///依十字定位點縮放////
+ ImageReSize_FormID(CaseID,OMRFile); //20170815 重新抓定位
+ ////依十字定位點縮放////
end;
end;
- //Else
- //begin
- //ColCName := XT['/form/settype1/'+ColEName+'/'+nodename+'/'];
- //end;
+
Until not RelaXT.SubNodes['/form/settype2/'+RelaColEName+'/'].Next;
if not OMROk then
begin
if not FileExists(ImageSavePath+CaseID+'\upload\'+RelaFile) then
- ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName])+'('+_msg('����')+RelaFormName+')' //XX����g��,XX��쥼��g
+ ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName])+'('+_msg('未附')+RelaFormName+')' //XX欄位填寫時,XX欄位未填寫
Else if NoSite then
- ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName])+'('+_msg('���w��')+')'
+ ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName])+'('+_msg('未定位')+')'
Else
- ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName]); //XX����g��,XX��쥼��g
+ ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName]); //XX欄位填寫時,XX欄位未填寫
OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,ImageSavePath+CaseID+'\upload\'+RelaFile,RelaSiteRec,Anchor,Anchor1,False,OMRErrInfo[7].Ignore,OMRErrInfo[7].Display);
if OMRErrInfo[7].Display then
CaseOk := false;
@@ -10547,10 +11628,10 @@
end;
Until not XT.SubNodes['/form/settype3/'].Next ;
end;
- //*******���Ȭ���������]�n����*******
+ //*******有值相關文件的欄位也要有值*******
- //*******���Ȭ��������줣���*******
- if ModeNeedCheck(OMRErrInfo[11].Mode,FMode) then //�O�_�n�ˮ�
+ //*******有值相關文件的欄位不能有值*******
+ if ModeNeedCheck(OMRErrInfo[11].Mode,FMode) then //是否要檢核
begin
if XT.SubNodes['/form/settype8/'].First then
Repeat
@@ -10561,15 +11642,16 @@
ColCName := XT.Node['/form/settype8/'+ColEName+'/'].Attributes['coldesc'];
ColCName := Copy(ColCName,1,length(ColCName)-6);
Site := XT.Node['/form/settype8/'+ColEName+'/'].Attributes['colxy'];
- if SiteRec= '' then //�O����m
+ if SiteRec= '' then //記錄位置
SiteRec := Site
else
SiteRec := SiteRec+'@'+Site;
Pixel := XT.Node['/form/settype8/'+ColEName+'/'].Attributes['pixel'];
+Display1.Lines.Add(ColEName+' '+ColCName+' 圖像實際點數='+IntToStr(GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt))+' 設定點數='+IntToStr( (Pixel + SafePixel)));
if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
begin
- ////����g// //
+ ////有填寫// //
inc(OMROkCount);
end;
if XT.SubNodes['/form/settype8/'+ColEName+'/'].First then
@@ -10586,6 +11668,10 @@
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 抓相關然欄位所在圖檔的定位
OMROK := False;
//OMROK := False;
//if RelaXT.SubNodes['/form/settype2/'].First then
@@ -10600,18 +11686,22 @@
begin
RelaPixel := Strtoint(RelaXT.Node['/form/settype2/'+RelaColEName+'/'+nodename+'/'].Attributes['pixel']);
RelaSite := RelaXT.Node['/form/settype2/'+RelaColEName+'/'+nodename+'/'].Attributes['colxy'];
- if RelaSiteRec= '' then //�O����m
+ if RelaSiteRec= '' then //記錄位置
RelaSiteRec := RelaSite
else
RelaSiteRec := RelaSiteRec+'@'+RelaSite;
if FileExists(ImageSavePath+CaseID+'\upload\'+RelaFile) then
begin
+Display1.Lines.Add(ColEName+' '+ColCName+' 圖像實際點數='+IntToStr(GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt))+' 設定點數='+IntToStr( (Pixel + SafePixel)));
if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+RelaFile,RelaSite,Bt) > (RelaPixel + SafePixel) then
begin
inc(OMROkCount);
//OMROK := True;
//Break;
end;
+ ///依十字定位點縮放////
+ ImageReSize_FormID(CaseID,OMRFile);
+ ////依十字定位點縮放////
end;
end;
//Else
@@ -10622,11 +11712,11 @@
if OMROkCount > 1 then
begin
if not FileExists(ImageSavePath+CaseID+'\upload\'+RelaFile) then
- ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName])+'('+_msg('����')+RelaFormName+')' //XX����g��,XX���]��g
+ ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName])+'('+_msg('未附')+RelaFormName+')' //XX欄位填寫時,XX欄位也填寫
Else if NoSite then
- ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName])+'('+_msg('���w��')+')'
+ ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName])+'('+_msg('未定位')+')'
Else
- ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName]); //XX����g��,XX���]��g
+ ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName]); //XX欄位填寫時,XX欄位也填寫
OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,ImageSavePath+CaseID+'\upload\'+RelaFile,RelaSiteRec,Anchor,Anchor1,False,OMRErrInfo[7].Ignore,OMRErrInfo[7].Display);
if OMRErrInfo[11].Display then
CaseOk := false;
@@ -10637,12 +11727,12 @@
Until not XT.SubNodes['/form/settype8/'+ColEName+'/'].Next;
Until not XT.SubNodes['/form/settype8/'].Next ;
end;
- //*******���Ȭ��������줣���*******
+ //*******有值相關文件的欄位不能有值*******
- //*******���Ȭ̤ۨ��*******
- if ModeNeedCheck(OMRErrInfo[5].Mode,FMode) then //�O�_�n�ˮ�
+ //*******有值相依文件*******
+ if ModeNeedCheck(OMRErrInfo[5].Mode,FMode) then //是否要檢核
begin
if XT.SubNodes['/form/settype4/'].First then
Repeat
@@ -10652,14 +11742,16 @@
ColCName := XT.Node['/form/settype4/'+ColEName+'/'].Attributes['coldesc'];
ColCName := Copy(ColCName,1,length(ColCName)-6);
Site := XT.Node['/form/settype4/'+ColEName+'/'].Attributes['colxy'];
- if SiteRec= '' then //�O����m
+ if SiteRec= '' then //記錄位置
SiteRec := Site
else
SiteRec := SiteRec+'@'+Site;
Pixel := XT.Node['/form/settype4/'+ColEName+'/'].Attributes['pixel'];
+ Display1.Lines.Add(ColEName+' '+ColCName+' 圖像實際點數='+IntToStr(GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt))+' 設定點數='+IntToStr( (Pixel + SafePixel)));
+
if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
begin
- ////����g////
+ ////有填寫////
if XT.SubNodes['/form/settype4/'+ColEName+'/'].First then
Repeat
nodename := XT.SubNodes['/form/settype4/'+ColEName+'/'].NodeName;
@@ -10673,7 +11765,7 @@
RelaDocName := XT.Node['/form/settype4/'+ColEName+'/'+nodename+'/'].Attributes['relaformname'];
if RelaFile='' then
begin
- ErrStr:=Format(OMRErrInfo[5].Info,[ColCName,RelaDocName]); //XX���XX����g��,�ݪ�XX���
+ ErrStr:=Format(OMRErrInfo[5].Info,[ColCName,RelaDocName]); //XX文件XX欄位填寫時,需附XX文件
OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,'','',Anchor,Anchor1,False,OMRErrInfo[5].Ignore,OMRErrInfo[5].Display);
if OMRErrInfo[5].Display then
CaseOk := false;
@@ -10683,10 +11775,10 @@
end;
Until not XT.SubNodes['/form/settype4/'].Next ;
end;
- //*******���Ȭ̤ۨ��*******
+ //*******有值相依文件*******
- //*******���Ȥ������*******
- if ModeNeedCheck(OMRErrInfo[6].Mode,FMode) then //�O�_�n�ˮ�
+ //*******有值互斥文件*******
+ if ModeNeedCheck(OMRErrInfo[6].Mode,FMode) then //是否要檢核
begin
if XT.SubNodes['/form/settype5/'].First then
Repeat
@@ -10696,14 +11788,16 @@
ColCName := XT.Node['/form/settype5/'+ColEName+'/'].Attributes['coldesc'];
ColCName := Copy(ColCName,1,length(ColCName)-6);
Site := XT.Node['/form/settype5/'+ColEName+'/'].Attributes['colxy'];
- if SiteRec= '' then //�O����m
+ if SiteRec= '' then //記錄位置
SiteRec := Site
else
SiteRec := SiteRec+'@'+Site;
Pixel := XT.Node['/form/settype5/'+ColEName+'/'].Attributes['pixel'];
+ Display1.Lines.Add(ColEName+' '+ColCName+' 圖像實際點數='+IntToStr(GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt))+' 設定點數='+IntToStr( (Pixel + SafePixel)));
+
if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
begin
- ////����g////
+ ////有填寫////
if XT.SubNodes['/form/settype5/'+ColEName+'/'].First then
Repeat
nodename := XT.SubNodes['/form/settype5/'+ColEName+'/'].NodeName;
@@ -10715,9 +11809,9 @@
RelaDocNo := XT.Node['/form/settype5/'+ColEName+'/'+nodename+'/'].Attributes['relaformid'];
RelaFile := DocNo2FileName(RelaDocNo,ContextList);
RelaDocName := XT.Node['/form/settype5/'+ColEName+'/'+nodename+'/'].Attributes['relaformname'];
- if RelaFile<>'' then //���� 20130604�ݨ�(='')�諸(����)
+ if RelaFile<>'' then //有附 20130604看到(='')改的(未測)
begin
- ErrStr:=Format(OMRErrInfo[6].Info,[ColCName,RelaDocName]); //XX���XX����g��,�����XX���
+ ErrStr:=Format(OMRErrInfo[6].Info,[ColCName,RelaDocName]); //XX文件XX欄位填寫時,不能附XX文件
OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,'','',Anchor,Anchor1,False,OMRErrInfo[6].Ignore,OMRErrInfo[6].Display);
if OMRErrInfo[6].Display then
CaseOk := false;
@@ -10727,10 +11821,10 @@
end;
Until not XT.SubNodes['/form/settype5/'].Next ;
end;
- //*******���Ȥ������*******
+ //*******有值互斥文件*******
- //*******���ȼg�Ƶ�*******
- if ModeNeedCheck(OMRErrInfo[8].Mode,FMode) then //�O�_�n�ˮ�
+ //*******有值寫備註*******
+ if ModeNeedCheck(OMRErrInfo[8].Mode,FMode) then //是否要檢核
begin
if XT.SubNodes['/form/settype6/'].First then
Repeat
@@ -10741,16 +11835,19 @@
Site := XT.Node['/form/settype6/'+ColEName+'/'].Attributes['colxy'];
Pixel := XT.Node['/form/settype6/'+ColEName+'/'].Attributes['pixel'];
- if SiteRec= '' then //�O����m
+ if SiteRec= '' then //記錄位置
SiteRec := Site
else
SiteRec := SiteRec+'@'+Site;
+
+ Display1.Lines.Add(ColEName+' '+ColCName+' 圖像實際點數='+IntToStr(GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt))+' 設定點數='+IntToStr( (Pixel + SafePixel)));
+
if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
begin
- ////����g////
+ ////有填寫////
if not FileExists(ImageSavePath+CaseID+'ScanMemo.dat') then
begin
- ErrStr:=Format(OMRErrInfo[8].Info,[ColCName]); //XX���XX����g��,�ݼg�Ƶ�
+ ErrStr:=Format(OMRErrInfo[8].Info,[ColCName]); //XX文件XX欄位填寫時,需寫備註
OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,'','',Anchor,Anchor1,False,OMRErrInfo[8].Ignore,OMRErrInfo[8].Display);
if OMRErrInfo[8].Display then
CaseOk := false;
@@ -10758,13 +11855,13 @@
end;
Until not XT.SubNodes['/form/settype6/'].Next ;
end;
- //*******���ȼg�Ƶ�*******
+ //*******有值寫備註*******
- //*******OMR�a��********
+ //*******OMR帶值********
if XT.SubNodes['/form/settype7/'].First then
Repeat
ColEName := XT.SubNodes['/form/settype7/'].NodeName;
- ValueXT['/content/'+ColEName+'/@savevalue'] := ''; //�����w�]�ť�
+ ValueXT['/content/'+ColEName+'/@savevalue'] := ''; //先給預設空白
if XT.SubNodes['/form/settype7/'+ColEName+'/'].First then
Repeat
nodename := XT.SubNodes['/form/settype7/'+ColEName+'/'].NodeName;
@@ -10774,17 +11871,19 @@
Site := XT.Node['/form/settype7/'+ColEName+'/'+nodename+'/'].Attributes['colxy'];
OMRValue := XT.Node['/form/settype7/'+ColEName+'/'+nodename+'/'].Attributes['getvalue'];
- //����Nok
+ //有填就ok
+ Display1.Lines.Add(ColEName+' '+ColCName+' 圖像實際點數='+IntToStr(GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt))+' 設定點數='+IntToStr( (Pixel + SafePixel)));
+
if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
begin
- ValueXT['/content/'+ColEName+'/@savevalue'] := OMRValue; //����N�����]�w����
+ ValueXT['/content/'+ColEName+'/@savevalue'] := OMRValue; //有填就換成設定的值
Break;
end;
end;
Until not XT.SubNodes['/form/settype7/'+ColEName+'/'].Next;
Until not XT.SubNodes['/form/settype7/'].Next ;
- //*******OMR�a��********
+ //*******OMR帶值********
//end;
Finally
if (OMRValue <> '') then
@@ -10801,7 +11900,7 @@
Result := CaseOk;
end;
-Procedure TCB_IMGPSScanX.OMRErr2ini(CaseID,Reason,FileName,Site,RelaFileName,RelaSite,Anchor,Anchor1:String;Del,Ingnore,Display:Boolean); //OMR�ˮ֥��Ѽg�Jini
+Procedure TCB_IMGPSScanX.OMRErr2ini(CaseID,Reason,FileName,Site,RelaFileName,RelaSite,Anchor,Anchor1:String;Del,Ingnore,Display:Boolean); //OMR檢核失敗寫入ini
var
ini : Tinifile;
Errcount : Integer;
@@ -10811,7 +11910,7 @@
begin
ini := Tinifile.Create(ImageSavePath + CaseID+'\upload\Checkerr.ini');
try
- Errcount := ini.ReadInteger('OMRCount','Count',0); //�z�LErrcount�ӹ���
+ Errcount := ini.ReadInteger('OMRCount','Count',0); //透過Errcount來對應
inc(ErrCount);
ini.WriteString(inttostr(ErrCount),'Reason',Reason);
ini.WriteBool(inttostr(ErrCount),'Ingnore',Ingnore);
@@ -10841,7 +11940,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.OMRErrini2List(CaseID:String;ErrlistForm:TErrlistForm); //OMR�ˮ֥��ѱqini�g�JListView
+Procedure TCB_IMGPSScanX.OMRErrini2List(CaseID:String;ErrlistForm:TErrlistForm); //OMR檢核失敗從ini寫入ListView
var
ini : Tinifile;
Errcount : Integer;
@@ -10854,7 +11953,7 @@
for i := 1 to ErrCount do
begin
- Del := ini.ReadBool(inttostr(i),'Del',False); //�O�_�Q�����F
+ Del := ini.ReadBool(inttostr(i),'Del',False); //是否被移除了
if Not Del then
begin
With ErrlistForm.ErrListLV.Items.Add do
@@ -10871,32 +11970,32 @@
end;
end;
-Function TCB_IMGPSScanX.DownLanguage:Boolean; //�U���h��y����
+Function TCB_IMGPSScanX.DownLanguage:Boolean; //下載多國語言檔
begin
Result := True; // http://192.168.0.101:8080/fbnp/servlet/CWC01?act=getservertime
//dnFile(HTTPSClient,FUrl+'Language.Lng','','',LngPath+'Language.Lng',FReWrite.Text,Memo1,False,DownImgStatus)
If not dnFile_Get(HTTPSClient,FUrl+'Language.Lng','','',LngPath+'Language.Lng',FReWrite,Memo1,False,'') Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
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
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
end;
-procedure TCB_IMGPSScanX.view_image_FormCode(Path,FormCode:String;stpage,stview:integer); //��FormCode�ӧ�v��
+procedure TCB_IMGPSScanX.view_image_FormCode(Path,FormCode:String;stpage,stview:integer); //用FormCode來找影像
var i,p:integer;
ISB : TImageScrollBox;
lb : TLabel;
@@ -10905,10 +12004,10 @@
List_FormCode,Err_FormCode: String;
iFormID : String;
begin
- ShowText := '�v����ܤ�,�еy��';
+ ShowText := '影像顯示中,請稍候';
DataLoading(True,True);
- IF FormCode = 'ShowAll' then //��ܩҦ����v�� (�]������|�ǪŦr��,�ҥH��ShowAll)
+ IF FormCode = 'ShowAll' then //顯示所有的影像 (因為附件會傳空字串,所以用ShowAll)
begin
ClearView(1);
CreatePreViewISB(ContextList.Count);
@@ -10930,7 +12029,7 @@
List_FormCode := FileName2FormCode(ContextList.Strings[i]);
lb := TLabel(FindComponent('lb'+intToStr(stview)));
- lb.Caption := Format(_Msg('��%s��'),[Add_Zoo(i+1,3)]);
+ lb.Caption := Format(_Msg('第%s頁'),[Add_Zoo(i+1,3)]);
If List_FormCode = '' Then
lb.Caption := lb.Caption+'('+FormCode2FormName(List_FormCode)+')'
Else
@@ -10946,7 +12045,7 @@
end;
FitPreViewISB;
end
- Else //��ܫ��wFormCode���v��
+ Else //顯示指定FormCode的影像
begin
If (TreeView1.Selected <> nil) Then
begin
@@ -10990,7 +12089,7 @@
//MPSViewX.ImageZoomMode := zmFullpage;
//MPSViewX.AntiAliased := True;
lb := TLabel(FindComponent('lb'+intToStr(stview)));
- lb.Caption := Format(_Msg('��%s��'),[Add_Zoo(i+1,3)]);
+ lb.Caption := Format(_Msg('第%s頁'),[Add_Zoo(i+1,3)]);
If List_FormCode = '' Then
lb.Caption := lb.Caption+'('+FormCode2FormName(NowCaseno,List_FormCode)+')'
Else
@@ -11012,18 +12111,21 @@
DataLoading(False,False);
end;
-procedure TCB_IMGPSScanX.view_image_DocNo(Path,DocNo,FormID:String;Pages:integer); //��DocNo�ӧ�v��
+procedure TCB_IMGPSScanX.view_image_DocNo(Path,DocNo,FormID:String;Pages:integer); //用DocNo來找影像
var i,n,p:integer;
ISB : TImageScrollBox;
lb : TLabel;
v ,v1 : Integer;
List_DocNo,Trans_DocNo,List_FormCode,Form_Page: String;
iDocNo : String;
- iGroupNo,page,Ct : Integer;
+ iGroupNo,page,Ct,int1 : Integer;
+ ST1:TStringList;
begin
- ShowText := '�v����ܤ�,�еy��';
+ ShowText := '影像顯示中,請稍候';
DataLoading(True,True);
- IF DocNo = 'ShowAll' then //��ܩҦ����v�� (�]������|�ǪŦr��,�ҥH��ShowAll)
+ST1:=TStringList.Create;
+//Display1.Lines.Clear;
+ IF DocNo = 'ShowAll' then //顯示所有的影像 (因為附件會傳空字串,所以用ShowAll)
begin
ClearView(1);
if GetCasePage(ImageSavePath,NowCaseno) > 30 then
@@ -11032,29 +12134,57 @@
Exit;
end;
CreatePreViewISB(GetCasePage(ImageSavePath,NowCaseno));
- //Showmessage(inttostr(GetCasePage(ImageSavePath,NowCaseno)));
+//Showmessage(inttostr(GetCasePage(ImageSavePath,NowCaseno)));
Ct := 0;
For i := 0 to CaseDocNoList.Count-1 do
begin
- {iDocno := DocNoDir2DocNo(CaseDocNoList.Strings[i]);
- if (((FIs_In_Wh = 'Y') and (not DocNoIs_In_WH(iDocNo))) or //�J�w���y���ݫD�J�w���
- ((FIs_In_Wh = 'N') and (DocNoIs_In_WH(iDocNo)))) and
- ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then //�D�J�w���y���ݤJ�w���
+
+ if (FWH_category='N') and (FIs_In_Wh='Y') then
begin
- Continue;
- end; }
+ if FileExists(ImageSavePath+NowCaseno+'\EditedDocDir.dat') then
+ begin
+ ST1.LoadFromFile(ImageSavePath+NowCaseno+'\EditedDocDir.dat');
+ end;
+ end;
iDocNo := CaseDocNoList.Strings[i];
- if not DocNoAppear(DocNoDir2DocNo(iDocNo)) then continue;
-
+//ShowMessage('ST1.Count='+IntToStr(ST1.Count));
+ if ST1.Count<>0 then
+ begin
+ if ST1.IndexOf(iDocNo)<>-1 then
+ begin
+ end
+ else
+ begin
+ if not DocNoAppear(DocNoDir2DocNo(iDocNo)) then continue; //20170817 這不能被註解
+ end;
+ end
+ else
+ begin
+ if not DocNoAppear(DocNoDir2DocNo(iDocNo)) then continue; //20170817 這不能被註解
+ end;
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') and (FIs_In_Wh='Y') then
+ begin
+ if ISExistImg(Path+iDocNo+'\'+ContextList.Strings[n]) then
+ begin
+
+ if not DocNoIs_In_WH(Copy(iDocNo,1,8)) then
+ begin
+ Continue;
+ end;
+ end;
+ end;
+
inc(Ct);
ISB := TImageScrollBox(FindComponent(ISBName+intToStr(Ct)));
- ISB.AntiAliased := False;
+ ISB.AntiAliased := True;
if ISB.ZoomPercent > 100 then
ISB.AntiAliased := False;
ISB.LoadFromFile(Path+iDocNo+'\'+ContextList.Strings[n],1);
@@ -11063,6 +12193,7 @@
ISB.Redraw(true);
end;
+
end;
//if DirectoryExists(Path+'Attach') then
if DirectoryExists(Path+AttName) then
@@ -11082,18 +12213,38 @@
ISB.LoadFromFile(Path+iDocNo+'\'+ContextList.Strings[n],1);
end;
end;
+
FitPreViewISB;
+
end
- Else if (DocNo <> '') and (FormID = '') then //��ܫ��wDocNo+�էO���v�� ����� Attach
- begin
+ Else if (DocNo <> '') and (FormID = '') then //顯示指定DocNo+組別的影像 附件傳 Attach
+ begin //顯示 文件層下的影像
iDocNo := DocNo;
ContextList.Clear;
if FileExists(Path+iDocNo+'\Context.dat') then
ContextList.LoadFromFile(Path+iDocNo+'\Context.dat');
+
+//ShowMessage('ContextList.Count='+IntToStr(ContextList.Count));
CreatePreViewISB(ContextList.Count);
+//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
- ISB := TImageScrollBox(FindComponent(ISBName+intToStr(i+1)));
+ if (FWH_category='N') and (FIs_In_Wh='Y') then
+ begin
+ if ISExistImg(Path+iDocNo+'\'+ContextList.Strings[i]) then
+ begin
+
+ 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
ISB.AntiAliased := False;
@@ -11103,7 +12254,7 @@
end;
FitPreViewISB;
end
- Else if (FormID <> '') {and (FormID <> 'Attach')} then //��ܫ��wFormID���v��
+ Else if (FormID <> '') {and (FormID <> 'Attach')} then //顯示指定FormID的影像
begin
If (TreeView1.Selected <> nil) Then
begin
@@ -11115,65 +12266,47 @@
page := 0;
Ct := 0;
CreatePreViewISB(Pages);
+//ShowMessage('formID page'+IntToStr(Pages)+', ContextList='+ContextList.Text);
For i := 0 to ContextList.Count -1 do
begin
if FileName2FormCode(ContextList.Strings[i]) = FormID then
begin
+ 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
+ if not DocNoIs_In_WH(FormCode2DocNo(FormID)) then
+ Continue;
+ end;
+ end;
inc(Ct);
ISB := TImageScrollBox(FindComponent(ISBName+intToStr(Ct)));
+//ShowMessage(ISB.Name);
ISB.AntiAliased := True;
if ISB.ZoomPercent > 100 then
ISB.AntiAliased := False;
ISB.LoadFromFile(Path+iDocNo+'\'+ContextList.Strings[i],1);
DpiResize(ISB.Graphic,36);
ISB.Redraw(true);
+
//NowShowFileList.Add(ContextList.Strings[i]);
end;
end;
FitPreViewISB;
end;
end;
- {Else if (DocNo = 'Attach') and (FormID = 'Attach') then //����� Attach
- begin
- If (TreeView1.Selected <> nil) Then
- begin
- iGroupNo := 0;
- page := 0;
- CreatePreViewISB(Pages);
- For i := 0 to ContextList.Count -1 do
- begin
- List_FormCode := FileName2FormCode(ContextList.Strings[i]);
- Form_Page := FormCode2Page(List_FormCode);
- List_DocNo := FormCode2DocNo(List_FormCode);
- Trans_DocNo := Context_DocnoList.Strings[i];
- if (Trans_DocNo = DocNo) then
- begin
- if List_FormCode = FormID then
- begin
- inc(Page);
- if Page = GroupNo+1 then
- begin
- ISB := TImageScrollBox(FindComponent(ISBName+intToStr(1)));
- ISB.AntiAliased := True;
-
- if ISB.ZoomPercent > 100 then
- ISB.AntiAliased := False;
- ISB.LoadFromFile(Path+ContextList.Strings[i],1);
- NowShowFileList.Add(ContextList.Strings[i]);
- end;
- end;
- end;
- end;
- FitPreViewISB;
- end;
- end;}
+
if FindComponent(ISBName+'1') <> nil then
+ begin
ISBClick(TImageScrollBox(FindComponent(ISBName+'1')));
+ end;
ISB1Click(ISB1);
DataLoading(False,False);
end;
-Function TCB_IMGPSScanX.ShapeName2PreViewISBName(SP:TShape):String; //��X���wPreViewISBName
+Function TCB_IMGPSScanX.ShapeName2PreViewISBName(SP:TShape):String; //轉出指定PreViewISBName
begin
Result := ISBName+Copy(SP.Name,3,length(SP.Name)-2);
end;
@@ -11285,6 +12418,7 @@
ISB : TImageScrollBox;
Panel : TPanel;
i,W,H : Integer;
+ myDate : TDateTime;
begin
FreePreViewISB;
ScrollBox1.HorzScrollBar.Visible := False;
@@ -11292,32 +12426,38 @@
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;
@@ -11326,25 +12466,29 @@
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;
@@ -11385,7 +12529,7 @@
end;
-Procedure TCB_IMGPSScanX.PaintShape(FromImg,ToImg:TImageScrollBox); //�e���Q������v��
+Procedure TCB_IMGPSScanX.PaintShape(FromImg,ToImg:TImageScrollBox); //畫有被選取的影像
var
i,F_No,T_No : Integer;
SP : TShape;
@@ -11395,7 +12539,7 @@
Result := strtoint(Copy(iISB.Name,length(ISBName)+1,length(iISB.Name)-length(ISBName))); //'PreViewISB'
end;
begin
- IF ToImg = nil Then //�u�e��@��
+ IF ToImg = nil Then //只畫單一個
begin
ISB := TImageScrollBox(FindComponent(ISBName+inttostr(GetImgNo(FromImg))));
if TShape(FindComponent('SP'+inttostr(GetImgNo(FromImg)))) = nil then
@@ -11445,7 +12589,7 @@
var
i : Integer;
begin
- IF SelectISB = nil then //��Free;
+ IF SelectISB = nil then //全Free;
begin
For i:= ComponentCount -1 downto 0 do
begin
@@ -11456,7 +12600,7 @@
end;
end;
end
- Else //�uFree���w��
+ Else //只Free指定的
begin
TShape(FindComponent('SP'+Copy(SelectISB.Name,length(ISBName)+1,length(SelectISB.Name)-length(ISBName)))).Free;
end;
@@ -11491,6 +12635,9 @@
ln := length(SelectISB.Name);
SelectPage := Strtoint(Copy(SelectISB.Name,v+1,ln-v));
ISB1.ZoomMode := zmFittoPage;
+//ShowMessage('SelectISB.FileName='+SelectISB.FileName);
+ //if SelectISB.FileName='' then exit;
+
ISB1.LoadFromFile(SelectISB.FileName,1);
if (ISB1.Graphic.ImageFormat <> ifBlackWhite) and (SmoothCB.Checked)then
Image_Smooth(ISB1.Graphic);
@@ -11654,7 +12801,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetCaseFormID(Path:String):String; //���ץDFormID
+Function TCB_IMGPSScanX.GetCaseFormID(Path:String):String; //取案件的主FormID
var i,n : Integer;
FileFormID : String;
begin
@@ -11663,6 +12810,11 @@
for I := 0 to ContextList.Count - 1 do
begin
FileFormID := FileName2FormCode(ContextList.Strings[i]);
+
+ if DivPageFormIDList.IndexOf(FileFormID)<>-1 then //20170509 跳過分案頁的formid
+ begin
+ Continue;
+ end;
if FindDivFormCode(FileFormID) then
begin
Result := FileFormID;
@@ -11671,7 +12823,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.CreateFormID_FormName(Path,CaseID:String); //����FormID_FormName.dat
+Procedure TCB_IMGPSScanX.CreateFormID_FormName(Path,CaseID:String); //產生FormID_FormName.dat
var i : Integer;
S : TStringlist;
FormID : String;
@@ -11691,7 +12843,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.CreateDocNo_DocName(Path,CaseID:String); //����DocNo_DocName.dat
+Procedure TCB_IMGPSScanX.CreateDocNo_DocName(Path,CaseID:String); //產生DocNo_DocName.dat
var
i : Integer;
S : TStringlist;
@@ -11703,7 +12855,7 @@
for i := 0 to CaseDocNoList.Count - 1 do
begin
Doc_Name := CaseDocNoList.Strings[i]+'_'+DocNo2DocName(CaseID,CaseDocNoList.Strings[i]);
- if not DocnoNeedGroup(CaseDocNoList.Strings[i]) Then //���Τ��ժ��[*��������
+ if not DocnoNeedGroup(CaseDocNoList.Strings[i]) Then //不用分組的加*號給智豪
Doc_Name := '*'+Doc_Name;
S.Add(Doc_Name);
end;
@@ -11713,7 +12865,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.CreateIn_WH(CaseID:String); //����In_WH.dat
+Procedure TCB_IMGPSScanX.CreateIn_WH(CaseID:String); //產生In_WH.dat
var
i,n : Integer;
DocDirList,In_WH_List : TStringlist;
@@ -11744,7 +12896,7 @@
end;
end;
-Function TCB_IMGPSScanX.CreateDocNo_Info(CaseID:String):String; //���� DocNo[tab]����[tab]�`����[tab]�O�_����[����]DocNo[tab]����[tab]�`����[tab]�O�_����
+Function TCB_IMGPSScanX.CreateDocNo_Info(CaseID:String):String; //產生 DocNo[tab]份數[tab]總頁數[tab]是否異動[換行]DocNo[tab]份數[tab]總頁數[tab]是否異動
var
i,n : Integer;
DocDirList,DocDir_CopiesList,FileList,C_DocNoList : TStringlist;
@@ -11760,13 +12912,18 @@
try
Str := '';
if Not FileExists(ImageSavePath+CaseID+'\CaseDocNo.dat') then Exit;
+
DocDirList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo.dat');
+
+ if DocDirList.Count =0 then exit;//20170222 新加
+
+
DocDir_CopiesList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo_Copies.dat');
while DocDirList.Count > 0 do
begin
iDocDir := DocDirList.Strings[0];
DocNo := DocNoDir2DocNo(iDocDir);
- if Copy(iDocDir,1,5) <> 'ZZZZZ' then //�����۩w���
+ if Copy(iDocDir,1,5) <> 'ZZZZZ' then //不為自定文件
begin
//icopys := 1;
icopys := GetDocNoCount(CaseID,DocNo);
@@ -11823,7 +12980,7 @@
end; }
end;
-Function TCB_IMGPSScanX.CreateCustDocNo_Info(CaseID:String):String; //���ۭͦq��� DocName[tab]����[tab]�`����[tab]�O�_����[#13#10]DocName[tab]����[tab]�`����[tab]�O�_����
+Function TCB_IMGPSScanX.CreateCustDocNo_Info(CaseID:String):String; //產生自訂文件 DocName[tab]份數[tab]總頁數[tab]是否異動[#13#10]DocName[tab]份數[tab]總頁數[tab]是否異動
var
i,n : Integer;
DocDirList,FileList : TStringlist;
@@ -11838,11 +12995,12 @@
Str := '';
if Not FileExists(ImageSavePath+CaseID+'\CaseDocNo.dat') then Exit;
DocDirList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo.dat');
+//ShowMessage(DocDirList.Text);
while DocDirList.Count > 0 do
begin
iDocDir := DocDirList.Strings[0];
DocNo := DocNoDir2DocNo(iDocDir);
- if Copy(iDocDir,1,5) = 'ZZZZZ' then //�O�۩w���
+ if Copy(iDocDir,1,5) = 'ZZZZZ' then //是自定文件
begin
//icopys := 1;
DocName := GetCustomDocName(ImageSavePath+CaseID+'\',DocNo);
@@ -11875,7 +13033,7 @@
Result := Str;
end;
-Function TCB_IMGPSScanX.CreateDocnoFrom_Info(CaseID:String):String; //���ͳQ�i���O�U����T Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
+Function TCB_IMGPSScanX.CreateDocnoFrom_Info(CaseID:String):String; //產生被引進的保管袋文件資訊 Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
var
i,n : Integer;
DocDirList,DocDir_CopiesList,FileList : TStringlist;
@@ -11892,12 +13050,16 @@
Str := '';
if Not FileExists(ImageSavePath+CaseID+'\CaseDocNo.dat') then Exit;
DocDirList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo.dat');
+
+ if DocDirList.Count=0 then exit;//20170222 新加
+
+
DocDir_CopiesList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo_Copies.dat');
while DocDirList.Count > 0 do
begin
iDocDir := DocDirList.Strings[0];
DocNo := DocNoDir2DocNo(iDocDir);
- if (Copy(iDocDir,1,5) <> 'ZZZZZ') then //�����۩w���
+ if (Copy(iDocDir,1,5) <> 'ZZZZZ') then //不為自定文件
begin
//icopys := 1;
//icopys := GetDocNoCount(CaseID,DocNo);
@@ -11936,7 +13098,7 @@
Result := Str;
end;
-Function TCB_IMGPSScanX.CreateCustDocNoFrom_Info(CaseID:String):String; //���ͳQ�i���۩w����T Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
+Function TCB_IMGPSScanX.CreateCustDocNoFrom_Info(CaseID:String):String; //產生被引進的自定文件資訊 Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
var
i,n : Integer;
DocDirList,FileList : TStringlist;
@@ -11956,7 +13118,7 @@
begin
iDocDir := DocDirList.Strings[0];
DocNo := DocNoDir2DocNo(iDocDir);
- if Copy(iDocDir,1,5) = 'ZZZZZ' then //�O�۩w���
+ if Copy(iDocDir,1,5) = 'ZZZZZ' then //是自定文件
begin
//icopys := 1;
//icopys := GetDocNoCount(CaseID,DocNo);
@@ -11994,14 +13156,14 @@
Result := Str;
end;
-Function TCB_IMGPSScanX.CreateAttach_Info(CaseID:String):String; //���ͬO�_��Attach Y:�� N:�S��
+Function TCB_IMGPSScanX.CreateAttach_Info(CaseID:String):String; //產生是否有Attach Y:有 N:沒有
begin
Result := 'N';
if GetDocDir_Page(CaseID,AttName) > 0 Then
Result := 'Y';
end;
-Function TCB_IMGPSScanX.GetDocNoEdit(CaseID,DocNo,DocName:String):String; //���XDocNo�O�_�Q���� (Y/N)
+Function TCB_IMGPSScanX.GetDocNoEdit(CaseID,DocNo,DocName:String):String; //取出DocNo是否被異動 (Y/N)
var
i : Integer;
EditedDocDirList : TStringlist;
@@ -12041,7 +13203,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetDocNo_Count(Path,DocNo:String):Integer; //���X������
+Function TCB_IMGPSScanX.GetDocNo_Count(Path,DocNo:String):Integer; //取出文件份數
var
i : Integer;
iCopys : integer;
@@ -12081,7 +13243,7 @@
end;
end;
-Function TCB_IMGPSScanX.GetDocNo_Page(Path,DocNo:String):Integer; //���X����`����
+Function TCB_IMGPSScanX.GetDocNo_Page(Path,DocNo:String):Integer; //取出文件總頁數
var
i : Integer;
ipages : integer;
@@ -12108,21 +13270,21 @@
end;
end;
-Function TCB_IMGPSScanX.FormIDExists(FormCode:String;CheckDate:Boolean;index:Integer):Boolean; //�ˬdFormID�O�_�s�b
+Function TCB_IMGPSScanX.FormIDExists(FormCode:String;CheckDate:Boolean;index:Integer):Boolean; //檢查FormID是否存在
var
STDate,SPDate : String;
Docno,Version : String;
begin
Result := False;
- If FormCode = '' then //�����ˬd
+ If FormCode = '' then //附件不檢查
begin
Result := True;
Exit;
end;
- if CheckDate then //�n�ˬd���
+ if CheckDate then //要檢查日期
begin
- STDate := '00000000'; //�S�]�w
- SPDate := '99999999'; //�S�]�w
+ STDate := '00000000'; //沒設定
+ SPDate := '99999999'; //沒設定
IF FindSQLData(FORM_INF_List,'T1.FORM_ID,T1.DOC_NO','T1.FORM_ID',FormCode,index,FindResult) then
begin
@@ -12133,8 +13295,8 @@
Result := True;
STDate := GetFindResult('START_DATE');
SPDate := GetFindResult('STOP_DATE');
- if STDate = '' then STDate := '00000000'; //�S�]�w
- if SPDate = '' then SPDate := '99999999'; //�S�]�w
+ if STDate = '' then STDate := '00000000'; //沒設定
+ if SPDate = '' then SPDate := '99999999'; //沒設定
if (ServerDate < STDate) or (ServerDate > SPDate) then
Result := False;
end;
@@ -12146,7 +13308,7 @@
end;
end;
-Function TCB_IMGPSScanX.Case_DocNoExists(CaseID,Docno:String):Boolean; //Docno�O�_�s�b�ץ��
+Function TCB_IMGPSScanX.Case_DocNoExists(CaseID,Docno:String):Boolean; //Docno是否存在案件裡
var
i : Integer;
S : TStringlist;
@@ -12176,7 +13338,7 @@
TwainShowUI := CB1.Checked;
end;
-Procedure TCB_IMGPSScanX.ReSortFileName(Path:String); //�ɦW���s�Ƨ�
+Procedure TCB_IMGPSScanX.ReSortFileName(Path:String); //檔名重新排序
var
i : Integer;
OldName,NewName : String;
@@ -12192,6 +13354,7 @@
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;
@@ -12203,7 +13366,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.ReSortFileName_New(Path:String); //�ɦW���s�Ƨ�
+Procedure TCB_IMGPSScanX.ReSortFileName_New(Path:String); //檔名重新排序
var
i : Integer;
OldName,NewName : String;
@@ -12230,7 +13393,7 @@
end;
end;
-Procedure TCB_IMGPSScanX.ReSortFileName2Scanlist(Path:String); //�ɦW���s�Ƨǵ�Scanlist.dat
+Procedure TCB_IMGPSScanX.ReSortFileName2Scanlist(Path:String); //檔名重新排序給Scanlist.dat
var
i : Integer;
OldName,NewName : String;
@@ -12255,7 +13418,7 @@
end;
-Function TCB_IMGPSScanX.GetOMRCheckSet : Boolean; //�U��OMR�ˮ�XML��
+Function TCB_IMGPSScanX.GetOMRCheckSet : Boolean; //下載OMR檢核XML檔
var
SendData : String;
LastDateTime : String;
@@ -12277,11 +13440,11 @@
SendData := 'settype=3&lastupdate='+LastDateTime;
if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC01/settings',SendData,CheckXmlPath+'OMRSet.zip',FReWrite,Memo1,False,DownImgStatus) then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
end;
- if FileExists(CheckXmlPath+'OMRSet.zip') then //����s
+ if FileExists(CheckXmlPath+'OMRSet.zip') then //有更新
begin
ExecuteUnZip(CheckXmlPath+'OMRSet.zip',CheckXmlPath,False);
S.Clear;
@@ -12290,19 +13453,19 @@
end
Else
begin
- if (Memo1.Lines.Strings[0] = 'nodata') Then //�S��s
+ if (Memo1.Lines.Strings[0] = 'nodata') Then //沒更新
begin
Result := True;
end
Else 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
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
@@ -12314,7 +13477,7 @@
end;
-Function TCB_IMGPSScanX.GetKeyinSet : Boolean; //���n���]�w
+Function TCB_IMGPSScanX.GetKeyinSet : Boolean; //取登打設定
var
SendData : String;
LastDateTime : String;
@@ -12335,11 +13498,11 @@
SendData := 'settype=2&lastupdate='+LastDateTime;
if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC01/settings',SendData,SitePath+'KeyinSet.zip',FReWrite,Memo1,False,DownImgStatus) then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
end;
- if FileExists(SitePath+'KeyinSet.zip') then //����s
+ if FileExists(SitePath+'KeyinSet.zip') then //有更新
begin
ExecuteUnZip(SitePath+'KeyinSet.zip',SitePath,False);
S.Clear;
@@ -12348,19 +13511,19 @@
end
Else
begin
- if (Memo1.Lines.Strings[0] = 'nodata') Then //�S��s
+ if (Memo1.Lines.Strings[0] = 'nodata') Then //沒更新
begin
Result := True;
end
Else 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
begin
- HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+ HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
Result := False;
Exit;
end;
@@ -12377,20 +13540,23 @@
var
SendData : String;
begin
+//Memo1.Clear;
SendData := 'data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&case_no='+CaseID+'&work_no='+FWork_no;
- if (FMode = 'NSCAN') then
+ if (FMode = 'NSCAN') or (FMode = 'DSCAN') then
begin
+//ShowMessage('JJJJJ');
If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC05/isnew',SendData,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := -1;
Exit;
end;
end;
-
+//ShowMessage(SendData);
+//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
@@ -12398,7 +13564,7 @@
begin
if (memo1.Lines.Count < 2) then
begin
- HttpErrStr := _Msg('���~��]:')+'OCX:Index Count error';
+ HttpErrStr := _Msg('錯誤原因:')+'OCX:Index Count error';
Result := -1;
Exit;
end
@@ -12412,7 +13578,7 @@
Result := 1
Else
begin
- HttpErrStr := _Msg('���~��]:')+'OCX:Value error';
+ HttpErrStr := _Msg('錯誤原因:')+'OCX:Value error';
Result := -1;
Exit;
end;
@@ -12420,7 +13586,7 @@
end;
end;
-Function TCB_IMGPSScanX.CaseComplete(Path,CaseID:String;MainCase:Boolean):Boolean; //�q���ǰe����
+Function TCB_IMGPSScanX.CaseComplete(Path,CaseID:String;MainCase:Boolean):Boolean; //通知傳送完成
var
OMRValue,Batchnum,Usermemo,Checkmemo,UpformID,ReMoveMemo: String;
Case_type,Handle_no,Format_id,Cen_Uid,Cen_Cliname,Cen_Platno,Cen_Apolyno,Case_priority : String;
@@ -12440,12 +13606,12 @@
Case_type := '0';
- if FileExists(Path+'Context.dat') then //���y����
+ if FileExists(Path+'Context.dat') then //掃描頁數
begin
S.LoadFromFile(Path+'Context.dat');
Pages := S.Count;
end;
- if not FileExists(ImageSavePath+CaseID+'\CaseIndex.dat') then //�p�G�S�o���ɴN�����w�]��
+ if not FileExists(ImageSavePath+CaseID+'\CaseIndex.dat') then //如果沒這個檔就重產生預設值
begin
ClearCaseIndex;
WriteCaseIndex(ImageSavePath+CaseID+'\');
@@ -12454,34 +13620,34 @@
begin
S.LoadFromFile(ImageSavePath+CaseID+'\CaseIndex.dat');
- Handle_No := S.Strings[0]; //�g��N��
- Cen_Uid := S.Strings[1]; //�Q�O�HID
- Cen_Cliname := S.Strings[2]; //�Q�O�H�m�W
- Cen_Platno := S.Strings[3]; //����
- Case_Priority := S.Strings[4];//�ץ�
- if FMode = 'SSCAN' then //ñ�p���ɭԤ@�߶�Format_ID
+ Handle_No := S.Strings[0]; //經辦代號
+ Cen_Uid := S.Strings[1]; //被保人ID
+ Cen_Cliname := S.Strings[2]; //被保人姓名
+ Cen_Platno := S.Strings[3]; //車號
+ Case_Priority := S.Strings[4];//案件等級
+ if FMode = 'SSCAN' then //簽署章件的時候一律傳Format_ID
begin
- Format_ID := S.Strings[5]; //�D��� (�����渹or��O�渹or�O�渹�Xor�O�I�Ҹ�)
+ Format_ID := S.Strings[5]; //主鍵值 (報價單號or續保單號or保單號碼or保險證號)
end
Else
begin
if (Length(UpformID) = 12) and (UpformID[2] = '-') then
- Format_ID := S.Strings[5] //�D��� (�����渹or��O�渹or�O�渹�Xor�O�I�Ҹ�)
+ Format_ID := S.Strings[5] //主鍵值 (報價單號or續保單號or保單號碼or保險證號)
else
- Cen_Apolyno := S.Strings[5]; //�j���Ҹ�
+ Cen_Apolyno := S.Strings[5]; //強制證號
end;
if (FMode = 'MSCAN') and (length(Format_ID) = 16) and (Copy(Format_ID,1,2) = '05') then
begin
- Format_ID := Copy(Format_ID,3,14); //20130606 yuu���ʲz���D��Ȭ�16�X�B�}�}��05���n�h��
+ Format_ID := Copy(Format_ID,3,14); //20130606 yuu說監理站件的主鍵值為16碼且開開為05的要去掉
end;
end; }
- if FileExists(ImageSavePath+CaseID+'\GetValue.xml') then //���y�a��
+ if FileExists(ImageSavePath+CaseID+'\GetValue.xml') then //掃描帶值
begin
S.LoadFromFile(ImageSavePath+CaseID+'\GetValue.xml');
OMRValue := Trim(S.Text);
end;
- if MainCase then //���D�����D�n�ץ�
+ if MainCase then //雙主約的主要案件
begin
if FileExists(ImageSavePath+CaseID+'\Batchnum.dat') then
begin
@@ -12489,7 +13655,7 @@
Batchnum := Trim(S.Text);
end;
end
- Else //���D�����ĤG�ץ�
+ Else //雙主約的第二案件
begin
if FileExists(ImageSavePath+CaseID+'\SecBatchnum.dat') then
begin
@@ -12522,30 +13688,30 @@
if (FMode = 'NSCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN') then
begin
SendData := 'checktime='+EnCodeDateTime
- +'&work_no='+FWork_No //�@�~�O
- +'&case_id='+CaseID //���z�s��
- +'&form_id='+UpformID //���N��
- +'&scan_page='+inttostr(pages) //���y����
- +'&scan_get_value='+HTTPEncode(UTF8Encode(OMRValue)) //���y�a��
- +'&case_priority='+case_priority //�ץ�
- +'&batch_no='+batchnum //�����帹
- +'&user_memo='+HTTPEncode(UTF8Encode(usermemo)) //�ϥΪ̵��O
- +'&check_memo='+HTTPEncode(UTF8Encode(checkmemo)) //�ˮֵ��O
- +'&remove_memo='+HTTPEncode(UTF8Encode(ReMoveMemo)) //�ˮֲ������O
- +'&case_type='+Case_type //�i����� �i��0 �k��1
- +'&handle_no='+Handle_no //�g��N��
- +'&format_id='+Format_id //�ץ�D���
- +'&cen_uid='+Cen_Uid //�Q�O�HID
- +'&cen_cliname='+HTTPEncode(UTF8Encode(Cen_Cliname)) //�Q�O�H�m�W
- +'&cen_platno='+Cen_Platno //���P
- +'&cen_apolyno='+Cen_Apolyno //�j���Ҹ�
- +'&has_authorize='+Has_Authorize; //�O�_�����v�Ѽv��
+ +'&work_no='+FWork_No //作業別
+ +'&case_id='+CaseID //受理編號
+ +'&form_id='+UpformID //表單代號
+ +'&scan_page='+inttostr(pages) //掃描頁數
+ +'&scan_get_value='+HTTPEncode(UTF8Encode(OMRValue)) //掃描帶值
+ +'&case_priority='+case_priority //案件等級
+ +'&batch_no='+batchnum //車隊批號
+ +'&user_memo='+HTTPEncode(UTF8Encode(usermemo)) //使用者註記
+ +'&check_memo='+HTTPEncode(UTF8Encode(checkmemo)) //檢核註記
+ +'&remove_memo='+HTTPEncode(UTF8Encode(ReMoveMemo)) //檢核移除註記
+ +'&case_type='+Case_type //進件種類 進件0 歸檔1
+ +'&handle_no='+Handle_no //經辦代號
+ +'&format_id='+Format_id //案件主鍵值
+ +'&cen_uid='+Cen_Uid //被保人ID
+ +'&cen_cliname='+HTTPEncode(UTF8Encode(Cen_Cliname)) //被保人姓名
+ +'&cen_platno='+Cen_Platno //車牌
+ +'&cen_apolyno='+Cen_Apolyno //強制證號
+ +'&has_authorize='+Has_Authorize; //是否有授權書影像
Showmessage(SendData);
if not RejectCase then
begin
If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC05',SendData,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
end;
@@ -12554,7 +13720,7 @@
begin
If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC06',SendData,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
end;
@@ -12573,11 +13739,11 @@
+'&user_memo='+HTTPEncode(UTF8Encode(usermemo))
+'&check_memo='+HTTPEncode(UTF8Encode(checkmemo))
+'&remove_memo='+HTTPEncode(UTF8Encode(ReMoveMemo))
- +'&has_authorize='+Has_Authorize; //�O�_�����v�Ѽv��
+ +'&has_authorize='+Has_Authorize; //是否有授權書影像
//Showmessage(SendData);
If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC08',SendData,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
end;
@@ -12591,10 +13757,10 @@
+'&user_memo='+HTTPEncode(UTF8Encode(usermemo))
+'&check_memo='+HTTPEncode(UTF8Encode(checkmemo))
+'&remove_memo='+HTTPEncode(UTF8Encode(ReMoveMemo))
- +'&has_authorize='+Has_Authorize; //�O�_�����v�Ѽv��
+ +'&has_authorize='+Has_Authorize; //是否有授權書影像
If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC09',SendData,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
end;
@@ -12612,10 +13778,10 @@
+'&usermemo='+HTTPEncode(UTF8Encode(usermemo))
+'&checkmemo='+HTTPEncode(UTF8Encode(checkmemo))
+'&removememo='+HTTPEncode(UTF8Encode(ReMoveMemo))
- +'&has_authorize='+Has_Authorize; //�O�_�����v�Ѽv��
+ +'&has_authorize='+Has_Authorize; //是否有授權書影像
If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC01',SendData,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
end;
@@ -12632,10 +13798,10 @@
+'&usermemo='+HTTPEncode(UTF8Encode(usermemo))
+'&checkmemo='+HTTPEncode(UTF8Encode(checkmemo))
+'&removememo='+HTTPEncode(UTF8Encode(ReMoveMemo))
- +'&has_authorize='+Has_Authorize; //�O�_�����v�Ѽv��
+ +'&has_authorize='+Has_Authorize; //是否有授權書影像
If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC01',SendData,FReWrite,Memo1,False) Then
begin
- HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+ HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
Result := False;
Exit;
end;
@@ -12643,7 +13809,7 @@
if Memo1.Lines.Strings[0] <> '0'then
begin
- HttpErrStr := _Msg('���~��]:')+Memo1.Lines.Strings[1];
+ HttpErrStr := _Msg('錯誤原因:')+Memo1.Lines.Strings[1];
Result := False;
Exit;
end;
@@ -12655,15 +13821,20 @@
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;
+
+ //FMode := 'DSCAN' ;
//FIs_In_Wh := 'Y';
if FIs_In_Wh = 'Y' then
- AttName := 'Attach' //�J�w����
+ AttName := 'Attach' //入庫附件
else
- AttName := 'S_Attach'; //Smartlending ����
+ AttName := 'S_Attach'; //Smartlending 附件
//ShowMessage('1111111');
if FMode = 'SAMPLESCAN' then
begin
@@ -12677,7 +13848,7 @@
SampleScanBtn.Visible := True;
Panel1.Visible := True;
Panel6.Visible := True;
- ScanDuplexCB.Visible := False; //�������y
+ ScanDuplexCB.Visible := False; //雙面掃描
end
Else if (FMode = 'NSCAN') then
begin
@@ -12686,7 +13857,7 @@
Panel6.Visible := True;
Panel21.Visible := True;
Panel23.Visible := True;
- ScanDuplexCB.Visible := True; //�������y
+ ScanDuplexCB.Visible := True; //雙面掃描
end
Else if FMode = 'FSCAN' then
begin
@@ -12704,123 +13875,155 @@
DisplayMode(1,1,1,Panel9);
Application.ProcessMessages;
StatusBar1.Panels[0].Text := 'Ver'+GetCurrentVersionNo;
- StatusBar1.Panels[1].Text := _Msg('�n�J�H��:')+FUserName;
+ StatusBar1.Panels[1].Text := _Msg('登入人員:')+FUserName;
if FPrintyn = 'Y' then
PrtLB.Visible := True;
+ initParameter; //20170222 針對新加的parameter 作初始化參數
InitScrollRec;
If FUrl = '' then
begin
- Showmessage(_Msg('URL���ର�ť�,�Ь��ߵ{���H��'));
+ Showmessage(_Msg('URL不能為空白,請洽詢程式人員'));
Exit;
end;
if FUrl[length(FUrl)]<>'/' then
FUrl := FUrl + '/';
- //********�M���********
- Doc_Inf_List := TStringList.Create; //Doc_Inf �M�� Docno + ������key
- DM_FORM_INF_List := TStringList.Create; //DM_FORM_INF �M�� Docno + ������key
- FORM_INF_List := TStringList.Create; //FORM_INF���M��
- CHECK_RULE_INF_List := TStringList.Create; //CHECK_RULE_INF �M��
- MEMO_INF_List := TStringList.Create; //MEMO_INF �M��
- WORK_INF_List := TStringList.Create; //WORK_INF �M��
- LASTEST_FORM_INF_List := TStringList.Create; // LASTEST_FORM_INF �M��
- FindResult := TStringlist.Create; //��SQLData�����G
+ if FWork_no='' then
+ begin
+ Showmessage(_Msg('業務別不能為空白,請洽詢程式人員'));
+ Exit;
+ end;
- OMRFileList := TStringList.Create; //�nOMR�ˮ֪����(�u�ˬd�C��Form���Ĥ@��)
- FormCode_PageSize := TStringList.Create; //��w�]�j�p FormCode_Height_Width
- DocNo_NeedDoc := TStringList.Create; //��Docno�ɭn�̪ۨ���� DocNo_�̤ۨ��_�̤ۨ��
- DocNo_NoDoc := TStringList.Create; //��Docno�ɤ�������� DocNo_�������_�������
- DocNo_VerinCase := TStringList.Create; //�ץ�̪�DocNo+�������M��
- CaseDocNoList := TStringlist.Create; //�ץ�̪�DocNo�M��
- CaseDocNo_CopiesList := TStringlist.Create; //�ץ�̪�DocNo���ƲM��
- CaseList := TStringList.Create; //�O�����ˮץ���
- Context_DocnoList := TStringlist.Create; //�ץ�̪��ɮ�Docno�M��
- ContextList := TStringlist.Create; //�ץ�̪��ɮײM��
- NoSaveBarCodeList := TStringlist.Create; //���x�s�����X�M��
- FormID_List := TStringlist.Create; //FormID�M��
- DocNo_List := TStringlist.Create; //DocNo�M��
- NowShowFileList := TStringlist.Create; //�ثe��ܪ��v���M��
- NowSelectFileList := TStringlist.Create; //�ثe�Q�I�諸�v���M��
- Cust_DocNoList := TStringlist.Create; //�ۦ�w�q�����W��
- IN_WH_DocNoList := TStringlist.Create; //�J�w�����M��
- GuideFormIDList := TStringlist.Create; //�n��ɤޭ����M��
- //********�M���********
+ if CaseIDLength = 0 then
+ begin
+ Showmessage(_Msg('案件編號長度限制不能為空白,請洽詢程式人員'));
+ //Exit; //測試時不退出
+ end;
- ShowText := _Msg('��Ƹ��J��,�еy��');
+ //********清單區********
+
+ 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; //案件裡的檔案清單
+ 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 新增
+ //********清單區********
+
+ ShowText := _Msg('資料載入中,請稍候');
DataLoading(True,True);
IF not GetServerDate Then
begin
- Showmessage(_Msg('���D���ɶ���,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('取主機時間時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Exit;
end;
-//ShowMessage('GetServerDate '+ServerDate+' , '+ServerTime);
- ////�U���t�θ�T////
- IF not GetSetInf1 Then //��DOC_INF ����T
+
+ if FMode='SAMPLESCAN' then
begin
- Showmessage(_Msg('������T��,�����o�Ϳ��~!!')+HttpErrStr);
+ 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 �̤ۨ�����T
+ IF not GetSetInf2 Then //取DM_FORM_INF 相依互斥資訊
begin
- Showmessage(_Msg('���̤ۨ�����T��,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('取相依互斥資訊時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Exit;
end;
//ShowMessage('GetSetInf2');
//Showmessage(self.Doc_Inf_List.Text);
- IF not GetSetInf3 Then //��FORM_INF ����T
+ IF not GetSetInf3 Then //取FORM_INF 表單資訊
begin
- Showmessage(_Msg('������T��,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('取表單資訊時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Exit;
end;
//ShowMessage('GetSetInf3');
- IF not GetSetInf4 Then //��CHECK_RULE_INF �ˮֳW�h��T
+ IF not GetSetInf4 Then //取CHECK_RULE_INF 檢核規則資訊
begin
- Showmessage(_Msg('���ˮֳW�h��T��,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('取檢核規則資訊時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Exit;
end;
//showmessage(self.CHECK_RULE_INF_List.Text);
//ShowMessage('GetSetInf4');
- IF not GetSetInf5 Then //��MEMO_INF �`���y��T
+ IF not GetSetInf5 Then //取MEMO_INF 常用片語資訊
begin
- Showmessage(_Msg('���`�Τ��y��T��,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('取常用片語資訊時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Exit;
end;
//ShowMessage('GetSetInf5');
//showmessage(self.MEMO_INF_List.Text);
- IF not GetSetInf6 Then //��WORK_INF �t�ΰѼƸ�T
+ IF not GetSetInf6 Then //取WORK_INF 系統參數資訊
begin
- Showmessage(_Msg('���t�ΰѼƸ�T��,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('取系統參數資訊時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Exit;
end;
//ShowMessage('GetSetInf6');
//showmessage(FORM_INF_List.Text);
- IF not GetSetInf7 Then //��LASTES_FORM_INF �t�ΰѼƸ�T
+ IF not GetSetInf7 Then //取LASTES_FORM_INF 系統參數資訊
begin
- Showmessage(_Msg('���̷s��FORMID�ѼƸ�T��,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('取最新版FORMID參數資訊時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Exit;
end;
//ShowMessage('GetSetInf7');
//Showmessage(LASTEST_FORM_INF_List.Text);
- SetFormID_DocNo; //�NFormID��Docno��X��JList�� 20130403�W�[
- SetIn_WH_DocNo; //�N�n�J�w��DocNo��X�ӥt�s�Jlist��
- GetDefScanIni; //���o���y�w�]�Ȥά����]�w
+ SetFormID_DocNo; //將FormID及Docno抽出塞入List裡 20130403增加
+ SetIn_WH_DocNo; //將要入庫的DocNo抽出來另存入list裡
+ GetDefScanIni; //取得掃描預設值及相關設定
- ////�U���t�θ�T/////
+ ////下載系統資訊/////
if ImagePath = '' then
begin
- Showmessage(_Msg('�����Ȧs���|���o���ť�'));
+ Showmessage(_Msg('本機暫存路徑不得為空白'));
DataLoading(False,False);
Panel1.Enabled := False;
Panel2.Enabled := False;
@@ -12829,23 +14032,33 @@
initkscan;
if ImagePath[Length(ImagePath)] <> '\' then
ImagePath := ImagePath + '\';
+//ShowMessage('ImagePath='+ImagePath);
CheckXmlPath := ImagePath+'OMRSITE\'+FWork_No;
+//ShowMessage('CheckXmlPath='+CheckXmlPath);
SitePath := ImagePath+'Site\'+FWork_No+'\';
LngPath := ImagePath;
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); //�M���ץ�ؿ��O�Ū�
- ShowText := _Msg('��Ƹ��J��,�еy��');
+ Del_Sub_NothingPath(ImagePath); //清掉案件目錄是空的
+
+
+
+
+ ShowText := _Msg('資料載入中,請稍候');
DataLoading(True,True);
-// if not CheckAvailable Then //�ˬd���v 20170218 �����ΤF
+// if not CheckAvailable Then //檢查授權 20170218 說不用了
// begin
// DataLoading(False,False);
// Panel1.Enabled := False;
@@ -12853,12 +14066,12 @@
// Exit;
// end;
-
+//Button3Click(Self);
//ShowMessage('CheckAvailable');
- ShowText := _Msg('��Ƹ��J��,�еy��');
+ ShowText := _Msg('資料載入中,請稍候');
DataLoading(True,True);
- ////�U���y����///// 20170218 �����եH�K����
+ ////下載語言檔///// 20170218 先拿調以便測試
If not DownLanguage Then
begin
Showmessage('Language File error!!'+HttpErrStr);
@@ -12866,9 +14079,12 @@
Exit;
end;
- InitialLanguage(Self); //���J�h��y��
- ////�U���y����/////
- if (FMode = 'RSCAN') or (FMode = 'ESCAN') or (FMode = 'FSCAN') then //������β��ʥ�n�u�౽���w�s������
+ InitialLanguage(Self); //載入多國語言
+ //FCaseID:='20150302180133';//測試用
+ ////下載語言檔/////
+//ShowMessage('OOOO');
+
+ if (FMode = 'RSCAN') or (FMode = 'DSCAN') or (FMode = 'ESCAN') or (FMode = 'FSCAN') then //重掃件及異動件要只能掃指定編號的件
begin
_Deltree(ImagePath);
str2dir(ImagePath);
@@ -12877,66 +14093,71 @@
MkDir(ImageSavePath+FCaseID);
CreateEmptyCase(ImageSavePath,FCaseID);
MkDir(ImageSavePath+FCaseID+'\Download');
- IF (FMode = 'ESCAN') then //���ʥ���U���v��
+ IF (FMode = 'ESCAN') then //異動件先下載影像
begin
- ShowText := _Msg('�ץ�U����,�еy��');
+ ShowText := _Msg('案件下載中,請稍候');
DataLoading(True,True);
If not Down_Img(ImageSavePath+FCaseID+'\Download\',FCaseID) then
begin
- Showmessage(FCaseID+_msg('���J���ʼv����,�����o�Ϳ��~')+HttpErrStr);
+ 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\�S���A��\',ImageSavePath+FCaseID+'\');
+ //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 //�o�ӷ|�bDownload2Case�ɤ@�߲��ͩҥH����o�� 20141013
+ ErrFormtoCurrentForm(FCaseID,'10000001011112A','11000001011112A'); //換掉錯的FormID
+ //if not FileExists(ImageSavePath+FCaseID+'\CaseDocNo_Copies.dat') then //這個會在Download2Case時一律產生所以不能有這行 20141013
OldCasetoNewCase(FCaseID);
- //ErrFormtoCurrentForm(FCaseID,'11B00005011312A','11000001011112A'); //��������FormID
+ //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); //���ͥ~���ǤJ�����
+// 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); //產生外面傳入的文件
+ LastInitFormidListCreate(ImageSavePath+FCaseID+'\Download\');
end;
end;
-//ShowMessage('GetOMRCheckSet�e');
- ////�U���ˮ�XML//////
+
+//ShowMessage('GetOMRCheckSet前');
+ ////下載檢核XML//////
IF not GetOMRCheckSet Then
begin
- Showmessage(_Msg('�U���ˮ֩w���ɮ�,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('下載檢核定位檔案時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Exit;
end;
- ////�U���ˮ�XML/////
-//ShowMessage('GetOMRCheckSet���');
- ////�U���n���]�w/////
+ ////下載檢核XML/////
+//ShowMessage('GetOMRCheckSet後來');
+ ////下載登打設定/////
IF not GetKeyinSet Then
begin
- Showmessage(_Msg('�U���n���w���ɮ�,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('下載登打定位檔案時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
Exit;
end;
- ////�U���n���]�w/////
+ ////下載登打設定/////
//ShowMessage('GetKeyinSet');
- if ScanDenialHint <> '' then //���]�w���ܦr��N�q�b�k�W��
+ if ScanDenialHint <> '' then //有設定提示字串就秀在右上角
begin
DenialTimeLb.Visible := True;
DenialTimeLb.Caption := Format(ScanDenialHint,[ScanDenialTime]);
end;
-
- R_W_Scanini('R'); //���˳]�w��ini
+//ShowMessage(IntToStr(ScanDpi));
+ R_W_Scanini('R'); //掃瞄設定的ini
+//ShowMessage(IntToStr(ScanDpi));
+//ShowMessage('停掉DataLoading');
+//DataLoading(False,False);
ScanDuplexCB.Checked := ScanDuplex;
if FMode <> 'SAMPLESCAN' then
LoadImgFile;
@@ -12950,13 +14171,13 @@
end;
InitialOk := True;
- {AttFileGB.Visible := True; //���[�q�l�ɵ� //20120207���ɻ����b�o�[�q�l�ɥ�����
+ {AttFileGB.Visible := True; //附加電子檔窗 //20120207楊玉說不在這加電子檔先拿掉
Splitter2.Visible := True;
- AttFileGB.Visible := False; //���[�q�l�ɵ�
+ AttFileGB.Visible := False; //附加電子檔窗
Splitter2.Visible := False; }
-
+//ShowMessage('ImageSavePath='+ImageSavePath);
DataLoading(False,False);
-//ShowMessage('��l�ܰ��槹��');
+
end;
procedure TCB_IMGPSScanX.Timer2Timer(Sender: TObject);
@@ -12973,7 +14194,7 @@
CaseID : String;
i,n,v: Integer;
ZipFileList : TStringlist;
- CaseTrans : Integer; //-1:���� 0:�i 1:����
+ CaseTrans : Integer; //-1:失敗 0:可 1:不行
SuccessCount,ReCasecount,CheckErrCount : Integer;
TransMsg : String;
AreaStr : String;
@@ -12982,7 +14203,7 @@
begin
IF not InitialOk Then
begin
- Showmessage(_msg('��T�|���U������,�еy�ԩέ��s�i�J'));
+ Showmessage(_msg('資訊尚未下載完成,請稍候或重新進入'));
Exit;
end;
ClearView(1);
@@ -12991,14 +14212,22 @@
ClearCaseIndex;
RejectCase := False;
- if not CheckCaseID_OK then //�ˬd�O�_�����t�����ץ�
+ if not CheckCaseID_OK then //檢查是否有未配號的案件
begin
- Showmessage(_Msg('�|�����t���ץ�,�L�k�W��'));
+ Showmessage(_Msg('尚有未配號案件,無法上傳'));
Exit;
end;
+
+ if not CheckCaseAttach_OK then //20170911檢查是否有未歸類的案件
+ begin
+ Showmessage(_Msg('尚有未歸類文件,無法上傳'));
+ Exit;
+ end;
+
+
if NewTreeNode.Count = 0 then
begin
- Showmessage(_Msg('�L�v���ݶǰe'));
+ Showmessage(_Msg('無影像需傳送'));
Exit;
end;
@@ -13007,31 +14236,30 @@
CheckErrCount := 0;
if (FMode = 'NSCAN') and (not CheckScanDenialTime) then
begin
- if Messagedlg(Format(_Msg('�v�W�L����ɶ�(%s),�w�w�@�~�鬰�U����~��,�O�_�~��W��??'),[ScanDenialTime]),mtConfirmation,[mbyes,mbcancel],0)=mrcancel then Exit;
+ if Messagedlg(Format(_Msg('己超過收件時間(%s),預定作業日為下個營業日,是否繼續上傳??'),[ScanDenialTime]),mtConfirmation,[mbyes,mbcancel],0)=mrcancel then Exit;
end;
- ShowText := _Msg('��ƤW�Ǥ�,�еy��');
+ ShowText := _Msg('資料上傳中,請稍候');
DataLoading(True,True);
For i := 0 to NewTreeNode.Count -1 do
begin
v := posend('-',NewTreenode.Item[i].Text);
CaseID := Copy(NewTreenode.Item[i].Text,1,v-1);
- ShowText := CaseID+_Msg('��ƤW�Ǥ�,�еy��');
+ ShowText := CaseID+_Msg('資料上傳中,請稍候');
DataLoading(True,True);
- CreateIn_WH(CaseID); //���ͤJ�w����r�� In_Wh.dat
- Case2upload(CaseID); //���ͭ�v�����c
-
+ CreateIn_WH(CaseID); //產生入庫文件文字檔 In_Wh.dat
+ Case2upload(CaseID); //產生原影像結構
TransPath := ImageSavePath+CaseID+'\Upload\';
- {if FMode = 'ESCAN' then //20140320 yuu���������ˬd
+ {if FMode = 'ESCAN' then //20140320 yuu說拿掉此檢查
begin
S := TStringlist.Create;
try
S.LoadFromFile(TransPath + 'Context.dat');
if S.Count = 0 then
begin
- Showmessage(_Msg('�L�v���ɵL�k�ǰe'));
+ Showmessage(_Msg('無影像檔無法傳送'));
DataLoading(False,False);
LoadImgFile;
Exit;
@@ -13040,47 +14268,45 @@
s.Free;
end;
end;}
-
- if (FMode = 'NSCAN') then
+ if (FMode = 'NSCAN') or (FMode = 'DSCAN') then //20170406 待掃瞄也要問一下
begin
- /////�T�ݬO�_�i�W��/////
+ /////訊問是否可上傳/////
CaseTrans := CaseAsk(CaseID);
- /////�T�ݬO�_�i�W��////
+ /////訊問是否可上傳////
end
- Else ///���O�s��B������B���ʥ��d
+ Else ///不是新件、重掃件、異動件的不查
begin
CaseTrans := 0;
end;
- if CaseTrans = -1 then //����
+ if CaseTrans = -1 then //失敗
begin
- Showmessage(_Msg('�߰ݮץ�i�_�ǰe��,�����o�Ϳ��~!!')+HttpErrStr);
+ Showmessage(_Msg('詢問案件可否傳送時,網路發生錯誤!!')+HttpErrStr);
DataLoading(False,False);
LoadImgFile;
Exit;
end;
if CaseTrans = 1 then
begin
- ////���ƳB�z/////
+ ////重複處理/////
Inc(ReCasecount);
- ////���ƳB�z/////
+ ////重複處理/////
Continue;
end
- Else if CaseTrans = 0 then //�i�H�ǰe
+ Else if CaseTrans = 0 then //可以傳送
begin
- ///////�ˮ�////// 20100927 User�אּ�h�ܥ~���� ///20101019 User�S��^�W�ǭn��
- //if FMode = 'NSCAN' then //20101019�令Ū�]�w���ǼҦ��n�������ˮ�
+ ///////檢核////// 20100927 User改為搬至外面做 ///20101019 User又改回上傳要做
+ //if FMode = 'NSCAN' then //20101019改成讀設定那些模式要做那些檢核
//begin
-
- ///�̤Q�r�w���I�Y��////
- CaseReSize(CaseID); //�ҥH�v���A���@���Y��
- ////�̤Q�r�w���I�Y��/////// }
+ ///依十字定位點縮放////
+ CaseReSize(CaseID); //所以影像再做一次縮放
+ ////依十字定位點縮放/////// }
if (FMode <> 'FSCAN') then
begin
- if (NewTreenode.Item[i].ImageIndex <> 7) and (NewTreenode.Item[i].ImageIndex <> 5) then //�ˮ֧��������A�ˮ�
+ if (NewTreenode.Item[i].ImageIndex <> 7) and (NewTreenode.Item[i].ImageIndex <> 5) then //檢核完成的不再檢核
begin
- ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+ ShowText := CaseID+_Msg('檢核中,請稍候');
DataLoading(True,True);
- If not OMRCheckCase(CaseID) then
+ If not OMRCheckCase(CaseID) then //進檢核
begin
Inc(CheckErrCount);
Continue;
@@ -13093,10 +14319,11 @@
end;
end;
//end;
- ///////�ˮ�//////
- ShowText := CaseID+_Msg('��ƤW�Ǥ�,�еy��');
+ ///////檢核//////
+ ShowText := CaseID+_Msg('資料上傳中,請稍候');
DataLoading(True,True);
- If Not TransCaseID(TransPath,CaseID,True) Then //�ǰe�ץ�
+//ShowMessage('退出');DataLoading(False,False);Exit;
+ If Not TransCaseID(TransPath,CaseID,True) Then //傳送案件
begin
DataLoading(False,False);
LoadImgFile;
@@ -13106,16 +14333,23 @@
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('�L�k�W�ǥ�%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('�ǰe����')+#13#10+TransMsg);
+ Showmessage(_Msg('傳送完成')+#13#10+TransMsg);
LoadImgFile;
if (FMode = 'ESCAN') and (SuccessCount = 1) then
+ begin
+ if FEvents <> nil Then
+ begin
+ FEvents.OnClosePage;
+ end;
+ end;
+ if (FMode = 'DSCAN') and (SuccessCount = 1) then
begin
if FEvents <> nil Then
begin
@@ -13140,26 +14374,25 @@
NowDocNo := '';
NowFormCode := '';
NowFormName := '';
-
NowPage := 0;
NowShowFileList.Clear;
StatusBar1.Panels[2].Text := '';
ClearCaseIndex;
- PageLv.Items.Clear; //���ƲM��
+ PageLv.Items.Clear; //頁數清單
//Panel18.Enabled:= False;
UseOldCaseLb.Visible := False;
- PM107.Visible := False; //�Ƶ��\��
- CaseHelpBtn.Visible := False; //�ˮ֥��ѭ�]�s
+ PM107.Visible := False; //備註功能
+ CaseHelpBtn.Visible := False; //檢核失敗原因鈕
Panel5.Visible := True;
ContextList.Clear;
SortMode := false;
ISB1.ZoomMode := zmFullPage;
IF TreeView1.Selected.Parent <> nil Then
begin
- if TreeView1.Selected.Parent = NewTreenode then //�I�b�ץ�W
+ if TreeView1.Selected.Parent = NewTreenode then //點在案件上
begin
//Panel18.Enabled := True;
- PM107.Visible := True; //�Ƶ��\��
+ PM107.Visible := True; //備註功能
MyTreeNode1 := TreeView1.Selected;
MyTreeNode2 := nil;
MyTreeNode3 := nil;
@@ -13200,7 +14433,7 @@
ScrollBar1.Max := page;
MyTreeNode1.Expand(True);
end
- Else If TreeView1.Selected.Parent.Parent = NewTreenode Then //�I�b���W
+ Else If TreeView1.Selected.Parent.Parent = NewTreenode Then //點在文件上
begin
MyTreeNode1 := TreeView1.Selected.Parent;
@@ -13222,9 +14455,9 @@
DisplayPath := ImageSavePath+NowCaseNo+'\';
if GetUseCase('F',DisplayPath,NowDocDir) <> '' then
- StatusBar1.Panels[2].Text := Format('�q%s�ޥ�',[GetUseCase('F',DisplayPath,NowDocDir)]);
+ StatusBar1.Panels[2].Text := Format('從%s引用',[GetUseCase('F',DisplayPath,NowDocDir)]);
if GetUseCase('T',DisplayPath,NowDocDir) <> '' then
- StatusBar1.Panels[2].Text := Format('�Q%s�ޥ�',[GetUseCase('T',DisplayPath,NowDocDir)]);
+ StatusBar1.Panels[2].Text := Format('被%s引用',[GetUseCase('T',DisplayPath,NowDocDir)]);
if FLoanDoc_Enable = 'Y' then
begin
AddCredit1RG.Enabled := True;
@@ -13254,12 +14487,12 @@
Cust_DocNoList.LoadFromFile(DisplayPath+'CustomDocNo.dat');
MyTreeNode1.Expand(True);
end
- Else If (NewTreenode <> nil) and (TreeView1.Selected.Parent.Parent.Parent = NewTreenode) Then //�I�b���W
+ Else If (NewTreenode <> nil) and (TreeView1.Selected.Parent.Parent.Parent = NewTreenode) Then //點在表單上
begin
- //NoteBtn.Visible := True; //�Ƶ��\��
+ //NoteBtn.Visible := True; //備註功能
//Panel18.Enabled := True;
ClearView(1);
- PM107.Visible := True; //�Ƶ��\��
+ PM107.Visible := True; //備註功能
MyTreeNode1 := TreeView1.Selected.Parent.Parent;
MyTreeNode2 := TreeView1.Selected.Parent;
MyTreeNode3 := TreeView1.Selected;
@@ -13289,7 +14522,7 @@
NowFormName := Copy(MyTreeNode3.Text,v+1,v1-v-1);
page := strtoint(Copy(MyTreeNode3.Text,v2+1,ln-v2-1));
end
- Else //�I�b������
+ Else //點在附件的頁數
begin
NowFormCode := '';
page := 1;
@@ -13298,9 +14531,9 @@
DisplayPath := ImageSavePath+NowCaseNo+'\';
if GetUseCase('F',DisplayPath,NowDocDir) <> '' then
- StatusBar1.Panels[2].Text := Format('�q%s�ޥ�',[GetUseCase('F',DisplayPath,NowDocDir)]);
+ StatusBar1.Panels[2].Text := Format('從%s引用',[GetUseCase('F',DisplayPath,NowDocDir)]);
if GetUseCase('T',DisplayPath,NowDocDir) <> '' then
- StatusBar1.Panels[2].Text := Format('�Q%s�ޥ�',[GetUseCase('T',DisplayPath,NowDocDir)]);
+ StatusBar1.Panels[2].Text := Format('被%s引用',[GetUseCase('T',DisplayPath,NowDocDir)]);
if FLoanDoc_Enable = 'Y' then
begin
@@ -13329,7 +14562,7 @@
end;
MyTreeNode1.Expand(True);
end
- Else //�I�bNewTreenode or MyTreenode1 �W
+ Else //點在NewTreenode or MyTreenode1 上
begin
ClearView(1);
MyTreeNode1 := nil;
@@ -13380,7 +14613,7 @@
NewDocNo := Copy(iTreeNode2.Text,v+1,v1-v-1);
NewPath := ImagePath+NewCaseNo+'\';
OldFileName := ExtractFileName(DisplayISB.FileName);
- if Copy(NewDocNo,1,5) = 'ZZZZZ' then //�ۭq���
+ if Copy(NewDocNo,1,5) = 'ZZZZZ' then //自訂文件
begin
NewFileName := Add_Zoo(FileName2ScanPage(OldFileName),3)+'_'+NewDocNo+'0000000'+ExtractFileExt(OldFileName);
NewFormCode := NewDocNo+'0000000';
@@ -13415,7 +14648,7 @@
NewFormName := Copy(iTreeNode3.Text,1,v1-1);
end;
NewPath := ImagePath+NewCaseNo+'\'+NewDocDir+'\';
- if NewPath = DisplayPath Then //�P�ץ�
+ if NewPath = DisplayPath Then //同案件
begin
if NewFormCode <> '' then
//NewFileName := Copy(OldFileName,1,3)+'_'+NewFormCode+ExtractFileExt(OldFileName)
@@ -13424,7 +14657,7 @@
//NewFileName := Copy(OldFileName,1,3)+ExtractFileExt(OldFileName)
NewFileName := Add_Zoo(GetDocDir_Page(NewCaseNo,NewDocDir),3)+ExtractFileExt(OldFileName);
end
- else //���P�ץ�
+ else //不同案件
begin
if NewFormCode <> '' then
//NewFileName := Copy(OldFileName,1,3)+'_'+NewFormCode+ExtractFileExt(OldFileName)
@@ -13445,7 +14678,7 @@
//NewFileName := Copy(OldFileName,1,3)+ExtractFileExt(OldFileName)
NewFileName := Add_Zoo(GetDocDir_Page(NewCaseNo,NewDocDir)+1,3)+ExtractFileExt(OldFileName);
- if NewCaseNo = NowCaseNo then //�P�ץﶶ��
+ if NewCaseNo = NowCaseNo then //同案件不改順序
begin
CopyFile(PWideChar(OldFileName),PwideChar(NewPath+NewFileName),False);
SetContextList('A',-1,NewCaseNo,NewDocDir,NewFileName);
@@ -13462,17 +14695,17 @@
ContextList.LoadFromFile(DisplayPath+'Context.dat');
if (ContextList.Count = 1) and ((FMode = 'NSCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN') or (FMode = 'ISCAN')) then
begin
- if Messagedlg(Format(_Msg('���ʫ�(%s)�ץ�L�v��,�N�R�����ץ�,�O�_�T�w����?'),[NowCaseno]),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
+ if Messagedlg(Format(_Msg('移動後(%s)案件無影像,將刪除此案件,是否確定移動?'),[NowCaseno]),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
end;
CopyFile(PWideChar(DisplayISB.FileName),PWideChar(NewPath+NewFileName),False);
ContextList.LoadFromFile(NewPath+'Context.dat');
ContextList.Add(NewFileName);
ContextList.SaveToFile(NewPath+'Context.dat');
//Showmessage('1');
- iTreeNode2.Text := Format(_Msg('%s-%d��'),[NewCaseNo,GetCasePage(ImagePath,NewCaseNo)]);
+ iTreeNode2.Text := Format(_Msg('%s-%d頁'),[NewCaseNo,GetCasePage(ImagePath,NewCaseNo)]);
//Showmessage('2');
//DrawDocItem(iTreeNode1,FORM_INF_List,NewCaseNo);
- //DrawDocItem1(MytreeNode1,Doc_Inf_List,NewCaseno); 20140820��
+ //DrawDocItem1(MytreeNode1,Doc_Inf_List,NewCaseno); 20140820改
DrawDocItem2(MytreeNode1,NewCaseno);
//Showmessage('3');
ClearErrini(NewCaseNo,iTreeNode1);
@@ -13513,7 +14746,7 @@
ReSortFileName(ExtractFilePath(OldFileName));
end;
DrawDocItem2(MytreeNode1,NowCaseno);
- ClearErrini(NowCaseno,MyTreeNode1); //�M���ˮְO��
+ ClearErrini(NowCaseno,MyTreeNode1); //清掉檢核記錄
if GoAtt then
begin
GotoAttach(AttLv);
@@ -13552,7 +14785,7 @@
or((NewNode.Level <>2) and (NewNode.Level<>3))
or((NewNode.Level =2) and ((ImgDocNo = Node2DocNo(NewNode))or(Node2DocNo(NewNode)='')or (copy(Node2DocNo(NewNode),1,5)<>'ZZZZZ')))
or((NewNode.Level =3) and ((ImgFormCode=Node3FormID(NewNode)) or (ImgDocNo = Node3DocNo(NewNode)) or (Node3DocNo(NewNode)='')))
- or(Pos(_Msg('�����U���'),Newnode.Text)>0)
+ or(Pos(_Msg('未註冊文件'),Newnode.Text)>0)
Then
Accept := False;}
end;
@@ -13560,7 +14793,15 @@
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;
@@ -13631,9 +14872,13 @@
procedure TCB_IMGPSScanX.Set_language(const Value: WideString);
begin
FLanguage := lowercase(Value);
+ if FLanguage='zh-tw' then
+ begin
+ FLanguage:='zh_tw'
+ end;
if FileExists(LngPath+'Language.lng') then
begin
- InitialLanguage(Self); //���J�h��y��
+ InitialLanguage(Self); //載入多國語言
end;
end;
@@ -13673,7 +14918,7 @@
begin
FUseProxy := UpperCase(Value);
if FUseProxy = 'Y' then
- UseProxy := True; //�n���n��Proxy
+ UseProxy := True; //要不要用Proxy
end;
@@ -13832,6 +15077,136 @@
FCustDocYN := UpperCase(Value);
end;
+function TCB_IMGPSScanX.Get_casenolength: WideString;
+begin
+
+end;
+
+function TCB_IMGPSScanX.Get_filesizelimit: WideString;
+begin
+
+end;
+
+function TCB_IMGPSScanX.Get_imgdpi: WideString;
+begin
+
+end;
+
+function TCB_IMGPSScanX.Get_scancolor: WideString;
+begin
+
+end;
+
+procedure TCB_IMGPSScanX.Set_casenolength(const Value: WideString);
+begin
+ if Value ='' then
+ begin
+ FCaseNoLength := 0 ;
+ CaseIDLength := FCaseNoLength;
+ end
+ else
+ begin
+ FCaseNoLength := StrToInt(Value) ;
+ CaseIDLength := FCaseNoLength;
+ end;
+
+end;
+
+procedure TCB_IMGPSScanX.Set_filesizelimit(const Value: WideString);
+begin
+//ShowMessage(Value);
+ if Value ='' then
+ begin
+ FFileSizeLimit := 5*1024;
+ end
+ else
+ begin
+ FFileSizeLimit := StrToInt(Value);
+ end;
+
+end;
+
+procedure TCB_IMGPSScanX.Set_imgdpi(const Value: WideString);
+begin
+ if Value ='' then
+ begin
+ FImgDPI := 300;
+ ScanDpi := FImgDPI;
+ end
+ else
+ begin
+ FImgDPI := StrToInt(Value);
+ ScanDpi := FImgDPI;
+ Def_ScanDpi := FImgDPI;
+ end;
+
+end;
+
+procedure TCB_IMGPSScanX.Set_scancolor(const Value: WideString);
+begin
+ if value='' then
+ begin
+ FScanColor := 0;
+ ScanColor := ifBlackWhite;
+ end
+ else
+ begin
+ FScanColor := StrToInt(Value);
+ ScanColor := ifBlackWhite;
+ end;
+
+ if FScanColor = 1 then
+ begin
+ ScanColor := ifGray256 ;
+ end;
+
+ if FScanColor = 2 then
+ begin
+ ScanColor := ifTrueColor ;
+ end;
+
+end;
+
+function TCB_IMGPSScanX.Get_imgdelete: WideString;
+begin
+
+end;
+
+procedure TCB_IMGPSScanX.Set_imgdelete(const Value: WideString);
+begin
+ FImgDelete:=Value;
+end;
+
+function TCB_IMGPSScanX.Get_check_main_form: WideString;
+begin
+
+end;
+
+function TCB_IMGPSScanX.Get_isExternal: WideString;
+begin
+
+end;
+
+procedure TCB_IMGPSScanX.Set_check_main_form(const Value: WideString);
+begin
+ FCheck_main_form := Value;
+end;
+
+procedure TCB_IMGPSScanX.Set_isExternal(const Value: WideString);
+begin
+ FIsExternal:=Value;
+end;
+
+function TCB_IMGPSScanX.Get_WH_CATEGORY: WideString;
+begin
+
+end;
+
+procedure TCB_IMGPSScanX.Set_WH_CATEGORY(const Value: WideString);
+begin
+ FWH_category:=Value;
+end;
+
initialization
TActiveFormFactory.Create(
ComServer,
--
Gitblit v1.8.0