本人正开发审计软件,目前可以从主流的会计软件中取出财务数据,导入审计系统后生成科目余额表、明细账、辅助核算等信息。接下来是要开发报表系统,同时根据会计报表数据和总账数据,生成审计工作底稿里的审定表和明细表。
目前在会计报表生成方面遇到困难。会计知识什么的不是问题,本人是注册会计师。现在就是卡在如何设计数据库和生成报表信息上面了。
报表项目的基本逻辑是,比如报表项目(货币资金)=会计科目(库存现金+银行存款+其他货币资金),再比如报表项目应收账款 = 应收账款明细科目借方余额+预收账款明细科目借方余额-应收账款坏账准备,这个应收账款坏账准备是一级科目,子科目包括坏账准备——应收账款,坏账准备——其他应收账款等。
现在不知道该怎么设计数据库,并根据数据库内容生成会计报表。
我个人思考了三种方式。
第一种方式是建立三张表,一张表是预置会计科目表,包括科目名称、借贷方向、一张表是报表项目表,包括报表项目名称,借贷方向、是否资产负债表、是否利润表、是否现金流量表,一张表是会计科目和报表项目关联表,包含两列,一列是科目名称,一列是报表项目名称,两者都是外键。到时候将报表项目、借贷方向、会计科目借贷方向、期初借方、期初贷方、本期借方、本期贷方、期末借方、期末贷方、取出来存入DataTable,按照借贷方向加减算出最终的报表。
第二种一种方式是建立一张表,包含报表项目名称、公式,到时候读取出来公式,再分拆公式,各个科目取数完成后按照公式加减计算最终数据。
第三种方式是采用Excel,将科目余额表等信息读入Excel形成源数据,提前设置好报表模板和公式,引用源数据,形成报表。这种方式的缺点是无法为后期生成审计工作底稿提供公式。
还是请大神们,帮忙分析一下还有没有更合理的数据库设计形式,以及在C#语言下实现报表系统的思路。不胜感激。