unit U_CHListsel;

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, cxPC,
  BtnEdit, cxSplitter, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
  dxBarBuiltInMenu, MovePanel, cxCalc, Registry;

type
  TfrmCHListsel = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    CDS_Main: TClientDataSet;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    ClientDataSet1: TClientDataSet;
    Label6: TLabel;
    A4FPNO: TEdit;
    cxGridPopupMenu2: TcxGridPopupMenu;
    DataSource2: TDataSource;
    ClientDataSet2: TClientDataSet;
    Label5: TLabel;
    GCNAME: TEdit;
    Label8: TLabel;
    KHName: TEdit;
    RMXLSExport1: TRMXLSExport;
    CDS_Print: TClientDataSet;
    RM1: TRMGridReport;
    RMDBDataSet1: TRMDBDataSet;
    ADOQueryPrint: TADOQuery;
    Label2: TLabel;
    YWY: TEdit;
    cxGrid2: TcxGrid;
    TV1: TcxGridDBTableView;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    tv2Column1: TcxGridDBColumn;
    tv2Column2: TcxGridDBColumn;
    tv2Column5: TcxGridDBColumn;
    tv2Column6: TcxGridDBColumn;
    TV1Column7: TcxGridDBColumn;
    TV1Column8: TcxGridDBColumn;
    TV1Column9: TcxGridDBColumn;
    TV1Column10: TcxGridDBColumn;
    TV1Column11: TcxGridDBColumn;
    TV1Column12: TcxGridDBColumn;
    TV1Column13: TcxGridDBColumn;
    TV1Column14: TcxGridDBColumn;
    Label4: TLabel;
    Zorderno: TEdit;
    TV1Column15: TcxGridDBColumn;
    TV1Column2: TcxGridDBColumn;
    ComboBox1: TComboBox;
    ToolButton1: TToolButton;
    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 N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure FactoryNameChange(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure CRTypeChange(Sender: TObject);
    procedure A4FPNOKeyPress(Sender: TObject; var Key: Char);
    procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure GCNAMEKeyPress(Sender: TObject; var Key: Char);
    procedure KHNameKeyPress(Sender: TObject; var Key: Char);
    procedure TBBGZLClick(Sender: TObject);
    procedure TBHTClick(Sender: TObject);
    procedure TBFPClick(Sender: TObject);
    procedure TBZXDClick(Sender: TObject);
    procedure TBBGDClick(Sender: TObject);
    procedure TBSBYSClick(Sender: TObject);
    procedure TBAllClick(Sender: TObject);
    procedure YWYChange(Sender: TObject);
    procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
    procedure huodaiBtnClick(Sender: TObject);
    procedure B7DaoHuoGangBtnClick(Sender: TObject);
    procedure BtnEditA1BtnClick(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ZordernoKeyPress(Sender: TObject; var Key: Char);
    procedure TV1DblClick(Sender: TObject);
  private
    canshu2: string;
    FDate: TDateTime;
    procedure InitGrid();
    function DelData(): Boolean;
    procedure InitSubGrid();
    procedure InitGridSql(var fsj: string);
    function GetShellFolders(strDir: string): string;
    procedure InitPrtData();
    { Private declarations }
  public
    canshu1: string;
    { Public declarations }
  end;

var
  frmCHListsel: tfrmCHListsel;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_Fun;

{$R *.dfm}
function TfrmCHListsel.GetShellFolders(strDir: string): string;
const
  regPath = '\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders';
var
  Reg: TRegistry;
  strFolders: string;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    if Reg.OpenKey(regPath, false) then
    begin
      strFolders := Reg.ReadString(strDir);
    end;
  finally
    Reg.Free;
  end;
  result := strFolders;
end;

procedure TfrmCHListsel.FormDestroy(Sender: TObject);
begin
  //frmBaoGuanList:=nil;
end;

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

procedure TfrmCHListsel.FormCreate(Sender: TObject);
begin
  //cxGrid1.Align:=alClient;
  EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
  BegDate.DateTime := EndDate.DateTime - 90;
  canshu1 := Trim(DParameters1);
  canshu2 := Trim(DParameters2);
end;

procedure TfrmCHListsel.InitGrid();
var
  fwhere, Pwhere: string;
begin
  Pwhere := SGetFilters(Panel1, 1, 2);

  begin
    if trim(Pwhere) <> '' then
      fwhere := fwhere + ' and ' + trim(Pwhere);
  end;
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
//      SQL.Add('select * from (');
      sql.Add('select * from (');
      sql.Add('select A.* ');
      SQL.Add(',ZORDERNO=cast((select B.ORDERNO+'';'' from JYOrder_BaoGuan_SUB B where B.BGID=A.BGID  AND SVALID=''Y'' for xml path('''')) as varchar(200))');
      sql.Add(',C4BGQty=(select sum(C4BGQty) from JYOrder_BaoGuan_SUB B where B.BGID=A.BGID  AND SVALID=''Y'' )');
      sql.Add(',C5BGUnit=(select top 1 C5BGUnit from JYOrder_BaoGuan_SUB B where B.BGID=A.BGID  AND SVALID=''Y'' )');
      sql.Add(',C7BGMoney=(select sum(C7BGMoney)  from JYOrder_BaoGuan_SUB B where B.BGID=A.BGID  AND SVALID=''Y'' )');
      SQL.Add(',TOCOUNTRY1=(SELECT TOP 1 ISNULL(note,zdyname) FROM KH_ZDY D  WHERE D.ZDYNAME=A.TOCOUNTRY)');
      SQL.Add(',BM=(SELECT ISNULL(UDEPT,'''')+USERNAME FROM SY_User C WHERE C.USERNAME=A.FILLER  )');
      sql.Add(' from JYOrder_BaoGuan_Main A  ');
      sql.Add(' where A.Valid=''Y''  ');
      SQL.Add('AND bgStatus=''√''');
      sql.Add(') aa where 1=1');
      sql.Add(fwhere);
      if ComboBox1.Text = '报关日期' then
      begin
        sql.Add(' and bgdate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
        sql.Add(' and bgdate<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');
        SQL.Add('order by bgdate desc');
      end
      else if ComboBox1.Text = '船期' then
      begin
        sql.Add(' and chuandate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
        sql.Add(' and chuandate<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');
        SQL.Add('order by chuandate desc ');
      end
      else if combobox1.Text = '出货日期' then
      begin
        sql.Add(' and htdate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
        sql.Add(' and htdate<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');
        SQL.Add('order by htdate desc');
      end;
//      sql.Add('  ) AA');
//      ShowMessage(sql.Text);
      Open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmCHListsel.TBRafreshClick(Sender: TObject);
begin
  BegDate.SetFocus;
  InitGrid();
end;

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

procedure TfrmCHListsel.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('报关主表' + self.Caption, Tv1, '出货清单');
//  WriteCxGrid('报关明细' + self.Caption, Tv2, '报关管理8');
  Close;
end;

procedure TfrmCHListsel.FormShow(Sender: TObject);
begin
  ReadCxGrid('报关主表' + self.Caption, Tv1, '出货清单');
//  ReadCxGrid('报关明细' + self.Caption, Tv2, '报关管理8');
  canshu1 := Trim(DParameters1);
//  ShowMessage(canshu1);

  InitGrid();
  RM1.CanExport := true;
end;

procedure TfrmCHListsel.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    exit;
//  TcxGridToExcel(Trim(CDS_Main.fieldbyname('A4FPNO').AsString) + Trim(CDS_Main.fieldbyname('A5ConNO').AsString), cxGrid1);
end;

procedure TfrmCHListsel.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 TfrmCHListsel.N1Click(Sender: TObject);
begin
  SelOKNo(CDS_Main, True);
end;

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

procedure TfrmCHListsel.InitSubGrid();
begin
  if CDS_Main.IsEmpty = False then
  begin
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from JYOrder_BaoGuan_Sub where BGID=''' + Trim(CDS_Main.fieldbyname('BGID').AsString) + '''');
      sql.Add(' and SValid=''Y'' ');
      Open;
    end;
  end
  else
  begin
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from JYOrder_BaoGuan_Sub where 1=2');
      Open;
    end;
  end;

  SCreateCDS20(ADOQueryTemp, ClientDataSet2);
  SInitCDSData20(ADOQueryTemp, ClientDataSet2);
end;

function TfrmCHListsel.DelData(): Boolean;
begin
  try
    Result := false;
    ADOQueryCmd.Connection.BeginTrans;
    CDS_Main.DisableControls;
    with CDS_Main do
    begin
      First;
      while CDS_Main.Locate('SSel', True, []) do
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('UPdate JYOrder_BaoGuan_Main Set Valid=''N'',C7BGMoneyHZ=Null,E1BZQtyHZ=Null, E2ChiMaQtyHZ=Null,E3MaoZHZ=Null,E4JingZHZ=Null');
          sql.Add(',Editer=''' + Trim(DName) + ''',EditTime=getdate()');
          sql.Add(' where BGId=''' + Trim(CDS_Main.fieldbyname('BGId').AsString) + '''');
          sql.Add('UPdate JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer=''' + Trim(DName) + ''',SEditTime=getdate()  where BGId=''' + Trim(CDS_Main.fieldbyname('BGId').AsString) + '''');
          ExecSQL;
        end;
        CDS_Main.Delete;
      end;
    end;
    CDS_Main.EnableControls;
    ADOQueryCmd.Connection.CommitTrans;
    Result := True;
  except
    CDS_Main.EnableControls;
    ADOQueryCmd.Connection.RollbackTrans;
    Result := False;
    Application.MessageBox('数据删除异常！', '提示', 0);
  end;
end;

procedure TfrmCHListsel.FactoryNameChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmCHListsel.cxTabControl1Change(Sender: TObject);
begin

  InitGrid();
end;

procedure TfrmCHListsel.CRTypeChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmCHListsel.A4FPNOKeyPress(Sender: TObject; var Key: Char);
var
  fsj: string;
begin
  if Key = #13 then
  begin
    if Trim(A4FPNO.Text) = '' then
      Exit;
    fsj := ' and isnull(A.A4FPNO,'''') like ''' + '%' + Trim(A4FPNO.Text) + '%' + '''';
    InitGridSql(fsj);
  end;
end;

procedure TfrmCHListsel.InitGridSql(var fsj: string);
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      sql.Add('select A.* ');
      sql.Add(' from JYOrder_BaoGuan_Main A  ');
      sql.Add(' where 1=1 ');
      if Trim(canshu1) <> '高权限' then
      begin
        SQL.Add(' and FillerCode=''' + Trim(DCode) + '''');
      end;

      sql.Add(fsj);
      Open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmCHListsel.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  InitSubGrid();
end;

procedure TfrmCHListsel.GCNAMEKeyPress(Sender: TObject; var Key: Char);
var
  fsj: string;
begin
//  if Key = #13 then
//  begin
//    if Trim(A6PONO.Text) = '' then
//      Exit;
//    fsj := ' and isnull(A.A6PONO,'''') like ''' + '%' + Trim(A6PONO.Text) + '%' + '''';
//    InitGridSql(fsj);
//  end;
end;

procedure TfrmCHListsel.KHNameKeyPress(Sender: TObject; var Key: Char);
var
  fsj: string;
begin
//  if Key = #13 then
//  begin
//    if Trim(A5ConNO.Text) = '' then
//      Exit;
//    fsj := ' and isnull(A.A5ConNO,'''') like ''' + '%' + Trim(A5ConNO.Text) + '%' + '''';
//    InitGridSql(fsj);
//  end;
end;

procedure TfrmCHListsel.InitPrtData();
begin
  with ADOQueryPrint do
  begin
    Close;
    sql.Clear;
    sql.Add(' exec P_View_BaoGuanData :BGID ');
    Parameters.ParamByName('BGID').Value := Trim(CDS_Main.fieldbyname('BGId').AsString);
    Open;
  end;
  SCreateCDS20(ADOQueryPrint, CDS_Print);
  SInitCDSData20(ADOQueryPrint, CDS_Print);
end;

procedure TfrmCHListsel.TBBGZLClick(Sender: TObject);
var
  fPrintFile: string;
  EngMoney, BZZH, FimageFile: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\报关资料.rmf';
  InitPrtData();
  FimageFile := ExtractFilePath(Application.ExeName) + 'Image\' + Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString) + '.jpg';
  RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1);
  if FileExists(fPrintFile) then
  begin
    //RMVariables['enddate']:=enddate.DateTime;
    //RMVariables['printtime']:=Now;
    RMVariables['ImageFile'] := trim(FimageFile);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\报关资料.rmf'), '提示', 0);
  end;
end;

procedure TfrmCHListsel.TBHTClick(Sender: TObject);
var
  fPrintFile: string;
  EngMoney, BZZH, FimageFile: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\报关合同.rmf';
  InitPrtData();
  FimageFile := ExtractFilePath(Application.ExeName) + 'Image\' + Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString) + '.jpg';
  RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1);
  if FileExists(fPrintFile) then
  begin
    //RMVariables['enddate']:=enddate.DateTime;
    //RMVariables['printtime']:=Now;
    RMVariables['ImageFile'] := trim(FimageFile);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\报关合同.rmf'), '提示', 0);
  end;
end;

procedure TfrmCHListsel.TBFPClick(Sender: TObject);
var
  fPrintFile: string;
  EngMoney, BZZH, FimageFile: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\报关发票.rmf';
  InitPrtData();
  FimageFile := ExtractFilePath(Application.ExeName) + 'Image\' + Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString) + '.jpg';
  RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1);
  if FileExists(fPrintFile) then
  begin
    //RMVariables['enddate']:=enddate.DateTime;
    //RMVariables['printtime']:=Now;
    RMVariables['ImageFile'] := trim(FimageFile);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\报关发票.rmf'), '提示', 0);
  end;
end;

procedure TfrmCHListsel.TBZXDClick(Sender: TObject);
var
  fPrintFile: string;
  EngMoney, BZZH, FimageFile: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\报关装箱单.rmf';
  InitPrtData();
  FimageFile := ExtractFilePath(Application.ExeName) + 'Image\' + Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString) + '.jpg';
  RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1);
  if FileExists(fPrintFile) then
  begin
    //RMVariables['enddate']:=enddate.DateTime;
    //RMVariables['printtime']:=Now;
    RMVariables['ImageFile'] := trim(FimageFile);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\报关装箱单.rmf'), '提示', 0);
  end;
end;

procedure TfrmCHListsel.TBBGDClick(Sender: TObject);
var
  fPrintFile: string;
  EngMoney, BZZH, FimageFile: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\报关单.rmf';
  InitPrtData();
  FimageFile := ExtractFilePath(Application.ExeName) + 'Image\' + Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString) + '.jpg';
  RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1);
  if FileExists(fPrintFile) then
  begin
    //RMVariables['enddate']:=enddate.DateTime;
    //RMVariables['printtime']:=Now;
    RMVariables['ImageFile'] := trim(FimageFile);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\报关单.rmf'), '提示', 0);
  end;
end;

procedure TfrmCHListsel.TBSBYSClick(Sender: TObject);
var
  fPrintFile: string;
  EngMoney, BZZH, FimageFile: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\申报要素.rmf';
  InitPrtData();
  FimageFile := ExtractFilePath(Application.ExeName) + 'Image\' + Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString) + '.jpg';
  RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1);
  if FileExists(fPrintFile) then
  begin
    //RMVariables['enddate']:=enddate.DateTime;
    //RMVariables['printtime']:=Now;
    RMVariables['ImageFile'] := trim(FimageFile);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\申报要素.rmf'), '提示', 0);
  end;
end;

procedure TfrmCHListsel.TBAllClick(Sender: TObject);
var
  fPrintFile: string;
  EngMoney, BZZH, FimageFile, FZMFile: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\全部报关资料.rmf';
  InitPrtData();
  FimageFile := ExtractFilePath(Application.ExeName) + 'Image\' + Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString) + '.jpg';
  //RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1);
  if FileExists(fPrintFile) then
  begin
    if RM1.CanExport = true then
    begin
      FZMFile := 'C:\Users\Administrator\Desktop';
      if not DirectoryExists(FZMFile) then
      begin
        FZMFile := 'C:\Documents and Settings\Administrator\桌面\' + trim(CDS_Main.fieldbyname('A4FPNO').AsString) + ' ' + trim(CDS_Main.fieldbyname('A5ConNO').AsString) + '.xls';
      end
      else
      begin
        FZMFile := 'C:\Users\Administrator\Desktop\' + trim(CDS_Main.fieldbyname('A4FPNO').AsString) + ' ' + trim(CDS_Main.fieldbyname('A5ConNO').AsString) + '.XLS';
      end;
      RM1.ExportTo(RMXLSExport1, FZMFile);
    end;
    RM1.CanExport := true;
    RMVariables['ImageFile'] := trim(FimageFile);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
    RM1.CanExport := False;
  end
  else
  begin
    Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\全部报关资料.rmf'), '提示', 0);
  end;
end;

procedure TfrmCHListsel.YWYChange(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 TfrmCHListsel.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
  InitSubGrid();
end;

procedure TfrmCHListsel.huodaiBtnClick(Sender: TObject);
var
  fsj: string;
  FWZ: Integer;
begin
  fsj := Trim(TEdit(Sender).Hint);
  FWZ := Pos('/', fsj);
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := Copy(fsj, 1, FWZ - 1);
      flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ);
      if ShowModal = 1 then
      begin
        TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmCHListsel.B7DaoHuoGangBtnClick(Sender: TObject);
var
  fsj: string;
  FWZ: Integer;
begin
  fsj := Trim(TEdit(Sender).Hint);
  FWZ := Pos('/', fsj);
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := Copy(fsj, 1, FWZ - 1);
      flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ);
      if ShowModal = 1 then
      begin
        TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmCHListsel.BtnEditA1BtnClick(Sender: TObject);
var
  fsj: string;
  FWZ: Integer;
begin
  fsj := Trim(TEdit(Sender).Hint);
  FWZ := Pos('/', fsj);
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := Copy(fsj, 1, FWZ - 1);
      flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ);
      if ShowModal = 1 then
      begin
        TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;

end;

procedure TfrmCHListsel.ToolButton1Click(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    exit;
  ModalResult := 1;
end;

procedure TfrmCHListsel.ToolButton2Click(Sender: TObject);
var
  fPrintFile, FTaiTou: string;
  EngMoney, LBName, fImagePath2: string;
begin
//  LBName := RadioGroup2.Items.Strings[RadioGroup2.ItemIndex];

  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\出货清单.rmf';
  ExportFtErpFile('出货清单.rmf', ADOQueryPrint);
  with ADOQueryMain do
  begin
    Filtered := False;
    Close;
    sql.Clear;
    sql.Add('select A.*,B.* ');
//      SQL.Add(',HDNAME=(SELECT HDNAME FROM JYOrderCon_TT C WHERE C.DCNO=A.DCNO)');
    SQL.Add(',TOCOUNTRY1=(SELECT TOP 1 ISNULL(note,zdyname) FROM KH_ZDY D  WHERE D.ZDYNAME=A.TOCOUNTRY)');
    SQL.Add(',BM=(SELECT ISNULL(UDEPT,'''')+USERNAME FROM SY_User C WHERE C.USERNAME=A.FILLER  )');

    sql.Add(' from JYOrder_BaoGuan_Main A  INNER JOIN JYOrder_BaoGuan_SUB B ON A.BGID=B.BGID ');
    sql.Add(' where A.Valid=''Y'' and B.SValid=''Y'' ');
    SQL.Add('AND bgStatus=''√''');
//    sql.Add(' and filltime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
//    sql.Add(' and filltime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');
    if ComboBox1.Text = '报关日期' then
    begin
      sql.Add(' and bgdate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
      sql.Add(' and bgdate<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');
//      SQL.Add('order by bgdate desc');
    end
    else if ComboBox1.Text = '船期' then
    begin
      sql.Add(' and chuandate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
      sql.Add(' and chuandate<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');
//      SQL.Add('order by chuandate desc ');
    end
    else if combobox1.Text = '出货日期' then
    begin
      sql.Add(' and htdate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
      sql.Add(' and htdate<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');
//      SQL.Add('order by htdate desc');
    end;
    sql.Add('order by YWY');
//  ShowMessage(sql.Text);
    Open;
  end;
  SCreateCDS20(ADOQueryMain, CDS_Main);
  SInitCDSData20(ADOQueryMain, CDS_Main);
  TBFind.Click();
//  with ADOQueryPrint do
//  begin
//    Close;
//    sql.Clear;
//    sql.Add('exec P_Print_BGD ');
//
//    SQL.ADD('@bgid=''' + Trim(CDS_Main.fieldbyname('BGID').AsString) + '''');
//    ShowMessage(SQL.Text);
//    Open;
//  end;
//  SCreateCDS20(ADOQueryPrint, CDS_Print);
//  SInitCDSData20(ADOQueryPrint, CDS_Print);
  if FileExists(fPrintFile) then
  begin

    RM1.LoadFromFile(fPrintFile);
    fImagePath2 := GetShellFolders('Desktop') + '\出货清单.xls';
    if FileExists(fImagePath2) then
      DeleteFile(fImagePath2);                                  //label.xls
    fImagePath2 := GetShellFolders('Desktop') + '\出货清单.xls';

    RM1.PrepareReport;
    Sleep(1000);
    RM1.ExportTo(RMXLSExport1, fImagePath2);

  end
  else
  begin
//    Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\报关单.rmf'), '提示', 0);
    Application.MessageBox(PChar('没有找' + trim(fPrintFile)), '提示信息', 0);
    Exit;
  end;
  initgrid();
  TBFind.Click();
end;

procedure TfrmCHListsel.ComboBox1Change(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmCHListsel.ZordernoKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    InitGrid();
  end;
end;

procedure TfrmCHListsel.TV1DblClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    exit;
  ModalResult := 1;
end;

end.

