doom4ster
2017-07-10 27e860ceacaa00735984a1c3bc4067bbaecd0f8b
CB_IMGPSScanImp.pas
@@ -2593,12 +2593,14 @@
        ShowText :=_Msg('檔案加入中,請稍候('+inttostr(i)+'/'+inttostr(P)+')');
        DataLoading(True,True);
        ISB.LoadFromFile(FName,i);
//ISB.SaveToFile('C:\OCX\aaaaaa'+IntToStr(i)+'.tif');
        DeskewImg(ISB.Graphic);
//ISB.SaveToFile('C:\OCX\bbbbbb'+IntToStr(i)+'.tif');
        if (TreeView1.Selected = NewTreeNode) or (TreeView1.Selected = MyTreeNode1) then
        begin
          SaveFilename := '';
          MpsGetBarcode(ISB.Graphic,MpsBarcodeinf);
          for n := 1 to MpsBarcodeinf.Count-1  do
          for n := 1 to MpsBarcodeinf.Count  do
          begin
            if MpsBarcodeinf.r180[n] <> 0 then  //依條碼角度轉影像
            begin
@@ -2663,6 +2665,17 @@
            SaveFilename:= Add_Zoo(ContextList.Count+1,3)+ext
          Else
            SaveFilename := Add_Zoo(ContextList.Count+1,3)+'_'+SaveFilename+ext;
          for n := 1 to MpsBarcodeinf.Count  do
          begin
            if MpsBarcodeinf.r180[n] <> 0 then  //依條碼角度轉影像
            begin
              Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]);
              MpsGetBarcode(ISB.Graphic,MpsBarcodeinf);
              Break;
            end;
          end;
          //Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]);  //20170705 加入有條碼就轉正
          ISB.SaveToFile(SavePath+SaveFilename);
          SetContextList('A',-1,CaseID,DocDir,SaveFilename);
@@ -2691,6 +2704,17 @@
            SaveFilename := Add_Zoo(ContextList.Count+1,3)+'_'+NowFormCode+ext
          else
            SaveFilename := Add_Zoo(ContextList.Count+1,3)+ext;
          for n := 1 to MpsBarcodeinf.Count  do
          begin
            if MpsBarcodeinf.r180[n] <> 0 then  //依條碼角度轉影像
            begin
              Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]);
              MpsGetBarcode(ISB.Graphic,MpsBarcodeinf);
              Break;
            end;
          end;
          //Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正
          ISB.SaveToFile(SavePath+SaveFilename);
          ContextList.Add(SaveFilename);
          ContextList.SaveToFile(SavePath+'Context.dat');
@@ -3693,6 +3717,11 @@
    'FIsExternal='+    FIsExternal+#10#13+
    'FCheck_main_form='+    FCheck_main_form);
 { 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);
@@ -3739,6 +3768,7 @@
  ScanInfo.Graphic := TTiffGraphic.Create;
  try
    ISB := nil; //規零
//ShowMessage(IntToStr(ScanDpi));
    Scanner.RequestedXDpi := ScanDpi;
    Scanner.RequestedYDpi := ScanDpi;
    Scanner.RequestedImageFormat := ScanColor;
@@ -4461,21 +4491,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);
//ShowMessage(IntToStr(OMRRect.Left)+#10#13+IntToStr(OMRRect.top)+#10#13+IntToStr(OMRRect.Right)+#10#13+IntToStr(OMRRect.Bottom));
    if OMRRect.Left < 0 then
      OMRRect.Left := 0;
    if OMRRect.Top < 0  then
@@ -4486,6 +4534,7 @@
      OMRRect.Bottom := ImageScrollBox1.Graphic.Height;
    result := Get_OMR(ISB_BW.Graphic,OMRRect);
//ShowMessage('result='+IntToStr(result));
  end;
end;
@@ -4527,7 +4576,7 @@
          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);
@@ -4541,7 +4590,7 @@
          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);
@@ -7640,6 +7689,7 @@
  ErrlistForm : TErrlistForm;
  S : TStringlist;
  UpFormID : String;
  Anchor : String;
begin
  ShowText := _Msg('處理檢核失敗中,請稍候');
  DataLoading(True,True);
@@ -8569,7 +8619,7 @@
  end;
end;
Function TCB_IMGPSScanX.Case2Mask(SoPath,DePath:String):Boolean;//產生遮罩影像
Function TCB_IMGPSScanX.Case2Mask(SoPath,DePath:String):Boolean;//產生遮罩影像  20170639 發現沒用到
var
  XT : TXMLTool;
  i : Integer;
@@ -10655,7 +10705,7 @@
          //20131203 yuu說不檢查這個,先拿掉   20170315 楷琳說未歸類要擋
          if FCheck_main_form='Y' then
          begin
            if (FMode <> 'SSCAN') then  //簽署章件會換主FormID,先跳過
            if (FMode <> 'SSCAN') AND (FMode<>'ESCAN') then  //簽署章件會換主FormID,先跳過 20170629 ESCAN 也不檢查
            begin
              ErrStr:=_Msg('找不到分案文件');   //找不到主文件
              OMRErr2ini(CaseID,ErrStr,'','','','','','',False,False,True);
@@ -10844,6 +10894,8 @@
                      SiteRec := SiteRec+'@'+Site;
                    //有填就ok
                    //Showmessage(ColCName +','+ inttostr(OMRMpsV1.GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site))+','+inttostr(Pixel + SafePixel));
//SafePixel:=90000;
//ShowMessage(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
                      //Showmessage('oh');
@@ -13403,8 +13455,9 @@
    DenialTimeLb.Visible := True;
    DenialTimeLb.Caption := Format(ScanDenialHint,[ScanDenialTime]);
  end;
//ShowMessage(IntToStr(ScanDpi));
  R_W_Scanini('R'); //掃瞄設定的ini
//ShowMessage(IntToStr(ScanDpi));
  ScanDuplexCB.Checked := ScanDuplex;
  if FMode <> 'SAMPLESCAN' then
    LoadImgFile;
@@ -13564,8 +13617,7 @@
      ShowText := CaseID+_Msg('資料上傳中,請稍候');
      DataLoading(True,True);
//ShowMessage('NNNNN');
//ShowMessage('退出');
//Exit;
//ShowMessage('退出');DataLoading(False,False);Exit;
      If Not TransCaseID(TransPath,CaseID,True) Then  //傳送案件
      begin
        DataLoading(False,False);