unit U_BGFeeList;

interface

uses
  Windows, 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, cxPC, cxButtonEdit, cxTextEdit, cxDropDownEdit;

type
  TfrmBGFeeList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBAdd: TToolButton;
    TBEdit: TToolButton;
    TBDel: TToolButton;
    TBPrint: TToolButton;
    TBClose: TToolButton;
    Tv1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    cxGridPopupMenu1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    TBExport: TToolButton;
    v1OrdDate: TcxGridDBColumn;
    v1ConNo: TcxGridDBColumn;
    v1PRTColor: TcxGridDBColumn;
    v1MPRTSpec: TcxGridDBColumn;
    Order_Main: TClientDataSet;
    RM1: TRMGridReport;
    RMDBDataSet1: TRMDBDataSet;
    RMXLSExport1: TRMXLSExport;
    v1CustomerNoName: TcxGridDBColumn;
    v1MPRTCodeName: TcxGridDBColumn;
    v1MPRTMF: TcxGridDBColumn;
    PopupMenu1: TPopupMenu;
    N2: TMenuItem;
    v1PRTPrice: TcxGridDBColumn;
    ToolButton1: TToolButton;
    v1Column1: TcxGridDBColumn;
    ADOQueryPrint: TADOQuery;
    CDS_Print: TClientDataSet;
    v1Column4: TcxGridDBColumn;
    Panel1: TPanel;
    Label4: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    OrderNoHZ: TEdit;
    BMNo: TEdit;
    ChuanGS: TEdit;
    v1Column2: TcxGridDBColumn;
    cxTabControl1: TcxTabControl;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    v1Column3: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column11: TcxGridDBColumn;
    cxSplitter1: TcxSplitter;
    Label2: TLabel;
    ChuanNo: TEdit;
    Label3: TLabel;
    HDName: TEdit;
    Label5: TLabel;
    FeeName: TEdit;
    ComboBox1: TComboBox;
    DataSource2: TDataSource;
    ClientDataSet2: TClientDataSet;
    v1Column12: TcxGridDBColumn;
    v1Column13: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    Panel2: TPanel;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn5: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    cxGridDBColumn10: TcxGridDBColumn;
    cxGridDBColumn11: TcxGridDBColumn;
    cxGridDBColumn12: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    cxSplitter2: TcxSplitter;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    v2Column1: TcxGridDBColumn;
    cxGridDBColumn13: TcxGridDBColumn;
    cxGridDBColumn14: TcxGridDBColumn;
    cxGridDBColumn15: TcxGridDBColumn;
    cxGridDBColumn16: TcxGridDBColumn;
    cxGridDBColumn17: TcxGridDBColumn;
    cxGridDBColumn18: TcxGridDBColumn;
    cxGridDBColumn19: TcxGridDBColumn;
    cxGridDBColumn20: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    DataSource3: TDataSource;
    ClientDataSet3: TClientDataSet;
    cxGridPopupMenu2: TcxGridPopupMenu;
    cxGridPopupMenu3: TcxGridPopupMenu;
    v1Column15: TcxGridDBColumn;
    v1Column16: TcxGridDBColumn;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure TBEditClick(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure TBPrintClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure TBAddClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView;
      ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
      out AStyle: TcxStyle);
    procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView;
      ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
      var ADone: Boolean);
    procedure ToolButton1Click(Sender: TObject);
    procedure OrderNoHZChange(Sender: TObject);
    procedure BMNoKeyPress(Sender: TObject; var Key: Char);
    procedure cxTabControl1Change(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView;
      APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
      ANewItemRecordFocusingChanged: Boolean);
    procedure OrderNoHZKeyPress(Sender: TObject; var Key: Char);
  private
    DQdate:TDateTime;
    procedure InitGrid();
    procedure InitForm();
    function  DelData():Boolean;
    { Private declarations }
  public
    FFInt,FCloth:Integer;

    { Public declarations }
  end;

var
  frmBGFeeList: TfrmBGFeeList;

implementation
uses
  U_DataLink,U_BGFeeInPut,U_RTFun;

{$R *.dfm}

procedure TfrmBGFeeList.FormDestroy(Sender: TObject);
begin
  frmBGFeeList:=nil;
end;

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

procedure TfrmBGFeeList.FormCreate(Sender: TObject);
begin
  cxgrid1.Align:=alClient;
  //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7;
  //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp);
  DQdate:=SGetServerDate(ADOQueryTemp);
end;

procedure TfrmBGFeeList.TBCloseClick(Sender: TObject);
begin
  Close;
  WriteCxGrid('报关费用列表1',Tv1,'报关费用');
  WriteCxGrid('报关费用列表2',Tv2,'报关费用');
  WriteCxGrid('报关费用列表3',Tv3,'报关费用');
end;

procedure TfrmBGFeeList.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      sql.Add('select A.*,B.* ');
      sql.Add(',OrderNoHZ=dbo.F_Get_Order_SubStr(A.BMID,''BGOrderNo'')');
      sql.Add(' from BGFee_Main A  ');
      sql.Add(' left join BGFee_HuoDai B on A.BMID=B.BMID');
      if Trim(ComboBox1.Text)='按登记日期' then
      begin
        SQL.Add('where  A.FillTIme>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  A.FillTIme<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end else
      if Trim(ComboBox1.Text)='按装箱日期' then
      begin
        SQL.Add('where  A.ZhuangXiangDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  A.ZhuangXiangDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end  else
      if Trim(ComboBox1.Text)='按船期' then
      begin
        SQL.Add('where  A.ChuanDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  A.ChuanDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end else
      if Trim(ComboBox1.Text)='按预录单日期' then
      begin
        SQL.Add('where  A.YuLuDanDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  A.YuLuDanDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end else
      if Trim(ComboBox1.Text)='按提单日期' then
      begin
        SQL.Add('where  A.TiDanDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  A.TiDanDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end else
      if Trim(ComboBox1.Text)='按预退单日期' then
      begin
        SQL.Add('where  A.YuTuiDanDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  A.YuTuiDanDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end else
      if Trim(ComboBox1.Text)='按交退单核日期' then
      begin
        SQL.Add('where  A.JiaoTuiDanDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  A.JiaoTuiDanDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end else
      if Trim(ComboBox1.Text)='按退单(核)日期' then
      begin
        SQL.Add('where  A.TuiDanChkDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  A.TuiDanChkDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end else
      if Trim(ComboBox1.Text)='按付款日期' then
      begin
        SQL.Add('where  B.SFKDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  B.SFKDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end;
      {if Trim(ComboBox1.Text)='按付款日期' then
      begin
        SQL.Add('where  A.FKDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+'''');
        SQL.Add('and  A.FKDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+'''');
      end; }

      if Trim(DParameters1)<>'高权限'  then
      begin
        //sql.Add('and A.Filler='''+Trim(DName)+'''');
        sql.Add(' and A.Filler in(select UserName from  SY_User where DPID in');
        sql.Add(' (select DPID from SY_User where UserName='''+Trim(DName)+'''))');
      end;
      if cxTabControl1.TabIndex=0 then
      begin
        SQL.Add(' and isnull(SChkTime,'''')='''' ');
      end else
      if cxTabControl1.TabIndex=1 then
      begin
        SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
        sql.Add(' and (isnull(B.SFKDate,'''')='''' and isnull(TuiDanChkDate,'''')='''')');
      end  else
      if cxTabControl1.TabIndex=2 then
      begin
        SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
        sql.Add(' and (isnull(B.SFKDate,'''')<>'''')');
      end  else
      if cxTabControl1.TabIndex=3 then
      begin
        SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
        sql.Add(' and (isnull(TuiDanChkDate,'''')<>'''')');
      end;
      Open;
    end;
    SCreateCDS20(ADOQueryMain,Order_Main);
    SInitCDSData20(ADOQueryMain,Order_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;


procedure TfrmBGFeeList.InitForm();
begin
  ReadCxGrid('报关费用列表1',Tv1,'报关费用');
  ReadCxGrid('报关费用列表2',Tv2,'报关费用');
  ReadCxGrid('报关费用列表3',Tv3,'报关费用');
  BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7;
  EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
  InitGrid();
end;

procedure TfrmBGFeeList.TBFindClick(Sender: TObject);
begin
  if ADOQueryMain.Active=False then Exit;
  SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
  SCreateCDS20(ADOQueryMain,Order_Main);
  SInitCDSData20(ADOQueryMain,Order_Main);
end;

procedure TfrmBGFeeList.TBEditClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then Exit;
  if cxTabControl1.TabIndex<>0 then Exit;
  if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then
  begin
    Application.MessageBox('不能操作他人的数据!','提示',0);
    Exit;
  end;
  try
    frmBGFeeInPut:=TfrmBGFeeInPut.Create(Application);
    with frmBGFeeInPut do
    begin
      PState:=1;
      FMainId:=Trim(Self.Order_Main.fieldbyname('BMId').AsString);
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmBGFeeInPut.Free;
  end;
end;

procedure TfrmBGFeeList.TBDelClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then Exit;
  if cxTabControl1.TabIndex<>0 then Exit;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from BGFee_Main where BMID='''+Trim(Order_Main.fieldbyname('BMID').AsString)+'''');
    Open;
  end;
  if Trim(ADOQueryTemp.fieldbyname('ChkStatus').AsString)<>'' then
  begin
    Application.MessageBox('财务已产生数据，不能删除!','提示',0);
    Exit;
  end;
  if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then
  begin
    Application.MessageBox('不能操作他人的数据!','提示',0);
    Exit;
  end;
  if Application.MessageBox('确定要删除数据吗？','提示',32+4)<>IDYES then Exit;
  if DelData() then
  begin
    Order_Main.Delete;
  end;
end;

function TfrmBGFeeList.DelData():Boolean;
begin
  try
    Result:=false;
    ADOQueryCmd.Connection.BeginTrans;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete BGFee_Main where BMId='''+Trim(Order_Main.fieldbyname('BMId').AsString)+'''');
      ExecSQL;
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete BGFee_Sub where BMId='''+Trim(Order_Main.fieldbyname('BMId').AsString)+'''');
      ExecSQL;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Result:=True;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Result:=False;
    Application.MessageBox('数据删除异常！','提示',0);
  end;
end;

procedure TfrmBGFeeList.TBExportClick(Sender: TObject);
begin
  //if ADOQueryMain.IsEmpty then Exit;
  //SelExportData(Tv1,ADOQueryMain,'生产指示单列表');
  if Order_Main.IsEmpty then Exit;
  TcxGridToExcel('订单合同',cxGrid1);
end;

procedure TfrmBGFeeList.TBPrintClick(Sender: TObject);
var
   fPrintFile:string;
   EngMoney:string;
begin
  if Order_Main.IsEmpty then Exit;
  fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\英文合同.rmf' ;
  with ADOQueryPrint do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.*,B.*,ConMoney=B.PRTOrderQty*B.PRTPrice,COL=''COL:''  ');
    sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.MainId ');
    sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryPrint,CDS_Print);
  SInitCDSData20(ADOQueryPrint,CDS_Print);
  //
  with ADOQueryTemp do
  begin
    close;
    sql.Clear;
    sql.Add('select TolConMoney=Sum(PRTOrderQty*PRTPrice)');
    sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.MainId ');
    sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
    Open;
  end;
  EngMoney:=num2cengnum(ADOQueryTemp.fieldbyname('TolConMoney').AsString);
  EngMoney:=UpperCase(EngMoney);
  if FileExists(fPrintFile) then
  begin
    RMVariables['EngMoney']:=EngMoney;
    //RMVariables['enddate']:=enddate.DateTime;
    //RMVariables['printtime']:=Now;
    //RMVariables['printer']:=Trim(gUserName);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end else
  begin
    Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\英文合同.rmf'),'提示',0);
  end;
end;

procedure TfrmBGFeeList.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmBGFeeList.TBAddClick(Sender: TObject);
var
  maxno:string;
begin
  try
    frmBGFeeInPut:=TfrmBGFeeInPut.Create(Application);
    with frmBGFeeInPut do
    begin
      PState:=0;
      FMainId:='';
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmBGFeeInPut.Free;
  end;
end;

procedure TfrmBGFeeList.FormShow(Sender: TObject);
begin
  InitForm();
end;

procedure TfrmBGFeeList.Tv1StylesGetContentStyle(
  Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
  AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
  id,id10:Integer;
begin
  {try
    if Tv1.GroupedItemCount=0 then
    begin
      Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount;
      Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount;
      if Trim(VarToStr(ARecord.Values[id]))='' then Exit;
      if Id<0 then Exit;
      if ARecord.Values[id10]='完成' then exit;
      if (ARecord.Values[id]-DQdate)>=4 then Exit;
      if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then
        AStyle:=DataLink_.QHuangSe
      else
      if ARecord.Values[id]-DQdate<0 then
      begin
        AStyle:=DataLink_OrderManage.FenHongS;
      end;
    end else
    begin

    end;
  except
  end; }
end;

procedure TfrmBGFeeList.v1DeliveryDateCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
 { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount;
  Id10:=TV1.GetColumnByFieldName('SubStatus').Index;
  if Id<0 then Exit;
  if AViewInfo.GridRecord.Values[Id10]='完成' then Exit;
  if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit;
  if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then
    ACanvas.Brush.Color:=clYellow
  else
  if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then
  begin
    ACanvas.Brush.Color:=clRed;
  end;
  begin
    ACanvas.Brush.Color:=clRed;
  end else
  if AViewInfo.GridRecord.Values[Id]='Purple' then
  begin
    ACanvas.Brush.Color:=clPurple;
  end else
  if AViewInfo.GridRecord.Values[Id]='Olive' then
  begin
    ACanvas.Brush.Color:=clOlive;
  end else
  if AViewInfo.GridRecord.Values[Id]='Teal' then
  begin
    ACanvas.Brush.Color:=clTeal;
  end else
  if AViewInfo.GridRecord.Values[Id]='Background' then
  begin
    ACanvas.Brush.Color:=clBackground;
  end;   }
end;

procedure TfrmBGFeeList.ToolButton1Click(Sender: TObject);
begin
  if Order_Main.IsEmpty then Exit;
  try
    frmBGFeeInPut:=TfrmBGFeeInPut.Create(Application);
    with frmBGFeeInPut do
    begin
      PState:=1;
      FMainId:=Trim(Self.Order_Main.fieldbyname('BMId').AsString);
      ToolBar2.Visible:=False;
      TBSave.Visible:=False;
      ScrollBox1.Enabled:=False;
      Tv1.OptionsSelection.CellSelect:=False;
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmBGFeeInPut.Free;
  end;
end;

procedure TfrmBGFeeList.OrderNoHZChange(Sender: TObject);
begin
  if ADOQueryMain.Active=False then Exit;
  SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
  SCreateCDS20(ADOQueryMain,Order_Main);
  SInitCDSData20(ADOQueryMain,Order_Main);
end;

procedure TfrmBGFeeList.BMNoKeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
  begin
    if Length(BMNo.Text)<3 then Exit;
    try
      ADOQueryMain.DisableControls;
      with ADOQueryMain do
      begin
        Filtered:=False;
        Close;
        SQL.Clear;
        sql.Add('select A.*,B.* ');
        sql.Add(',OrderNoHZ=dbo.F_Get_Order_SubStr(A.BMID,''BGOrderNo'')');
        sql.Add(' from BGFee_Main A  ');
        sql.Add(' left join BGFee_HuoDai B on A.BMID=B.BMID');
        SQL.Add('where  1=1');
        if Trim(DParameters1)<>'高权限'  then
        begin
          sql.Add(' and A.Filler in(select UserName from  SY_User where DPID in');
          sql.Add(' (select DPID from SY_User where UserName='''+Trim(DName)+'''))');
        end;
        sql.Add(' and BMNO like '''+'%'+Trim(BMNO.Text)+'%'+'''');
        if cxTabControl1.TabIndex=0 then
        begin
          SQL.Add(' and isnull(SChkTime,'''')='''' ');
        end else
        if cxTabControl1.TabIndex=1 then
        begin
          SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
          sql.Add(' and (isnull(SFKDate,'''')<>'''' or isnull(TuiDanChkDate,'''')<>'''')');
        end  else
        if cxTabControl1.TabIndex=2 then
        begin
          SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
          sql.Add(' and (isnull(SFKDate,'''')<>'''')');
        end  else
        if cxTabControl1.TabIndex=3 then
        begin
          SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
          sql.Add(' and (isnull(TuiDanChkDate,'''')<>'''')');
        end;
        Open;
      end;
      SCreateCDS20(ADOQueryMain,Order_Main);
      SInitCDSData20(ADOQueryMain,Order_Main);
    finally
      ADOQueryMain.EnableControls;
    end;
  end;
end;

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

procedure TfrmBGFeeList.ToolButton3Click(Sender: TObject);
begin
  if Order_Main.IsEmpty then Exit;
  if cxTabControl1.TabIndex<>0 then Exit;
  if Application.MessageBox('确定要执行此操作吗？','提示',32+4)<>IDYES then Exit;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('UPdate BGFee_Main Set SChkStatus=''已送审'',SChkTime=getdate(),SChker='''+Trim(DName)+'''');
    sql.Add(' where BMID='''+Trim(Order_Main.fieldbyname('BMID').AsString)+'''');
    ExecSQL;
  end;
  Order_Main.Delete;
end;

procedure TfrmBGFeeList.ToolButton4Click(Sender: TObject);
begin
  if Order_Main.IsEmpty then Exit;
  if cxTabControl1.TabIndex<>1 then Exit;
  if Application.MessageBox('确定要执行此操作吗？','提示',32+4)<>IDYES then Exit;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('UPdate BGFee_Main Set SChkStatus=Null,SChkTime=Null,SChker=Null');
    sql.Add(' where BMID='''+Trim(Order_Main.fieldbyname('BMID').AsString)+'''');
    ExecSQL;
  end;
  Order_Main.Delete;
end;

procedure TfrmBGFeeList.Tv1FocusedRecordChanged(
  Sender: TcxCustomGridTableView; APrevFocusedRecord,
  AFocusedRecord: TcxCustomGridRecord;
  ANewItemRecordFocusingChanged: Boolean);
begin
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from BGFee_Sub where BMID='''+Trim(Order_Main.fieldbyname('BMID').AsString)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet2);
  SInitCDSData20(ADOQueryTemp,ClientDataSet2);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from BGFee_HuoDai where BMID='''+Trim(Order_Main.fieldbyname('BMID').AsString)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet3);
  SInitCDSData20(ADOQueryTemp,ClientDataSet3);
end;

procedure TfrmBGFeeList.OrderNoHZKeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
  begin
    if Length(OrderNoHZ.Text)<3 then Exit;
    try
      ADOQueryMain.DisableControls;
      with ADOQueryMain do
      begin
        Filtered:=False;
        Close;
        SQL.Clear;
        sql.Add('select A.*,B.* ');
        sql.Add(',OrderNoHZ=dbo.F_Get_Order_SubStr(A.BMID,''BGOrderNo'')');
        sql.Add(' from BGFee_Main A  ');
        sql.Add(' left join BGFee_HuoDai B on A.BMID=B.BMID');
        SQL.Add('where  1=1');
        if Trim(DParameters1)<>'高权限'  then
        begin
          sql.Add(' and A.Filler in(select UserName from  SY_User where DPID in');
          sql.Add(' (select DPID from SY_User where UserName='''+Trim(DName)+'''))');
        end;
        sql.Add(' and dbo.F_Get_Order_SubStr(A.BMID,''BGOrderNo'') like '''+'%'+Trim(OrderNoHZ.Text)+'%'+'''');
        if cxTabControl1.TabIndex=0 then
        begin
          SQL.Add(' and isnull(SChkTime,'''')='''' ');
        end else
        if cxTabControl1.TabIndex=1 then
        begin
          SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
          sql.Add(' and (isnull(SFKDate,'''')<>'''' or isnull(TuiDanChkDate,'''')<>'''')');
        end  else
        if cxTabControl1.TabIndex=2 then
        begin
          SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
          sql.Add(' and (isnull(SFKDate,'''')<>'''')');
        end  else
        if cxTabControl1.TabIndex=3 then
        begin
          SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
          sql.Add(' and (isnull(TuiDanChkDate,'''')<>'''')');
        end;
        Open;
      end;
      SCreateCDS20(ADOQueryMain,Order_Main);
      SInitCDSData20(ADOQueryMain,Order_Main);
    finally
      ADOQueryMain.EnableControls;
    end;
  end;
end;

end.
