📄 csh500_01.pas.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 + -