unit U_CPCKOutList;

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, cxCheckBox, RM_Common,
  RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus,
  cxCalendar, cxButtonEdit, cxTextEdit, RM_BarCode, cxLookAndFeels,
  cxLookAndFeelPainters, cxNavigator;

type
  TfrmCPCKOutList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBExport: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    Label1: TLabel;
    Label2: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    CDS_Main: TClientDataSet;
    RMDBMain: TRMDBDataSet;
    RMXLSExport1: TRMXLSExport;
    RMDBHZ: TRMDBDataSet;
    CDS_HZ: TClientDataSet;
    CDS_PRT: TClientDataSet;
    TBDel: TToolButton;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    TBAdd: TToolButton;
    TBEdit: TToolButton;
    cxGrid2: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column6: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1Column13: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column16: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1Column11: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Column12: TcxGridDBColumn;
    cxGrid2Level1: TcxGridLevel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label8: TLabel;
    Label12: TLabel;
    Label7: TLabel;
    SPName: TEdit;
    FactoryName: TEdit;
    SPCode: TEdit;
    SPSpec: TEdit;
    CRType: TComboBox;
    QCorderNo: TEdit;
    Label10: TLabel;
    CKorderNo: TEdit;
    Label11: TLabel;
    FromFactoryName: TEdit;
    Label13: TLabel;
    ToFactoryName: TEdit;
    Label9: TLabel;
    Label14: TLabel;
    RCGangNo: TEdit;
    ConNo: TEdit;
    ADOQueryPrint: TADOQuery;
    Label17: TLabel;
    PRTHX: TEdit;
    RM1: TRMGridReport;
    RMBarCodeObject1: TRMBarCodeObject;
    v1ConNo: TcxGridDBColumn;
    CDS_Print: TClientDataSet;
    RM2: TRMGridReport;
    v1BPType: TcxGridDBColumn;
    v1filler: TcxGridDBColumn;
    v1filltime: TcxGridDBColumn;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    v1SPCode: TcxGridDBColumn;
    procedure FormDestroy(Sender: TObject);
    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 TBFindClick(Sender: TObject);
    procedure SPNameChange(Sender: TObject);
    procedure SPCodeChange(Sender: TObject);
    procedure SPCodeKeyPress(Sender: TObject; var Key: Char);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure TBAddClick(Sender: TObject);
    procedure TBEditClick(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PRTColorChange(Sender: TObject);
    procedure PRTColorNoChange(Sender: TObject);
    procedure PRTHXChange(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure TJBQClick(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
  private
    canshu1,canshu2,canShu3:string;
    procedure InitGrid();
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCPCKOutList: TfrmCPCKOutList;

implementation
uses
  U_DataLink,U_RTFun,U_DJBCKOutPut, U_CPCKOutPut;

{$R *.dfm}

procedure TfrmCPCKOutList.FormDestroy(Sender: TObject);
begin
  frmCPCKOutList:=nil;
end;

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

procedure TfrmCPCKOutList.FormCreate(Sender: TObject);
begin
  //cxGrid1.Align:=alClient;
  canshu1:=Trim(DParameters1);
  canshu2:=Trim(DParameters2);
  canShu3:=trim(DParameters3);
  EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
  BegDate.DateTime:=EndDate.DateTime-30;
end;

procedure TfrmCPCKOutList.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      sql.Add(' select isnull(B.PRTColorEng,B.PRTColor) PRTColorEng,B.PRTColor,B.PRTHX,A.*');
      sql.Add(' from CK_SXPB_CR A');
      sql.Add(' left join JYOrder_Sub B on A.ORDSubIdCK=B.SubId');
      sql.add(' left join JYOrder_Main E on E.Mainid=B.Mainid');
      sql.add(' where A.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''');
      sql.Add(' and A.CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1))+'''');
      SQL.Add(' and CRFlag=''出库''  ');
      SQL.Add(' and isnull(CKName,'''')=''成品'' ');
      if Trim(canshu1)<>'高权限' then
      begin
        sql.Add(' and A.Filler='''+Trim(DName)+'''');
      end;
      SQL.Add(' order by A.CRTime desc');
      Open;
      //ShowMessage(SQL.Text);
    end;
    SCreateCDS20(ADOQueryMain,CDS_Main);
    SInitCDSData20(ADOQueryMain,CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmCPCKOutList.TBRafreshClick(Sender: TObject);
begin
  ToolBar1.SetFocus;
  InitGrid();
end;

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

procedure TfrmCPCKOutList.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('成品出库列表1233',Tv1,'成品仓库');
  Close;
end;

procedure TfrmCPCKOutList.FormShow(Sender: TObject);
begin
  if Trim(canshu2)='查看' then
  begin
    TBAdd.Visible:=False;
    TBDel.Visible:=False;
    TBEdit.Visible:=False;
  end else
  begin
    TBAdd.Visible:=True;
    TBDel.Visible:=True;
    TBEdit.Visible:=True;
  end;
  ReadCxGrid('成品出库列表1233',Tv1,'成品仓库');
  //InitGrid();
end;

procedure TfrmCPCKOutList.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then exit;
  TcxGridToExcel('成品出库列表',cxGrid2);
end;

procedure TfrmCPCKOutList.TBFindClick(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
    SCreateCDS20(ADOQueryMain,CDS_Main);
    SInitCDSData20(ADOQueryMain,CDS_Main);
  end;
end;

procedure TfrmCPCKOutList.SPNameChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmCPCKOutList.SPCodeChange(Sender: TObject);
begin
  
  TBFind.Click;
end;

procedure TfrmCPCKOutList.SPCodeKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key=#13 then
  begin
    {if Length(Trim(SPID.Text))<4 then Exit;
    try
      ADOQueryMain.DisableControls;
      with ADOQueryMain do
      begin
        Filtered:=False;
        Close;
        sql.Clear;
        sql.Add(' select A.* ');
        sql.Add(' from CK_SXPB_CR A');
        sql.add(' where SPID like :SXID');
        Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%';
        Open;
        //ShowMessage(SQL.Text);
      end;
      SCreateCDS20(ADOQueryMain,CDS_Main);
      SInitCDSData20(ADOQueryMain,CDS_Main);
    finally
      ADOQueryMain.EnableControls;
    end; }
  end;
end;

procedure TfrmCPCKOutList.N1Click(Sender: TObject);
begin
  if CDS_Main.IsEmpty then Exit;
  CDS_Main.DisableControls;
  with CDS_Main do
  begin
    First;
    while not eof do
    begin
      if Trim(CDS_Main.fieldbyname('CRType').AsString)='检验出库' then
      begin
        Edit;
        FieldByName('SSel').Value:=True;
        Post;
      end;
      Next;
    end;
  end;
  CDS_Main.EnableControls;
end;

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

procedure TfrmCPCKOutList.TBDelClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then Exit;
  if trim(CDS_Main.fieldbyname('filler').AsString)<>trim(DName) then
  begin
    Application.MessageBox('不能操作他人数据','提示',0);
    Exit;
  end;
  if Trim(CDS_Main.fieldbyname('SPID').AsString)<>'' then
  begin
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from YF_Money_CR where Mainid='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+'''');
      Open;
    end;
    if ADOQueryTemp.IsEmpty=False then
    begin
      Application.MessageBox('已产生费用，不能删除!','提示',0);
      Exit;
    end;
    if Trim(CDS_Main.fieldbyname('CRType').AsString)='平移出库' then
    begin
      with ADOQueryTemp do
      begin
        Close;
        sql.Clear;
        sql.Add('select * from CK_SXPB_CR where FZSPID=');
        sql.Add('(select SPID from CK_SXPB_CR where PYID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+'''');
        sql.Add(' and isnull(CRType,'''')=''平移入库'')');
        sql.Add(' and CRQtyFlag=-1');
        Open;
      end;
      if ADOQueryTemp.IsEmpty=False then
      begin
        Application.MessageBox('已有出库记录，不能删除!','提示',0);
        Exit;
      end;
    end;

    if Application.MessageBox('确定要删除数据吗？','提示',32+4)<>IDYES then Exit;
    try
      ADOQueryCmd.Connection.BeginTrans;
      with ADOQueryCmd do
      begin
        Close;
        sql.Clear;
        sql.Add(' delete CK_SXPB_CR where SPID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+'''');
        sql.Add(' Update CK_SXPB_CR Set MXKCKgQty=(select sum(isnull(KGQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)');
        sql.add(',MXKCQty=(select sum(isnull(Qty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)');
        sql.Add(',MXKCPiQty=(select sum(isnull(PiQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)');
        sql.Add(' where SPID='''+Trim(CDS_Main.fieldbyname('FZSPID').AsString)+'''');
        if Trim(CDS_Main.fieldbyname('CRType').AsString)='平移出库' then
        begin
          sql.Add(' delete CK_SXPB_CR where isnull(PYID,'''')='''+Trim(CDS_Main.fieldbyname('PYID').AsString)+'''');
        end;
        ExecSQL;
      end;
      ADOQueryCmd.Connection.CommitTrans;
    except
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('删除异常!','提示',0);
    end;
  end;
  CDS_Main.Delete;
end;

procedure TfrmCPCKOutList.TBAddClick(Sender: TObject);
begin
  try
    frmCPCKOutPut:=TfrmCPCKOutPut.Create(Application);
    with frmCPCKOutPut do
    begin
      FBCId:='';
      if ShowModal=1 then
      begin
        Self.InitGrid();
      end;
    end;
  finally
    frmCPCKOutPut.Free;
  end;
end;

procedure TfrmCPCKOutList.TBEditClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then Exit;
  
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from CK_SXPB_CR where FZSPID=');
    sql.Add('(select SPID from CK_SXPB_CR where PYID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+'''');
    sql.Add(' and isnull(CRType,'''')=''平移入库'')');
    sql.Add(' and CRQtyFlag=-1');
    Open;
  end;
  if ADOQueryTemp.IsEmpty=False then
  begin
    Application.MessageBox('已有出库记录，不能修改!','提示',0);
    Exit;
  end;
  with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from YF_Money_CR where Mainid='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+'''');
      Open;
    end;
    if ADOQueryTemp.IsEmpty=False then
    begin
      Application.MessageBox('已产生费用，不能修改!','提示',0);
      Exit;
    end;
  try
    frmCPCKOutPut:=TfrmCPCKOutPut.Create(Application);
    with frmCPCKOutPut do
    begin
      FTYPE:=trim(canShu3);
      FBCId:=Trim(CDS_Main.fieldbyname('SPID').AsString);
      TBDel.Visible:=False;
      TBAdd.Visible:=False;
      if ShowModal=1 then
      begin
        Self.InitGrid();
      end;
    end;
  finally
    frmCPCKOutPut.Free;
  end;

end;

procedure TfrmCPCKOutList.ToolButton3Click(Sender: TObject);
var
   fPrintFile:string;
   Txt,fImagePath:string;
   Moudle: THandle;
   Makebar:TMakebar;
   Mixtext:TMixtext;

begin
  if CDS_Main.IsEmpty then Exit;
  if CDS_Main.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择数据!','提示',0);
    Exit;
  end;
  with CDS_Main do
  begin
    first;
    while not eof do
    begin
      if fieldbyname('Ssel').AsBoolean=true then
      begin
  if CDS_Main.FieldByName('ConLBName').AsString='' then
  begin
    application.MessageBox('卷标签未设置不能打印','提示');
    exit;
  end;
  if Trim(CDS_Main.fieldbyname('CRType').AsString)<>'检验出库' then Exit;
  if CDS_Main.FieldByName('IFPrint').AsString='已打印' then
  begin
    if Application.MessageBox('单据已打印过,是否重新打印','提示',1)=2 then
    Exit;
  end;
      end;
    next;
    end;
  end;

  fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\检验指示单标签.rmf' ;
  CDS_Main.DisableControls;
  with CDS_Main do
  begin
    First;
    while CDS_Main.Locate('SSel',True,[]) do
    begin
      with ADOQueryPrint do
      begin
        Close;
        sql.Clear;
        sql.Add(' select A.* ,B.PRTColorNO,E.styleNo,B.PRTColor,B.PRTHX,C.OrderNo,C.MPRTCodeName,D.KHConNO');
        sql.Add(',C.CustomerNoName,D.ConNo,E.PRTOrderQty');
        sql.Add(' from CK_SXPB_CR A');
        sql.Add(' left join JYOrder_Sub B on A.ORDSubIdCK=B.SubId');
        sql.Add(' left join JYOrder_Main C on A.ORDMainIdCK=C.MainId');
        sql.add(' left join JYOrderCon_Sub E on A.ConCKID=E.Subid');
        sql.Add(' left join JYOrderCon_Main D on D.Mainid=E.MainId');
        sql.Add(' where A.SPId='''+Trim(CDS_Main.fieldbyname('SPId').AsString)+'''');
        Open;
      end;
      SCreateCDS20(ADOQueryPrint,CDS_PRT);
      SInitCDSData20(ADOQueryPrint,CDS_PRT);
      with ADOQueryPrint do
      begin
        close;
        sql.Clear;
        sql.add('update CK_SXPB_CR set IFPrint=''已打印'' ');
        sql.Add('where SPId='''+Trim(CDS_Main.fieldbyname('SPId').AsString)+'''');
        execsql;
      end;
      try
        Moudle:=LoadLibrary('MakeQRBarcode.dll');
        @Makebar:=GetProcAddress(Moudle,'Make');
        @Mixtext:=GetProcAddress(Moudle,'MixText');
        Txt:=Trim(CDS_PRT.fieldbyname('SPID').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
        CDS_Main.EnableControls;
        application.MessageBox('条形码生成失败！','提示信息',MB_ICONERROR);
        exit;
      end;

      if FileExists(fPrintFile) then
      begin
        RMVariables['QRBARCODE']:=fImagePath;
        RM1.LoadFromFile(fPrintFile);
        //RM1.ShowReport;
        RM1.PrintReport;
      end else
      begin
        CDS_Main.EnableControls;
        Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\检验指示单标签.rmf'),'提示',0);
        Exit;
      end;
      Edit;
      FieldByName('SSel').Value:=False;
      Post;
    end;
  end;
  CDS_Main.EnableControls;
  initGrid();
end;

procedure TfrmCPCKOutList.Tv1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if CDS_Main.IsEmpty then Exit;
  if Trim(CDS_Main.fieldbyname('CRType').AsString)<>'检验出库' then
  begin
    Tv1.OptionsSelection.CellSelect:=False;
  end else
  begin
    Tv1.OptionsSelection.CellSelect:=True;
  end;
end;

procedure TfrmCPCKOutList.PRTColorChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmCPCKOutList.PRTColorNoChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmCPCKOutList.PRTHXChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmCPCKOutList.ToolButton1Click(Sender: TObject);
var
   fPrintFile:string;
   Txt,fImagePath:string;
   Moudle: THandle;
   Makebar:TMakebar;
   Mixtext:TMixtext;

begin
  if CDS_Main.IsEmpty then Exit;
  //if Trim(CDS_Main.fieldbyname('CRType').AsString)<>'检验出库' then Exit;
  {if CDS_Main.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择数据!','提示',0);
    Exit;
  end; }
  if CDS_Main.FieldByName('ConLBName').AsString='' then
  begin
    application.MessageBox('卷标签未设置不能打印','提示');
    exit;
  end;
  fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\检验指示单标签.rmf' ;
  CDS_Main.DisableControls;
  with CDS_Main do
  begin
    //First;
   // while CDS_Main.Locate('SSel',True,[]) do
    begin
      with ADOQueryPrint do
      begin
        Close;
        sql.Clear;
        sql.Add(' select D.ConNo,D.KHConNO,E.styleNo,E.PRTOrderQty,A.* ,B.PRTColorNO,B.PRTColor,B.PRTHX,C.OrderNo,C.MPRTCodeName');
        sql.Add(',C.CustomerNoName');
        sql.Add(' from CK_SXPB_CR A');
        sql.Add(' left join JYOrder_Sub B on A.ORDSubIdCK=B.SubId');
        sql.Add(' left join JYOrder_Main C on A.ORDMainIdCK=C.MainId');
        sql.add(' left join JYOrderCon_Sub E on A.ConCKID=E.Subid');
        sql.Add(' inner join JYOrderCon_Main D on D.Mainid=E.MainId');
        sql.Add(' where A.SPId='''+Trim(CDS_Main.fieldbyname('SPId').AsString)+'''');
        Open;
      end;
      SCreateCDS20(ADOQueryPrint,CDS_PRT);
      SInitCDSData20(ADOQueryPrint,CDS_PRT);
      try
        Moudle:=LoadLibrary('MakeQRBarcode.dll');
        @Makebar:=GetProcAddress(Moudle,'Make');
        @Mixtext:=GetProcAddress(Moudle,'MixText');
        Txt:=Trim(CDS_PRT.fieldbyname('SPID').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
        CDS_Main.EnableControls;
        application.MessageBox('条形码生成失败！','提示信息',MB_ICONERROR);
        exit;
      end;
      if FileExists(fPrintFile) then
      begin
        RMVariables['QRBARCODE']:=fImagePath;
        RM2.LoadFromFile(fPrintFile);
        RM2.ShowReport;
       // RM1.PrintReport;
      end else
      begin
        CDS_Main.EnableControls;
        Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\检验指示单标签.rmf'),'提示',0);
        Exit;
      end;
      
    end;
  end;
  CDS_Main.EnableControls;

end;

procedure TfrmCPCKOutList.TJBQClick(Sender: TObject);
var
   fPrintFile,LBName:string;
   i,j:Integer;
begin
  if CDS_Main.IsEmpty then Exit;
  LBName:=trim(CDS_Main.fieldbyname('ConLBName').AsString);
  if LBName='' then
  begin
    application.MessageBox('没有设置卷标签','提示');
    exit;
  end;
  fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LBName)+'.rmf' ;
  with ADOQueryPrint do
  begin
    Close;
    sql.Clear;
    sql.Add(' select B.PRTColorNo,B.PRTColor,B.PRTHX,B.PRTColorEng,E.LengUnit,E.MPRTMF,E.MPRTKZ,GangNo=A.RCgangNO,E.MPRTCode,E.MPRTSpec,E.OrderNo,E.MPRTCodeName,D.StyleNo,E.MaiTouNote,cast('''' as varchar(60)) MJID,A.*,C.*');
    sql.add(' ,cast(0 as decimal(18,2)) MJLen,cast(0 as decimal(18,2)) MJQty4,cast('''' as varchar(60)) MJXH,cast(0 as decimal(18,2)) MJQty2');
    sql.add(' ,substring(C.ConNo,LEN(C.ConNO)-3,LEN(C.ConNO)) HS,cast(0 as decimal(18,2)) MJMaoZ,D.XHNo');
    SQL.ADD(' ,D.PRTCodeName,D.PRTCode,D.PRTMF,D.PRTKZ');
    sql.Add(' from CK_SXPB_CR A');
    sql.Add(' left join JYOrder_Sub B on A.ORDSubIdCK=B.SubId');
    sql.add(' left join JYOrder_Main E on E.Mainid=B.Mainid');
    sql.add(' left join JYOrderCon_Sub D on D.Subid=A.conCKID');
    sql.add(' left join JYOrderCon_Main C on C.Mainid=D.Mainid');
    sql.add(' where A.SPID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryPrint,CDS_PRT);
  SInitCDSData20(ADOQueryPrint,CDS_PRT);
  if FileExists(fPrintFile) then
  begin
    RMVariables['ID']:=trim(CDS_PRT.fieldbyname('HS').AsString)+Trim(CDS_PRT.fieldbyname('XHNo').AsString);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end else
  begin
    Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LBName)+'.rmf'),'提示',0);
  end;
end;

procedure TfrmCPCKOutList.ToolButton4Click(Sender: TObject);
var
   fPrintFile:string;
   LBName:string;
   i,j:Integer;
begin
  if CDS_Main.IsEmpty then Exit;
  if CDS_Main.fieldbyname('ConPerson2').AsString='' then
  begin
    if application.MessageBox('没有收货公司确定预览吗','提示',1)=2 then exit;
  end;
  LBName:=trim(CDS_Main.fieldbyname('ConNLBName').AsString);
  if LBName='' then
  begin
    application.MessageBox('没有设置包标签','提示');
    exit;
  end;
  fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LBName)+'.rmf' ;
  with ADOQueryPrint do
  begin
    Close;
    sql.Clear;
    sql.Add(' select B.PRTColorNo,B.PRTColor,B.PRTHX,B.PRTColorEng,E.LengUnit,GangNo=A.RCgangNO,E.MPRTMF,E.MPRTKZ,E.OrderNo,E.MPRTCode,E.MPRTSpec,E.MPRTCodeName,D.StyleNo,E.MaiTouNote,cast('''' as varchar(60)) MJID,A.*,C.*');
    sql.add(' ,cast(0 as decimal(18,2)) MJLen,cast(0 as decimal(18,2)) MJQty4,cast('''' as varchar(70)) BaoNo,cast(0 as decimal(18,2)) MJQty2');
    sql.add(' ,substring(C.ConNo,LEN(C.ConNO)-3,LEN(C.ConNO)) HS,cast(0 as decimal(18,2)) MJMaoZ,D.XHNo');
    SQL.ADD(' ,D.PRTCodeName,D.PRTCode,D.PRTMF,D.PRTKZ');
    sql.Add(' from CK_SXPB_CR A');
    sql.Add(' left join JYOrder_Sub B on A.ORDSubIdCK=B.SubId');
    sql.add(' left join JYOrder_Main E on E.Mainid=B.Mainid');
    sql.add(' left join JYOrderCon_Sub D on D.Subid=A.conCKID');
    sql.add(' left join JYOrderCon_Main C on C.Mainid=D.Mainid');
    sql.add(' where A.SPID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryPrint,CDS_PRT);
  SInitCDSData20(ADOQueryPrint,CDS_PRT);

  if FileExists(fPrintFile) then
  begin
    RMVariables['ID']:=trim(CDS_PRT.fieldbyname('HS').AsString)+Trim(CDS_PRT.fieldbyname('XHNo').AsString);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end else
  begin
    Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LBName)+'.rmf'),'提示',0);
  end;
end;

end.
