unit U_YFFKList;

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, cxPC, cxGridBandedTableView,
  cxGridDBBandedTableView,dxCore,ActiveX, cxLookAndFeels,
  cxLookAndFeelPainters, dxBarBuiltInMenu, cxNavigator;

type
  TfrmYFFKList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    Panel1: TPanel;
    ToolButton2: TToolButton;
    ToolButton1: TToolButton;
    RM1: TRMGridReport;
    RMDB_Main: TRMDBDataSet;
    cxGridPopupMenu2: TcxGridPopupMenu;
    DS_HZ: TDataSource;
    ADOQueryMain: TADOQuery;
    CDS_HZ: TClientDataSet;
    ToolButton3: TToolButton;
    cxTabControl1: TcxTabControl;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    v2Column6: TcxGridDBColumn;
    v2SQMoney: TcxGridDBColumn;
    v2YFMoney: TcxGridDBColumn;
    v2FKMoney: TcxGridDBColumn;
    v2BQMoney: TcxGridDBColumn;
    v2Column4: TcxGridDBColumn;
    v2Column7: TcxGridDBColumn;
    v2Column8: TcxGridDBColumn;
    v2ZJFKDate: TcxGridDBColumn;
    v2ZJFKMoney: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    Panel2: TPanel;
    Label2: TLabel;
    begdate: TDateTimePicker;
    Panel3: TPanel;
    Label4: TLabel;
    FBegDate: TDateTimePicker;
    Label5: TLabel;
    FEndDate: TDateTimePicker;
    Panel4: TPanel;
    FactoryNameGYS: TEdit;
    Label3: TLabel;
    RadioGroup1: TRadioGroup;
    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 FactoryNameGYSChange(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure Tv2CellDblClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure ToolButton3Click(Sender: TObject);
    procedure v2Column6HeaderClick(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    { Private declarations }
    procedure InitGrid();
  public
    fDParameters1:string;
    { Public declarations }
    RKFlag,FCYID:String;

  end;

var
  frmYFFKList: TfrmYFFKList;

implementation
uses
  U_DataLink,U_RTFun,U_Fun,U_ZDYHelp,U_YFMXlistMonDay;

{$R *.dfm}



procedure TfrmYFFKList.InitGrid();
var
  FYue,FDate:string;
  FInt:Integer;
  FHuiLv:Double;
begin
  FInt:=cxTabControl1.TabIndex+1;
  FYue:=Trim(IntToStr(FInt));
  if FInt<10 then
  begin
    FYue:='0'+Trim(IntToStr(FInt));
  end;
  FDate:=Trim(FormatDateTime('yyyy',begdate.Date))+'-'+FYue;
  FBegDate.Date:=StrToDate(FDate+'-01');
  if FInt=12 then
    FEndDate.Date:=StrToDate(Trim(FormatDateTime('yyyy',begdate.Date))+'-12-31')
  else
    FEndDate.Date:=StrToDate(Trim(FormatDateTime('yyyy',begdate.Date))+'-'+Trim(IntToStr(FInt+1))+'-01')-1;
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin

      Close;
      SQL.Clear;
      Filtered:=False;
      if RadioGroup1.ItemIndex=0 then
      begin
        sql.Add(' exec P_YFFK_Month :Fdate ') ;
        Parameters.ParamByName('Fdate').Value:=FDate;
      end else
      if RadioGroup1.ItemIndex=1 then
      begin
        sql.Add(' exec P_YFFK_Day :FBegdate,:FEndDate ') ;
        Parameters.ParamByName('FBegdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',FBegDate.Date));
        Parameters.ParamByName('FEndDate').Value:=Trim(FormatDateTime('yyyy-MM-dd',FEndDate.Date+1));
      end;
      Open;
    end;
    SCreateCDS20(ADOQueryMain,CDS_HZ);
    SInitCDSData20(ADOQueryMain,CDS_HZ);
  finally
    ADOQueryMain.EnableControls;
  end;
  //ToolButton2.Click;
end;


procedure TfrmYFFKList.FormDestroy(Sender: TObject);
begin
  frmYFFKList:=nil;
end;

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

procedure TfrmYFFKList.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('应付款统计报表YX',Tv2,'财务管理');
  Close;
end;
procedure TfrmYFFKList.FormShow(Sender: TObject);
var
  fstr:string;
begin
  ReadCxGrid('应付款统计报表YX',Tv2,'财务管理');
  begdate.DateTime:=SGetServerDateMBeg(ADOQueryTemp);
  Fbegdate.DateTime:=SGetServerDate(ADOQueryTemp);
  FEndDate.Date:=Fbegdate.DateTime;
  fstr:=Trim(FormatDateTime('MM',begdate.Date));
  cxTabControl1.TabIndex:=StrToInt(fstr)-1;
  Panel3.Visible:=False;
 // InitGrid();
end;

procedure TfrmYFFKList.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
  CDS_HZ.IndexFieldNames:='FactoryName';
  with CDS_HZ do
  begin
    with IndexDefs do
    begin
      Clear;
      with AddIndexDef do
      begin
        Name := 'Fld1Indx';
        Fields := 'FactoryName';
        Options := [ixDescending];  //降序
      end;
    end;
  end;
end;

procedure TfrmYFFKList.ToolButton2Click(Sender: TObject);
begin
  if ADOQueryMain.Active=False then Exit;
  SDofilter(ADOQueryMain,SGetFilters(Panel4,1,2));
  SCreateCDS20(ADOQueryMain,CDS_HZ);
  SInitCDSData20(ADOQueryMain,CDS_HZ);
end;

procedure TfrmYFFKList.FactoryNameGYSChange(Sender: TObject);
begin
  ToolButton2.Click;
end;

procedure TfrmYFFKList.ToolButton1Click(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then Exit;
  TcxGridToExcel('应付款统计列表',cxGrid2);
end;

procedure TfrmYFFKList.Tv2CellDblClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
  try
    frmYFMXlistMonDay:=TfrmYFMXlistMonDay.Create(Application);
    with frmYFMXlistMonDay do
    begin
      FMX:='99';
      PState:=Self.RadioGroup1.ItemIndex;
      if Self.RadioGroup1.ItemIndex=0 then
      begin
        frmYFMXlistMonDay.begdate.DateTime:=Self.begdate.DateTime;
        frmYFMXlistMonDay.cxTabControl1.TabIndex:=Self.cxTabControl1.TabIndex;
        frmYFMXlistMonDay.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString;
        frmYFMXlistMonDay.Fbegdate.DateTime:=Self.Fbegdate.DateTime;
        frmYFMXlistMonDay.FEnddate.DateTime:=Self.FEnddate.DateTime;
      end else
      if Self.RadioGroup1.ItemIndex=1 then
      begin
        frmYFMXlistMonDay.begdate.DateTime:=Self.begdate.DateTime;
        frmYFMXlistMonDay.Fbegdate.DateTime:=Self.Fbegdate.DateTime;
        frmYFMXlistMonDay.FEnddate.DateTime:=Self.FEnddate.DateTime;
        frmYFMXlistMonDay.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString;
      end;
      frmYFMXlistMonDay.factoryName.TxtCode:=Self.CDS_HZ.fieldbyname('factoryNo').AsString;
      frmYFMXlistMonDay.Align:=alClient;
      frmYFMXlistMonDay.LabGYS.Caption:=Self.CDS_HZ.fieldbyname('factoryName').AsString;
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmYFMXlistMonDay.Free;
  end;
end;

procedure TfrmYFFKList.ToolButton3Click(Sender: TObject);
var
  filepath,fsj:string;
  mBegdate,mEnddate:string;
  FName,FNameSX,FNameJX:String;
  i:Integer;
begin
  fsj:=cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption;
  mbegdate:=FormatDateTime('yyyy',begdate.Date)+'年'+Trim(Copy(fsj,3,Length(fsj)-2))+'份';
  if CDS_HZ.IsEmpty then exit;
  try
    filepath:=ExtractFilePath(Application.ExeName) + 'report\应付款统计报表YX.rmf';
    if not FileExists(Pchar(filepath))  then
    begin
      application.MessageBox(pchar('文件['+filepath+']不存在！'),'提示信息',MB_IConError);
      exit;
    end;
    RmVariables['begDate'] :=mbegdate;
    RM1.LoadFromFile(filepath);
    RM1.ShowReport;
  finally

  end;
end;

procedure TfrmYFFKList.v2Column6HeaderClick(Sender: TObject);
var
  FName,FNameSX,FNameJX:String;
begin
  FName:=TcxGridDBColumn(Sender).DataBinding.FilterFieldName;
  FNameSX:=Trim(FName)+'-1';
  FNameJX:=Trim(FName)+'-2';
  CDS_HZ.AddIndex(FNameSX, FName, []);             { 正序 }
  CDS_HZ.AddIndex(FNameJX, FName, [ixDescending]); { 倒序 }
  if TcxGridDBColumn(Sender).SortOrder=soDescending then
  begin
    CDS_HZ.IndexName:=FNameSX;
  end else
  if TcxGridDBColumn(Sender).SortOrder=soAscending then
  begin
    CDS_HZ.IndexName:=FNameJX;
  end;
end;

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

procedure TfrmYFFKList.RadioGroup1Click(Sender: TObject);
begin
  if RadioGroup1.ItemIndex=0 then
  begin
    Panel2.Visible:=True;
    Panel3.Visible:=False;
    cxTabControl1.Visible:=True;
    v2SQMoney.Caption:=Copy(v2SQMoney.Summary.GroupFormat,1,8);
    v2YFMoney.Caption:=Copy(v2YFMoney.Summary.GroupFormat,1,10);
    v2FKMoney.Caption:=Copy(v2FKMoney.Summary.GroupFormat,1,8);
    v2BQMoney.Caption:=Copy(v2BQMoney.Summary.GroupFormat,1,8);
  end else
  if RadioGroup1.ItemIndex=1 then
  begin
    Panel2.Visible:=False;
    Panel3.Visible:=True;
    cxTabControl1.Visible:=False;
    v2SQMoney.Caption:=Copy(v2SQMoney.Summary.GroupFormat,10,8);
    v2YFMoney.Caption:=Copy(v2YFMoney.Summary.GroupFormat,12,10);
    v2FKMoney.Caption:=Copy(v2FKMoney.Summary.GroupFormat,10,8);
    v2BQMoney.Caption:=Copy(v2BQMoney.Summary.GroupFormat,10,8);
  end;
  InitGrid();
end;

end.
