电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

经典案例 财务管理系统(15)[2]


发布日期:2021/2/15
 

//为凭证录入分录表

procedure TDocuInputBitBtnClick(Sender: TObject);

begin

datasourceDataSetDelete;

end;

//统计分录表中的各项信息以储存到数据库

procedure TDocuInputSumAccount;

var

sumoutputsuminput:double;

i:integer;

begin

suminput:=;

sumoutput:=;

//统计借贷双方的数额

for i:= to do

if (stringgridCells[i]<>)and(stringgridCells[i]<>) then

begin

suminput:=suminput+strtofloat(stringgridCells[i]);

sumoutput:=sumoutput+strtofloat(stringgridCells[i]);

end;

dbeditText:=floattostr(suminput);

dbeditText:=floattostr(sumoutput);

end;

procedure TDocuInputDBEditExit(Sender: TObject);

begin

SumAccount;

end;

//设置分录表表头

procedure TDocuInputFormShow(Sender: TObject);

begin

stringgridCells[]:=科目编码;

stringgridCells[]:=科目名称(双击选择);

stringgridCells[]:=借方;

stringgridCells[]:=贷方;

stringgridCells[]:=摘要;

end;

//当在分录表中输入时不允许在上面有空行的情况下输入一行新的数据

procedure TDocuInputStringGridSelectCell(Sender: TObject; ACol

ARow: Integer; var CanSelect: Boolean);

begin

//防止在输入数据时上面有空行

if stringgridCells[Arow]= then

begin

showmessage(请先完成上行中空的项目);

exit;

end;

//保存选取的单元行列值

curRow:=ARow;

curCol:=ACol;

if (curCol<=)and(curCol>=) then

stringgridOptions:=stringgridOptions+[goEditing];

//防止选中标题栏

if ARow= then curRow:=ARow+;

//统计借贷双方信息

sumAccount();

end;

//在输入分录表时调用DLL中的表格选择科目名称和号码

procedure TDocuInputStringGridDblClick(Sender: TObject);

var

showForm:TShowDllForm;

module:Thandle;

begin

//只有双击指定列才有效

if curCol<> then exit;

//读入DLL

module:=loadlibrary(secdll);

//如果读入错误则module会是一个小于的错误代码

//由此可以判断是否读入成功

if module< then exit;

@showForm:=getprocaddress(modulepchar());

if @showForm=nil then exit;

//通过DLL传递参数

stringgridCells[curRow]:=showForm(applicationHandle选择科目名称科目表);

//为科目代码添加科目名称

adoqueryClose;

adoquerySQLClear;

adoquerySQLAdd(select 科目名称 from 科目表 where 科目代码

=+stringgridCells[curRow]+);

adoqueryOpen;

stringgridCells[curRow]:=adoqueryfieldbyname(科目名称)AsString;

end;

[] [] []

上一篇:经典案例 财务管理系统(15)[3]

下一篇:通过实例看VCL组件开发全过程(一)