⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csh500_01.pas.svn-base

📁 开源的网站整站程序,功能强大带采集系统.
💻 SVN-BASE
字号:
unit Csh500_01;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BAS200_08, dxExEdtr, Buttons, StdCtrls, wwdbdatetimepicker, DB,
  ADODB, ActnList, Menus, dxCntner, dxTL,
  dxDBCtrl, dxDBGrid, ExtCtrls, ComCtrls, ToolWin, dxDBTLCl, dxGrClms;

type
  TCsh500_01Form = class(TBas200_08Form)
    ADODataSet1CURNM: TStringField;
    ADODataSet1ACCNM: TStringField;
    ADODataSet1AMT01: TBCDField;
    ADODataSet1AMT02: TBCDField;
    ADODataSet1AMT03: TBCDField;
    ADODataSet1AMT04: TBCDField;
    dxDBGrid1CURNM: TdxDBGridMaskColumn;
    dxDBGrid1ACCNM: TdxDBGridMaskColumn;
    dxDBGrid1AMT01: TdxDBGridCurrencyColumn;
    dxDBGrid1AMT02: TdxDBGridCurrencyColumn;
    dxDBGrid1AMT03: TdxDBGridCurrencyColumn;
    dxDBGrid1AMT04: TdxDBGridCurrencyColumn;
    qryCsh550: TADOQuery;
    lblDate: TLabel;
    edtFromDate: TwwDBDateTimePicker;
    edtToDate: TwwDBDateTimePicker;
    sbSearch: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbSearchClick(Sender: TObject);
    procedure dxDBGrid1AMT01DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBGrid1AMT02DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBGrid1AMT03DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure dxDBGrid1AMT04DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
  private
    AOpen, AIncome, APayment, ABalance:Double;
    { Private declarations }
  public
    procedure SetInterface; override;
    procedure InsertEvent; override;
    procedure UpdateEvent; override;
    procedure DeleteEvent; override;
    procedure BrowseEvent; override;
    procedure RefreshEvent; override;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
    { Public declarations }
  end;

var
  Csh500_01Form: TCsh500_01Form;

implementation

uses CommFun, SYSDATA, CshComm, Csh510_01;

{$R *.dfm}

procedure TCsh500_01Form.SetInterface;
begin
  inherited;
  Caption:=GetDBString('CSH50001001');  //出纳总帐
  lblDate.Caption:=GetDBString('CSH50001002');  //日期
  sbSearch.Caption:=GetDBString('CSH50001004');  //查询
  ADODataSet1CURNM.DisplayLabel:=GetDBString('CSH50001005');  //币别
  ADODataSet1ACCNM.DisplayLabel:=GetDBString('CSH50001006');  //帐户名称
  ADODataSet1AMT01.DisplayLabel:=GetDBString('CSH50001007');  //期初
  ADODataSet1AMT02.DisplayLabel:=GetDBString('CSH50001008');  //收入
  ADODataSet1AMT03.DisplayLabel:=GetDBString('CSH50001009');  //支出
  ADODataSet1AMT04.DisplayLabel:=GetDBString('CSH50001010');  //余额
end;

procedure TCsh500_01Form.FormCreate(Sender: TObject);
begin
  inherited;
  //取得当月起始&结束日期
  edtFromDate.Date:=GetMonthFirstDate(Date);
  edtToDate.Date:=GetMonthEndDate(Date);
  sbSearch.Click;
end;

procedure TCsh500_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
//
end;

procedure TCsh500_01Form.sbSearchClick(Sender: TObject);
var
  AccNO:Integer;
  AFromDate,AToDate:TDateTime;
begin
  inherited;
//查询
  if (edtFromDate.Text='') or (edtToDate.Text='') then
  begin
    ShowMsg('UMS10000156');  //起始日期或结束日期不能为空
    if edtFromDate.Text='' then edtFromDate.SetFocus else edtToDate.SetFocus;
    Abort;
  end;
  AFromDate:=edtFromDate.Date;
  AToDate:=edtToDate.Date;
  if AFromDate>AToDate then
  begin
    ShowMsg('UMS10000044');  //起始日期不能大于结束日期
    edtFromDate.SetFocus;
    Abort;
  end;
  AOpen:=0;
  AIncome:=0;
  APayment:=0;
  ABalance:=0;
  //建立出纳总帐临时表
  ADODataSet1.DisableControls;
  ADODataSet1.Close;
  ADODataSet1.FieldDefs.Clear;
  ADODataSet1.FieldDefs.Add('CURNM',ftString,30);
  ADODataSet1.FieldDefs.Add('ACCNM',ftString,50);
  ADODataSet1.FieldDefs.Add('AMT01',ftCurrency,0);
  ADODataSet1.FieldDefs.Add('AMT02',ftCurrency,0);
  ADODataSet1.FieldDefs.Add('AMT03',ftCurrency,0);
  ADODataSet1.FieldDefs.Add('AMT04',ftCurrency,0);
  ADODataSet1.CreateDataSet;
  //取得所有帐户资料
  qryCsh550.Close;
  qryCsh550.SQL.Clear;
  if ASuper then
  begin
    qryCsh550.SQL.Add('select A.C550_001, B.G100_003, A.C550_002 from CSH550 A, GLD100 B where A.C550_005=B.G100_001');
  end else
  begin
    qryCsh550.SQL.Add('select B.C550_001, C.G100_003, B.C550_002 from SYS500C A, CSH550 B, GLD100 C');
    qryCsh550.SQL.Add('where A.S500C_002=B.C550_001 and B.C550_005=C.G100_001 and A.S500C_003=''ACC'' and A.S500C_004='+GetBoolean(True)+' and A.S500C_001='+IntToStr(AUserID));
  end;
  qryCsh550.Open;
  while not qryCsh550.Eof do
  begin
    AccNo:=qryCsh550.FieldByName('C550_001').Value;
    ADODataSet1.Append;
    ADODataSet1.FieldByName('CURNM').Value:=qryCsh550.FieldByName('G100_003').Value;
    ADODataSet1.FieldByName('ACCNM').Value:=qryCsh550.FieldByName('C550_002').Value;
    //取得帐户的期初余额
    ADODataSet1.FieldByName('AMT01').Value:=GetAccAmount(AccNo, AFromDate, AToDate, 1);
    //取得帐户的收入金额
    ADODataSet1.FieldByName('AMT02').Value:=GetAccAmount(AccNo, AFromDate, AToDate, 2);
    //取得帐户的支出金额
    ADODataSet1.FieldByName('AMT03').Value:=GetAccAmount(AccNo, AFromDate, AToDate, 3);
    //取得帐户的余额
    ADODataSet1.FieldByName('AMT04').Value:=ADODataSet1.FieldByName('AMT01').Value+
      ADODataSet1.FieldByName('AMT02').Value-ADODataSet1.FieldByName('AMT03').Value;
    ADODataSet1.Post;
    //期初、收入、支出、余额合计
    AOpen:=AOpen+ADODataSet1.FieldByName('AMT01').Value;
    AIncome:=AIncome+ADODataSet1.FieldByName('AMT02').Value;
    APayment:=APayment+ADODataSet1.FieldByName('AMT03').Value;
    ABalance:=ABalance+ADODataSet1.FieldByName('AMT04').Value;
    qryCsh550.Next;
  end;
  ADODataSet1.EnableControls;
end;

procedure TCsh500_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
  inherited;
  if ParName='CURR_NAM' then ParValue:=GetDBString('CSH50001005')  //'币别'
  else if ParName='ACCT_NAM' then ParValue:=GetDBString('CSH50001006')  //'帐户名称'
  else if ParName='AMOT_001' then ParValue:=GetDBString('CSH50001007')  //'期初'
  else if ParName='AMOT_002' then ParValue:=GetDBString('CSH50001008')  //'收入'
  else if ParName='AMOT_003' then ParValue:=GetDBString('CSH50001009')  //'支出'
  else if ParName='AMOT_004' then ParValue:=GetDBString('CSH50001010')  //'余额'
  else if ParName='DATE_001' then ParValue:=GetDBString('CSH50001002')+edtFromDate.Text  //'起始日期:'
  else if ParName='DATE_002' then ParValue:=GetDBString('CSH50001003')+edtToDate.Text  //'结束日期:'
end;

procedure TCsh500_01Form.dxDBGrid1AMT01DrawSummaryFooter(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
//期初合计
  if VarToStr(AOpen)<>'' then AText:=FloatToStrF(AOpen,ffCurrency,18,2);
  AColor := clWhite;
end;

procedure TCsh500_01Form.dxDBGrid1AMT02DrawSummaryFooter(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
//收入合计
  if VarToStr(AIncome)<>'' then AText:=FloatToStrF(AIncome,ffCurrency,18,2);
  AColor := clWhite;
end;

procedure TCsh500_01Form.dxDBGrid1AMT03DrawSummaryFooter(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
//支出合计
  if VarToStr(APayment)<>'' then AText:=FloatToStrF(APayment,ffCurrency,18,2);
  AColor := clWhite;
end;

procedure TCsh500_01Form.dxDBGrid1AMT04DrawSummaryFooter(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
//余额合计
  if VarToStr(ABalance)<>'' then AText:=FloatToStrF(ABalance,ffCurrency,18,2);
  AColor := clWhite;
end;

procedure TCsh500_01Form.RefreshEvent;
begin
  inherited;
  sbSearch.Click;
end;

procedure TCsh500_01Form.BrowseEvent;
begin
  inherited;
  Csh510_01Form:=TCsh510_01Form.Create(Application);
  Csh510_01Form.cbAccNm.Text:=ADODataSet1ACCNM.Value;
  Csh510_01Form.edtFromDate.Date:=edtFromDate.Date;
  Csh510_01Form.edtToDate.Date:=edtToDate.Date;
  Csh510_01Form.ShowModal;
end;

procedure TCsh500_01Form.DeleteEvent;
begin
  inherited;

end;

procedure TCsh500_01Form.InsertEvent;
begin
  inherited;

end;

procedure TCsh500_01Form.UpdateEvent;
begin
  inherited;

end;

initialization
  RegisterClass(TCsh500_01Form);

finalization
  UnRegisterClass(TCsh500_01Form);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -