知识大全 经典案例 财务管理系统(11)[1]
Posted 知
篇首语:君子报仇,十年不晚。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 经典案例 财务管理系统(11)[1]相关的知识,希望对你有一定的参考价值。
( ) 新建一个窗体 将窗体的Name属性设置为 DocuInput 选择Project | Options 菜单命令 将DocuInp窗体从自动创建的窗体列表中删除 将窗体保存为 DocuInput Form pas 该窗体的控件布局和设置如图 所示
图 凭证输入窗体
该窗体是本实例中比较重要也比较复杂的一个窗体 由于每个凭证项均可对应多个分录数据 因此 用StringGrid来输入和编辑各个凭证项下属的分录数据比较合适 这种关系在一定程度上类似于我们在第 章中进销存实例中处理的进货单和进货单明细的关系 另外 当工具栏中的【修改】 【保存】等按钮被按下时 实际上是对两个表进行操作 由于凭证表和分录表之间存在的约束关系 因此代码中对两个表的操作顺序要特别注意 各控件的属性设置如表 所示 窗体中除搜索栏中的编辑框为Edit控件之外 其他所有编辑框都是DBEdit控件 其DataSource 属性都设置为DataSource DataField设置为与其相邻的文本中的内容 一个DBCombobox的DataSource和DataSource 属性和DBEdit相同 其 Items 字段中添加收 付 转这 项
表 凭证输入窗体控件属性设置
( ) 设置凭证输入窗体的代码如下
public
Public declarations
procedure SetToolBar(isEnable:bool);
procedure SumAccount();
//执行新增和编辑操作后 保存时会执行不同的代码
procedure OpType(opname:string);
end;
//对将要从dll中的调用的函数的声明
type
Tshowdllform=function(Ahandle:Thandle; Acaption:string; tablename:string):string; stdcall;
Ttable=array[ ] of string;
var
DocuInput: TDocuInput;
maxnum recordnum curRow curCol:integer;
mytable:Ttable;
op:string;
implementation
$R * dfm
procedure TDocuInput FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
// 初始化表
procedure TDocuInput DataSource DataChange(Sender: TObject;
Field: TField);
var
i j:integer;
begin
//设置数据表宽度
dbgrid Columns[ ] Width:= ;
dbgrid Columns[ ] Width:= ;
dbgrid Columns[ ] Width:= ;
//显示与凭证编号对应的分录表
adoquery Close;
adoquery SQL Clear;
adoquery SQL Add( select distinct a * c 科目名称 from 分录表 a 凭证表 b 科目表 c
where (a 凭证编号= +dbedit Text+ )and(a 科目代码=c 科目代码) order by 编号 );
adoquery Open;
//初始化表 将表格清空
for i:= to do
for j:= to do
if op<> insert then
stringgrid Cells[j i]:= ;
//将分录表数据读入表格 并保存编号数据以供后面的数据库操作使用
i:= ;
recordnum:= ;
while not adoquery Eof do
begin
stringgrid Cells[ i]:=adoquery fieldbyname( 科目代码 ) AsString;
stringgrid Cells[ i]:=adoquery fieldbyname( 科目名称 ) AsString;
stringgrid Cells[ i]:=adoquery fieldbyname( 借方 ) AsString;
stringgrid Cells[ i]:=adoquery fieldbyname( 贷方 ) AsString;
stringgrid Cells[ i]:=adoquery fieldbyname( 摘要 ) AsString;
mytable[i]:=adoquery fieldbyname( 编号 ) AsString;
i:=i+ ;
recordnum:=recordnum+ ;
adoquery Next;
end;
//设置分录表的列宽度
stringgrid ColWidths[ ]:= ;
stringgrid ColWidths[ ]:= ;
stringgrid ColWidths[ ]:= ;
stringgrid ColWidths[ ]:= ;
stringgrid ColWidths[ ]:= ;
//显示凭证数
label Caption:=inttostr(datasource DataSet RecordCount);
end;
[ ] [ ]
cha138/Article/program/Delphi/201311/25033相关参考
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>> 财务管理作为企业管理的组成部分与经济价值或财富的保值增值有关
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>> //修改记录 procedureTDocuInputToo
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>> //修改记录 procedureTDocuInputToo
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>项目背景 天津丰源汽车连锁服务有限公司成立于年由最初从事汽车及
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>> 新建一个窗体将窗体的Name属性设置为SecSettingC
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>> 完成帐户设置功能 ()新建一个窗体将窗体的Name属性设置
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>> 完成帐户设置功能 ()新建一个窗体将窗体的Name属性设置
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>> ()利用系统默认生成的窗体作为主窗体并为其添加主菜单控件和其
——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>> 在前面的章节中无论我们的程序是多文档还是多窗口结构使用到的窗
完成凭证输入功能 ()新建一个窗体将窗体的Name属性设置为DocuInput选择Project|Options菜单命令将DocuInp窗体从自动创建的窗体列表中删除将窗体保存为DocuInpu