unit U_YFMXlist;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
  cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
  cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
  cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
  cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
  RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
  cxTextEdit, cxDropDownEdit, RM_e_Xls, cxGridBandedTableView,
  cxGridDBBandedTableView, BtnEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters,
  cxNavigator, dxBarBuiltInMenu, MovePanel, Menus, dxSkinsCore,
  dxSkinsDefaultPainters, dxSkinscxPCPainter, dxSkinBlack, dxSkinBlue,
  dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom,
  dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle,
  dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary,
  dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin,
  dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins,
  dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
  dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
  dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
  dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin,
  dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus,
  dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008,
  dxSkinTheAsphaltWorld, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint,
  dxSkinXmas2008Blue;

type
  TfrmYFMXlist = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    Panel1: TPanel;
    ToolButton2: TToolButton;
    Label1: TLabel;
    MPRTCodeName: TEdit;
    ADOQueryMain: TADOQuery;
    ToolButton1: TToolButton;
    Label3: TLabel;
    OrderNo: TEdit;
    cxGrid2: TcxGrid;
    cxGridLevel1: TcxGridLevel;
    Label2: TLabel;
    Label6: TLabel;
    begdate: TDateTimePicker;
    Enddate: TDateTimePicker;
    cxGridPopupMenu2: TcxGridPopupMenu;
    DS_HZ: TDataSource;
    CDS_HZ: TClientDataSet;
    Label4: TLabel;
    OrdDefNote3: TComboBox;
    Label5: TLabel;
    ToolButton3: TToolButton;
    RM1: TRMGridReport;
    RMDBDataSet1: TRMDBDataSet;
    RMXLSExport1: TRMXLSExport;
    ADOQueryPrint: TADOQuery;
    Panetime: TPanel;
    TV1: TcxGridDBBandedTableView;
    V1Column1: TcxGridDBBandedColumn;
    V1Column2: TcxGridDBBandedColumn;
    V1Column4: TcxGridDBBandedColumn;
    V1Column5: TcxGridDBBandedColumn;
    V1Column6: TcxGridDBBandedColumn;
    V1Column7: TcxGridDBBandedColumn;
    V1Column8: TcxGridDBBandedColumn;
    V1Column9: TcxGridDBBandedColumn;
    V1Column12: TcxGridDBBandedColumn;
    V1Column15: TcxGridDBBandedColumn;
    V1Column3: TcxGridDBBandedColumn;
    factoryName: TBtnEditA;
    V1Column10: TcxGridDBBandedColumn;
    V1Column11: TcxGridDBBandedColumn;
    V1Column13: TcxGridDBBandedColumn;
    V1Column14: TcxGridDBBandedColumn;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    Label7: TLabel;
    YFGSType: TComboBox;
    cxTabControl1: TcxTabControl;
    Label8: TLabel;
    ishs: TComboBox;
    V1Column16: TcxGridDBBandedColumn;
    V1Column17: TcxGridDBBandedColumn;
    V1Column18: TcxGridDBBandedColumn;
    V1Column19: TcxGridDBBandedColumn;
    V1Column20: TcxGridDBBandedColumn;
    V1Column21: TcxGridDBBandedColumn;
    V1Column22: TcxGridDBBandedColumn;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    TV1Column1: TcxGridDBBandedColumn;
    MXORDERNO: TEdit;
    lbl1: TLabel;
    TV1Column2: TcxGridDBBandedColumn;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    MovePanel1: TMovePanel;
    Label9: TLabel;
    dzdate: TDateTimePicker;
    Button1: TButton;
    Button2: TButton;
    TV1Column3: TcxGridDBBandedColumn;
    TV1Column4: TcxGridDBBandedColumn;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    TV1Column5: TcxGridDBBandedColumn;
    ComboBox1: TComboBox;
    TV1Column6: TcxGridDBBandedColumn;
    TV1Column7: TcxGridDBBandedColumn;
    Label10: TLabel;
    gangno: TEdit;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure P_OrderNo_YSK(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure OrderNoChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure factoryNameBtnClick(Sender: TObject);
    procedure V1Column9CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
    procedure TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    procedure YFGSTypeChange(Sender: TObject);
    procedure V1Column8PropertiesEditValueChanged(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure MXORDERNOChange(Sender: TObject);
    procedure V1Column14PropertiesEditValueChanged(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
  private
    { Private declarations }

    procedure InitGrid();
  public
    { Public declarations }
    RKFlag, FCYID: string;
    fType: string;
    canshu1: string;
  end;

var
  frmYFMXlist: TfrmYFMXlist;

implementation

uses
  U_DataLink, U_Fun, U_ZDYHelp, U_ProductOrderNewList, U_ZdyAttachGYS;

{$R *.dfm}

procedure TfrmYFMXlist.InitGrid();
begin
  if trim(factoryName.Text) = '' then
  begin
    application.MessageBox('请输入供应商，以便提高查询速度！', '提示信息', MB_ICONERROR);
    exit;
  end;
  screen.Cursor := crsqlwait;
  Panetime.Visible := true;
  Panetime.Left := (Width - Panetime.Width) div 2;
  Panetime.top := (Height - Panetime.Height - 200) div 2;
  application.ProcessMessages;
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Close;
      SQL.Clear;
      Filtered := False;
      if CANSHU1 = '查询' then
      begin
        sql.Add(' exec  P_YFFK_List_mx_dqx ');
      end
      else
      begin
        sql.Add(' exec  P_YFFK_List_mx ');
      end;

      sql.Add(' @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime))));
      sql.Add(',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1))));
      sql.Add(',@factoryName=' + quotedstr(Trim(factoryName.Text)));
      case cxTabControl1.TabIndex of
        0:
          begin
            sql.Add(',@flag=''全部'' ');
          end;
        1:
          begin
            sql.Add(',@flag=''0'' ');
          end;
        2:
          begin
            sql.Add(',@flag=''1'' ');
          end;
      end;
      sql.Add(',@YFGSType=' + quotedstr(Trim(YFGSType.Text)));
      sql.Add(',@ISHS=' + quotedstr(Trim(ISHS.Text)));
      if CANSHU1 = '查询' then
      begin
        sql.Add(',@dname=' + quotedstr(Trim(DName)));
      end;
//      ShowMessage(SQL.Text);
      Open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_HZ);
    SInitCDSData20(ADOQueryMain, CDS_HZ);
  finally
    ADOQueryMain.EnableControls;
    ToolButton2.Click;
    Panetime.Visible := false;
    screen.Cursor := crdefault;
  end;
end;

procedure TfrmYFMXlist.FormDestroy(Sender: TObject);
begin
  frmYFMXlist := nil;
end;

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

procedure TfrmYFMXlist.TBCloseClick(Sender: TObject);
begin
  WriteCxBandedGrid(trim(self.Caption), Tv1, '财务管理');
  Close;
end;

procedure TfrmYFMXlist.FormShow(Sender: TObject);
begin
  readCxBandedGrid(trim(self.Caption), Tv1, '财务管理');

end;

procedure TfrmYFMXlist.TBRafreshClick(Sender: TObject);
begin
  begdate.SetFocus;
  InitGrid();
end;

procedure TfrmYFMXlist.ToolButton2Click(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS20(ADOQueryMain, CDS_HZ);
    SInitCDSData20(ADOQueryMain, CDS_HZ);
  end;
end;

procedure TfrmYFMXlist.P_OrderNo_YSK(Sender: TObject);
begin
  ToolButton2.Click;
end;

procedure TfrmYFMXlist.ToolButton1Click(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    Exit;
  TcxGridToExcel(self.Caption, cxgrid2);
end;

procedure TfrmYFMXlist.OrderNoChange(Sender: TObject);
begin
  if Length(Trim(OrderNo.Text)) < 3 then
    Exit;
  ToolButton2.Click;
end;

procedure TfrmYFMXlist.FormCreate(Sender: TObject);
var
  fsj: string;
begin
  cxGrid2.Align := AlClient;
  Enddate.DateTime := SGetServerDate(ADOQueryTemp);
  begdate.DateTime := Enddate.DateTime;
  fsj := 'select distinct(YFGSType) name from YF_Money_CR where CRType=''应付款登记'' ';
  SInitComBoxBySql(ADOQueryCmd, YFGSType, False, fsj);
end;

procedure TfrmYFMXlist.ToolButton3Click(Sender: TObject);
var
  fPrintFile: string;
  Txt, fImagePath: string;
  Moudle: THandle;
  Makebar: TMakebar;
  Mixtext: TMixtext;
  wsql, wsql2: string;
  FMAINID: string;
begin

//  if CDS_HZ.IsEmpty then
//    exit;
//  try
//
//    filepath := ExtractFilePath(Application.ExeName) + 'report\应收款对账单.rmf';
//
//    if not FileExists(Pchar(filepath)) then
//    begin
//      application.MessageBox(pchar('文件[' + filepath + ']不存在！'), '提示信息', MB_IConError);
//      exit;
//    end;
//
//    RmVariables['begDate'] := FormatDateTime('yyyy-mm-dd', begDate.Date);
//    RmVariables['enddate'] := FormatDateTime('yyyy-mm-dd', enddate.Date);
//    RmVariables['ishs'] := Trim(ishs.Text);
//    RMVariables['zdr'] := trim(DName);
//    RmVariables['begDate'] := FormatDateTime('yymmdd', begDate.Date) + '-' + FormatDateTime('yymmdd', enddate.Date);
//
//    RMGridReport1.LoadFromFile(filepath);
//   // RMGridReport1.PrintReport;
//    RMGridReport1.ShowReport;
//
//  finally
//
//  end;
  if CDS_HZ.IsEmpty then
    Exit;
  //if Trim(CDS_Main.fieldbyname('CRType').AsString)<>'检验出库' then Exit;
  if CDS_HZ.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  ExportFtErpFile('应付款对账单.rmf', ADOQueryTemp);
  fPrintFile := ExtractFilePath(Application.ExeName) + 'report\应付款对账单.rmf';

  with CDS_HZ do
  begin

    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete TBSubID where DName=''' + Trim(DCode) + '''');
      ExecSQL;
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('SELECT * FROM TBSubID where 1=2 ');
      open;
    end;
    CDS_HZ.DisableControls;
    try
      ADOQueryCmd.Connection.BeginTrans;
      with CDS_HZ do
      begin
        First;
        while not Eof do
        begin
          if Fieldbyname('Ssel').AsBoolean then
          begin

            ADOQueryCmd.append;
            ADOQueryCmd.fieldbyname('SubId').Value := Trim(CDS_HZ.fieldbyname('YFSID').AsString);
            ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode);
            ADOQueryCmd.post;
          end;
          Next;
        end;
      end;
      ADOQueryCmd.Connection.CommitTrans;
    except
      ADOQueryCmd.Connection.RollbackTrans;
    end;
    CDS_HZ.EnableControls;
    with ADOQueryPrint do
    begin
      Close;
      sql.Clear;

      sql.Add(' exec  P_PRINT_YFFK_List_mx  ');
      sql.Add(' @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime))));
      sql.Add(',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1))));
      sql.Add(',@factoryName=' + quotedstr(Trim(CDS_HZ.fieldbyname('FACTORYNAME').AsString)));
      case cxTabControl1.TabIndex of
        0:
          begin
            sql.Add(',@flag=''全部'' ');
          end;
        1:
          begin
            sql.Add(',@flag=''已审核'' ');
          end;
      end;
      sql.Add(',@YFGSType=' + quotedstr(Trim(YFGSType.Text)));
      sql.Add(',@ISHS=' + quotedstr(Trim(ISHS.Text)));
      sql.add(',@spid=' + quotedstr(Trim(DCode)));
//     ShowMessage(SQL.Text);
      Open;
    end;
//    SCreateCDS20(ADOQueryPrint, CDS_HZ);
//    SInitCDSData20(ADOQueryPrint, CDS_HZ);

    RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1);
    if FileExists(fPrintFile) then
    begin
      RmVariables['GSTT'] := Trim(ComboBox1.Text);
//      RmVariables['djmoney'] := Trim(CDS_HZ.fieldbyname('djmoney').AsString);


      RM1.LoadFromFile(fPrintFile);

      RM1.ShowReport;
    end
    else
    begin
      CDS_HZ.EnableControls;
      Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\应收款对账单.rmf'), '提示', 0);
      Exit;
    end;
//    Edit;
//    FieldByName('SSel').Value := False;
//    Post;
//    end;
  end;
  CDS_HZ.EnableControls;

end;

procedure TfrmYFMXlist.factoryNameBtnClick(Sender: TObject);
begin
  try
    frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application);
    with frmZdyAttachGYS do
    begin
      if ShowModal = 1 then
      begin
        FactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString);
        InitGrid();
      end;
    end;
  finally
    frmZdyAttachGYS.Free;
  end;
end;

procedure TfrmYFMXlist.V1Column9CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
begin
  if ARow1.Values[V1Column11.Index] = ARow2.Values[V1Column11.Index] then
    AAreEqual := True
  else
    AAreEqual := False;
end;

procedure TfrmYFMXlist.TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('keyNO').Index]) mod 2 = 0 then
  begin
    ACanvas.Brush.Color := $EEF5FF;
  end
  else
  begin
    ACanvas.Brush.Color := $FFF8F0;
  end;

  if AViewInfo.GridRecord.Values[TV1Column4.Index] = '1' then
  begin
    ACanvas.Font.Color := clRed;
  end;

end;

procedure TfrmYFMXlist.YFGSTypeChange(Sender: TObject);
begin
  ToolButton2.Click;
end;

procedure TfrmYFMXlist.V1Column8PropertiesEditValueChanged(Sender: TObject);
var
  mvalue, FFieldName: string;
begin
  if CDS_HZ.FieldByName('crtype').AsString = '应付款登记' then
  begin
    mvalue := TcxTextEdit(Sender).EditingText;
    FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
    if mvalue = '' then
    begin
      mvalue := '0';
    end;
    with CDS_HZ do
    begin
      Edit;
      FieldByName(FFieldName).Value := mvalue;
      Post;
    end;
    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('update YF_Money_CR_Sub set  ' + FFieldName + '=' + (Trim(mvalue)));
      sql.Add('where YFSID=' + quotedstr(Trim(CDS_HZ.fieldbyname('YFSID').AsString)));

      sql.Add('update YF_Money_CR_Sub set  ');
      sql.Add('MXMONEY=ISNULL(SHANGJIFEI,0)+ISNULL(XIAOGANGFEI,0)+ISNULL(PRICE,0)*QTY');
      sql.Add('where YFSID=' + quotedstr(Trim(CDS_HZ.fieldbyname('YFSID').AsString)));

      sql.Add('update YF_Money_CR set  ');
      sql.Add('MONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) ');
      sql.Add(',BBMONEY=HUILV*(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) ');
      sql.Add('where YFID=' + quotedstr(Trim(CDS_HZ.fieldbyname('YFID').AsString)));
      ExecSQL;
    end;
    tv1.Controller.EditingController.ShowEdit();
    InitGrid();
  end;

end;

procedure TfrmYFMXlist.ToolButton4Click(Sender: TObject);
begin
  if CDS_HZ.IsEmpty then
    exit;

  if cxTabControl1.TabIndex = 2 then
    Exit;

//  if CDS_HZ.Locate('ssel', true, []) = false then
//  begin
//    Application.MessageBox('没有选择数据!', '提示', 0);
//    Exit;
//  end;
//  try
//    ADOQueryCmd.Connection.BeginTrans;
//    with CDS_HZ do
//    begin
//
//      with ADOQueryCmd do
//      begin
//        close;
//        sql.Clear;
//        sql.Add('update YF_Money_CR SET status=''1'' ');
//        sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString)));
//        execsql;
//      end;
//
//    end;
//    ADOQueryCmd.Connection.CommitTrans;
//    InitGrid();
//  except
//    ADOQueryCmd.Connection.RollbackTrans;
//    application.MessageBox('操作失败！', '提示信息', 0);
//  end;

  if CDS_HZ.Locate('ssel', true, []) = false then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_HZ do
    begin
      DisableControls;
      First;
      while not eof do
      begin
        if Fieldbyname('ssel').AsBoolean then
        begin
          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('update YF_Money_CR SET status=''1''  ');
            sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString)));
            execsql;
          end;
        end;
        next;
      end;
      First;
      EnableControls;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    InitGrid();
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox('操作失败！', '提示信息', 0);
  end;
end;

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

procedure TfrmYFMXlist.ToolButton5Click(Sender: TObject);
begin
  if CDS_HZ.IsEmpty then
    exit;
  if cxTabControl1.TabIndex = 1 then
    Exit;
//  if CDS_HZ.Locate('ssel', true, []) = false then
//  begin
//    Application.MessageBox('没有选择数据!', '提示', 0);
//    Exit;
//  end;
//  try
//    ADOQueryCmd.Connection.BeginTrans;
//    with CDS_HZ do
//    begin
//
//      with ADOQueryCmd do
//      begin
//        close;
//        sql.Clear;
//        sql.Add('update YF_Money_CR SET status=''0'' ');
//        sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString)));
//        execsql;
//      end;
//
//    end;
//    ADOQueryCmd.Connection.CommitTrans;
//    application.MessageBox('操作成功！', '提示信息', 0);
//    InitGrid();
//  except
//    ADOQueryCmd.Connection.RollbackTrans;
//    application.MessageBox('操作失败！', '提示信息', 0);
//  end;

  if CDS_HZ.Locate('ssel', true, []) = false then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;

  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_HZ do
    begin
      DisableControls;
      First;
      while not eof do
      begin
        if Fieldbyname('ssel').AsBoolean then
        begin
          if CDS_HZ.fieldbyname('DZFLAG').AsString = '1' then
          begin
            Application.MessageBox('请先撤销标记对账!', '提示', 0);
            EnableControls;
            Exit;
          end;
          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('update YF_Money_CR SET status=''0''  ');
            sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString)));
            execsql;
          end;
        end;
        next;
      end;
      First;
      EnableControls;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    application.MessageBox('操作成功！', '提示信息', 0);
    InitGrid();
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox('操作失败！', '提示信息', 0);
  end;
end;

procedure TfrmYFMXlist.MXORDERNOChange(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS20(ADOQueryMain, CDS_HZ);
    SInitCDSData20(ADOQueryMain, CDS_HZ);
  end;
end;

procedure TfrmYFMXlist.V1Column14PropertiesEditValueChanged(Sender: TObject);
var
  mvalue, FFieldName: string;
begin
  if CDS_HZ.FieldByName('crtype').AsString = '应付款登记' then
  begin
    mvalue := TcxTextEdit(Sender).EditingText;
    FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
    with CDS_HZ do
    begin
      Edit;
      FieldByName(FFieldName).Value := mvalue;
      Post;
    end;
    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('update YF_Money_CR_Sub set  MXMONEY=' + (Trim(mvalue)));
      sql.Add('where YFSID=' + quotedstr(Trim(CDS_HZ.fieldbyname('YFSID').AsString)));

      sql.Add('update YF_Money_CR set  ');
      sql.Add('MONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) ');
      sql.Add(',BBMONEY=HUILV*(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) ');
      sql.Add('where YFID=' + quotedstr(Trim(CDS_HZ.fieldbyname('YFID').AsString)));
      ExecSQL;
    end;
    tv1.Controller.EditingController.ShowEdit();
    InitGrid();
  end;
end;

procedure TfrmYFMXlist.ToolButton6Click(Sender: TObject);
begin
  if CDS_HZ.IsEmpty then
    exit;

  if CDS_HZ.Locate('ssel', true, []) = false then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  with CDS_HZ do
  begin
    First;
    while not Eof do
    begin
      if CDS_HZ.fieldbyname('status').AsString <> '1' then
      begin
        Application.MessageBox('请先对账!', '提示', 0);
        Exit;
      end;
      Next;
    end;
  end;

  MovePanel1.Visible := True;
  dzdate.DateTime := Now;

end;

procedure TfrmYFMXlist.Button1Click(Sender: TObject);
var
  mvalue, FFieldName: string;
begin
  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_HZ do
    begin
      DisableControls;
      First;
      while not eof do
      begin
        if (Fieldbyname('ssel').AsBoolean) then
        begin

          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('update YF_Money_CR_SUB SET DZFLAG=''1'' ');
            sql.Add(',dzdate=' + quotedstr(FormatDateTime('yyyy-MM-dd', dzdate.DateTime)));
            sql.Add('where YFSID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFSID').AsString)));
            execsql;
          end;
        end;
        next;
      end;
      First;
      EnableControls;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    InitGrid();
    MovePanel1.Visible := False;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox('操作失败！', '提示信息', 0);
  end;
end;

procedure TfrmYFMXlist.Button2Click(Sender: TObject);
begin
  MovePanel1.Visible := False;
end;

procedure TfrmYFMXlist.ToolButton7Click(Sender: TObject);
begin
  if CDS_HZ.IsEmpty then
    exit;

  if CDS_HZ.Locate('ssel', true, []) = false then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_HZ do
    begin
      DisableControls;
      First;
      while not eof do
      begin
        if (Fieldbyname('ssel').AsBoolean) then
        begin
          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('update YF_Money_CR_SUB SET DZFLAG=NULL,DZDATE=NULL ');
            sql.Add('where YFSID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFSID').AsString)));
            execsql;
          end;
        end;
        next;
      end;
      First;
      EnableControls;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    InitGrid();
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox('操作失败！', '提示信息', 0);
  end;
end;

procedure TfrmYFMXlist.N1Click(Sender: TObject);
begin
  SelOKNo(CDS_HZ, True);
end;

procedure TfrmYFMXlist.N2Click(Sender: TObject);
begin
  SelOKNo(CDS_HZ, False);
end;

end.

