unit U_TradeClothInspList_Auto;

interface

uses
  Windows, MMSystem, Messages, SysUtils, Variants, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
  cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System,
  RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, MovePanel, cxTextEdit,
  cxContainer, cxCurrencyEdit, BtnEdit, RM_e_main, RM_e_htm, RM_e_Graphic,
  RM_e_Jpeg, RM_e_txt, RM_e_csv, Math, Clipbrd, cxPC, cxLookAndFeels,
  cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxDateRanges, U_BaseList,
  dxDateTimeWheelPicker, dxSkinWXI, dxScrollbarAnnotations, cxMaskEdit,
  cxDropDownEdit, dxCore, cxDateUtils, dxLayoutcxEditAdapters, dxLayoutContainer,
  dxLayoutControl, System.Diagnostics, cxGroupBox, RM_BarCode, RM_RichEdit,
  RM_E_llPDF, dxX509Certificate, dxPDFCore, dxPDFBase, dxPDFText,
  dxPDFRecognizedObject, dxPDFForm, dxPDFFormData, dxPDFDocument, dxPrintUtils,
  dxCustomPreview, dxPDFDocumentViewer, dxPDFViewer, cxProgressBar,
  dxSkinsDefaultPainters;

type
  TfrmTradeClothInspList_Auto = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBClose: TToolButton;
    GPM_1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DS_1: TDataSource;
    OrderNo: TcxTextEdit;
    TBExport: TToolButton;
    Order_Main: TClientDataSet;
    conNO: TcxTextEdit;
    C_Name: TcxTextEdit;
    btnJBQ: TToolButton;
    RM1: TRMGridReport;
    RMDB_1: TRMDBDataSet;
    ADOQueryPrint: TADOQuery;
    MovePanel2: TMovePanel;
    C_Color: TcxTextEdit;
    BCIOID: TcxTextEdit;
    CIMachNo: TcxTextEdit;
    C_Pattern: TcxTextEdit;
    C_Code: TcxTextEdit;
    C_EColor: TcxTextEdit;
    ToolButton1: TToolButton;
    PM_1: TPopupMenu;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1ssel: TcxGridDBColumn;
    v1Column21: TcxGridDBColumn;
    v1Column32: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    Tv1Column4: TcxGridDBColumn;
    v1Column13: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    v1Column17: TcxGridDBColumn;
    v1Column18: TcxGridDBColumn;
    v1Column23: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column27: TcxGridDBColumn;
    v1Column28: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column20: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    v1Column12: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    v1Column42: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    Tv1Column7: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1MKXS: TcxGridDBColumn;
    v1Column34: TcxGridDBColumn;
    v1Column40: TcxGridDBColumn;
    v1Column46: TcxGridDBColumn;
    Tv1Column5: TcxGridDBColumn;
    Tv1Column8: TcxGridDBColumn;
    Tv1Column3: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    Panel6: TPanel;
    Label31: TLabel;
    LBCPAP: TLabel;
    BTLP: TButton;
    BTNP: TButton;
    Tv1Column10: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    Tv1Column6: TcxGridDBColumn;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    BatchNO: TcxTextEdit;
    Tv1Column11: TcxGridDBColumn;
    Tv1Column12: TcxGridDBColumn;
    ToolButton3: TToolButton;
    grade: TcxComboBox;
    CIIOFlag: TcxComboBox;
    TCBNOR: TcxComboBox;
    Tv1AddwetPresent: TcxGridDBColumn;
    Tv1AddLenPresent: TcxGridDBColumn;
    ToolButton5: TToolButton;
    Tout: TToolButton;
    Tunout: TToolButton;
    BegDate: TcxDateEdit;
    EndDate: TcxDateEdit;
    dxLayoutControl_queryGroup_Root: TdxLayoutGroup;
    dxLayoutControl_query: TdxLayoutControl;
    dxLayoutGroup1: TdxLayoutGroup;
    dxLayoutGroup2: TdxLayoutGroup;
    dxLayoutItem1: TdxLayoutItem;
    dxLayoutItem2: TdxLayoutItem;
    dxLayoutItem3: TdxLayoutItem;
    dxLayoutItem4: TdxLayoutItem;
    dxLayoutItem5: TdxLayoutItem;
    dxLayoutItem6: TdxLayoutItem;
    dxLayoutItem7: TdxLayoutItem;
    dxLayoutItem8: TdxLayoutItem;
    dxLayoutItem9: TdxLayoutItem;
    dxLayoutItem10: TdxLayoutItem;
    dxLayoutItem11: TdxLayoutItem;
    dxLayoutItem12: TdxLayoutItem;
    dxLayoutItem13: TdxLayoutItem;
    dxLayoutItem14: TdxLayoutItem;
    dxLayoutItem15: TdxLayoutItem;
    dxLayoutItem16: TdxLayoutItem;
    IsJYTime: TcxCheckBox;
    dxLayoutEmptySpaceItem1: TdxLayoutEmptySpaceItem;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    Tv1custName: TcxGridDBColumn;
    custName: TcxTextEdit;
    dxLayoutItem17: TdxLayoutItem;
    Tv1lenUnit: TcxGridDBColumn;
    RMRichObject1: TRMRichObject;
    RMBarCodeObject1: TRMBarCodeObject;
    RMXLSExport1: TRMXLSExport;
    RMCSVExport1: TRMCSVExport;
    RMllPDFExport1: TRMllPDFExport;
    RMXLSExport2: TRMXLSExport;
    Tv1unitPieces: TcxGridDBColumn;
    Tv1operators: TcxGridDBColumn;
    PopupMenu3: TPopupMenu;
    MenuItem1: TMenuItem;
    cxCheckBox1: TcxCheckBox;
    Tv1Column9: TcxGridDBColumn;
    Tv1Column13: TcxGridDBColumn;
    Tv1Column14: TcxGridDBColumn;
    ToolButton2: TToolButton;
    ToolButton4: TToolButton;
    Label2: TLabel;
    dxLayoutItem18: TdxLayoutItem;
    Label3: TLabel;
    dxLayoutItem19: TdxLayoutItem;
    dxLayoutAutoCreatedGroup1: TdxLayoutAutoCreatedGroup;
    dxLayoutAutoCreatedGroup2: TdxLayoutAutoCreatedGroup;
    cxTabControl1: TcxTabControl;
    Timer1: TTimer;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure btnJBQClick(Sender: TObject);
    procedure OrderNoKeyPress(Sender: TObject; var Key: Char);
    procedure BTLPClick(Sender: TObject);
    procedure BTNPClick(Sender: TObject);
    procedure TCBNORChange(Sender: TObject);
    procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure conNOKeyPress(Sender: TObject; var Key: Char);
    procedure CIIOFlagChange(Sender: TObject);
    procedure GradeChange(Sender: TObject);
    procedure KHConNOKeyPress(Sender: TObject; var Key: Char);
    procedure RKOrdIDKeyPress(Sender: TObject; var Key: Char);
    procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
    procedure cxPageControl1Change(Sender: TObject);
    procedure chkZFClick(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToutClick(Sender: TObject);
    procedure TunoutClick(Sender: TObject);
    procedure CIIOFlagPropertiesChange(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure MenuItem1Click(Sender: TObject);
    procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    procedure v1sselPropertiesEditValueChanged(Sender: TObject);
    procedure cxCheckBox1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
  private
    fstopwatch: TStopwatch;
    DQdate: TDateTime;
    FLeft, FTop: Integer;
    CurrentPage, RecordsNumber: Integer;
    procedure InitGrid();
    function Savedata(): Boolean;
    procedure SetStatus();
    procedure PrintCKMDG(MRKOrdID: string);
    procedure threadLoadform();
    function autoOut(mccids: string): boolean;
    procedure selDisp();
    { Private declarations }
  public
    FFInt, mCopys: Integer;
    canshu1: string;
    { Public declarations }
  end;

implementation

uses
  U_DataLink, U_TradePack, U_RTFun, U_globalVar, U_TradeInspEdit, U_ZDYHelp,
  U_LabelPrint, U_SysLogList, U_ControlData, U_FormLayOutDesign, U_MdPrint,
  U_BatchMdyData, U_iniparam;

{$R *.dfm}

procedure TfrmTradeClothInspList_Auto.SetStatus();
begin
//  btnEdit.Enabled := False;
//  TBZF.Enabled := False;
//  btnHY.Enabled := False;
//  btnJBQ.Enabled := False;
//  btnJYBG.Enabled := False;
//
//  btnEdit.Enabled := True;
//  TBZF.Enabled := True;
//  btnJBQ.Enabled := True;
//  btnJYBG.Enabled := True;

end;

procedure TfrmTradeClothInspList_Auto.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  Action := caFree;
end;

procedure TfrmTradeClothInspList_Auto.FormCreate(Sender: TObject);
begin
 // fstopwatch := TStopwatch.StartNew;

  inherited;
  cxgrid1.Align := alClient;
  DQdate := SGetServerDate(ADOQueryTemp);
end;

procedure TfrmTradeClothInspList_Auto.TBCloseClick(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfrmTradeClothInspList_Auto.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    Exit;
  TcxGridToExcel(self.Caption, cxgrid1);
end;

procedure TfrmTradeClothInspList_Auto.PrintCKMDG(MRKOrdID: string);
begin

end;

procedure TfrmTradeClothInspList_Auto.InitGrid();
var
  WSql: string;
begin
  MovePanel2.Left := (self.Width - MovePanel2.Width) div 2;
  MovePanel2.Visible := True;
  MovePanel2.Refresh;
  WSql := SLGetFilters(dxLayoutControl_query, 1, 2);
  if trim(WSql) <> '' then
  begin
    WSql := ' and ' + trim(WSql);
  end;

  if IsJYTime.Checked then
  begin
    WSql := WSql + ' and A.Filltime>' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.Date));
    WSql := WSql + ' and A.Filltime<=' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.Date + 1));
  end
  else
  begin
    if trim(WSql) <> '' then
      WSql := ' and 1=1' + trim(WSql)
    else
      WSql := WSql + ' and 1=2 ';
  end;
  if trim(WSql) = 'and 1=2' then
    Application.MessageBox('勾选检验日期或填入搜索条件', '提示', 0);
  if cxTabControl1.TabIndex = 0 then
  begin
    WSql := WSql + ' and isnull(A.ZDFlag,'''')=''0'' ';

  end;
  if cxTabControl1.TabIndex = 1 then
  begin
    WSql := WSql + ' and isnull(A.ZDFlag,'''')=''1'' ';

  end;

  try
    tv1.BeginUpdate();
    Order_Main.DisableControls;

    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      sql.Add('exec P_Trade_Insp_Get_Page ');
      sql.Add('@pageIndex=' + inttostr(CurrentPage));
      sql.Add(',@pageSize=' + inttostr(RecordsNumber));
      sql.Add(',@criteria= ' + quotedstr(WSql));
      Open;
    end;
    SCreateCDS(ADOQueryMain, Order_Main);
    SInitCDSData(ADOQueryMain, Order_Main);
    LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(Order_Main.FieldByName('TotalCount').AsInteger / RecordsNumber));

    MovePanel2.Visible := false;
  finally
    Order_Main.EnableControls;
    MovePanel2.Visible := false;
    TV1.DataController.Filter.Clear;
    tv1.EndUpdate;
  end;
end;

procedure TfrmTradeClothInspList_Auto.TBRafreshClick(Sender: TObject);
begin
//  OrderNo.SetFocus;
  CurrentPage := 1;
  InitGrid();
end;

procedure TfrmTradeClothInspList_Auto.FormShow(Sender: TObject);
begin
  inherited;

  canshu1 := self.fParameters1;
  CurrentPage := 1;
  RecordsNumber := 500;
  InitDevCombobox(ADOQueryTemp, grade, 'CPGRADE', false);

  EndDate.Date := SGetServerDate(ADOQueryTemp);
  BegDate.Date := EndDate.Date;
  mCopys := 1;
  //ReadCxGrid(Trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption);
 // InitGrid();
 // SetStatus();
  threadLoadform();
  application.ProcessMessages;
  //fstopwatch.Stop;
 // showMessage(IntToStr(fstopwatch.ElapsedMilliseconds) + ' ms');
end;

procedure TfrmTradeClothInspList_Auto.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  FLeft := X;
  FTop := Y;
end;

procedure TfrmTradeClothInspList_Auto.v1sselPropertiesEditValueChanged(Sender: TObject);
begin
  inherited;
  selDisp();
end;

procedure TfrmTradeClothInspList_Auto.btnJBQClick(Sender: TObject);
var
  fPrintFile, FLabVolume, MStrIn: string;
//  mCopys: Integer;
begin
  if Order_Main.IsEmpty then
    Exit;
//  if Order_Main.Locate('SSel', True, []) = False then
//  begin
//    Application.MessageBox('没有选择数据!', '提示', 0);
//    Exit;
//  end;
//  MStrIn := '2';
//  if not InputQuery('打印份数', '请输入', MStrIn) then
//  begin
//    Exit;
//  end;
//  mCopys := strToIntdef(trim(MStrIn), 1);
  Order_Main.DisableControls;
//  with Order_Main do
//  begin
//    First;
//    while not Eof do
//    begin
//      if Order_Main.FieldByName('SSel').AsBoolean = True then
//      begin
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('Update Trade_Cloth_Inspect Set ZDFlag=1,PrtCount=PrtCount+1,PrtDate=getdate(),Prter=''' + Trim(DName) + '''');
    sql.Add(' where CIID=''' + Trim(Order_Main.fieldbyname('CIID').AsString) + '''');
    ExecSQL;
  end;

  with ADOQueryPrint do
  begin
    Close;
    SQL.Clear;
    sql.Add(' EXEC P_Trade_Print_djd_Lab ');
    SQL.Add(' @CIID=''' + Trim(Order_Main.fieldbyname('CIID').AsString) + '''');
    Open;
  end;
  if ADOQueryPrint.IsEmpty then
  begin
    application.MessageBox('标签内容未找到！', '提示信息', MB_ICONERROR);
    exit;
  end;

  if Trim(ADOQueryPrint.fieldbyname('SLabVolume').AsString) <> '' then
    FLabVolume := Trim(ADOQueryPrint.fieldbyname('SLabVolume').AsString)
  else
    FLabVolume := Trim(ADOQueryPrint.fieldbyname('LabVolume').AsString);
         //默认标签
  if FLabVolume = '' then
    FLabVolume := trim(gDefaultLableFile);
  ExportFtErpFile(FLabVolume + '.rmf', ADOQueryTemp);
  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + FLabVolume + '.rmf';

  if FileExists(fPrintFile) then
  begin
    RM1.LoadFromFile(fPrintFile);
    Rm1.DefaultCopies := mCopys;
 // RM1.PrepareReport  ;
    RM1.PrintReport;
   // RM1.ExportTo(RMllPDFExport1,'C:\test.pdf');
  end
  else
  begin
    Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0);
  end;
//      end;
//      Next;
//    end;
//  end;
  Order_Main.EnableControls;
end;

function TfrmTradeClothInspList_Auto.Savedata(): Boolean;
var
  maxno, LLID: string;
  HXPS: Integer;
  HXQty, HXMQty: Double;
begin
  HXPS := 0;
  HXQty := 0;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select Top 1 * from Contract_Cloth_LL where OrdSubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + '''');
    sql.Add(' and FirstName=''' + Trim(Order_Main.fieldbyname('AOrddefstr4').AsString) + '''');
    Open;
  end;
  LLID := Trim(ADOQueryTemp.fieldbyname('LLID').AsString);
  if Trim(LLID) = '' then
  begin
    Result := False;
    Application.MessageBox('没有相对应的加工厂!', '提示', 0);
    Exit;
  end;
  try
    ADOQueryCmd.Connection.BeginTrans;
    if GetLSNo(ADOQueryCmd, maxno, 'HX', 'Contract_Cloth_BefChkHX', 2, 1) = False then
    begin
      Result := False;
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('取回修最大号失败!', '提示', 0);
      Exit;
    end;
    with Order_Main do
    begin
      First;
      while not Eof do
      begin
        if Order_Main.FieldByName('SSel').AsBoolean = True then
        begin
          HXPS := HXPS + 1;
          HXQty := HXQty + Order_Main.FieldByName('MJLen').Value;
        end;
        Next;
      end;
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('');
      Open;
    end;
  except
  end;
end;

procedure TfrmTradeClothInspList_Auto.OrderNoKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    CurrentPage := 1;
    InitGrid();
  end;
end;

procedure TfrmTradeClothInspList_Auto.BTLPClick(Sender: TObject);
begin
  if CurrentPage > 1 then
    CurrentPage := CurrentPage - 1;
  InitGrid();
end;

procedure TfrmTradeClothInspList_Auto.BTNPClick(Sender: TObject);
begin
  if CurrentPage < Order_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then
    CurrentPage := CurrentPage + 1;
  InitGrid();
end;

procedure TfrmTradeClothInspList_Auto.TCBNORChange(Sender: TObject);
begin
  RecordsNumber := StrToInt(TCBNOR.Text);
  CurrentPage := 1;
  InitGrid();
end;

procedure TfrmTradeClothInspList_Auto.Timer1Timer(Sender: TObject);
begin

  cxTabControl1.TabIndex := 0;
  sleep(100);
  TBRafresh.Click;
  sleep(500);
  if not Order_Main.IsEmpty then
  begin

    if Order_Main.FieldByName('ZDFlag').AsInteger = 0 then
    begin
      btnJBQ.Click;
//      ShowMessage('打印');
    end
    else
    begin

    end;
  end;

end;

procedure TfrmTradeClothInspList_Auto.ToolButton1Click(Sender: TObject);
begin
  WriteCxGrid(Trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption);
  if gIsCanDesign then
  begin
    saveLayOut(application, dxLayoutControl_query, ADOQueryBaseCmd, PWideChar(fDllFileName + '|' + Self.Name + '|' + dxLayoutControl_query.Name + '.ini'));
  end;
end;

procedure TfrmTradeClothInspList_Auto.ToolButton2Click(Sender: TObject);
begin
  Timer1.Enabled := False;
  Label2.Visible := True;
  Label3.Visible := False;
end;

procedure TfrmTradeClothInspList_Auto.ToolButton3Click(Sender: TObject);
var
  FPrintFile, MPacketId, MLabPackage: string;
begin

  if Order_Main.IsEmpty then
    Exit;
  if Order_Main.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  Order_Main.DisableControls;
  with Order_Main do
  begin
    filter := 'SSel=1 ';
    filtered := true;
  end;
  with Order_Main do
  begin
    while not Order_Main.eof do
    begin
      MPacketId := Trim(Order_Main.fieldbyname('PacketId').AsString);
      if MPacketId = '' then
      begin
        Order_Main.Next;
        Continue;
      end;
      if trim(MPacketId) <> '' then
      begin
        with ADOQueryPrint do
        begin
          Close;
          SQL.Clear;
          SQL.Add('exec P_Trade_Insp_Prt_djd_PackLab ' + quotedstr(MPacketId));
          Open;
        end;
        //
        if Trim(ADOQueryPrint.fieldbyname('SLabPackage').AsString) <> '' then
          MLabPackage := trim(ADOQueryPrint.FieldByName('SLabPackage').AsString)
        else
          MLabPackage := trim(ADOQueryPrint.FieldByName('LabPackage').AsString);

        if MLabPackage = '' then
          MLabPackage := trim(gDefaultPackLableFile);

        ExportFtErpFile(Trim(MLabPackage) + '.rmf', ADOQueryTemp);

        FPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(MLabPackage) + '.rmf';
        if not FileExists(FPrintFile) then
        begin
          Application.MessageBox(PChar('没有找' + FPrintFile), '提示', 0);
          Exit;
        end;
        if FileExists(FPrintFile) then
        begin
          RM1.LoadFromFile(FPrintFile);
          Rm1.DefaultCopies := 1;
          RM1.PrintReport;
        end
        else
        begin
          Application.MessageBox(PChar('没有找' + FPrintFile), '提示', 0);
        end;
        while Order_Main.Locate('SSel;PacketId', VarArrayOf([True, MPacketId]), []) do
        begin
          with Order_Main do
          begin
            Edit;
            Order_Main.FieldByName('SSel').Value := False;
            Post;
          end;
        end;
      end;
      Order_Main.Next;
    end;
  end;
  Order_Main.filtered := false;
  Order_Main.EnableControls;

end;

procedure TfrmTradeClothInspList_Auto.ToolButton4Click(Sender: TObject);
begin
  Timer1.Enabled := true;
  Label2.Visible := True;
  Label3.Visible := False;
end;

procedure TfrmTradeClothInspList_Auto.ToolButton5Click(Sender: TObject);
begin
  inherited;
  frmSysLogList := TfrmSysLogList.create(self);
  with frmSysLogList do
  begin
    fModel := self.caption;
    FMainId := ''; // Trim(Self.Order_Main.FieldByName('mainId').AsString);
    showmodal;
    free;
  end;
end;

procedure TfrmTradeClothInspList_Auto.ToolButton6Click(Sender: TObject);
begin
//  with ADOQueryTemp do
//  begin
//    close;
//    sql.Clear;
//    sql.Add('SELECT * FROM [dbo].[Bs_Report_Cloud_File]');
//    sql.Add('where BLCLID=''D22E6757-43C2-45B9-AE14-921BD2293E50''');
//    open;
//  end;
//  if ADOQueryTemp.RecordCount>0 then
//  begin
//    rm1.LoadPreparedReportFromBlobField(TBlobField(ADOQueryTemp.fieldByName('GenerateFiles')));
//    rm1.ShowPreparedReport;
//    // rm1.PrintPreparedReport('',1,true,rmppAll)  ;
//  end;
end;

procedure TfrmTradeClothInspList_Auto.ToolButton7Click(Sender: TObject);
var
  MStrIn: string;
begin
  MStrIn := '1';
  if not InputQuery('打印份数', '请输入', MStrIn) then
  begin
    Exit;
  end;
  mCopys := strToIntdef(trim(MStrIn), 1);
end;

procedure TfrmTradeClothInspList_Auto.ToolButton8Click(Sender: TObject);
begin
  if Order_Main.Locate('ssel', True, []) = False then
  begin
    Application.MessageBox('请先选择数据!', '提示', 0);
    Exit;
  end;
  if Application.MessageBox('确定是不需要自动打印的吗？', '提示', 32 + 4) <> IDYES then
    Exit;

  Order_Main.DisableControls;
  with Order_Main do
  begin
    First;
    while not Eof do
    begin
      if Order_Main.FieldByName('SSel').AsBoolean = True then
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('update Trade_Cloth_Inspect set ZDFlag=1 where CIID=''' + Trim(Order_Main.fieldbyname('CIID').AsString) + '''');
          ExecSQL;
        end;
        Order_Main.Edit;

        FieldByName('SSel').Value := false;
        Order_Main.Post;
      end
      else
        Next;
    end;
  end;
  Order_Main.EnableControls;

end;

procedure TfrmTradeClothInspList_Auto.ToutClick(Sender: TObject);
begin
  if Order_Main.Locate('ssel', True, []) = False then
  begin
    Application.MessageBox('请先选择数据!', '提示', 0);
    Exit;
  end;
  if Application.MessageBox('确定要出库吗？', '提示', 32 + 4) <> IDYES then
    Exit;

  Order_Main.DisableControls;
  with Order_Main do
  begin
    First;
    while not Eof do
    begin
      if Order_Main.FieldByName('SSel').AsBoolean = True then
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('update Trade_Cloth_Inspect set CIIOFlag=''已出库'',IOTime=getdate() where CIID=''' + Trim(Order_Main.fieldbyname('CIID').AsString) + '''');
          ExecSQL;
        end;
        Order_Main.Edit;
        FieldByName('CIIOFlag').Value := '已出库';
        FieldByName('SSel').Value := false;
        Order_Main.Post;
      end
      else
        Next;
    end;
  end;
  Order_Main.EnableControls;
end;

procedure TfrmTradeClothInspList_Auto.TunoutClick(Sender: TObject);
begin
  if Order_Main.Locate('ssel', True, []) = False then
  begin
    Application.MessageBox('请先选择数据!', '提示', 0);
    Exit;
  end;
  if Application.MessageBox('确定要撤销出库吗？', '提示', 32 + 4) <> IDYES then
    Exit;
  try
    Order_Main.DisableControls;
    with Order_Main do
    begin
      First;
      while not Eof do
      begin
        if Order_Main.FieldByName('SSel').AsBoolean = True then
        begin
          //begin
          with ADOQueryCmd do
          begin
            Close;
            sql.Clear;
            sql.Add('update Trade_Cloth_Inspect set CIIOFlag=''已入库'',IOTime=null where CIID=''' + Trim(Order_Main.fieldbyname('CIID').AsString) + '''');
            ExecSQL;
          end;

          Edit;
          FieldByName('CIIOFlag').Value := '已入库';
          FieldByName('SSel').Value := false;
          Post;

          Next;
        end
        else
          Next;
      end;
    end;
  finally
    Order_Main.EnableControls;
    TBRafresh.Click;
  end;

end;

procedure TfrmTradeClothInspList_Auto.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  Clipboard.SetTextBuf(PChar(Trim(Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;

procedure TfrmTradeClothInspList_Auto.chkZFClick(Sender: TObject);
begin
  inherited;
  CurrentPage := 1;
  SetStatus();
  InitGrid();
end;

procedure TfrmTradeClothInspList_Auto.conNOKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    CurrentPage := 1;
    InitGrid();
  end;
end;

procedure TfrmTradeClothInspList_Auto.cxCheckBox1Click(Sender: TObject);
begin
  if not cxCheckBox1.Checked then
    cxCheckBox1.Caption := '选择数据汇总显示'
  else
    selDisp();
end;

procedure TfrmTradeClothInspList_Auto.cxPageControl1Change(Sender: TObject);
begin
  CurrentPage := 1;
  SetStatus();
  InitGrid();
end;

procedure TfrmTradeClothInspList_Auto.cxTabControl1Change(Sender: TObject);
begin

  InitGrid();
end;

procedure TfrmTradeClothInspList_Auto.CIIOFlagChange(Sender: TObject);
begin
  CurrentPage := 1;
  InitGrid();
end;

procedure TfrmTradeClothInspList_Auto.CIIOFlagPropertiesChange(Sender: TObject);
begin
  inherited;

  CurrentPage := 1;
  InitGrid();

end;

procedure TfrmTradeClothInspList_Auto.GradeChange(Sender: TObject);
begin
  CurrentPage := 1;
  InitGrid();
end;

procedure TfrmTradeClothInspList_Auto.KHConNOKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    CurrentPage := 1;
    InitGrid();
  end;
end;

procedure TfrmTradeClothInspList_Auto.MenuItem1Click(Sender: TObject);
var
  fPrintFile, FLabVolume, MStrIn: string;
  mCopys: Integer;
begin
  if Order_Main.IsEmpty then
    Exit;
  if Order_Main.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  MStrIn := '2';
  if not InputQuery('打印份数', '请输入', MStrIn) then
  begin
    Exit;
  end;
  mCopys := strToIntdef(trim(MStrIn), 2);
  Order_Main.DisableControls;
  with Order_Main do
  begin
    First;
    while not Eof do
    begin
      if Order_Main.FieldByName('SSel').AsBoolean = True then
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('Update Trade_Cloth_Inspect Set PrtCount=PrtCount+1,PrtDate=getdate(),Prter=''' + Trim(DName) + '''');
          sql.Add(' where CIID=''' + Trim(Order_Main.fieldbyname('CIID').AsString) + '''');
          ExecSQL;
        end;

        with ADOQueryPrint do
        begin
          Close;
          SQL.Clear;
          sql.Add(' EXEC P_Trade_Print_djd_Lab ');
          SQL.Add(' @CIID=''' + Trim(Order_Main.fieldbyname('CIID').AsString) + '''');
          Open;
        end;
        if ADOQueryPrint.IsEmpty then
        begin
          application.MessageBox('标签内容未找到！', '提示信息', MB_ICONERROR);
          exit;
        end;

        if Trim(ADOQueryPrint.fieldbyname('SLabVolume').AsString) <> '' then
          FLabVolume := Trim(ADOQueryPrint.fieldbyname('SLabVolume').AsString)
        else
          FLabVolume := Trim(ADOQueryPrint.fieldbyname('LabVolume').AsString);
         //默认标签
        if FLabVolume = '' then
          FLabVolume := trim(gDefaultLableFile);
        ExportFtErpFile(FLabVolume + '.rmf', ADOQueryTemp);
        fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + FLabVolume + '.rmf';

        if FileExists(fPrintFile) then
        begin
          RM1.LoadFromFile(fPrintFile);
         // if Trim(ADOQueryPrint.fieldbyname('LabVolume').AsString) <> '次品标签' then
         //   Rm1.DefaultCopies := 2
         // else
          Rm1.DefaultCopies := mCopys;
           // RM1.PrepareReport  ;

          RM1.ShowReport;
           // RM1.ExportTo(RMllPDFExport1,'C:\test.pdf');
        end
        else
        begin
          Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0);
        end;
      end;
      Next;
    end;
  end;
  Order_Main.EnableControls;

end;

procedure TfrmTradeClothInspList_Auto.N2Click(Sender: TObject);
begin
 // SelOKNoFiler(Tv1, True); //全选
  try
    Order_Main.DisableControls;
    Order_Main.First;
    while not Order_Main.eof do
    begin
      Order_Main.Edit;
      Order_Main.FieldByName('ssel').Value := true;
      Order_Main.Post;

      Order_Main.Next;
    end;
  finally
    Order_Main.EnableControls;
    selDisp();
  end;
end;

procedure TfrmTradeClothInspList_Auto.N3Click(Sender: TObject);
begin
  //SelOKNoFiler(Tv1, False); //全弃
  try
    Order_Main.DisableControls;
    Order_Main.First;
    while not Order_Main.eof do
    begin
      Order_Main.Edit;
      Order_Main.FieldByName('ssel').Value := false;
      Order_Main.Post;

      Order_Main.Next;
    end;
  finally
    Order_Main.EnableControls;

    selDisp();
  end;
end;

procedure TfrmTradeClothInspList_Auto.RKOrdIDKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    CurrentPage := 1;
    InitGrid();
  end;
end;

procedure TfrmTradeClothInspList_Auto.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  if pos('已出库', trim(AViewInfo.Text)) > 0 then
  begin
    ACanvas.Canvas.Brush.Color := RGB(237, 164, 146);
    //  ACanvas.Canvas.Font.Color := clred;
  end
  else if pos('次品', trim(AViewInfo.Text)) > 0 then
  begin
    ACanvas.Canvas.Brush.Color := RGB(0, 191, 96);
  end;
 // else if pos('√ ', trim(AViewInfo.Text)) > 0 then
 // begin
   // ACanvas.Canvas.Brush.Color := $000C000;
   // if (glideType.Text<>'') and (trim(GlideName.Text)=trim(AViewInfo.Text)) then
   // begin
    //  ACanvas.Canvas.Font.Color := clRed;
   // end;
 // end

end;

procedure TfrmTradeClothInspList_Auto.Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
var
  FValue: string;
  FBounds: TRect;
begin
  FBounds := AViewInfo.Bounds;
  if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
  begin
    ACanvas.FillRect(FBounds);
    ACanvas.DrawComplexFrame(FBounds, clBlack, clBlack, [bBottom, bLeft, bRight], 1);
    FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1);
    InflateRect(FBounds, -3, -2); //Platform specific. May not work on Linux.
    ACanvas.Font.Color := clBlack;
    ACanvas.Brush.Style := bsClear;
    ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
    ADone := True;
  end;
end;

/////////////////////////////////////////////////
function TfrmTradeClothInspList_Auto.autoOut(mCcids: string): boolean;
begin
  try
    result := false;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('update Trade_Cloth_Inspect set CIIOFlag=''已出库'',IOTime=getdate()');
      sql.Add(' where EXISTS(select X.RTValue from  [dbo].[F_Tool_SplitString](''' + mCcids + ''','','')  X where X.RTValue=CIID) ');
      execsql;
    end;
    result := true;
  except
    application.MessageBox('执行自动出库时发生错误!', '警告信息', 0)
  end;
end;

////////////////////////////////////////////////
procedure TfrmTradeClothInspList_Auto.threadLoadform();
var
  thread: TThread;
begin

  thread := TThread.CreateAnonymousThread(
    procedure
    begin
      TThread.Synchronize(nil,
        procedure
        begin
          ReadCxGrid(Trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption);
          InitGrid();
        end)
    end);

  thread.FreeOnTerminate := True;
  thread.Start;

end;

/////////////////////////////////////////////////////
procedure TfrmTradeClothInspList_Auto.selDisp();
var
  msumRoll: integer;
  msumMeter, msumWeight, msumNetWeight, mSumYard: double;
  mrecNo: integer;
begin
  if not cxCheckBox1.Checked then
    exit;

  mrecNo := Order_Main.RecNo;
  try
    tv1.BeginUpdate();
    Order_Main.DisableControls;

    msumRoll := 0;
    msumMeter := 0;
    mSumYard := 0;
    msumWeight := 0;
    msumNetWeight := 0;
    with Order_Main do
    begin
      Order_Main.first;
      while not eof do
      begin
        if Order_Main.FieldByName('ssel').AsBoolean then
        begin
          msumRoll := msumRoll + 1;
          msumMeter := msumMeter + fieldByName('Meter').AsFloat;
          mSumYard := mSumYard + fieldByName('Yardage').AsFloat;
          msumWeight := msumWeight + fieldByName('GrossWeight').AsFloat;
          msumNetWeight := msumNetWeight + fieldByName('NetWeight').AsFloat;
        end;
        next;
      end;
      cxCheckBox1.Caption := '已选 ' + inttoStr(msumRoll) + ' 卷 ';
      if msumNetWeight > 0 then
      begin
        cxCheckBox1.Caption := cxCheckBox1.Caption + '净重:' + floattoStr(msumNetWeight) + 'kg ';
      end;
      if msumWeight > 0 then
      begin
        cxCheckBox1.Caption := cxCheckBox1.Caption + '毛重:' + floattoStr(msumWeight) + 'kg ';
      end;
      if msumMeter > 0 then
      begin
        cxCheckBox1.Caption := cxCheckBox1.Caption + '米数:' + floattoStr(msumMeter) + ' ';
        cxCheckBox1.Caption := cxCheckBox1.Caption + '码数:' + floattoStr(mSumYard) + ' ';
      end;
    end;
  finally
    Order_Main.RecNo := mrecNo;
    Order_Main.EnableControls;
    tv1.EndUpdate;
  end;

end;

end.

