编程心得
-------接昨天 3、第三个难点是用树形结构显示科目供选择;
在财务软件中许多地方需要弹出树形结构的分级科目框,科目存蓄在数据库里的分级是用一个叫‘级别’的字段来表示的,利用这个字段分级别的查询出来,然后把低级别的嵌套在高级别中,当然也行得通,但却是最笨的办法,写的代码多,浪费资源。我写了一个递归函数,代码较简洁,可以放在公共模块里调用时方便多了。
下面是递归函数的源码:
procedure TF_publicuse.Listkm1(Treeview1:TTreeview; sjke:string; node:TTreenode);
var
listquery1:TAdoquery;
node1:TTreenode;
begin
try
listquery1:=TADOQuery.Create(nil);
listquery1.Connection:=datamodule1.ADOConnection1;
with listquery1 do
begin
close;
sql.clear;
sql.add('select * from 科目表 where 上级科目 = :value order by 编号');
parameters.ParamByName('value').Value:=sjke;
open;
while not listquery1.Eof do
begin
node1:=Treeview1.Items.addchild(node,listquery1.fieldbyname('编号').AsString+'-'+listquery1.fieldbyname('科目名称').AsString);
Listkm1(Treeview1,listquery1.fieldbyname('编号').AsString,node1);
listquery1.Next;
end;
end;
finally
listquery1.Free;
end;
end;
今天继续说说我遇到的又一个难点吧:
在财务软件中,损益表、资产负债表、现金流量表是三个最基本的也是必须的报表,其中现金流量表最难编写。
现金流量表的编写方法:
需要说明的是本文提出的现金流量表编制方法,仅是根据自己的编程经验总结出来的简单办法,说其简单,是因为这个方法仅是根据凭证法来编写的。
在中小企业中现金流量表在企业决策中还未引起高度重视,企业财务人员编制该表也是应付完成的,会计师事务所也很难审计或干脆不审。充分发挥现金流量表的作用,还有一个逐步的认识过程。而著名软件公司的现金流量表是按工作底稿法和T型账户法编制,这需要平时做好积累,在实际工作中,现金流量表是年度决算报表,平时并无编报要求,大部分企业财务因为工作繁忙,而疏忽做好这一基础工作。都是年终决算时临时编制,却又无从着手,本文方法可以暂时解决这些企业财务人员的燃眉之急。
本文方法基本原则可以简单概括为:双金双非要排除,单金凭证不重漏,借金贷非是流入,借非贷金是流出,是否列表看科目,列表行次看内容。
下面说说这种方法吧: (下次再续 另外,我是初次上这个论坛,但是我感到交流不起来啊)
今天打开电脑本来准备写《编程心得》的,却看到了版主通知要我结贴,送分给看过我的帖子的朋友,我却是没有分送的啊。我从82年开始写程序,有一点心得贴出来与大家分享,现在也只能暂停了。见谅!
2011/9/11
[ 本帖最后由 wangchatian 于 2011-9-13 16:59 编辑 ]