From a57c1e93c86fe03088296e87f2ebc0a92a3fa2b7 Mon Sep 17 00:00:00 2001
From: doom4ster <doom4ster@gmail.com>
Date: 星期二, 27 六月 2017 15:06:56 +0800
Subject: [PATCH] CB_IMGPSScan.cab ver2.0.1.15 範本掃瞄會先問要不要取代
---
CB_IMGPSScanImp.pas | 138 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 126 insertions(+), 12 deletions(-)
diff --git a/CB_IMGPSScanImp.pas b/CB_IMGPSScanImp.pas
index 732bb3b..46e6fc7 100644
--- a/CB_IMGPSScanImp.pas
+++ b/CB_IMGPSScanImp.pas
@@ -481,8 +481,10 @@
NowShowFileList : TStringlist; //目前顯示的影像清單
NowSelectFileList : TStringlist; //目前被點選的影像清單
GuideFormIDList : TStringlist; //要當導引頁表單清單
+ DivPageFormIDList:TStringlist; //要當分案頁表單清單
LastInitFormidList:TStringList;
LastAddFormidList:TstringList;
+ SampleFormIDList:TStringList; //20170627 已存在範本的formid
//********清單區********
//********顯示區********
@@ -554,6 +556,7 @@
Has_Authorize :String; //是否有授權書影像
AttName : String; //未歸類目錄名稱
NowGuideFormID : String;
+ NowDivPageFormID:String;
FirstDocDir : String;
@@ -676,7 +679,7 @@
Function FindFormCodePages(CaseID,FormCode:String):Integer; //計算案件裡FormID的頁數
Function GetDataFormCodePages(FormCode:String):Integer; //取記錄的FormcID的頁數
Procedure CaseReSize(CaseID:String); //案件的影像縮放
- Procedure ImageReSize(CaseID,FileName:String); //依十字定位點做縮放
+ Procedure ImageReSize_FormID(CaseID,FileName:String); //依十字定位點做縮放
Procedure ImageReSize_tmp(FormID,FileName:String); //依十字定位點做縮放(暫存檔)
Function TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //傳送案件
Procedure NewTreeNodeRefresh;
@@ -827,6 +830,8 @@
procedure initParameter;
procedure LastInitFormidListCreate(path:string);
function checkFormCodeIsCustom(path,formcode:string):boolean;
+ function ISDivPageFormID(FormID: String): Boolean;
+ function GetSampleInf: Boolean;
protected
{ Protected declarations }
procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override;
@@ -1555,9 +1560,10 @@
Cust_DocNoList.Free; //自行定義文件名稱
IN_WH_DocNoList.Free; //入庫的文件清單
GuideFormIDList.Free; //要當導引頁表單清單
-
+ DivPageFormIDList.Free; //要當分案頁表單清單
LastInitFormidList.Free;
LastAddFormidList.Free;
+ SampleFormIDList.Free;
//********清單區********
if FEvents <> nil then FEvents.OnDestroy;
end;
@@ -2155,6 +2161,7 @@
TreeView1click(nil);
FirstDocDir := '';
NowGuideFormID := '';
+ NowDivPageFormID :='';
AddScanBtnclick(nil);
end;
end
@@ -2170,6 +2177,7 @@
ScanPath := '';
ScanCaseno := '';
NowGuideFormID := '';
+ NowDivPageFormID :='';
ClearView(1);
ContextList.Clear;
Try
@@ -3372,6 +3380,7 @@
var
SampleFormID : String;
SendData : String;
+ buttonSelected : Integer;
begin
ScanMode := smSample;
ClearView(1);
@@ -3384,6 +3393,19 @@
ShowText := _Msg('範本掃描中,請稍候');
DataLoading(True,True);
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
@@ -3696,6 +3718,10 @@
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);
+// SampleFormIDList.Add('31A00101011706A');
+// SampleFormIDList.Add('31A00101021706A');
+// SampleFormIDList.Add('31A00101031706A');
end;
procedure TCB_IMGPSScanX.StatrTwainScan;
@@ -4019,8 +4045,13 @@
if FormID = '' then
begin
FormID := BarCode2FormID; //取出FormID
-
end;
+
+ if (FormID <> '') and ISDivPageFormID(FormID) then
+ begin
+ NowDivPageFormID := FormID;
+ end;
+
if (FormID <> '') and ISGuideFormID(FormID) then
begin
NowGuideFormID := FormID;
@@ -4030,7 +4061,7 @@
FormID := NowGuideFormID;
DocNo := FormCode2DocNo(FormID);
//ShowMessage('FormID='+FormID);
- if (FormID <>'') and FindDivFormCode(FormID) and (NowGuideFormID <> '') Then //只找分案頁上的案件條碼
+ if (FormID <>'') and FindDivFormCode(FormID) and (NowDivPageFormID <> '') Then //只找分案頁上的案件條碼
begin
ScanInfo.ImageCount := 0;
@@ -4040,6 +4071,7 @@
ClearCaseIndex; //清掉案件索引
ScanCaseno := BarCode2CaseID; //取出案件編號
NowGuideFormID := '';
+ NowDivPageFormID :='';
//ShowMessage('NowGuideFormID='+NowGuideFormID+#10#13+'FormID='+FormID+#10#13+'ScanCaseno='+ScanCaseno);
end;
if ScanCaseno = '' then //一開始都沒找到
@@ -4130,10 +4162,9 @@
begin
ScanSaveFilename := '';
FormID := BarCode2FormID; //取出FormID
- if (FormID <> '') and ISGuideFormID(FormID) then
+ 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);
@@ -4683,6 +4714,11 @@
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;
@@ -4828,6 +4864,39 @@
ServerTime := Copy(ServerDate,9,6);
ServerDate := Copy(ServerDate,1,8);
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('閒置過久或被登出,請重新登入');
+ Result := False;
+ Exit;
+ end;
+
+end;
+
+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
@@ -5404,14 +5473,14 @@
For i := 0 to S.Count -1 do
begin
FileName := S.Strings[i];
- ImageReSize(CaseID,FileName); //依十字定位點做縮放
+ ImageReSize_FormID(CaseID,FileName); //依十字定位點做縮放
end;
finally
S.Free;
end;
end;
-Procedure TCB_IMGPSScanX.ImageReSize(CaseID,FileName:String); //依十字定位點做縮放
+Procedure TCB_IMGPSScanX.ImageReSize_FormID(CaseID,FileName:String); //依十字定位點做縮放
var
FormID : String;
DH,DW : String;
@@ -5430,17 +5499,27 @@
DW := GetFindResult('T1.FORM_WIDTH');
ANCHOR := UpperCase(GetFindResult('T1.ANCHOR'));
ANCHOR := Index2Anchor(ANCHOR);
+//showmessage(FormID+#13+DH+#13+DW+#13);
+//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);
+//showmessage(ImageSavePath+CaseID+'\Upload\'+FileName);
S := TStringlist.Create; ///20110422拿掉 換成上傳才做
if FileExists(ImageSavePath+CaseID+'\Upload\ReSize.dat') then
S.LoadFromFile(ImageSavePath+CaseID+'\Upload\ReSize.dat');
@@ -9660,6 +9739,22 @@
end;
end;
+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.CaseDelete_Enable(CaseID:String):Boolean; //案件可否被刪除
var
i : Integer;
@@ -10716,7 +10811,7 @@
OMRFormName := FormCode2FormName(CaseID,OMRFormCode);
Anchor := FormID2Anchor(OMRFormCode);
///依十字定位點縮放////
- ImageReSize(CaseID,OMRFile);
+ ImageReSize_FormID(CaseID,OMRFile);
////依十字定位點縮放////
if not FileExists(CheckXmlPath+OMRFormCode+'.xml') then //沒有Xml就不用檢核
Continue;
@@ -11975,7 +12070,8 @@
for I := 0 to ContextList.Count - 1 do
begin
FileFormID := FileName2FormCode(ContextList.Strings[i]);
- if FileFormID=GuideFormIDList.Strings[0] then //20170509 跳過導引頁的formid
+
+ if DivPageFormIDList.IndexOf(FileFormID)<>-1 then //20170509 跳過分案頁的formid
begin
Continue;
end;
@@ -13090,8 +13186,10 @@
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 加入
//********清單區********
ShowText := _Msg('資料載入中,請稍候');
@@ -13103,6 +13201,19 @@
DataLoading(False,False);
Exit;
end;
+
+ if FMode='SAMPLESCAN' then
+ begin
+ IF not GetSampleInf Then //取已存在sample
+ begin
+ Showmessage(_Msg('取存在範本資訊時,網路發生錯誤!!')+HttpErrStr);
+ DataLoading(False,False);
+ Exit;
+ end;
+ end;
+
+
+
//ShowMessage('GetServerDate '+ServerDate+' , '+ServerTime);
////下載系統資訊////
IF not GetSetInf1 Then //取DOC_INF 文件資訊
@@ -13314,7 +13425,8 @@
DataLoading(False,False);
//ShowMessage('初始話執行完成');
-//ShowMessage(GuideFormIDList.Text);
+//ShowMessage('GuideFormIDList='+GuideFormIDList.Text);
+//ShowMessage('DivPageFormIDList='+DivPageFormIDList.Text);
end;
procedure TCB_IMGPSScanX.Timer2Timer(Sender: TObject);
@@ -13452,6 +13564,8 @@
ShowText := CaseID+_Msg('資料上傳中,請稍候');
DataLoading(True,True);
//ShowMessage('NNNNN');
+//ShowMessage('退出');
+//Exit;
If Not TransCaseID(TransPath,CaseID,True) Then //傳送案件
begin
DataLoading(False,False);
--
Gitblit v1.8.0