unit U_CKProductBCPOutList;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
  cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
  cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses,
  cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls,
  ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient,
  cxDropDownEdit, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System,
  RM_GridReport, cxCheckBox, Menus, MovePanel, RM_E_llPDF, cxCalendar, Math,
  Clipbrd, cxPC, cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
  dxBarBuiltInMenu;

type
  TfrmCKProductBCPOutList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBExport: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    Label2: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    CDS_Main: TClientDataSet;
    Tv1: TcxGridDBTableView;
    cxGrid2Level1: TcxGridLevel;
    cxGrid2: TcxGrid;
    cxgrdMPRTCodeName: TcxGridDBColumn;
    cxgrdPRTColor: TcxGridDBColumn;
    cxgrdKGQty: TcxGridDBColumn;
    cxgrdQty: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    cxgrdQtyUnit: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    cxgrdMPRTMF: TcxGridDBColumn;
    cxgrdMPRTKZ: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    RMXLSExport1: TRMXLSExport;
    v1Column4: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    cxgrdMPRTSpec: TcxGridDBColumn;
    TBCKCX: TToolButton;
    v1Column11: TcxGridDBColumn;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    MovePanel2: TMovePanel;
    DS_JuanPRT: TDataSource;
    cxGridPopupMenu2: TcxGridPopupMenu;
    cxgrdNETKGQty: TcxGridDBColumn;
    cxgrdKuangHao: TcxGridDBColumn;
    v1Column19: TcxGridDBColumn;
    v1Column20: TcxGridDBColumn;
    cxgrdAPID: TcxGridDBColumn;
    v1Column22: TcxGridDBColumn;
    begtime: TDateTimePicker;
    endTime: TDateTimePicker;
    ADOQueryPrint: TADOQuery;
    RMDB_Main: TRMDBDataSet;
    v1rkplace: TcxGridDBColumn;
    RMDBHZ: TRMDBDataSet;
    CDS_HZ: TClientDataSet;
    RM3: TRMGridReport;
    v1Column24: TcxGridDBColumn;
    RMDBPRT: TRMDBDataSet;
    CDS_PRT: TClientDataSet;
    lblKHName: TLabel;
    KHName: TEdit;
    cxgrdCustomerNoName: TcxGridDBColumn;
    IsJYTime: TCheckBox;
    v1Column13: TcxGridDBColumn;
    ToolButton2: TToolButton;
    ToolButton1: TToolButton;
    ComboBox1: TComboBox;
    lblAPID: TLabel;
    APID: TEdit;
    lblMPRTCodeName: TLabel;
    lblorderNo: TLabel;
    lblMJID: TLabel;
    lblMPRTKZ: TLabel;
    lblMPRTMF: TLabel;
    lblCPType: TLabel;
    lblPRTColor: TLabel;
    lblMPRTSpec: TLabel;
    lblRKplace: TLabel;
    lblConNo: TLabel;
    lblJYXH: TLabel;
    Label14: TLabel;
    MPRTCodeName: TEdit;
    orderNo: TEdit;
    MJID: TEdit;
    MJKZ: TEdit;
    MJMF: TEdit;
    CPType: TComboBox;
    RKplace: TEdit;
    PRTColor: TEdit;
    MPRTSpec: TEdit;
    ConNo: TEdit;
    JYXH: TEdit;
    CustomerNoName: TEdit;
    cxgrdJQty: TcxGridDBColumn;
    N3: TMenuItem;
    Panel2: TPanel;
    Panel3: TPanel;
    cxTabControl1: TcxTabControl;
    Panel6: TPanel;
    Label31: TLabel;
    LBCPAP: TLabel;
    BTLP: TButton;
    BTNP: TButton;
    TCBNOR: TComboBox;
    Label1: TLabel;
    CKOrdNo: TEdit;
    v1Column7: TcxGridDBColumn;
    Label3: TLabel;
    YWY: TEdit;
    VC_LCKNote: TcxGridDBColumn;
    Panel5: TPanel;
    Edit1: TEdit;
    Panel4: TPanel;
    Edit2: TEdit;
    Tv1Column1: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    Tv1Column3: TcxGridDBColumn;
    Tv1Column4: TcxGridDBColumn;
    ToolButton3: TToolButton;
    Panel7: TPanel;
    Label28: TLabel;
    Button5: TButton;
    Button6: TButton;
    Edit3: TEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ConNoMChange(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure TBCKCXClick(Sender: TObject);
    procedure orderNoKeyPress(Sender: TObject; var Key: Char);
    procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure BTNPClick(Sender: TObject);
    procedure BTLPClick(Sender: TObject);
    procedure TCBNORChange(Sender: TObject);
    procedure CPTypeChange(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure CustomerNoNameKeyPress(Sender: TObject; var Key: Char);
    procedure EndDateChange(Sender: TObject);
    procedure BegDateChange(Sender: TObject);
    procedure v1Column8PropertiesEditValueChanged(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    FLeft, FTop: Integer;
    FAPID: string;
    CurrentPage, RecordsNumber: Integer;
    procedure InitGrid();
    procedure SetStatus();
    { Private declarations }
  public
    canshu1: string;
    { Public declarations }
  end;

//var
//  frmCKProductBCPOutList: TfrmCKProductBCPOutList;

implementation

uses
  U_DataLink, U_Fun, U_SysLogHelp;

{$R *.dfm}
procedure TfrmCKProductBCPOutList.SetStatus();
var
  i: Integer;
begin
  TBCKCX.Visible := false;
  VC_LCKNote.Visible := false;
  case cxTabControl1.TabIndex of
    0:
      begin
        Panel6.Visible := False;
        ClearOrHideControls(Panel1, '0', True, True);
        ClearOrHideControls(Panel1, '1', True, False);
        ClearOrHideControls(Panel1, '2', True, False);

        for i := 0 to tv1.ColumnCount - 1 do
        begin
          tv1.Columns[i].Visible := false;
        end;
        IsVisibleTV(Panel1, TV1, '0', True);
        cxgrdJQty.Visible := True;
        cxgrdKGQty.Visible := True;
        cxgrdNETKGQty.Visible := True;
        cxgrdQty.Visible := True;
        cxgrdQtyUnit.Visible := True;
      end;
    1:
      begin
        Panel6.Visible := False;
        ClearOrHideControls(Panel1, '0', false, True);
        ClearOrHideControls(Panel1, '1', True, True);
        ClearOrHideControls(Panel1, '2', True, False);

        for i := 0 to tv1.ColumnCount - 1 do
        begin
          tv1.Columns[i].Visible := false;
        end;
        IsVisibleTV(Panel1, TV1, '0', True);
        IsVisibleTV(Panel1, TV1, '1', True);
        cxgrdJQty.Visible := True;
        cxgrdKGQty.Visible := True;
        cxgrdNETKGQty.Visible := True;
        cxgrdQty.Visible := True;
        cxgrdQtyUnit.Visible := True;
        v1Column2.Visible := True;
        VC_LCKNote.Visible := True;
      end;
    2:
      begin
        for i := 0 to tv1.ColumnCount - 1 do
        begin
          tv1.Columns[i].Visible := True;
        end;
        cxgrdJQty.Visible := false;

        ClearOrHideControls(Panel1, '0', False, True);
        ClearOrHideControls(Panel1, '1', False, True);
        ClearOrHideControls(Panel1, '2', False, True);
        if canshu1 = '管理' then
          TBCKCX.Visible := true;

        Panel6.Visible := True;

      end;
  end;
end;

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

procedure TfrmCKProductBCPOutList.FormCreate(Sender: TObject);
begin
  EndDate.DateTime := SGetServerDateTime(ADOQueryTemp);
  BegDate.DateTime := EndDate.DateTime - 20;
end;

procedure TfrmCKProductBCPOutList.InitGrid();
var
  fwhere, Pwhere: string;
begin
  MovePanel2.Left := (self.Width - MovePanel2.Width) div 2;
  MovePanel2.Visible := True;
  MovePanel2.Refresh;
  Pwhere := SGetFilters(Panel1, 1, 2);

  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      case cxTabControl1.TabIndex of
        0:
          begin
            if trim(Pwhere) <> '' then
              fwhere := fwhere + ' where ' + trim(Pwhere);
            sql.Add('select * from (   ');
            sql.Add('select SUM(A.KGQty) KGQty,SUM(A.Qty) Qty,SUM(A.NetKGQty) NETKGQty,count(A.MJID) JQty,A.QtyUnit ');
            sql.Add(',B.CustomerNoName');
            sql.Add('from  CK_BanCP_CR A  inner join JYOrder_Main B on A.MainId=B.MainId  ');
            sql.Add('inner join JYOrder_Sub C on A.SubId=C.SubId   where A.CRFlag=''出库''  ');
            sql.Add(' and A.CRTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)));
            sql.Add(' and A.CRTime<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)));
            sql.Add(' group by  B.CustomerNoName,A.QtyUnit');
            sql.Add(' ) AA ' + fwhere);
          end;
        1:
          begin
            if trim(Pwhere) <> '' then
              fwhere := fwhere + ' where ' + trim(Pwhere);
            sql.Add('select * from (   ');
            sql.Add('select convert(varchar(10),A.CRTime,120) CRTime,SUM(A.KGQty) KGQty,SUM(A.Qty) Qty,SUM(A.NetKGQty) NetKGQty,count(A.MJID) JQty,A.QtyUnit,A.ganghao ');
            sql.Add(' ,B.CustomerNoName,B.ConNo,B.YWY,B.OrderNo,B.MPRTCode,B.MPRTCodeName,B.MPRTSpec,C.PRTColor  ');
            sql.Add(' ,A.MJMF,A.MJKZ,A.APID,A.CKOrdNo  ');
            sql.Add(' ,D.LCKNote  ');
            sql.Add('from  CK_BanCP_CR A  inner join JYOrder_Main B on A.MainId=B.MainId  ');
            sql.Add('inner join JYOrder_Sub C on A.SubId=C.SubId    ');
            sql.Add('inner join JYOrder_Car D on D.CarNo=A.APID ');
            sql.Add('   where A.CRFlag=''出库''  ');
            sql.Add(' and A.CRTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)));
            sql.Add(' and A.CRTime<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)));
            sql.Add(' group by  convert(varchar(10),A.CRTime,120),B.CustomerNoName,D.LCKNote,A.QtyUnit,A.ganghao,B.ConNo,B.YWY,B.OrderNo,B.MPRTCode,B.MPRTCodeName ,A.MJMF,A.MJKZ ,B.MPRTSpec,C.PRTColor ,A.APID,A.CKOrdNo  ');
            sql.Add(' ) AA ' + fwhere);
          end;

        2:
          begin
            if IsJYTime.Checked then
            begin
              fwhere := ' where CRTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime));
              fwhere := fwhere + ' and CRTime<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1));
              if trim(Pwhere) <> '' then
                fwhere := fwhere + ' and ' + trim(Pwhere);
            end
            else
            begin
              if trim(Pwhere) <> '' then
                fwhere := fwhere + ' where ' + trim(Pwhere);
            end;

            sql.Add('exec P_Page_FinishClothCK ');
            sql.Add('@pageIndex=' + inttostr(CurrentPage));
            sql.Add(',@pageSize=' + inttostr(RecordsNumber));
            sql.Add(',@criteria= ' + quotedstr(fwhere));
          end;
      end;
//      ShowMessage(SQL.TEXT);
      Open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
    if cxTabControl1.TabIndex = 1 then
      CDS_Main.Locate('APID', FAPID, []);
    if cxTabControl1.TabIndex = 2 then
      LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber));
    MovePanel2.Visible := false;
  finally
    ADOQueryMain.EnableControls;
    MovePanel2.Visible := false;
  end;

end;

procedure TfrmCKProductBCPOutList.TBRafreshClick(Sender: TObject);
begin
  CurrentPage := 1;
  SetStatus();
  InitGrid();
end;

procedure TfrmCKProductBCPOutList.ConNoMChange(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  end;
end;

procedure TfrmCKProductBCPOutList.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid(trim(self.Caption), Tv1, '三水成品仓库');
  Close;
end;

procedure TfrmCKProductBCPOutList.FormShow(Sender: TObject);
begin
//  ReadCxGrid(trim(self.Caption), Tv1, '三水成品仓库');
  CurrentPage := 1;
  RecordsNumber := 500;
  SetStatus();
end;

procedure TfrmCKProductBCPOutList.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    exit;
  SelExportData(Tv1, ADOQueryMain, '');
end;

procedure TfrmCKProductBCPOutList.N1Click(Sender: TObject);
begin
  SelOKNo(CDS_Main, True);
end;

procedure TfrmCKProductBCPOutList.N2Click(Sender: TObject);
begin
  SelOKNo(CDS_Main, False);
end;

procedure TfrmCKProductBCPOutList.TBCKCXClick(Sender: TObject);
var
  FFMainId, FPrice, strsql: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  if cxTabControl1.TabIndex <> 2 then
    Exit;
  if CDS_Main.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据', '提示', 0);
    Exit;
  end;
  if Application.MessageBox('确定要撤销数据吗？', '提示', 32 + 4) <> IDYES then
    Exit;
  MovePanel2.Visible := True;
  MovePanel2.Refresh;
  try
    ADOQueryCmd.Connection.BeginTrans;
    CDS_Main.DisableControls;
    with CDS_Main do
    begin
      while CDS_Main.Locate('SSel', True, []) = True do
      begin
        begin
          with ADOQueryCmd do
          begin
            Close;
            sql.Clear;
            sql.Add('Update CK_BanCP_CR Set CRFlag=''待出库'',CRType='''',CRTime=NULL,CRNote='''',CKOrdNo='''' ');
            sql.Add(' where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + '''');
            sql.Add(' and CRFlag=''出库''');

            sql.Add(' UPdate CK_BanCP_KC Set KCValid=''Y'' ');
            SQL.Add(' where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + '''');

            sql.Add(' Update WFB_MJJY Set MJStr2=''已入库'' where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + ''' ');

            ExecSQL;
          end;

          strsql := '卷ID：' + trim(CDS_Main.FieldByName('MJID').AsString) + ' 出库单号：' + trim(CDS_Main.FieldByName('CKOrdNo').AsString);

          with ADOQueryCmd do
          begin
            Close;
            sql.Clear;
            sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
            sql.Add(' ' + quotedstr(trim(DName)));
            sql.Add(',getdate() ');
            sql.Add(',' + quotedstr(trim(self.Caption)));
            sql.Add(',' + quotedstr(trim('出库撤销')));
            sql.Add(',' + quotedstr(trim(strsql)));
            sql.Add(',' + quotedstr(trim('成功')));
            sql.Add(')');
            ExecSQL;
          end;

          with ADOQueryCmd do
          begin
            Close;
            sql.Clear;
            sql.Add('exec P_Update_FHSQ @CKOrdNo=' + quotedstr(trim(CDS_Main.FieldByName('CKOrdNo').AsString)));
            ExecSQL;
          end;
          CDS_Main.Delete;
        end;
      end;
    end;
    CDS_Main.EnableControls;

    ADOQueryCmd.Connection.CommitTrans;
    MovePanel2.Visible := False;
    Exit;
  except
    MovePanel2.Visible := False;
    CDS_Main.EnableControls;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('撤销异常！', '提示', 0);
  end;

end;

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

procedure TfrmCKProductBCPOutList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
var
  Tabint: integer;
begin
  Tabint := cxTabControl1.TabIndex;
  case Tabint of
    0:
      begin
        AssignmentControls(Panel1, CDS_Main, '0');
        cxTabControl1.TabIndex := 1;
      end;
    1:
      begin
        FAPID := CDS_Main.fieldbyname('APID').AsString;
        AssignmentControls(Panel1, CDS_Main, '1');
        cxTabControl1.TabIndex := 2;
      end;
  end;
end;

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

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

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

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

procedure TfrmCKProductBCPOutList.CPTypeChange(Sender: TObject);
begin
  CurrentPage := 1;
  InitGrid();
end;

procedure TfrmCKProductBCPOutList.ToolButton2Click(Sender: TObject);
begin
  frmSysLogHelp := TfrmSysLogHelp.create(self);
  with frmSysLogHelp do
  begin
    fModel := self.caption;
  //  facction:='生产指示单删除';
    showmodal;
    free;
  end;
end;

procedure TfrmCKProductBCPOutList.ToolButton1Click(Sender: TObject);
var
  fPrintFile: string;
  Txt, fImagePath: string;
  Moudle: THandle;
  Makebar: TMakebar;
  Mixtext: TMixtext;
//  kj,kjw:DOUBLE;
begin
  if CDS_Main.IsEmpty then
    Exit;
  ExportFtErpFile(ComboBox1.Text + '.rmf', ADOQueryTemp);

  with CDS_Main do
  begin
    if (ComboBox1.Text = '仓库码单(公斤)实际') or (ComboBox1.Text = '仓库码单(米数)实际') then
    begin
      with ADOQueryPrint do
      begin
        Close;
        SQL.Clear;
        sql.Add(' exec P_Print_CKMDWSQ1 ');
        SQL.Add(' @CKOrdNO=' + quotedstr(Trim(CDS_Main.fieldbyname('CKOrdNO').AsString)));
        SQL.Add(' ,@kj=' + FloatToStr(StrToFloatDef(Edit1.text, 0)));
        SQL.Add(' ,@kjw=' + FloatToStr(StrToFloatDef(Edit2.text, 0)));
        Open;
      end;
    end;
    if (ComboBox1.Text = '仓库码单实际') then
    begin
      with ADOQueryPrint do
      begin
        Close;
        SQL.Clear;
        sql.Add(' exec P_Print_CKMDWSQ1F ');
        SQL.Add(' @CKOrdNO=' + quotedstr(Trim(CDS_Main.fieldbyname('CKOrdNO').AsString)));
        SQL.Add(' ,@kj=' + FloatToStr(StrToFloatDef(Edit1.text, 0)));
        SQL.Add(' ,@kjw=' + FloatToStr(StrToFloatDef(Edit2.text, 0)));
        Open;
      end;
    end;

    if (ComboBox1.Text = '仓库码单') then
    begin
      with ADOQueryPrint do
      begin
        Close;
        SQL.Clear;
        sql.Add(' exec P_Print_CKMDWSQ2F ');
        SQL.Add(' @CKOrdNO=''' + Trim(Trim(CDS_Main.fieldbyname('CKOrdNO').AsString)) + '''');
        SQL.Add(' ,@kj=' + FloatToStr(StrToFloatDef(Edit1.text, 0)));
        SQL.Add(' ,@kjw=' + FloatToStr(StrToFloatDef(Edit2.text, 0)));
//        ShowMessage(SQL.text);
        Open;
      end;
    end;
    if (ComboBox1.Text = '仓库码单(米数)') or (ComboBox1.Text = '仓库码单(公斤)') then
    begin
      with ADOQueryPrint do
      begin
        Close;
        SQL.Clear;
        sql.Add(' exec P_Print_CKMDWSQ2 ');
        SQL.Add(' @CKOrdNO=''' + Trim(Trim(CDS_Main.fieldbyname('CKOrdNO').AsString)) + '''');
        SQL.Add(' ,@kj=' + FloatToStr(StrToFloatDef(Edit1.text, 0)));
        SQL.Add(' ,@kjw=' + FloatToStr(StrToFloatDef(Edit2.text, 0)));
        Open;
      end;
    end;

    try
      Moudle := LoadLibrary('MakeQRBarcode.dll');
      @Makebar := GetProcAddress(Moudle, 'Make');
      @Mixtext := GetProcAddress(Moudle, 'MixText');
      Txt := Trim(ADOQueryPrint.fieldbyname('CKOrdNO').AsString);
      fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp';
      if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then
        CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil);
      if FileExists(fImagePath) then
        DeleteFile(fImagePath);
      Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
    except
      application.MessageBox('条形码生成失败！', '提示信息', MB_ICONERROR);
      exit;
    end;
    fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + ComboBox1.Text + '.rmf';
    if FileExists(fPrintFile) then
    begin
      RMVariables['QRBARCODE'] := fImagePath;
      RMVariables['DMR'] := Trim(DName);
//      RMVariables['JYGH'] := CDS_Main.FieldByName('JYGH').AsString;
//      RMVariables['JYXH'] := CDS_Main.FieldByName('JYXH').AsString;
      RMVariables['RKOrdID'] := Trim(CDS_Main.fieldbyname('CKOrdNO').AsString);
      RM3.LoadFromFile(fPrintFile);
//      Rm2.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1);
//      RM2.PrintReport;
      RM3.ShowReport;
    end
    else
    begin
      Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0);
      Exit;
    end;

  end;

//var
//  fPrintFile, fPrintFile10, FMainID, FKHName, FFPNo: string;
//begin
//  if CDS_Main.IsEmpty then
//    Exit;
//  if cxTabControl1.TabIndex <> 2 then
//    Exit;
//  ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp);
//
//  if trim(ComboBox1.Text) = '出库码单1' then
//  begin
//    with ADOQueryTemp do
//    begin
//
//      Close;
//      sql.Clear;
//      sql.add('exec P_Print_CKMDWSQ1 ');
//      sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))));
////      showmessage(SQL.Text);
//      Open;
//    end;
//    SCreateCDS20(ADOQueryTemp, CDS_PRT);
//    SInitCDSData20(ADOQueryTemp, CDS_PRT);
//  end;
//  if trim(ComboBox1.Text) = '三水码单2' then
//  begin
//    with ADOQueryTemp do
//    begin
//
//      Close;
//      sql.Clear;
//      sql.add('exec P_Print_CKMDWSQ2 ');
//      sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))));
//      Open;
//    end;
//    SCreateCDS20(ADOQueryTemp, CDS_PRT);
//    SInitCDSData20(ADOQueryTemp, CDS_PRT);
//  end;
//  if trim(ComboBox1.Text) = '福华码单' then
//  begin
//    with ADOQueryTemp do
//    begin
//
//      Close;
//      sql.Clear;
//      sql.add('exec P_Print_CKMDWSQ3 ');
//      sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))));
//      Open;
//    end;
//    SCreateCDS20(ADOQueryTemp, CDS_PRT);
//    SInitCDSData20(ADOQueryTemp, CDS_PRT);
//  end;
//  if trim(ComboBox1.Text) = '颜色码单' then
//  begin
//    with ADOQueryTemp do
//    begin
//
//      Close;
//      sql.Clear;
//      sql.add('exec P_Print_CKMDWSQ4 ');
//      sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))));
//      Open;
//    end;
//    SCreateCDS20(ADOQueryTemp, CDS_PRT);
//    SInitCDSData20(ADOQueryTemp, CDS_PRT);
//  end;
//  if (trim(ComboBox1.Text) = '汇总码单') or (trim(ComboBox1.Text) = '米数汇总码单') then
//  begin
//    with ADOQueryTemp do
//    begin
//
//      Close;
//      sql.Clear;
//      sql.add('exec P_Print_CKMDWSQ5 ');
//      sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))));
//      Open;
//    end;
//    SCreateCDS20(ADOQueryTemp, CDS_PRT);
//    SInitCDSData20(ADOQueryTemp, CDS_PRT);
//  end;
//  if trim(ComboBox1.Text) = '米数码单' then
//  begin
//    with ADOQueryTemp do
//    begin
//      Close;
//      sql.Clear;
//      sql.add('exec P_Print_CKMDWSQ6 ');
//      sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))));
//      Open;
//    end;
//    SCreateCDS20(ADOQueryTemp, CDS_PRT);
//    SInitCDSData20(ADOQueryTemp, CDS_PRT);
//  end;
//  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox1.Text) + '.rmf';
//  if FileExists(fPrintFile) then
//  begin
//    RM3.LoadFromFile(fPrintFile);
//    RMVariables['Filler'] := trim(DName);
//    RM3.ShowReport;
//  end
//  else
//  begin
//    Application.MessageBox(PChar('没有找到' + fPrintFile), '提示', 0);
//  end;
end;

procedure TfrmCKProductBCPOutList.cxTabControl1Change(Sender: TObject);
begin
  SetStatus();
  InitGrid();
end;

procedure TfrmCKProductBCPOutList.N3Click(Sender: TObject);
begin
  Clipboard.SetTextBuf(PChar(Trim(CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;

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

procedure TfrmCKProductBCPOutList.EndDateChange(Sender: TObject);
begin
  CurrentPage := 1;
  InitGrid();
end;

procedure TfrmCKProductBCPOutList.BegDateChange(Sender: TObject);
begin
  CurrentPage := 1;
  InitGrid();
end;

procedure TfrmCKProductBCPOutList.v1Column8PropertiesEditValueChanged(Sender: TObject);
var
  mvalue, FFieldName: string;
begin

  mvalue := TcxTextEdit(Sender).EditingText;
  FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
  with CDS_Main do
  begin
    Edit;
    FieldByName(FFieldName).Value := mvalue;
    Post;
  end;
  with ADOQueryCmd do
  begin
    Close;
    SQL.Clear;
    sql.Add('update JYOrder_Car set  ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
    sql.Add('where CarNo=' + quotedstr(Trim(CDS_Main.fieldbyname('APID').AsString)));
    ExecSQL;
  end;
  Tv1.Controller.EditingController.ShowEdit();
end;

procedure TfrmCKProductBCPOutList.Button5Click(Sender: TObject);
begin
   if CDS_Main.IsEmpty then
    Exit;
  if CDS_Main.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  if trim(Edit3.Text) = '' then
  begin
    Application.MessageBox('型号不能为空!', '提示', 0);
    Exit;
  end;
  try
    CDS_Main.DisableControls;
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      First;
      while not Eof do
      begin
        if CDS_Main.FieldByName('SSel').AsBoolean = True then
        begin
          with ADOQueryCmd do
          begin
            Close;
            sql.Clear;
            sql.Add('Update CK_BanCP_CR Set JYXH=''' + trim(Edit3.Text) + ''' ');
            sql.Add('where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + '''');
            ExecSQL;
          end;
        end;
        Next;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    CDS_Main.EnableControls;
    application.MessageBox('数据保存成功！', '提示信息');
    Panel5.Visible := false;
    TBRafresh.Click;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    CDS_Main.EnableControls;
    application.MessageBox('数据保存失败！', '提示信息', 0);
  end;
end;

procedure TfrmCKProductBCPOutList.ToolButton3Click(Sender: TObject);
begin

  Panel7.Left := (self.Width - Panel5.Width) div 2;
  Panel7.Visible := true;
end;

procedure TfrmCKProductBCPOutList.Button6Click(Sender: TObject);
begin
  Panel7.Visible := false;
end;

end.

