unit U_DJMoneyTop;

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, cxDBLookupComboBox, cxContainer, cxDropDownEdit, cxPC, Menus,
  TeEngine, Series, TeeProcs, Chart, DbChart, GanttCh, cxLookAndFeels,
  cxLookAndFeelPainters, cxNavigator;

type
  TfrmDJMoneyTop = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ToolButton2: TToolButton;
    ADOQueryMain: TADOQuery;
    cxGridPopupMenu2: TcxGridPopupMenu;
    Panel2: TPanel;
    Panel3: TPanel;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v2Column12: TcxGridDBColumn;
    v2Column7: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    SH1: TPanel;
    ClientDataSet1: TClientDataSet;
    DataSource1: TDataSource;
    v1Column1: TcxGridDBColumn;
    DataSource3: TDataSource;
    ClientDataSet3: TClientDataSet;
    Panel1: TPanel;
    Label5: TLabel;
    Label6: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    Panel10: TPanel;
    ToolButton1: TToolButton;
    ComboBox1: TComboBox;
    v1Column4: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    Panel4: TPanel;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn5: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    Panel5: TPanel;
    Tv1Column1: TcxGridDBColumn;
    Tv2Column1: TcxGridDBColumn;
    Panel6: TPanel;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    cxGridDBColumn10: TcxGridDBColumn;
    cxGridDBColumn11: TcxGridDBColumn;
    cxGridLevel3: TcxGridLevel;
    Panel7: TPanel;
    DataSource2: TDataSource;
    ClientDataSet2: TClientDataSet;
    cxGridPopupMenu1: TcxGridPopupMenu;
    cxGridPopupMenu3: TcxGridPopupMenu;
    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 C_CodeNameChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure Tv3CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure Tv3DblClick(Sender: TObject);
  private

    { Private declarations }
    procedure InitGrid();
  public
  end;

var
  frmDJMoneyTop: TfrmDJMoneyTop;

implementation

uses
  U_DataLink, U_RTFun, U_DJCPTopMX, U_ZJCPTopMX, U_DJGGZPMORDMX, U_DDDJJHMX;

{$R *.dfm}

procedure TfrmDJMoneyTop.InitGrid();
begin
  Panel10.Visible := True;
  Panel10.Refresh;
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_DJMoneyAll :begdate,:enddate');
      Parameters.ParamByName('begdate').Value := Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date));
      Parameters.ParamByName('enddate').Value := Trim(FormatDateTime('yyyy-MM-dd', enddate.Date + 1));
      Open;
    end;
    SCreateCDS20(ADOQueryMain, ClientDataSet1);
    SInitCDSData20(ADOQueryMain, ClientDataSet1);
  finally
    ADOQueryMain.EnableControls;
  end;
  Panel10.Visible := False;
end;

procedure TfrmDJMoneyTop.FormDestroy(Sender: TObject);
begin
  frmDJMoneyTop := nil;
end;

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

procedure TfrmDJMoneyTop.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('1', Tv1, '打卷工工资');
  WriteCxGrid('2', Tv2, '打卷工工资');
  WriteCxGrid('3', Tv3, '打卷工工资');
  Close;
end;

procedure TfrmDJMoneyTop.FormShow(Sender: TObject);
begin
  ReadCxGrid('1', Tv1, '打卷工工资');
  ReadCxGrid('2', Tv2, '打卷工工资');
  ReadCxGrid('3', Tv3, '打卷工工资');
end;

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

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

procedure TfrmDJMoneyTop.C_CodeNameChange(Sender: TObject);
begin
  ToolButton2.Click;
end;

procedure TfrmDJMoneyTop.FormCreate(Sender: TObject);
var
  FYear: string;
  FMonth: string;
  FDate: TDate;
begin
 { FDate:=SGetServerDate10(ADOQueryTemp);
  FYear:=FormatDateTime('yyyy',FDate);
  FMonth:=FormatDateTime('MM',FDate);
  if StrToInt(FMonth)<2 then
  begin
    BegDate.Date:=StrToDate(IntToStr(strtoint(FYear)-1)+'-02-01');
    EndDate.Date:=StrToDate(FYear+'-01-31');
  end else
  begin
    BegDate.Date:=StrToDate(FYear+'-02-01');
    EndDate.Date:=StrToDate(IntToStr(strtoint(FYear)+1)+'-01-31');

  end;}
  BegDate.Date := SGetServerDateMBeg(ADOQueryTemp);
  EndDate.Date := SGetServerDate(ADOQueryTemp);
end;

procedure TfrmDJMoneyTop.ToolButton1Click(Sender: TObject);
begin
  if ComboBox1.Text = '' then
    Exit;
  if ComboBox1.ItemIndex = 0 then
  begin
    TcxGridToExcel(ComboBox1.Text, cxGrid1);
  end
  else if ComboBox1.ItemIndex = 1 then
  begin
    TcxGridToExcel(ComboBox1.Text, cxGrid3);
  end
  else if ComboBox1.ItemIndex = 2 then
  begin
    TcxGridToExcel(ComboBox1.Text, cxGrid2);
  end;
end;

procedure TfrmDJMoneyTop.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  Panel10.Visible := True;
  Panel10.Refresh;
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_DJMoneyAll_MX_PM :begdate,:enddate,:KHName');
      Parameters.ParamByName('begdate').Value := Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date));
      Parameters.ParamByName('enddate').Value := Trim(FormatDateTime('yyyy-MM-dd', enddate.Date + 1));
      Parameters.ParamByName('KHName').Value := Trim(ClientDataSet1.fieldbyname('KHName').AsString);
      Open;
    end;
    SCreateCDS20(ADOQueryMain, ClientDataSet3);
    SInitCDSData20(ADOQueryMain, ClientDataSet3);

    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_DJMoneyAll_MX_RQ :begdate,:enddate,:KHName');
      Parameters.ParamByName('begdate').Value := Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date));
      Parameters.ParamByName('enddate').Value := Trim(FormatDateTime('yyyy-MM-dd', enddate.Date + 1));
      Parameters.ParamByName('KHName').Value := Trim(ClientDataSet1.fieldbyname('KHName').AsString);
      Open;
    end;
    SCreateCDS20(ADOQueryMain, ClientDataSet2);
    SInitCDSData20(ADOQueryMain, ClientDataSet2);

  finally
    ADOQueryMain.EnableControls;
  end;
  Panel10.Visible := False;
end;

procedure TfrmDJMoneyTop.Tv3CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  
 
//  try
//    frmDJGGZPMORDMX := TfrmDJGGZPMORDMX.Create(Application);
//    with frmDJGGZPMORDMX do
//    begin
//      FBegdate := Self.BegDate.Date;
//      FEnddate := Self.enddate.Date + 1;
//      FKHName := Trim(Self.ClientDataSet1.fieldbyname('KHName').AsString);
//      FSPName := Trim(Self.ClientDataSet3.fieldbyname('SPName').AsString);
//      if ShowModal = 1 then
//      begin
//
//      end;
//    end;
//  finally
//    frmDJGGZPMORDMX.Free;
//  end;
end;

procedure TfrmDJMoneyTop.Tv3DblClick(Sender: TObject);
begin
  if ClientDataSet3.IsEmpty then
    Exit;
  try
    frmDDDJJHMX := TfrmDDDJJHMX.Create(Application);
    with frmDDDJJHMX do
    begin
      FBegdate := Self.BegDate.Date;
      FEnddate := Self.enddate.Date + 1;
      FKHName := Trim(Self.ClientDataSet1.fieldbyname('KHName').AsString);
      FSPName := Trim(Self.ClientDataSet3.fieldbyname('SPName').AsString);
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmDDDJJHMX.Free;
  end;
end;

end.

