unit U_KDOKList;

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, cxCalendar, cxButtonEdit, cxSplitter,
  RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport,
  cxTextEdit, cxPC, cxCheckBox, Menus;


type
  TfrmKDOKList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBAdd: TToolButton;
    TBEdit: TToolButton;
    TBClose: TToolButton;
    cxGridPopupMenu1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    TBExport: TToolButton;
    Order_Main: TClientDataSet;
    RM1: TRMGridReport;
    RMDBMain: TRMDBDataSet;
    RMXLSExport1: TRMXLSExport;
    CDS_PRT: TClientDataSet;
    ToolButton3: TToolButton;
    cxGridPopupMenu2: TcxGridPopupMenu;
    Panel1: TPanel;
    Label2: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    ComboBox2: TComboBox;
    Label3: TLabel;
    Label1: TLabel;
    ToolButton1: TToolButton;
    ToolButton4: TToolButton;
    ADOQueryPrint: TADOQuery;
    cxTabControl1: TcxTabControl;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Label8: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    KDNO: TEdit;
    Country: TEdit;
    KHName: TEdit;
    KDType: TEdit;
    Label4: TLabel;
    KDFangShi: TEdit;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column11: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1Column18: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1Column20: TcxGridDBColumn;
    v1Column12: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    v1Column16: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    v1Column13: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    v1Column15: TcxGridDBColumn;
    v1Column17: TcxGridDBColumn;
    v1Column19: TcxGridDBColumn;
    ToolButton2: TToolButton;
    Label6: TLabel;
    KDComName: TEdit;
    v1Column21: TcxGridDBColumn;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cxPageControl1Change(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure WorkerChange(Sender: TObject);
    procedure v1Column15CustomDrawCell(Sender: TcxCustomGridTableView;
      ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
      var ADone: Boolean);
    procedure v1Column9CustomDrawCell(Sender: TcxCustomGridTableView;
      ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
      var ADone: Boolean);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure OrderNoKeyPress(Sender: TObject; var Key: Char);
    procedure TBAddClick(Sender: TObject);
    procedure TBEditClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure v1Column13PropertiesEditValueChanged(Sender: TObject);
    procedure KDNOKeyPress(Sender: TObject; var Key: Char);
    procedure ToolButton2Click(Sender: TObject);

  private
    FInt,PFInt:Integer;
    canshu1,canshu2:string;
    FNowDate:TDateTime;
    procedure InitGrid();
    procedure InitForm();
    function  DelData():Boolean;
    procedure InitGridWsql(fsj:string);
    function  SaveData():Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmKDOKList: TfrmKDOKList;

implementation
uses
  U_DataLink,U_RTFun,U_FHInPut,U_ModuleNote,U_ZDYHelp,U_FHJJInPut;

{$R *.dfm}

procedure TfrmKDOKList.FormDestroy(Sender: TObject);
begin
  frmKDOKList:=nil;
end;

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

procedure TfrmKDOKList.TBCloseClick(Sender: TObject);
begin
  Close;
  WriteCxGrid('寄件对账单',Tv1,'寄件管理');
end;

procedure TfrmKDOKList.InitGrid();
var
  fsj:String;
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      sql.Add(' select A.* ');
      SQL.Add(' from KuaiDi_Money A');
      sql.Add(' where 1=1 ');
      if cxTabControl1.TabIndex<>0 then
      begin
        fsj:=TA(ComboBox2.Items.Objects[ComboBox2.Items.IndexOf(Trim(ComboBox2.Text))]).S;
        sql.Add(' and A.'+Trim(fsj)+'>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+'''');
        sql.Add(' and A.'+Trim(fsj)+'<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+'''');
      end;
      if cxTabControl1.TabIndex=0 then
      begin
        sql.Add('  and isnull(A.Status,'''')<>'''' and isnull(A.MoneyPerson,'''')='''' ');
      end else
      if cxTabControl1.TabIndex=1 then
      begin
        sql.Add(' and isnull(A.Status,'''')<>'''' and isnull(A.MoneyPerson,'''')<>''''');
      end;
      Open;
    end;
    SCreateCDS20(ADOQueryMain,Order_Main);
    SInitCDSData20(ADOQueryMain,Order_Main);
  finally
    ADOQueryMain.EnableControls;
  end;

end;

procedure TfrmKDOKList.InitForm();
begin
  EndDate.Date:=SGetServerDateMEnd(ADOQueryTemp);
  BegDate.Date:=SGetServerDateMBeg(ADOQueryTemp);
  ReadCxGrid('寄件对账单',Tv1,'寄件管理');
  //InitGrid();
end;

procedure TfrmKDOKList.TBDelClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then Exit;
  if cxTabControl1.TabIndex<>0 then Exit;
  if Trim(DName)<>Trim(Order_Main.fieldbyname('Filler').AsString) 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 TfrmKDOKList.DelData():Boolean;
begin
  try
    Result:=false;
    ADOQueryCmd.Connection.BeginTrans;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete JYOrder_FH  where FHId='''+Trim(Order_Main.fieldbyname('FHId').AsString)+'''');
      ExecSQL;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Result:=True;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Result:=False;
    Application.MessageBox('数据删除异常！','提示',0);
  end;
end;

procedure TfrmKDOKList.TBExportClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then Exit;
  TcxGridToExcel('寄件对账列表',cxGrid1);
end;

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

procedure TfrmKDOKList.FormShow(Sender: TObject);
var
  i:Integer;
begin
  InitForm();
  SInitComBoxByTvColumns(ComboBox2,Tv1,999,True,True);
end;

procedure TfrmKDOKList.cxPageControl1Change(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmKDOKList.ToolButton3Click(Sender: TObject);
begin
  try
    frmModuleNote:=TfrmModuleNote.Create(Application);
    with frmModuleNote do
    begin
      flag:='寄件对账';
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmModuleNote.Free;
  end;
end;

procedure TfrmKDOKList.FormCreate(Sender: TObject);
begin
  canshu1:=Trim(DParameters1);
  canshu2:=Trim(DParameters2);
end;

procedure TfrmKDOKList.InitGridWsql(fsj:string);
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      sql.Add(' select A.* ');
      SQL.Add(' from KuaiDi_Money A');
      sql.Add(' where 1=1 ');
      if cxTabControl1.TabIndex=0 then
      begin
        sql.Add('  and isnull(A.Status,'''')<>'''' and isnull(A.MoneyPerson,'''')='''' ');
      end else
      if cxTabControl1.TabIndex=1 then
      begin
        sql.Add(' and isnull(A.Status,'''')<>'''' and isnull(A.MoneyPerson,'''')<>''''');
      end;
      sql.Add(fsj);
      Open;
    end;
    SCreateCDS20(ADOQueryMain,Order_Main);
    SInitCDSData20(ADOQueryMain,Order_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;
function TfrmKDOKList.SaveData():Boolean;
var
  maxno,maxSubNo:String;
begin
  try
    Result:=False;
    ADOQueryCmd.Connection.BeginTrans;
    //保存主表
    if Trim(Order_Main.fieldbyname('MRID').AsString)='' then
    begin
      if GetLSNo(ADOQueryCmd,maxno,'MR','Module_Prompt_Result',4,1)=False then
      begin
        ADOQueryCmd.Connection.RollbackTrans;
        Application.MessageBox('取工作子流水号失败!','提示',0);
        Exit;
      end;
    end else
    begin
      maxno:=Trim(Order_Main.fieldbyname('MRID').AsString);
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      SQL.Add('select * from Module_Prompt_Result where MRId='''+Trim(Order_Main.fieldbyname('MRID').AsString)+'''');
      Open;
    end;
    with ADOQueryCmd do
    begin
      if Trim(Order_Main.fieldbyname('MRID').AsString)='' then
      begin
        Append;
      end
      else begin
        Edit;
      end;
      FieldByName('MPId').Value:=Trim(Order_Main.fieldbyname('MPId').AsString);
      FieldByName('MRId').Value:=Trim(maxno);
      FieldByName('MRStatus').Value:='已处理';
      FieldByName('MRDate').Value:=SGetServerDateTime(ADOQueryTemp);
      if Trim(Order_Main.fieldbyname('MRId').AsString)='' then
      begin
        FieldByName('Filler').Value:=Trim(DName);
      end else
      begin
        FieldByName('Editer').Value:=Trim(DName);
        FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp);
      end;
      Post;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Result:=True;
  except
    Result:=False;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('保存失败！','提示',0);
  end;
end;
procedure TfrmKDOKList.cxTabControl1Change(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmKDOKList.WorkerChange(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 TfrmKDOKList.v1Column15CustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
  Id,Id10:Integer;
begin
  Id:=TV1.GetColumnByFieldName('YuJinagDate1').Index;//
  Id10:=TV1.GetColumnByFieldName('MoneyKC').Index;
  if Id<0 then Exit;
  //$008000FF 橙红色    橙色 $000D55FF   $00B9EE9F  浅绿
  if AViewInfo.GridRecord.Values[Id10]>0 then
  begin
    if AViewInfo.GridRecord.Values[Id]-FNowDate<=0 then
    begin
      ACanvas.Brush.Color:=clYellow;
    end  else
    if AViewInfo.GridRecord.Values[Id]=null then
    begin
     // ACanvas.Brush.Color:=clWhite;
    end;
  end else
  begin
    //ACanvas.Brush.Color:=clWhite;
  end;

end;

procedure TfrmKDOKList.v1Column9CustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
  Id,Id10:Integer;
begin
  Id:=TV1.GetColumnByFieldName('YuJinagDate2').Index;//
  Id10:=TV1.GetColumnByFieldName('MoneyKC').Index;
  if Id<0 then Exit;
  //$008000FF 橙红色    橙色 $000D55FF   $00B9EE9F  浅绿
  if AViewInfo.GridRecord.Values[Id10]>0 then
  begin
    if AViewInfo.GridRecord.Values[Id]-FNowDate<=0 then
    begin
      ACanvas.Brush.Color:=clRed;
    end  else
    if AViewInfo.GridRecord.Values[Id]=null then
    begin
      //ACanvas.Brush.Color:=clWhite;
    end;
  end else
  begin
    //ACanvas.Brush.Color:=clWhite;
  end;

end;

procedure TfrmKDOKList.ToolButton1Click(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 TfrmKDOKList.ToolButton4Click(Sender: TObject);
var
  fPrintFile:String;
begin
  if Order_Main.IsEmpty then Exit;
  if Order_Main.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择数据！','提示',0);
    Exit;
  end;
  fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\检验指示单标签.rmf' ;
  Order_Main.DisableControls;
  with Order_Main do
  begin
    First;
    while not eof do
    begin
      if Order_Main.FieldByName('SSel').AsBoolean=True then
      begin
        {with ADOQueryTemp do
        begin
          Close;
          sql.Clear;
          sql.Add('select * from JYOrder_Main_MD where MDID='''+Trim(Order_Main.fieldbyname('MDID').AsString)+'''');
          Open;
        end;
        if ADOQueryTemp.FieldByName('NotPrint').AsBoolean=True then
        begin
          Order_Main.EnableControls;
          Application.MessageBox('不能打印《不打印》的缸条码!','提示',0);
          Exit;
        end;  }
        if FileExists(fPrintFile) then
        begin
          with ADOQueryPrint do
          begin
            Close;
            sql.Clear;
            sql.Add('select B.OrderNo,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ,C.PRTHX,C.PRTColorNo,C.PRTColor,GangNo=A.GangNo,A.PS,A.Qty,A.QtyUnit,A.MDID ');
            SQL.Add(',B.MPRTCode,B.MPRTGY,C.PRTColorEng,A.SelfGangNo');
            sql.Add('from JYOrder_Main_MD A');
            sql.Add('inner join JYOrder_Main B on A.OrdMainid=B.Mainid');
            sql.Add(' inner join JYOrder_Sub C on A.OrdSubid=C.SubId');
            sql.Add(' where A.MDID='''+Trim(Order_Main.fieldbyname('MDID').AsString)+'''');
            Open;
          end;
          RM1.LoadFromFile(fPrintFile);
          //RM1.ShowReport;
          RM1.PrintReport;
        end else
        begin
          Order_Main.DisableControls;
          Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\检验指示单标签.rmf'),'提示',0);
          Exit;
        end;
      end;

      Next;
    end;
  end;
  Order_Main.EnableControls;
end;

procedure TfrmKDOKList.OrderNoKeyPress(Sender: TObject; var Key: Char);
var
  fsj:String;
begin
  if Key<>#13 then Exit;
  if Length(Trim(KDNO.Text))<3 then Exit;
  fsj:=' and A.KDNO like '''+'%'+Trim(KDNO.Text)+'%'+'''';
  InitGridWsql(fsj);
end;

procedure TfrmKDOKList.TBAddClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then exit;
  if cxTabControl1.TabIndex<>0 then Exit;
  if Order_Main.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择数据!','提示',0);
    Exit;
  end;
  if Order_Main.Locate('SSel;KDMoney',VarArrayOf([True,null]),[loPartialKey])=True then
  begin
    Application.MessageBox('合计不能为空!','提示',0);
    Exit;
  end;  
  if Application.MessageBox('确定要执行此操作吗？','提示',32+4)<>IDYES then Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    Order_Main.DisableControls;
    with Order_Main do
    begin
      First;
      while Locate('SSel',True,[]) do
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('select * from KuaiDi_Money where KDID='''+Trim(Order_Main.fieldbyname('KDID').AsString)+'''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          Edit;
          FieldByName('MoneyPerson').Value:=Trim(DName);
          FieldByName('MoneyTime').Value:=SGetServerDateTime(ADOQueryTemp);
          FieldByName('ZheKouMoney').Value:=Order_Main.fieldbyname('ZheKouMoney').Value;
          FieldByName('PaiSongMoney').Value:=Order_Main.fieldbyname('PaiSongMoney').Value;
          FieldByName('RanYou').Value:=Order_Main.fieldbyname('RanYou').Value;
          FieldByName('RanYouMoney').Value:=Order_Main.fieldbyname('RanYouMoney').Value;
          FieldByName('KDMoney').Value:=Order_Main.fieldbyname('KDMoney').Value;
          FieldByName('DuiZhangNote').Value:=Order_Main.fieldbyname('DuiZhangNote').Value;
          Post;
        end;
        Order_Main.Delete;
      end;
    end;
    Order_Main.EnableControls;
    ADOQueryCmd.Connection.CommitTrans;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('对账异常!','提示',0);
  end;
end;

procedure TfrmKDOKList.TBEditClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then exit;
  if cxTabControl1.TabIndex<>1 then Exit;
  if Order_Main.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择数据!','提示',0);
    Exit;
  end;
  if Application.MessageBox('确定要执行此操作吗？','提示',32+4)<>IDYES then Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    Order_Main.DisableControls;
    with Order_Main do
    begin
      First;
      while Locate('SSel',True,[]) do
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('select * from KuaiDi_Money where KDID='''+Trim(Order_Main.fieldbyname('KDID').AsString)+'''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          Edit;
          FieldByName('MoneyPerson').Value:=Null;
          FieldByName('MoneyTime').Value:=Null;
          //FieldByName('ZheKouMoney').Value:=Null;
          //FieldByName('PaiSongMoney').Value:=Null;
          //FieldByName('RanYou').Value:=Null;
          //FieldByName('RanYouMoney').Value:=Null;
          //FieldByName('KDMoney').Value:=Null;
          Post;
        end;
        Order_Main.Delete;
      end;
    end;
    Order_Main.EnableControls;
    ADOQueryCmd.Connection.CommitTrans;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('撤销异常!','提示',0);
  end;
end;

procedure TfrmKDOKList.N1Click(Sender: TObject);
begin
  SelOKNo(Order_Main,True);  
end;

procedure TfrmKDOKList.N2Click(Sender: TObject);
begin
  SelOKNo(Order_Main,false);
end;

procedure TfrmKDOKList.v1Column13PropertiesEditValueChanged(
  Sender: TObject);
var
  mvalue,FName,ZheKouMoney,PaiSongMoney,RanYou,RanYouMoney,KDMoney:string;
begin
  FName:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
  mvalue:=TcxTextEdit(Sender).EditingValue;
  {if Trim(mvalue)='' then
  begin
    mvalue:='0';
  end; }
  with Order_Main do
  begin
    Edit;
    if Trim(mvalue)<>'' then
      FieldByName(FName).Value:= mvalue
    else
      FieldByName(FName).Value:=Null;
    Post;
  end;
  ZheKouMoney:=Order_Main.fieldbyname('ZheKouMoney').AsString;
  if Trim(ZheKouMoney)='' then ZheKouMoney:='0';
  PaiSongMoney:=Order_Main.fieldbyname('PaiSongMoney').AsString;
  if Trim(PaiSongMoney)='' then PaiSongMoney:='0';
  RanYou:=Order_Main.fieldbyname('RanYou').AsString;
  if Trim(RanYou)='' then RanYou:='0';
  with Order_Main do
  begin
    Edit;
    if (StrToFloat(ZheKouMoney)+StrToFloat(PaiSongMoney))*StrToFloat(RanYou)*0.01<>0 then
      FieldByName('RanYouMoney').Value:=(StrToFloat(ZheKouMoney)+StrToFloat(PaiSongMoney))*StrToFloat(RanYou)*0.01
    else
      FieldByName('RanYouMoney').Value:=Null;
    if StrToFloat(ZheKouMoney)+StrToFloat(PaiSongMoney)+(StrToFloat(ZheKouMoney)+StrToFloat(PaiSongMoney))*StrToFloat(RanYou)*0.01<>0 then
      FieldByName('KDMoney').Value:=StrToFloat(ZheKouMoney)+StrToFloat(PaiSongMoney)+(StrToFloat(ZheKouMoney)+StrToFloat(PaiSongMoney))*StrToFloat(RanYou)*0.01
    else
      FieldByName('KDMoney').Value:=Null;
    Post;
  end;

end;

procedure TfrmKDOKList.KDNOKeyPress(Sender: TObject; var Key: Char);
var
  fsj:String;
begin
  if Key<>#13 then Exit;
  if Length(Trim(KDNO.Text))<3 then Exit;
  fsj:=' and A.KDNO like '''+'%'+Trim(KDNO.Text)+'%'+'''';
  InitGridWsql(fsj);
end;
procedure TfrmKDOKList.ToolButton2Click(Sender: TObject);
begin
  if Order_Main.IsEmpty then exit;
  if cxTabControl1.TabIndex<>0 then Exit;
  if Order_Main.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择数据!','提示',0);
    Exit;
  end;
  {if Order_Main.Locate('SSel;KDMoney',VarArrayOf([True,null]),[loPartialKey])=True then
  begin
    Application.MessageBox('合计不能为空!','提示',0);
    Exit;
  end; }
  if Application.MessageBox('确定要执行此操作吗？','提示',32+4)<>IDYES then Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    Order_Main.DisableControls;
    with Order_Main do
    begin
      First;
      while Locate('SSel',True,[]) do
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('select * from KuaiDi_Money where KDID='''+Trim(Order_Main.fieldbyname('KDID').AsString)+'''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          Edit;
          //FieldByName('MoneyPerson').Value:=Trim(DName);
          //FieldByName('MoneyTime').Value:=SGetServerDateTime(ADOQueryTemp);
          FieldByName('ZheKouMoney').Value:=Order_Main.fieldbyname('ZheKouMoney').Value;
          FieldByName('PaiSongMoney').Value:=Order_Main.fieldbyname('PaiSongMoney').Value;
          FieldByName('RanYou').Value:=Order_Main.fieldbyname('RanYou').Value;
          FieldByName('RanYouMoney').Value:=Order_Main.fieldbyname('RanYouMoney').Value;
          FieldByName('KDMoney').Value:=Order_Main.fieldbyname('KDMoney').Value;
          FieldByName('DuiZhangNote').Value:=Order_Main.fieldbyname('DuiZhangNote').Value;
          Post;
        end;
        Edit;
        FieldByName('SSel').Value:=False;
        Post;
      end;
    end;
    Order_Main.EnableControls;
    ADOQueryCmd.Connection.CommitTrans;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('对账异常!','提示',0);
  end;
end;

end.
