unit U_YFFKListDZ;

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, BtnEdit;

type
  TfrmYFFKListDZ = 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;
    Label3: TLabel;
    RadioGroup1: TRadioGroup;
    FactoryNameGYS: TEdit;
    v2Column1: TcxGridDBColumn;
    v2Column2: TcxGridDBColumn;
    v2Column3: TcxGridDBColumn;
    v2Column5: TcxGridDBColumn;
    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 ToolButton1Click(Sender: TObject);
    procedure Tv2CellDblClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure ToolButton3Click(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure Tv2DblClick(Sender: TObject);
    procedure FactoryNameGYSChange(Sender: TObject);
  private
    { Private declarations }
    procedure InitGrid();
  public
    fDParameters1:string;
    { Public declarations }
    RKFlag,FCYID:String;

  end;

var
  frmYFFKListDZ: TfrmYFFKListDZ;

implementation
uses
  U_DataLink,U_RTFun,U_Fun,U_ZDYHelp,U_YFMXlistMonDayGQX,U_GYSListSelJJ;

{$R *.dfm}



procedure TfrmYFFKListDZ.InitGrid();
var
  FYue,FDate:string;
  FInt:Integer;
  FHuiLv:Double;
begin
  if RadioGroup1.ItemIndex=0 then
  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;
  end;

  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 TfrmYFFKListDZ.FormDestroy(Sender: TObject);
begin
  frmYFFKListDZ:=nil;
end;

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

procedure TfrmYFFKListDZ.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('应付款统计报表YXDZ',Tv2,'财务管理');
  Close;
end;
procedure TfrmYFFKListDZ.FormShow(Sender: TObject);
var
  fstr:string;
begin
  ReadCxGrid('应付款统计报表YXDZ',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 TfrmYFFKListDZ.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmYFFKListDZ.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 TfrmYFFKListDZ.ToolButton1Click(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then Exit;
  TcxGridToExcel('应付款统计列表DZ',cxGrid2);
end;

procedure TfrmYFFKListDZ.Tv2CellDblClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
var
  FName,FNO:string;
begin
  if CDS_HZ.IsEmpty then Exit;
  try
    frmYFMXlistMonDayGQX:=TfrmYFMXlistMonDayGQX.Create(Application);
    with frmYFMXlistMonDayGQX do
    begin
      FMX:='99';
      PState:=Self.RadioGroup1.ItemIndex;
      if Self.RadioGroup1.ItemIndex=0 then
      begin
        frmYFMXlistMonDayGQX.begdate.DateTime:=Self.begdate.DateTime;
        frmYFMXlistMonDayGQX.cxTabControl1.TabIndex:=Self.cxTabControl1.TabIndex;
        frmYFMXlistMonDayGQX.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString;
        frmYFMXlistMonDayGQX.Fbegdate.DateTime:=Self.Fbegdate.DateTime;
        frmYFMXlistMonDayGQX.FEnddate.DateTime:=Self.FEnddate.DateTime;
      end else
      if Self.RadioGroup1.ItemIndex=1 then
      begin
        frmYFMXlistMonDayGQX.begdate.DateTime:=Self.begdate.DateTime;
        frmYFMXlistMonDayGQX.Fbegdate.DateTime:=Self.Fbegdate.DateTime;
        frmYFMXlistMonDayGQX.FEnddate.DateTime:=Self.FEnddate.DateTime;
        frmYFMXlistMonDayGQX.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString;

      end;
      frmYFMXlistMonDayGQX.factoryName.TxtCode:=Self.CDS_HZ.fieldbyname('factoryNo').AsString;
      frmYFMXlistMonDayGQX.Align:=alClient;
      frmYFMXlistMonDayGQX.LabGYS.Caption:=Self.CDS_HZ.fieldbyname('factoryName').AsString;
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmYFMXlistMonDayGQX.Free;
  end;
end;

procedure TfrmYFFKListDZ.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 TfrmYFFKListDZ.cxTabControl1Change(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmYFFKListDZ.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;

procedure TfrmYFFKListDZ.Tv2DblClick(Sender: TObject);
var
  FName,FNO:string;
begin
  {if CDS_HZ.IsEmpty=False then Exit;
  FName:='';FNO:='';
  if Trim(FactoryName.TxtCode)<>'' then
  begin
    if CDS_HZ.IsEmpty then
    begin
      with ADOQueryTemp do
      begin
        Close;
        sql.Clear;
        sql.Add('select *  ');
        sql.Add(' from KH_Main A ');
        sql.add(' where isnull(KHFlag,'''')='''+Trim('GYS')+''' and isnull(Valid,'''')=''Y''  ');
        sql.Add(' and KHNO='''+Trim(FactoryName.TxtCode)+'''');
        Open;
      end;
      FName:=Trim(ADOQueryTemp.fieldbyname('KHNameJC').AsString);
    end;
  end;
  FNO:=Trim(FactoryName.TxtCode);
  if Trim(FName)='' then Exit;
  if Trim(FNO)='' then Exit;
  try
    frmYFMXlistMonDayGQX:=TfrmYFMXlistMonDayGQX.Create(Application);
    with frmYFMXlistMonDayGQX do
    begin
      FMX:='99';
      PState:=Self.RadioGroup1.ItemIndex;
      if Self.RadioGroup1.ItemIndex=0 then
      begin
        frmYFMXlistMonDayGQX.begdate.DateTime:=Self.begdate.DateTime;
        frmYFMXlistMonDayGQX.cxTabControl1.TabIndex:=Self.cxTabControl1.TabIndex;
        frmYFMXlistMonDayGQX.factoryName.Text:=FName;

        frmYFMXlistMonDayGQX.Fbegdate.DateTime:=Self.Fbegdate.DateTime;
        frmYFMXlistMonDayGQX.FEnddate.DateTime:=Self.FEnddate.DateTime;
      end else
      if Self.RadioGroup1.ItemIndex=1 then
      begin
        frmYFMXlistMonDayGQX.begdate.DateTime:=Self.begdate.DateTime;
        frmYFMXlistMonDayGQX.Fbegdate.DateTime:=Self.Fbegdate.DateTime;
        frmYFMXlistMonDayGQX.FEnddate.DateTime:=Self.FEnddate.DateTime;
        frmYFMXlistMonDayGQX.factoryName.Text:=FName;
      end;
      frmYFMXlistMonDayGQX.factoryName.TxtCode:=Trim(FNO);
      frmYFMXlistMonDayGQX.Align:=alClient;
      frmYFMXlistMonDayGQX.LabGYS.Caption:=FName;
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmYFMXlistMonDayGQX.Free;
  end;  }
end;

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

end.
