财务管理系统框架构建


    财务理系统框架构建
    1 财务理系统需求分析
    标准财务理系统应该包括图11示功外系统应该包括信息系统具备通功例系统理权限设置数备份恢复等
    中功干相关联子功模块组成

    财务理系统
    基础资料维护
    证理
    帐薄理
    报表理
    期末处理

    出纳理
    工资理
    固定资产理
    财务分析
    系统理

    图11 财务理系统基功模块
    财务理系统基流程图12示
    费分摊率设定
    科目分摊处理
    会计基资料维护
    期初资料开账
    开账资料账处理
    证手动输入
    证审核
    证账
    期间结束
    资料查询报表印

    年度结束




    图12 财务理系统基流程图
    11 基础资料维护
    基础资料维护功模块会计科目核算项目证帐薄固定资产等项目进行初始化设置设置般轻易改动中包含子功模块图13示
    中会计科目基础资料终点财务软件离开科目正确设置容包括科目代码科目名称助记码科目类否存货科目余额方数量单位等
    12 证理
    证理功模块完成证制定审核记账查询等功动生产种会计帐中包含子功模块图14示


    基础资料维护



    核算项目
    结算方式
    常摘
    会计科目











    图13 基础资料维护功模块

    证理

    证账
    证查询
    证汇总
    证检查
    证审核
    证输入












    图14 证理功模块
    中证输入证理重点证输入模块中实际业务分录输入计算机中容包括证状态会计期间证字号证编号序号日期附单审核账制单方合计贷方合计账状态序号码等张证应记录分录容包括分录编号会计期间证字号证编号摘科目代码方贷方数量单价结算方式结算号结算日期等
    13 帐薄理
    帐薄理功模块提供种账务处理查询筛选功中包含子功模块图15示总账科目级币科目范围等查询明细帐期间范围等币科目范围查询提供栏帐数量金额明细帐核算项目分类总账等帐薄报表

    总分类帐
    明细帐
    栏帐
    数量金额总账
    数量金额明细表
    核算项目分类总账
    帐薄理















    图15 帐薄理功模块
    14 报表理
    核算项目明细表
    利润分配表
    损益表
    现金流量表
    资产负债表
    科目余额表
    试算衡表
    日报表
    报表理
    报表理功模块报表定义编制输出企业会计核算结果需报表形式反映出般包括账务报表处理汇总报表处理合报表处理等般财务系统会预设资产负债表损益表利润分配表等类报表模板图16示简化报表操作程












    图16 报表理功模块
    15 期末处理
    期末处理系统总结某会计奇迹营活动情况转期必做事项时该模块结账前企业财务理成计算求必须进行制造费产成品成结账期末调汇损益结账等工作中包含子功模块图17示
    动转账
    期末处理
    期末结汇
    结账损益
    期末调汇













    图17 期末处理功模块

    1.6 理
    核销应收款
    应付帐龄分析


    应收账龄分析
    核销应付款
    理功模块企业转款进行全面核算理分析预测决策般包括单位理济业务理转龄分析转款核销坏账处理等功图18示













    图18 理功模块
    1.7 出纳理
    出纳会计中十分重岗位担负着现金银行存款收付职出纳理结账系统联合起单独提供出纳员般包括现金帐理银行存款帐理票理等图19示




    支票理
    出纳轧帐
    出纳报表
    日常处理
    初始设置
    出纳理









    图19 出纳理功模块


    出纳系统账务系统功分离数紧密连接享合理数享模式会计出纳员更高效独立工作
    18 工资理
    工资发放条
    工资理
    报表输入
    工资统计表
    工资汇总表
    费分配
    数输入
    核算方法
    印工资条
    工资理功模块进行企业工资发放核算工资动态变动理工资费计提分配银行代发等般包括基础设置工资结构设置工资变动理工资数处理工资报表理等功图20示













    图20 功理功模块
    19 固定资产理
    固定资产理功模块理核算固定资产增减变化变动折旧计提转账等般包括图21示子功模块允许固定资产采折旧方法提供标准折旧方法提供固定资产卡片定义设置灵活报表查询系统
    报表输入
    固定资产明细账
    变动资料录入
    月工资量输入
    计提折旧
    变动资料查询
    固定资产清单
    固定资产增减表
    固定资产理








    图21 固定资产理功模块

    20 财务分析
    财务分析功财务理重组成部分核算基础财务报表资料起点采专门方法系统分析评价企业现营成果财务状况变动账务数进步加工整理分析研究量报表数转换成决策信息理层进行日常重决策帮手包含子功模块图22示
    损益分析
    财务分析
    财务指标
    财务状况分析
    定义报表

    图22 财务分析功模块

    财务状况分析截止报告期资产负债者权益结构例变化趋势等情况进行分析分结构分析较分析趋势分析三种分析方法结构分析资产负债者权益中具体项目战该类项目总体项目结构重进行分析揭示该类财务指标结构否合理较分析口径(指标名称相计算方法相)指标意两会计期间(会计期间预算值间)进行较反映增减变动情况趋势分析反映某财务指标资产总计流动资产合计银行存款等年度月份间季度间年度间变化趋势
    损益期年累计会计期间盈利状况盈利力进行分析损益分析分结构分析较分析趋势分析三种分析方法


    2 财务理系统数库分析
    根需求分析基财务理系统数库中致包括100张数表分
    存放相应功数信息中科目表起关键作表存放科目信息涉科目信息数表记录科目代码根作外键科目代码字段相应科目表数间关系1:N关系

    21 财务理系统ER图
    整系统涉涉实体属性较限篇幅没必逐列举图21财务理系统关键实体ER图
    实体基信息表间应关系类似



    期分类账簿


    科目代码
    期初余额
    期方合计
    期贷方合计
    数量单位
    余额

    项目科目表
    P

    项目名称
    项目代码
    科目代码
    科目级
    部编号
    科目余额表


    EK1科目代码
    期初方余额
    期初贷方余额
    期方发生额
    期代发发生额
    年方累计发生额
    年贷方累计发生额
    期方余额
    期贷方余额
    结账分录
    会计期间
    余额方
    部编号

    记录表

    PK 部编号

    分录编号
    会计期间
    证字号
    EK2证编号

    FK1科目代码

    贷方
    数量
    单价
    结算方式
    结算号
    结算日期

    证表

    PK 证编码

    部编号
    证状态
    会计期间
    证字号
    EK1 序号
    日期
    附单
    审核

    制单
    数量
    单价
    方合计
    贷方合计
    账状态
    序号码
    科目表
    PK 科目代码

    科目名称
    助记码
    科目类
    否存贷科目
    余额方
    数量单位
    明细账簿


    部编号
    分录编号
    会计期间
    证字号
    证编号
    EK1 摘
    科目代码

    贷方
    余额方
    余额
    数量
    单价
    结算方式
    结算号
    结算日期
    余额标记























    图23 财务理系统ER图
    22 财务理系统数表清单

    表 财务理系统数表清单

    数表名称
    数表途
    科目表
    保存企业财务科目设置信息
    科目余额表
    保存财务(账户)科目余额信息
    分录表
    证理中分录输入
    证表
    证输入理
    分录历史表
    分录输入确认数放入历史
    证历史表
    分录输入确认数放入历史
    明细账簿
    明细账簿企业财务明细账簿输入
    分类账簿
    明细账簿企业财务分类账簿输入
    年明细帐薄
    年度明细帐薄
    年分类帐薄
    年度明分类帐薄汇总
    历史明细帐薄
    保存明细帐薄历史
    历史分类帐薄
    保存分类帐薄历史
    损益表
    保存企业财务损益表信息
    资产负债表
    保存企业财务资产负债表信息
    现金流量表
    保存企业财务现金流量表信息
    利润分配表
    保存企业财务利润分配表信息
    财务状况变动表
    保存企业企业财务状况变动表信息
    年终损益表
    保存企业企业财务年终损益表信息
    年终损益表
    保存企业企业财务年终损益表信息
    年终资产负债表
    保存企业企业财务年终资产负债表信息

    3 实例制作介绍
    31 实例介绍
    明细账
    试算衡表
    帐户设置
    科目设置
    财务理系统
    证理
    帐薄查询
    结账报表
    证输入
    证账
    总分类帐
    资产负债表
    期末结账

    图24 详细介绍功模块
    户登陆权限理功系统实现方法致

    32 系统流程图
    系统流程图图32示
    记录业务
    证输入
    证查询
    财务部门
    证账
    期末结账
    分类帐
    分类查询
    财务报表查询


    图25 系统流程图

    4 数库设计
    根实例介绍科目表系统关键表表均科目表通科目代码字段进行关联系统需11张表途分图41示

    表41 系统数表途
    科目表
    保存企业财务科目设置信息
    帐薄初始化表
    正式系统前初始化科目表期初余额
    证表
    输入会计证分目录表表
    分录表
    输入会计分录分录表表
    科目余额表
    保存会计期间科目贷余额情况
    证表历史
    保存转账证历史
    分录表历史
    保存转账分录历史
    期明细帐薄
    保存前会计期间明细张博数
    期汇总帐薄
    保存前会计期间明细帐薄数期末结账期末变新会计期间期初
    资产负债表
    统计表计算资产负债表
    系统参数表
    系统运行需参数信息


    41 创建数库
    开SQL Server企业理器新建数库命名caiwubook

    42 创建科目表数表
    CREATE TABLE [dbo][帐簿初始化表] (
    [科目代码] [char] (20) NOT NULL
    [科目名称] [char] (20) NULL
    [累计方] [money] NULL
    [累计贷方] [money] NULL
    [期初余额] [money] NULL
    [余额方] [char] (4) NULL
    ) ON [PRIMARY]
    GO
    43 创建证表分录表数表
    REATE TABLE [dbo][证表历史] (
    [证编号] [char] (10) NOT NULL
    [会计期间] [int] NULL
    [证字号] [char] (2) NULL
    [日期] [datetime] NULL
    [附单] [int] NULL
    [制单] [char] (20) NULL
    [方合计] [money] NULL
    [贷方合计] [money] NULL
    [账状态] [char] (4) NULL
    [证状态] [char] (10) NULL
    ) ON [PRIMARY]
    GO

    CREATE TABLE [dbo][分录表] (
    [编号] [int] IDENTITY (1 1) NOT NULL
    [证编号] [char] (10) NOT NULL
    [摘] [char] (40) NULL
    [科目代码] [char] (20) NULL
    [方] [money] NULL
    [贷方] [money] NULL
    [数量] [int] NULL
    [单价] [money] NULL
    [结算方式] [char] (10) NULL
    [结算号] [int] NULL
    [结算日期] [datetime] NULL
    ) ON [PRIMARY]
    GO


    44 创建关键数表
    CREATE TABLE [dbo][科目余额表] (
    [科目代码] [char] (20) NULL
    [期初方余额] [money] NULL
    [期初贷方余额] [money] NULL
    [期方发生额] [money] NULL
    [期贷方发生额] [money] NULL
    [年方累计发生额] [money] NULL
    [年贷方累计发生额] [money] NULL
    [期方余额] [money] NULL
    [期贷方余额] [money] NULL
    [结算分录] [int] NULL
    [会计期间] [int] NULL
    [余额方] [char] (4) NULL
    [部编号] [int] IDENTITY (1 1) NOT NULL
    ) ON [PRIMARY]
    GO
    CREATE TABLE [dbo][资产负债表] (
    [会计期间] [int] NOT NULL
    [现金现金等价物] [money] NULL
    [应收账款] [money] NULL
    [坏账准备] [money] NULL
    [应收账款净值] [money] NULL
    [流动资产总计] [money] NULL
    [固定资产原值] [money] NULL
    [累计折旧] [money] NULL
    [固定资产总计] [money] NULL
    [资产] [money] NULL
    [资产总计] [money] NULL
    [应付账款] [money] NULL
    [预收账款] [money] NULL
    [应付工资] [money] NULL
    [负债] [money] NULL
    [负债总计] [money] NULL
    [实收资] [money] NULL
    [资公积] [money] NULL
    [赢余公积] [money] NULL
    [未分配利润] [money] NULL
    [者权益总计] [money] NULL
    [负债者权益总计] [money] NULL
    ) ON [PRIMARY]
    GO

    45 创建键外键等表约束
    查询分析器中通代码创建数表键外键等表约束
    ALTER TABLE [dbo][科目表] WITH NOCHECK ADD
    PRIMARY KEY CLUSTERED
    (
    [科目代码]
    ) ON [PRIMARY]
    GO

    ALTER TABLE [dbo][资产负债表] WITH NOCHECK ADD
    PRIMARY KEY CLUSTERED
    (
    [会计期间]
    ) ON [PRIMARY]
    GO

    ALTER TABLE [dbo][分录表] ADD
    CONSTRAINT [FK_分录表_证表] FOREIGN KEY
    (
    [证编号]
    ) REFERENCES [dbo][证表] (
    [证编号]
    )
    CONSTRAINT [分录表_科目代码_fk] FOREIGN KEY
    (
    [科目代码]
    ) REFERENCES [dbo][科目表] (
    [科目代码]
    )
    GO

    ALTER TABLE [dbo][分录表历史] ADD
    CONSTRAINT [分录表历史_科目代码_fk] FOREIGN KEY
    (
    [科目代码]
    ) REFERENCES [dbo][科目表] (
    [科目代码]
    )
    GO

    ALTER TABLE [dbo][帐簿初始化表] ADD
    CONSTRAINT [帐簿初始化表_科目代码_fk] FOREIGN KEY
    (
    [科目代码]
    ) REFERENCES [dbo][科目表] (
    [科目代码]
    )
    GO

    ALTER TABLE [dbo][期明细账簿] ADD
    CONSTRAINT [期明细账簿_科目代码_fk] FOREIGN KEY
    (
    [科目代码]
    ) REFERENCES [dbo][科目表] (
    [科目代码]
    )
    GO

    ALTER TABLE [dbo][期汇总账簿] ADD
    CONSTRAINT [期汇总账簿_科目代码_fk] FOREIGN KEY
    (
    [科目代码]
    ) REFERENCES [dbo][科目表] (
    [科目代码]
    )
    GO


    46 创建存储程
    系统sf_初始化帐户 sf_启帐户 sf_证帐户 sf_期末结账sf_计算资产负债表五存储程实现功分新建帐套启帐套证账确认期末结账运算指定会计期间资产负债表等功具体计算方法面脚中详细注释

    create proc sf_初始化帐户
    as
    begin tran
    清原数新建立帐户
    delete from 帐簿初始化表
    设置帐户初始基数
    insert into 帐簿初始化表
    (科目代码科目名称累计方累计贷方期初余额余额方)
    select 科目代码科目名称000余额方 from 科目表
    设置初始信息
    update 系统参数表 set 取值 datepart(mmgetdate())
    where 参数名称 '会计期间开始月份'
    update 系统参数表 set 取值 datepart(mmgetdate())
    where 参数名称 '前会计期间'
    commit

    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO


    create proc sf_启帐户
    as
    begin tran
    清原数新建立帐户
    delete from 科目余额表
    delete from 期汇总账簿
    delete from 期明细账簿
    delete from 分录表
    delete from 分录表历史
    delete from 证表
    delete from 证表历史
    设置期汇总账簿科目余额表
    insert into 期汇总账簿 select 科目代码0期初余额
    0000期初余额余额方 from 帐簿初始化表
    update 期汇总账簿 set 会计期间b取值 from
    系统参数表 as b where 参数名称'前会计期间'
    insert into 科目余额表(科目代码 期初方余额 期初贷方余额
    期方发生额 期贷方发生额 年方累计发生额
    年贷方累计发生额 期方余额 期贷方余额
    余额方)
    select 科目代码累计方累计贷方0000
    case when 余额方'方' then 期初余额 else 0 end
    case when 余额方'贷方' then 期初余额 else 0 end
    余额方 from 帐簿初始化表
    update 科目余额表 set 会计期间b取值 from
    系统参数表 as b where 参数名称'前会计期间'
    commit

    GO
    create proc sf_证帐
    as
    begin tran
    设置期汇总账簿信息
    update 期汇总账簿 set 期方合计 期方合计 + b方
    期贷方合计 期贷方合计 + b贷方
    年方累计 年方累计 + b方
    年贷方累计 年贷方累计 + b贷方
    余额 余额 + case when 余额方'方' then (方 贷方)
    else (贷方 方) end
    from 期汇总账簿 as a
    (select 科目代码 sum(方) as 方 sum(贷方) as 贷方
    from 分录表 as f 证表 as p where f证编号 p证编号
    group by f科目代码) as b
    where a科目代码 b科目代码
    设置期明细账簿信息
    insert into 期明细账簿(分录编号会计期间证字号 证编号 摘
    科目代码 方 贷方 数量 单价 结算方式
    结算号 结算日期)
    select 编号会计期间证字号 p证编号 摘
    科目代码 方 贷方 数量 单价 结算方式
    结算号 结算日期 from 证表 as p 分录表 as f
    where f证编号 p证编号
    计算余额
    update 期明细账簿
    set 余额方a余额方 from 科目表 as a
    where 期明细账簿科目代码a科目代码
    通游标循环计算余额
    declare @bh int @dm char(20) @jf money @df money
    declare @fx char(4) @bj char(4) @ye money @kjqj int
    declare mycursor cursor for select 部编号科目代码
    方贷方余额方余额标记会计期间 from 期明细账簿
    where 余额标记 is null order by 部编号
    open mycursor
    fetch next from mycursor into @bh@dm@jf@df@fx@bj@kjqj
    while (@@fetch_status0)
    begin
    select @ye 余额 from 期明细账簿 where 部编号 in
    (select max(部编号) from 期明细账簿
    where 部编号 < @bh and 科目代码@dm
    and 余额标记 '')
    没期第条明细科目余额表取余额
    if(@ye is null)
    select @ye case when 余额方'方' then
    期方余额 期贷方余额 else
    期贷方余额 期方余额 end
    from 科目余额表 where 会计期间 @kjqj
    and 科目代码 @dm
    select @ye isnull(@ye0)
    update 期明细账簿
    set 余额case when @fx'方' then
    @ye + @jf @df else
    @ye + @df @jf end
    余额标记''
    where 部编号@bh
    fetch next from mycursor into @bh@dm@jf@df@fx@bj@kjqj
    end
    close mycursor
    deallocate mycursor
    更改状态
    update 证表 set 账状态 '已'
    放入历史
    insert into 证表历史 select * from 证表
    insert into 分录表历史 select * from 分录表
    清已帐数
    注意改放程序中清统计证张数分录张数金额
    统计删
    delete from 分录表
    delete from 证表
    commit

    GO

    create proc sf_期末结帐
    as
    begin tran
    先没帐证帐
    exec sf_证帐
    declare @kjqj int 前会计期间
    select @kjqj 会计期间 from 期汇总账簿
    计算科目余额表统计资产负债表损溢表等
    update 科目余额表 set 期方发生额 b期方合计
    期贷方发生额 b期贷方合计
    会计期间 b会计期间 余额方 b余额方
    from 科目余额表 as a 期汇总账簿 as b
    where a科目代码 b科目代码 and a会计期间b会计期间
    update 科目余额表 set
    年方累计发生额 年方累计发生额 + 期方发生额
    年贷方累计发生额 年贷方累计发生额 + 期贷方发生额
    期方余额 期初方余额 + 期方发生额
    期贷方余额 期初贷方余额 + 期贷方发生额
    where 会计期间 @kjqj
    更新会计期间
    update 系统参数表 set 取值 取值 + 1 where 参数名称'前会计期间'
    期汇总账簿明细账簿倒入历史实例程序演示

    清汇总账簿明细账簿进入新会计期间
    update 期汇总账簿 set 会计期间 会计期间 + 1 期初余额余额
    期方合计 0 期贷方合计 0 余额 0
    delete from 期明细账簿
    新会计期间科目余额表
    insert into 科目余额表(科目代码 期初方余额 期初贷方余额
    期方发生额 期贷方发生额 年方累计发生额
    年贷方累计发生额 期方余额 期贷方余额
    余额方会计期间)
    select 科目代码 期方余额 期贷方余额0000
    期方余额 期贷方余额 余额方会计期间+1
    from 科目余额表 where 会计期间 @kjqj
    commit

    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

    create proc sf_计算资产负债表 @kjqj int
    as
    begin tran
    计算资产负债表里提供计算方法供演示
    没列出明细项目资产负债里
    注意里科目代码统计说明资产负债表含意计算方法
    果科目代码样改存储程需作相应修改
    delete from 资产负债表 where 会计期间 @kjqj
    insert into 资产负债表(会计期间) values(@kjqj)
    update 资产负债表 set 现金现金等价物 b金额 from 资产负债表 as a
    (select sum(isnull(期方余额0)isnull(期贷方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and
    科目代码 > 101 and 科目代码 < 111)
    as b where a会计期间 @kjqj
    update 资产负债表 set 应收账款 b金额 from 资产负债表 as a
    (select sum(isnull(期方余额0)isnull(期贷方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and
    科目代码 > 121 and 科目代码 < 129 and 科目代码<>125)
    as b where a会计期间 @kjqj
    注意坏账准备贷方
    update 资产负债表 set 坏账准备 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and
    科目代码 125)
    as b where a会计期间 @kjqj
    update 资产负债表 set 应收账款净值 应收账款 坏账准备
    update 资产负债表 set 流动资产总计 现金现金等价物 + 应收账款净值
    update 资产负债表 set 固定资产原值 b金额 from 资产负债表 as a
    (select sum(isnull(期方余额0)isnull(期贷方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and 科目代码 171)
    as b where a会计期间 @kjqj
    注意累计折旧贷方
    update 资产负债表 set 累计折旧 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and 科目代码 175)
    as b where a会计期间 @kjqj
    update 资产负债表 set 固定资产总计 固定资产原值 累计折旧
    update 资产负债表 set 资产 b金额 from 资产负债表 as a
    (select sum(isnull(期方余额0)isnull(期贷方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and
    科目代码 > 131 and 科目代码 < 195 and 科目代码<>171
    and 科目代码 <> 175)
    as b where a会计期间 @kjqj
    update 资产负债表 set 资产总计 流动资产总计 + 固定资产总计 + 资产
    计算负债者权益
    负债类级贷方金额
    update 资产负债表 set 应付账款 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and
    科目代码 > 201 and 科目代码 < 204 )
    as b where a会计期间 @kjqj
    update 资产负债表 set 预收账款 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and
    科目代码 206)
    as b where a会计期间 @kjqj
    update 资产负债表 set 应付工资 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and 科目代码 215)
    as b where a会计期间 @kjqj
    update 资产负债表 set 负债 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and
    科目代码 > 209 and 科目代码 < 281 and 科目代码 <> 215)
    as b where a会计期间 @kjqj
    update 资产负债表 set 负债总计 应付账款 + 预收账款 + 应付工资 + 负债
    计算者权益
    update 资产负债表 set 实收资 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and 科目代码 301)
    as b where a会计期间 @kjqj
    update 资产负债表 set 资公积 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and 科目代码 311)
    as b where a会计期间 @kjqj
    update 资产负债表 set 赢余公积 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and 科目代码 313)
    as b where a会计期间 @kjqj
    update 资产负债表 set 未分配利润 b金额 from 资产负债表 as a
    (select sum(isnull(期贷方余额0)isnull(期方余额0)) as 金额
    from 科目余额表 where 会计期间 @kjqj and
    科目代码 321 or 科目代码 322 )
    as b where a会计期间 @kjqj
    update 资产负债表 set 者权益总计 实收资 + 资公积 +
    赢余公积 + 未分配利润
    update 资产负债表 set 负债者权益总计 负债总计 + 者权益总计
    commit

    GO


    5 程序开发
    系统采文档窗体程序功应子窗体
    51 程序运行结果
    实例运行结果图21示选择菜单中菜单项进入相应功


    图26 实例运行结果

    (1) 首先选择基础数理|科目设置菜单命令进入会计科目设置功窗体中输入科目基础信息图27示中科目类选项组表示该科目属类般资产类科目余额方方负债权益科目余额方贷方特殊坏账准备科目余额方贷方


    图27 会计科目设置功窗体

    需嫌憎修改科目单击相应钮输入信息单击保存钮需删条信息选中该信息单击删钮
    (2) 科目设置完成选择基础数理|帐户设置命令进入帐户设置(期初数录入)功窗体图28示


    图28 示 帐户设置功窗体

    该功模块建立新帐薄启帐薄试算衡钮建立新功模块初始帐薄单击钮系统台调sf_初始化帐户存储程删帐薄初始化表原信息根科目表重新创建帐薄初始化表窗体中显示DBGrid中输入科目初始信息系统参数信息完成单击启帐薄钮启新帐薄启帐薄钮先检查前帐薄试算否衡果衡台调sf_启帐户存储程启新定义帐薄需注意启新定义帐薄会删系统历史数试算衡钮时查前帐薄信息否衡图29图30示窗体方合计金额衡原

    (3) 启帐薄进行证录入工作选择证理|证输入命令进入会计证输入功窗体图31示中输入证会计分录信息单击新增钮系统动新建证证号会计期间等信息动产生中会计期间系统参数表中前会计期间方stringGrid中输入分录信息完成单击保存钮系统先检查贷双方否衡果衡予保存需修改某证信息选择相应证单击修改钮修改完成单击保存钮
    (4) 完成合计证输入工作需证进行账证账确认输入会计证账证进行修改选择证理|证账命令系统提示否账图32示单击钮系统台调sf_证账存储程证进行账计算期汇总帐薄明细帐薄账完成系统提示账成功显示账证数贷方金额等信息


    图31 会计证输入功窗体




    图31 证账功

    (5) 分选择帐薄查询|总分类账帐薄查询|明细账命令分进行期总分类帐查询明细帐查询功图32图33示

    图32 总分类帐查询



    图33 明细账查询


    (6) 前会计期间证账完成进行月末结账操作转入会计期间结账前首先进行试算衡检查选择结账报表|失算衡表命令前账目衡信息图34示

    图34 试算衡功


    (7) 试算结果衡选择结账报表|期末结账菜单命令系统台调sf_计算资产负债表存储程计算资产负债表然报表窗体中显示报表图35示

    52创建工程
    启动Microsoft Visual NET 2003菜单中选择文件|新建|项目命令弹出新建项目话框项目类型列表框中选择Visual Basic 项目选项然模板列表框中选择Windowns 应程序名称文框输入合适方案文件名选取存放位置然单击确定钮完成新项目开启


    53 创建系统窗体
    (1) 利系统默认生成窗体作窗体添加菜单控件控件布局图35示


    图35 系统窗体

    (2) 窗体控件属性设置表36表37示

    表36 窗体属性设置

    控制类型
    象(控件)名
    属性
    取值(说明)
    From
    Frorm Main
    Name
    frmMain


    Caption
    财务理系统


    IsMdiContainer
    True


    |表37 窗体菜单属性

    菜单栏
    菜单项
    属性
    取值(说明)
    MnJichu

    Text
    基础数理(&V)

    MnKemu
    Text
    科目设置(&Z)

    MnZhanghu
    Text
    帐户设置(&W)
    Mnpingzheng

    Text
    证理(&W)

    Mnshuru
    Text
    证理(&W

    Mnguozhang
    Text
    证账(&Z)
    Mnzhangbu

    Text
    账簿查询(&X)

    Mnzongfen
    Text
    总分类账(Y)

    Mnmingxi
    Text
    明细账(&Z)
    Mnjiezhang

    Text
    结账报表(&Y)

    Mnpingzheng
    Text
    试算衡表(&Y)

    MnQimo
    Text
    期末结账(&Y)

    Mnfuzhai
    Text
    资产负债表(&Z)
    MnExit

    Text
    退出系统(&Z)


    54 创建数操作访问模块
    系统中数表进行维护窗体界面实现功体致减少系统编程工作量部分抽取出生成父类窗体数库操作窗体均通继承父类窗体获数维护功

    (1) 新建窗体Name属性改frmBase增加图38示控件

    图38 基础窗体

    (2) 控件属性设置表39示

    表39 基础窗体控件属性设置
    控件类型
    象名
    属性
    取值(说明)
    ImageList
    ImageList1
    Images

    Toolbar
    Toolbar1
    Buttons

    Toolbar
    Toolbar1
    ImageList
    ImageList1
    Groupbox
    Grbsearch
    Dock
    Top
    Textbox
    Txbone
    Text

    Textbox
    Txbtwo
    Text

    Textbox
    Txthree
    Text

    Textbox
    Txtsearch
    Text

    Button
    Btnsearch
    Text

    Datagird
    Dgglist
    Anchor
    Topbuttonleftright

    (3)窗体类frmbase添加变量
    Protected bmData As BindingManagerBase
    Protected dtData As DataTable
    'bAdd true 新增
    'bAdd false 修改
    Protected bAdd As Boolean
    (4)窗体类frmbase添加派生类中需重写函数
    Public Overridable Sub Prepare()
    End Sub
    '设置DataGrid控件
    Public Overridable Sub SetDataGrid()
    End Sub
    '查询函数
    Public Overridable Sub SearchResult()
    SetDataGrid()
    dgdListDataSource dtDataDefaultView
    End Sub
    '新增函数
    Public Overridable Sub LoadData()
    End Sub
    Public Overridable Sub SaveForAdd()
    End Sub
    '更新函数
    Public Overridable Sub SaveForUpdate()
    End Sub
    '删函数
    Public Overridable Sub DeleteData()
    End Sub
    '清函数
    Public Overridable Sub Clear()
    End Sub
    Public Overridable Sub LoadDataForDetail()
    End Sub
    '设置TextBox函数
    Public Overridable Sub SetTextBoxState(ByVal bState As Boolean)
    End Sub
    Public Overridable Sub ResetDataGridData()
    End Sub
    End Class

    (5)窗体类frmbaseload事件添加响应函数
    Private Sub frmBase_Load(ByVal sender As Object _
    ByVal e As SystemEventArgs) Handles MyBaseLoad
    Prepare()
    SetDataGrid()
    SetTextBoxState(True)
    End Sub

    (6)钮btnsearchclick事件添加响应函数
    Private Sub btnSearch_Click(ByVal sender As SystemObject _
    ByVal e As SystemEventArgs) Handles btnSearchClick
    SearchResult()
    End Sub

    (7)数表格dgdlistcurrentcellchanged事件添加响应函数
    Private Sub dgdList_CurrentCellChanged(ByVal sender As Object _
    ByVal e As SystemEventArgs) Handles dgdListCurrentCellChanged
    Try
    '判断bmData否Nothing
    If bmData Is Nothing Then
    Exit Sub
    End If
    'If bmDataPosition <> dgdListCurrentCellRowNumber Then
    bmDataPosition dgdListCurrentCellRowNumber
    LoadDataForDetail()
    'End If
    Catch ex As Exception
    MessageBoxShow(exToString)
    End Try
    End Sub

    (8) 窗体类frmbase添加私函数settoolbarstate
    Private Sub SetToolBarState(ByVal bState As Boolean)
    '设置Button否够单击
    ToolBar1Buttons(0)Enabled bState
    ToolBar1Buttons(1)Enabled bState
    ToolBar1Buttons(2)Enabled bState
    ToolBar1Buttons(3)Enabled bState
    ToolBar1Buttons(4)Enabled bState
    ToolBar1Buttons(5)Enabled bState
    ToolBar1Buttons(6)Enabled bState
    ToolBar1Buttons(7)Enabled Not bState
    ToolBar1Buttons(8)Enabled Not bState
    End Sub

    (9) 工具栏toolbar1buttonclick事件添加响应事件
    Private Sub ToolBar1_ButtonClick(ByVal sender As Object _
    ByVal e As ToolBarButtonClickEventArgs) _
    Handles ToolBar1ButtonClick
    Select Case eButtonText
    Case 首记录
    '返回首记录
    bmDataPosition 0
    Case 记录
    If bmDataPosition <> 0 Then
    bmDataPosition 1
    End If
    Case 记录
    If bmDataPosition <> bmDataCount Then
    bmDataPosition + 1
    End If
    Case 尾记录
    '返回尾记录
    bmDataPosition bmDataCount
    Case 新增
    MedgdListEnabled False
    SetTextBoxState(False)
    SetToolBarState(False)
    bAdd True
    Clear()
    Case 修改
    MedgdListEnabled False
    SetTextBoxState(False)
    SetToolBarState(False)
    bAdd False
    Case 删
    '弹出询问话框
    Dim dlgResult As DialogResult _
    MessageBoxShow(确认删数? _
    删 MessageBoxButtonsOKCancel)
    If dlgResult DialogResultOK Then
    DeleteData()
    End If
    Case 保存
    SetToolBarState(True)
    SetTextBoxState(True)
    If bAdd True Then
    '新增数保存
    SaveForAdd()
    Else
    '更新数保存
    SaveForUpdate()
    End If
    MedgdListEnabled True
    Case 取消
    SetTextBoxState(True)
    SetToolBarState(True)
    MedgdListEnabled True
    ResetDataGridData()
    Case 退出
    '关闭窗体
    MeClose()
    End Select
    Try
    MedgdListCurrentRowIndex bmDataPosition
    Catch ex As Exception
    End Try
    End Sub


    55 实现会计科目设置功
    (1) 选择文件|添加新项命令添加新项话框模板列表框中选择继承窗体选项取名frmKeMuvb单击开钮弹出继承选项器话框中选择frmbase选项单击确定钮先创建窗体添加图39示控件

    图39 frmKeMu 窗体

    (2) 控件属性设置表40示

    表40 frmKeMu窗体控件属性设置
    控件类型
    象名
    属性
    取值
    Form
    frmKeMu
    Text
    Frmbase
    Groupbox
    Grbright
    Anchor
    Topbottomleftright
    Combobox
    Cbbkind
    Items
    资产
    负债
    权益

    损益
    Combobox
    Cbbkind
    Dropdownstyle
    Dropdown
    Combobox
    Cbbdirection
    Items

    贷方
    Combobox
    Cbbdirection
    Dropdownstyle
    Dropdown
    Textbox
    Txbcode
    Text

    Textbox
    Txbname
    Text

    Textbox
    Txbhelpcode
    Text


    (3) 工具栏中拖动sqldataadpter象窗体连接caiwubook数库添加科目表选择字段:科目代码科目名称助记符科目类余额方单击确定钮完成sqldataadapter象配置
    (4) sqldataadapter象右击弹出快捷菜单中选择生成数集命令弹出生成数集话框中单击确定钮
    (5) textbox控件combobox控件设置数源
    (6) 重写frmkemu基类函数
    Public Overrides Sub Prepare()
    MeText 会计科目设置
    End Sub
    Public Overrides Sub LoadData()
    Dim strFilter As String
    If txbOneTextTrimLength 0 Then
    If txbTwoTextTrimLength 0 Then
    If txbThreeTextTrimLength 0 Then
    strFilter
    Else
    strFilter where 科目类 like '
    strFilter + txbThreeTextTrim + '
    End If
    Else
    strFilter where 科目名称 like '
    strFilter + txbTwoTextTrim + '
    If txbThreeTextTrimLength <> 0 Then
    strFilter + and 科目类 like '
    strFilter + txbThreeTextTrim + '
    End If
    End If
    Else
    strFilter where 科目代码 like '
    strFilter + txbOneTextTrim + '
    If txbTwoTextTrimLength <> 0 Then
    strFilter + and 科目名称 like '
    strFilter + txbTwoTextTrim + '
    If txbThreeTextTrimLength <> 0 Then
    strFilter + and 科目类 like '
    strFilter + txbThreeTextTrim + '
    End If
    Else
    If txbThreeTextTrimLength <> 0 Then
    strFilter + and 科目类 like '
    strFilter + txbThreeTextTrim + '
    End If
    End If
    End If
    '清空DataSet11
    DataSet11Clear()
    SqlConnection1ConnectionString DataBasesConn
    SqlDataAdapter1SelectCommandCommandText _
    select * from 科目表 + strFilter
    '根查询条件重新填充DataSet11
    SqlDataAdapter1Fill(DataSet11)
    dtData DataSet11Tables(科目表)
    bmData MeBindingContext(DataSet11 科目表)
    If bmDataCount <> 0 Then
    bmDataPosition 0
    End If
    End Sub
    Public Overrides Sub SetDataGrid()
    LoadData()
    '定义DataGrid表样式
    Dim ts As New DataGridTableStyle
    Dim aColumnTextColumn As DataGridTextBoxColumn
    Dim numCols As Integer dtDataColumnsCount
    Dim i As Integer
    For i 0 To 1

    aColumnTextColumn New DataGridTextBoxColumn
    aColumnTextColumnMappingName _
    dtDataColumns(i)ColumnName
    aColumnTextColumnHeaderText _
    dtDataColumns(i)ColumnName
    aColumnTextColumnNullText
    aColumnTextColumnReadOnly True
    tsGridColumnStylesAdd(aColumnTextColumn)
    Next
    tsAlternatingBackColor ColorLightGray
    tsAllowSorting False
    tsMappingName dtDataTableName
    dgdListTableStylesClear()
    dgdListTableStylesAdd(ts)
    Dim dv As DataView dtDataDefaultView
    dvAllowNew False
    dvAllowDelete False
    'dvAllowEdit False
    '设置数源
    dgdListDataSource dtDataDefaultView
    bmData MeBindingContext(DataSet11 科目表)
    lblCountText 记录数 + dtDataRowsCountToString()
    End Sub
    Public Overrides Sub SetTextBoxState(ByVal bState As Boolean)
    MetxbCodeReadOnly bState
    MetxbHelpCodeReadOnly bState
    MetxbNameReadOnly bState
    MecbbDirectionEnabled Not bState
    MecbbKindEnabled Not bState
    End Sub
    Public Overrides Sub Clear()
    MetxbCodeText
    MetxbHelpCodeText
    MetxbNameText
    End Sub
    Public Overrides Sub SaveForUpdate()
    Try
    Dim row As Integer
    row dgdListCurrentCellRowNumber
    dgdListCurrentCell _
    New DataGridCell((row + 1) Mod bmDataCount 0)
    '判断否更新数
    If MeDataSet11HasChanges True Then
    SqlDataAdapter1Update(DataSet11)
    End If
    Catch ex As Exception
    MessageBoxShow(数修改失败)
    End Try
    End Sub
    Public Overrides Sub SaveForAdd()
    Dim drData As DataRow DataSet11Tables(科目表)NewRow()
    Try
    drData(科目代码) txbCodeTextTrim
    drData(科目名称) txbNameTextTrim
    drData(助记码) txbHelpCodeTextTrim
    drData(科目类) cbbKindTextTrim
    drData(余额方) cbbDirectionTextTrim
    Catch ex As Exception
    MessageBoxShow(数格式正确)
    Exit Sub
    End Try
    Try
    DataSet11Tables(科目表)RowsAdd(drData)
    If MeDataSet11HasChanges True Then
    SqlDataAdapter1Update(DataSet11)
    End If
    Catch ex As Exception
    MessageBoxShow(数添加成功)
    End Try
    End Sub
    会计科目设置功已完成

    56 实现帐户设置功
    帐户设置功窗体需父窗体继承
    (1) 新建窗体name属性改frmzhanghu添加图41示控件

    图41 frmzhanghu窗体

    (2) 控件属性设置表42示

    图42 frmzhanghu窗体控件属性设置
    控件类型
    象名
    属性
    取值(说明)
    From
    Frmzhanghu
    Text
    帐户录入(期初数录入)
    Toolbar
    Toolbar1
    Buttons
    图41
    Imagelist
    Imagelist1
    Images
    图41
    Groupbox
    Grbsearch
    Anchor
    Topleftright
    Button
    Btnnew
    Text
    建立新账簿
    Button
    Btnstart
    Text
    启账簿
    Button
    Btntry
    Text
    试算衡
    Datagird
    Dgglist
    Anchor
    Topbuttonleftright
    Datagrid
    Dgdright
    Anchor
    Topbuttonright

    (3) 工具箱中拖出sqldataadapter象窗体连接caiwubook数库添加账簿初始化表选择字段:科目代码科目名称余额方累计方累积贷方期初余额
    (4) sqldataadapter象右击弹出快捷菜单中选择生成数集命令弹出生成数集话框中单击确定钮
    (5) 工具箱中拖动sqldataadapter象窗体连接caiwubook数库添加系统参数表选择字段:编号参数名称取值
    (6) sqldataadapter2象右击弹出快捷菜单中选择生成数集命令弹出生成数集话框中单击确定钮
    (7) 窗体累frmzhanghu添加私变量
    Private dtLeft As DataTable
    Private dtRight As DataTable
    (8) 窗体类frmzhanghu添加私函数
    Private Sub SetLeftDataGrid()
    MeSqlConnection1ConnectionString DataBasesConn
    SqlDataAdapter1Fill(DataSet11)
    dtLeft DataSet11Tables(帐簿初始化表)
    Dim ts As New DataGridTableStyle
    Dim aColumnTextColumn As DataGridTextBoxColumn
    Dim numCols As Integer dtLeftColumnsCount
    Dim i As Integer
    For i 0 To numCols 1
    aColumnTextColumn New DataGridTextBoxColumn
    aColumnTextColumnMappingName _
    dtLeftColumns(i)ColumnName
    aColumnTextColumnHeaderText _
    dtLeftColumns(i)ColumnName
    aColumnTextColumnNullText
    aColumnTextColumnWidth 60
    aColumnTextColumnReadOnly True
    If i > 2 Then
    aColumnTextColumnReadOnly False
    aColumnTextColumnHeaderText + (编辑)
    aColumnTextColumnWidth 105
    End If
    tsGridColumnStylesAdd(aColumnTextColumn)
    Next
    tsAlternatingBackColor ColorLightGray
    tsAllowSorting False
    tsMappingName dtLeftTableName
    dgdLeftTableStylesAdd(ts)
    Dim dv As DataView dtLeftDefaultView
    dvAllowNew False
    dvAllowDelete False
    'dvAllowEdit False
    '设置数源
    dgdLeftDataSource dtLeftDefaultView
    End Sub
    Private Sub SetRightDataGrid()
    MeSqlConnection1ConnectionString DataBasesConn
    SqlDataAdapter2Fill(DataSet11)
    dtRight DataSet11Tables(系统参数表)
    Dim ts As New DataGridTableStyle
    Dim aColumnTextColumn As DataGridTextBoxColumn
    Dim numCols As Integer dtRightColumnsCount
    Dim i As Integer
    For i 0 To numCols 1
    aColumnTextColumn New DataGridTextBoxColumn
    aColumnTextColumnMappingName _
    dtRightColumns(i)ColumnName
    aColumnTextColumnHeaderText _
    dtRightColumns(i)ColumnName
    aColumnTextColumnNullText
    If i 0 Then
    aColumnTextColumnWidth 30
    Else
    aColumnTextColumnWidth 60
    End If
    aColumnTextColumnReadOnly True
    If i 2 Then
    aColumnTextColumnReadOnly False
    aColumnTextColumnHeaderText + (编辑)
    aColumnTextColumnWidth 80
    End If
    tsGridColumnStylesAdd(aColumnTextColumn)
    Next
    tsAlternatingBackColor ColorLightGray
    tsAllowSorting False
    tsMappingName dtRightTableName
    dgdRightTableStylesAdd(ts)
    Dim dv As DataView dtRightDefaultView
    dvAllowNew False
    dvAllowDelete False
    'dvAllowEdit False
    '设置数源
    dgdRightDataSource dtRightDefaultView
    End Sub

    (9) 窗体frmzhanghuload事件添加事件响应函数
    Private Sub frmZhangHu_Load(ByVal sender As Object _
    ByVal e As SystemEventArgs) Handles MyBaseLoad
    SetLeftDataGrid()
    SetRightDataGrid()
    End Sub

    (10) 工具栏toolbar1buttonclick事件响应函数
    Private Sub ToolBar1_ButtonClick(ByVal sender As Object ByVal _
    e As ToolBarButtonClickEventArgs) Handles ToolBar1ButtonClick
    Dim row As Integer
    row dgdLeftCurrentCellRowNumber
    dgdLeftCurrentCell _
    New DataGridCell((row + 1) _
    Mod DataSet11Tables(帐簿初始化表)RowsCount 0)
    row dgdRightCurrentCellRowNumber
    dgdRightCurrentCell New DataGridCell((row + 1) _
    Mod DataSet11Tables(系统参数表)RowsCount 0)
    If DataSet11HasChanges True Then
    Try
    SqlDataAdapter1Update(DataSet11)
    SqlDataAdapter2Update(DataSet11)
    Catch ex As Exception
    MessageBoxShow(更新数出错)
    End Try
    End If
    End Sub

    (11) 钮btnnewclick事件添加事件响应函数
    Private Sub btnNew_Click(ByVal sender As SystemObject _
    ByVal e As SystemEventArgs) Handles btnNewClick
    Dim dlgResult As DialogResult _
    MessageBoxShow(否清原账簿信息初始化新帐簿? _
    删 MessageBoxButtonsOKCancel)
    If dlgResult DialogResultOK Then
    Dim db As DataBase New DataBase
    dbRunDelOrInsSQL(exec sf_初始化帐户)
    dbDispose()
    End If
    SqlDataAdapter1Fill(DataSet11)
    dtLeft DataSet11Tables(帐簿初始化表)
    dgdLeftDataSource dtLeft
    End Sub

    (12) 钮btnstartclick事件添事件响应函数
    Private Sub btnStart_Click(ByVal sender As SystemObject _
    ByVal e As SystemEventArgs) Handles btnStartClick
    Dim dlgPingHeng As frmPingHeng New frmPingHeng
    'If dlgPingHengCalPingHeng(0) <> True Then
    ' MessageBoxShow(初始数试算衡请检查数 _
    ' 确认 MessageBoxButtonsOK)
    ' Return
    'End If
    Dim strMsg As String 试算结果衡
    strMsg + 启新帐簿删历史数否继续
    Dim dlgResult As DialogResult _
    MessageBoxShow(strMsg 确认 MessageBoxButtonsOKCancel)
    '调sf_初始化帐户存储程建立新帐簿
    If dlgResult DialogResultOK Then
    Dim db As DataBase New DataBase
    dbRunDelOrInsSQL(exec sf_启帐户)
    strMsg 新帐簿成功启
    MessageBoxShow(strMsg 确认 MessageBoxButtonsOK)
    dlgPingHengDispose()
    End If
    End Sub

    (13) 单击试算衡钮时需弹出新窗体显示试算结果新建窗体命名frmpingheng添加图43示控件

    图43 frmpingheng窗体

    (14) 控件属性设置表44示

    图44 frmpingheng窗体控件属性设置
    控制类型
    象名
    属性
    取值(说明)
    From
    Frmpingheng
    Text
    试算衡
    Datagrid
    Dgdtop
    Anchor
    Topbottomleftright
    Datagrid
    Dgdbottom
    Dock
    Botton

    (15) 窗体类frmpingheng添加私函数
    'Private Sub SetTopDataGrid()
    ' Dim db As DataBase New DataBase
    ' Dim strSQL As String select 科目代码科目名称(case
    ' strSQL + when 余额方'方' then 期初余额 else 0 end
    ' strSQL + 累计方) as 期初方(case when 余额方'贷方'
    ' strSQL + then 期初余额 else 0 end 累计贷方) as 期初贷方
    ' strSQL + 累计方 as 期发生方累计贷方 as 期发生贷方
    ' strSQL + case when 余额方'方' then 期初余额 else 0 end as
    ' strSQL + 期末方case when 余额方'贷方' then 期初余额 else 0
    ' strSQL + end as 期末贷方 from 帐簿初始化表 where 累计方<>0 or
    ' strSQL + 累计贷方<>0 or 期初余额<>0
    ' dtTop dbRunSelectSQL(strSQL)Table
    ' Dim ts As New DataGridTableStyle
    ' Dim aColumnTextColumn As DataGridTextBoxColumn
    ' Dim numCols As Integer dtTopColumnsCount
    ' Dim i As Integer
    ' For i 0 To numCols 1
    ' aColumnTextColumn New DataGridTextBoxColumn
    ' aColumnTextColumnMappingName _
    ' dtTopColumns(i)ColumnName
    ' aColumnTextColumnHeaderText _
    ' dtTopColumns(i)ColumnName
    ' aColumnTextColumnNullText
    ' aColumnTextColumnWidth 60
    ' aColumnTextColumnReadOnly True
    ' tsGridColumnStylesAdd(aColumnTextColumn)
    ' Next
    ' tsAlternatingBackColor ColorLightGray
    ' tsAllowSorting False
    ' tsMappingName dtTopTableName
    ' dgdTopTableStylesAdd(ts)
    ' Dim dv As DataView dtTopDefaultView
    ' dvAllowNew False
    ' dvAllowDelete False
    ' dvAllowEdit False
    ' '设置数源
    ' dgdTopDataSource dtTopDefaultView
    'End Sub

    'Private Sub CreateDataTalbe()
    ' '创建数表
    ' dtBottom New DataTable(结果)
    ' '添加列
    ' With dtBottomColumns
    ' Add(否衡 TypeGetType(SystemString))
    ' Add(期初方合计 TypeGetType(SystemString))
    ' Add(期初贷方合计 TypeGetType(SystemString))
    ' Add(期方合计 TypeGetType(SystemString))
    ' Add(期贷方合计 TypeGetType(SystemString))
    ' Add(期末方合计 TypeGetType(SystemString))
    ' Add(期末贷方合计 TypeGetType(SystemString))
    ' End With
    'End Sub
    '' 计算否衡显示出计算结果
    '' nStatus 0 初始化帐簿时计算
    '' 1 正式证计算
    'Public Function CalPingHeng(ByVal iStatus As Integer) As Boolean
    ' Dim bResult As Boolean
    ' ' 根状态计算衡情况
    ' Dim strSQL As String
    ' ' 初始化帐簿试算衡需根初始化信息反算期初
    ' Dim db As DataBase New DataBase
    ' If iStatus 0 Then
    ' strSQL select 科目代码 科目名称
    ' strSQL + (case when 余额方'方' then 期初余额
    ' strSQL + else 0 end 累计方) as 期初方
    ' strSQL + (case when 余额方'贷方' then 期初余额
    ' strSQL + else 0 end 累计贷方) as 期初贷方
    ' strSQL + 累计方 as 期发生方累计贷方 as 期发生贷方
    ' strSQL + case when 余额方'方' then 期初余额
    ' strSQL + else 0 end as 期末方
    ' strSQL + case when 余额方'贷方' then 期初余额
    ' strSQL + else 0 end as 期末贷方
    ' strSQL + from 帐簿初始化表
    ' strSQL + where 累计方<>0 or 累计贷方<>0 or 期初余额<>0
    ' dgdTopDataSource dbRunSelectSQL(strSQL)
    ' ' 计算合计金额判断否衡
    ' strSQL select
    ' strSQL + sum(case when 余额方'方'
    ' strSQL + then 期初余额 else 0 end累计方) as 期初方合计
    ' strSQL + sum(case when 余额方'贷方'
    ' strSQL + then 期初余额 else 0 end累计贷方) as 期初贷方合计
    ' strSQL + sum(累计方) as 期方合计sum(累计贷方)
    ' strSQL + as 期贷方合计
    ' strSQL + sum(case when 余额方'方' then
    ' strSQL + 期初余额 else 0 end) as 期末方合计
    ' strSQL + sum(case when 余额方'贷方' then
    ' strSQL + 期初余额 else 0 end) as 期末贷方合计
    ' strSQL + from 帐簿初始化表
    ' strSQL + where 累计方<>0 or 累计贷方<>0 or 期初余额<>0
    ' Dim dv As DataView dbRunSelectSQL(strSQL)
    ' bResult AddToDataTable(dv)
    ' Else
    ' strSQL select a科目代码 b科目名称
    ' strSQL + (case when a余额方'方'
    ' strSQL + then 期初余额 else 0 end ) as 期初方
    ' strSQL + (case when a余额方'贷方'
    ' strSQL + then 期初余额 else 0 end) as 期初贷方
    ' strSQL + 期方合计 as 期发生方 期贷方合计
    ' strSQL + as 期发生贷方
    ' strSQL + case when a余额方'方' then 余额 else 0 end
    ' strSQL + as 期末方
    ' strSQL + case when a余额方'贷方' then 余额 else 0 end
    ' strSQL + as 期末贷方
    ' strSQL + from 期汇总账簿 as a 科目表 as b
    ' strSQL + where a科目代码 b科目代码 and (期方合计<> 0
    ' strSQL + or 期贷方合计<>0 or 期初余额<>0 or 余额<>0)
    ' Dim dvTemp As DataView dbRunSelectSQL(strSQL)
    ' dvTempAllowEdit False
    ' dvTempAllowDelete False
    ' dvTempAllowNew False
    ' dgdTopDataSource dvTemp
    ' strSQL select
    ' strSQL + sum(case when 余额方'方' then 期初余额 else 0 end)
    ' strSQL + as 期初方合计
    ' strSQL + sum(case when 余额方'贷方' then 期初余额 else 0 end)
    ' strSQL + as 期初贷方合计
    ' strSQL + sum(期方合计) as 期方合计sum(期贷方合计)
    ' strSQL + as 期贷方合计
    ' strSQL + sum(case when 余额方'方' then 余额 else 0 end)
    ' strSQL + as 期末方合计
    ' strSQL + sum(case when 余额方'贷方' then 余额 else 0 end)
    ' strSQL + as 期末贷方合计
    ' strSQL + from 期汇总账簿
    ' strSQL + where 期方合计<> 0 or 期贷方合计<>0 or
    ' strSQL + 期初余额<>0 or 余额<>0
    ' Dim dv As DataView dbRunSelectSQL(strSQL)
    ' bResult AddToDataTable(dv)
    ' MedgdBottomDataSource dtBottom
    ' End If
    ' dbDispose()
    ' Return bResult
    'End Function
    'Private Sub SetBottomDataGrid()
    ' Dim ts As New DataGridTableStyle
    ' Dim aColumnTextColumn As DataGridTextBoxColumn
    ' Dim numCols As Integer dtBottomColumnsCount
    ' Dim i As Integer
    ' For i 0 To numCols 1
    ' aColumnTextColumn New DataGridTextBoxColumn
    ' aColumnTextColumnMappingName _
    ' dtBottomColumns(i)ColumnName
    ' aColumnTextColumnHeaderText _
    ' dtBottomColumns(i)ColumnName
    ' aColumnTextColumnNullText
    ' aColumnTextColumnWidth 80
    ' aColumnTextColumnReadOnly True
    ' tsGridColumnStylesAdd(aColumnTextColumn)
    ' Next
    ' tsAlternatingBackColor ColorLightGray
    ' tsAllowSorting False
    ' tsMappingName dtBottomTableName
    ' dgdBottomTableStylesAdd(ts)
    ' Dim dv As DataView dtBottomDefaultView
    ' dvAllowNew False
    ' dvAllowDelete False
    ' dvAllowEdit False
    ' '设置数源
    ' dgdBottomDataSource dtBottomDefaultView
    'End Sub
    'Private Function AddToDataTable(ByRef dv As DataView) As Boolean
    ' '判断dtBottom否初始化
    ' If dtBottom Is Nothing Then
    ' CreateDataTalbe()
    ' End If
    ' Dim bResult As Boolean
    ' '清空数表容
    ' dtBottomRowsClear()
    ' Dim dr As DataRow dtBottomNewRow()
    ' '获取行数
    ' Try
    ' dr(期初方合计) SetText(dvItem(0)(期初方合计))
    ' dr(期初贷方合计) SetText(dvItem(0)(期初贷方合计))
    ' dr(期方合计) SetText(dvItem(0)(期方合计))
    ' dr(期贷方合计) SetText(dvItem(0)(期贷方合计))
    ' dr(期末方合计) SetText(dvItem(0)(期末方合计))
    ' dr(期末贷方合计) SetText(dvItem(0)(期末贷方合计))
    ' Catch ex As Exception
    ' MessageBoxShow(exToString)
    ' End Try
    ' dr(期初方合计) SetText(dvItem(0)(期初方合计))
    ' '判断否衡
    ' If SetText(dvItem(0)(期初方合计)) _
    ' <> SetText(dvItem(0)(期初贷方合计)) Or _
    ' SetText(dvItem(0)(期方合计)) _
    ' <> SetText(dvItem(0)(期贷方合计)) Or _
    ' SetText(dvItem(0)(期末方合计)) _
    ' <> SetText(dvItem(0)(期末贷方合计)) Then
    ' dr(否衡) 衡
    ' bResult False
    ' Else
    ' dr(否衡) 衡
    ' bResult True
    ' End If
    ' dtBottomRowsAdd(dr)
    ' Return bResult
    'End Function
    'Private Function SetText(ByVal obj As Object) As String
    ' If obj Is Nothing Then
    ' Return
    ' Else
    ' Return objToString()
    ' End If
    'End Function
    End Class

    (16) 钮btntryclick事件添加事件响应函数
    Public sub btntry_click(byual sender as systemobject_byval e as systemeventargs) handles
    Dim dlgpingheng as frmpinghengnew frmpingheng
    Dlgpinghengshowdialog()
    Dlgpinghengdispose()
    End sub
    帐户设置功已完成

    57 实现证输入功
    (1) 选择文件|添加新项命令添加新项话框模板列表框中选择继承窗体选项取名frmshuruvb单击开钮弹出继承选择器话框中选择frmbase选项单击确定钮新建窗体图45示控件


    图45 终frmshuru窗体

    (2) 控件属性设置表46示

    表46 frmshuru窗体控件属性设置
    控件类型
    象名
    属性
    取值(说明)
    From
    Frmshuru
    Text
    会计证输入
    Textbox
    Txbcode
    Readonly
    True
    Textbox
    Txbdate
    Text

    Textbox
    Txbpeople
    Text

    Textbox
    Txbperiod
    Readonly
    True
    Textbox
    Txbperiod
    Readonly
    True
    Textbox
    Txbstate
    Readonly
    True
    Textbox
    Txbdebittotal
    Readonly
    True
    Textbox
    Txblendertoyal
    Readonly
    True
    Groupbox
    Grabove
    Anchor
    Topleftright
    Groupbox
    Grabove
    Text
    证表
    Groupbox
    Grbottom
    Anchbor
    Topbottomleftright
    Groupbox
    Grbottom
    Text
    分录表
    Textbox
    Txbsummary
    Text

    Textbox
    Txbsubjectcode
    Text

    Textbox
    Txbsujectcode
    Text

    Textbox
    Txbdebit
    Text
    0
    Textbox
    Txblender
    Text
    0
    Button
    Btnadd
    Text
    添加
    Button
    Btnsave
    Text
    修改
    Button
    Btndal
    Text

    Datagrid
    Dgddetail
    Anchor
    Topbottomleftright


    (3) 工具箱中拖动sqldataadapter象窗体连接caiwubook数库添加证表选择字段:证编号会计期间日期证字号账状态方合计贷方合计
    (4) sqldataadapter象右击弹出快捷菜单中选择生成数集菜单命令弹出生成数集话框中单击确定钮
    (5) textbox控件设置数源
    (6) 窗体类frmshuru添加私变量
    Private bmDetail As BindingManagerBase
    Private dtDetail As DataTable
    Private iCurrentLine As Integer 0
    (7) 窗体类frmshuru添加私变量
    Private Sub SetDetailDataGrid(ByVal iCount As Integer)
    ' LoadDataForDetail()
    ' '定义DataGrid表样式
    ' Dim ts As New DataGridTableStyle
    ' Dim aColumnTextColumn As DataGridTextBoxColumn
    ' Dim numCols As Integer dtDetailColumnsCount
    ' Dim i As Integer
    ' For i 2 To numCols 1

    ' aColumnTextColumn New DataGridTextBoxColumn
    ' aColumnTextColumnMappingName _
    ' dtDetailColumns(i)ColumnName
    ' aColumnTextColumnHeaderText _
    ' dtDetailColumns(i)ColumnName
    ' aColumnTextColumnNullText
    ' tsGridColumnStylesAdd(aColumnTextColumn)
    ' Next
    ' tsAlternatingBackColor ColorLightGray
    ' tsAllowSorting False
    ' tsMappingName dtDetailTableName
    ' dgdDetailTableStylesAdd(ts)
    ' Dim dv As DataView dtDetailDefaultView
    ' dvAllowEdit False
    ' dvAllowNew False
    ' dvAllowDelete False
    ' '设置数源
    ' dgdDetailDataSource dtDetail
    ' SetTextBoxData()
    ' End Sub
    ' Private Sub dgdDetail_CurrentCellChanged(ByVal sender _
    ' As Object ByVal e As EventArgs) _
    ' Handles dgdDetailCurrentCellChanged
    ' If iCurrentLine <> dgdDetailCurrentCellRowNumber Then
    ' iCurrentLine dgdDetailCurrentCellRowNumber
    ' SetTextBoxData()
    ' End If
    ' End Sub
    ' Private Sub SetTextBoxData()
    ' Try
    ' If dtDetailRows(iCurrentLine)(科目代码) Is Nothing Then
    ' Return
    ' Else
    ' txbSubjectCodeText _
    ' dtDetailRows(iCurrentLine)(科目代码)
    ' txbSubjectNameText _
    ' dtDetailRows(iCurrentLine)(科目名称)
    ' txbSummaryText dtDetailRows(iCurrentLine)(摘)
    ' txbDebitText dtDetailRows(iCurrentLine)(方)
    ' txbLenderText dtDetailRows(iCurrentLine)(贷方)
    ' End If
    ' Catch ex As Exception
    ' End Try
    ' End Sub
    ' Private Sub txbSubjectCode_TextChanged(ByVal sender As Object ByVal e As SystemEventArgs) Handles txbSubjectCodeTextChanged

    ' Dim strCode As String txbSubjectCodeTextTrim
    ' If strCode Then
    ' Return
    ' End If
    ' Dim strSQL As String select 科目名称 from 科目表 where 科目代码 + strCode
    ' Dim db As DataBase New DataBase
    ' Dim dv As DataView dbRunSelectSQL(strSQL)
    ' If dvTableRowsCount 0 Then
    ' MetxbSubjectNameText
    ' Return
    ' End If
    ' MetxbSubjectNameText dv(0)(0)ToString()Trim()
    ' End Sub
    ' Private Sub btnAdd_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles btnAddClick
    ' If ValidateData() False Then
    ' MessageBoxShow(数格式确)
    ' Return
    ' End If
    ' Try
    ' Dim dr As DataRow dtDetailNewRow
    ' dr(摘) txbSummaryTextTrim
    ' dr(科目代码) txbSubjectCodeTextTrim
    ' dr(科目名称) txbSubjectNameTextTrim
    ' dr(方) txbDebitTextTrim
    ' dr(贷方) txbLenderTextTrim
    ' dtDetailRowsAdd(dr)
    ' dgdDetailDataSource dtDetail
    ' dgdDetailCurrentRowIndex dtDetailRowsCount 1
    ' UpdateMoney()
    ' Catch ex As Exception
    ' MessageBoxShow(数格式正确)
    ' End Try
    ' ClearTextBox()
    ' End Sub
    ' Private Sub btnSave_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles btnSaveClick
    ' If ValidateData() False Then
    ' MessageBoxShow(数格式确)
    ' Return
    ' End If
    ' If dgdDetailCurrentRowIndex 1 Then
    ' Return
    ' End If
    ' Try
    ' Dim iRow As Integer dgdDetailCurrentRowIndex
    ' dtDetailRows(iRow)(摘) txbSummaryTextTrim
    ' dtDetailRows(iRow)(科目代码) txbSubjectCodeTextTrim
    ' dtDetailRows(iRow)(科目名称) txbSubjectNameTextTrim
    ' dtDetailRows(iRow)(方) txbDebitTextTrim
    ' dtDetailRows(iRow)(贷方) txbLenderTextTrim
    ' UpdateMoney()
    ' Catch ex As Exception
    ' MessageBoxShow(数格式正确)
    ' End Try
    ' ClearTextBox()
    ' End Sub
    ' Private Sub btnDel_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles btnDelClick
    ' Try
    ' '获DataGrid前选中行号
    ' Dim iRow dgdDetailCurrentRowIndex
    ' '弹出话框户确认删记录
    ' '果户确认删记录
    ' If MessageBoxShow(确认删条记录? Confirm MessageBoxButtonsYesNo) DialogResultYes Then
    ' '商品清单表删前选中记录()
    ' ClearTextBox()
    ' dtDetailRowsRemoveAt(iRow)
    ' Else
    ' Exit Sub
    ' End If
    ' Catch ex As Exception
    ' MessageBoxShow(删数出错)
    ' End Try
    ' UpdateMoney()
    ' ClearTextBox()
    ' End Sub
    ' Private Function ValidateData() As Boolean
    ' If txbSubjectCodeTextTrim Or _
    ' txbSubjectNameTextTrim or _
    ' (txbDebitTextTrim 0 And txbLenderTextTrim 0) Then
    ' Return False
    ' End If
    ' Return TRUE
    ' End Function
    ' Private Sub ClearTextBox()
    ' txbSummaryText
    ' txbSubjectCodeText
    ' txbSubjectNameText
    ' txbDebitText 0
    ' txbLenderText 0
    ' End Sub
    ' Private Function CalMoney() As Single()
    ' Dim Result(2) As Single
    ' Result(0) 0
    ' Result(1) 0
    ' Dim i As Integer
    ' For i 0 To dtDetailRowsCount 1
    ' Result(0) + CSng(dtDetailRows(i)(方))
    ' Result(1) + CSng(dtDetailRows(i)(贷方))
    ' Next
    ' Return Result

    ' End Function
    ' Private Sub UpdateMoney()
    ' Dim Result() As Single CalMoney()
    ' MetxbDebitTotalText Result(0)ToString(f)
    ' MetxbLenderTotalText Result(1)ToString(f)
    ' End Sub
    ' Private Sub InsertDetail(ByVal code As String)
    ' If MetxbLenderTotalTextTrim <> MetxbDebitTotalTextTrim Then
    ' MessageBoxShow(贷双方衡请检查)
    ' Return
    ' End If
    ' If dtDetailRowsCount < 0 Then
    ' Return
    ' End If
    ' '首先删前证编号关联分录表记录
    ' Dim db As DataBase New DataBase
    ' Dim strSQL As String delete from 分录表 where 证编号'
    ' strSQL + code + '
    ' dbRunDelOrInsSQL(strSQL)
    ' strSQL
    ' For Each dr As DataRow In dtDetailRows
    ' strSQL + insert into 分录表(证编号摘科目代码
    ' strSQL + 方 贷方) values(' + code + ''
    ' strSQL + dr(摘)ToString()Trim + ''
    ' strSQL + dr(科目代码)ToString()Trim + '
    ' strSQL + dr(方)ToString()Trim +
    ' strSQL + dr(贷方)ToString()Trim + )
    ' Next
    ' dbRunDelOrInsSQL(strSQL)
    ' dbDispose()
    ' End Sub
    ' Private Sub DeleteDetail()
    ' Dim db As DataBase New DataBase
    ' Dim strSQL As String delete from 分录表 where 证编号'
    ' strSQL + txbCodeTextTrim + '
    ' dbRunDelOrInsSQL(strSQL)
    ' dbDispose()
    ' End Sub

    (8) 窗体类frmshuru添加私函数
    ' Public Overrides Sub Prepare()
    ' MeText 会计输入证
    ' MeLabel1Text 证编号
    ' MeLabel2Text 会计期间
    ' MeLabel3Text 日期
    ' End Sub
    ' Public Overrides Sub LoadData()
    ' Dim strFilter As String
    ' If txbOneTextTrimLength 0 Then
    ' If txbTwoTextTrimLength 0 Then
    ' If txbThreeTextTrimLength 0 Then
    ' strFilter
    ' Else
    ' strFilter where 日期 like '
    ' strFilter + txbThreeTextTrim + '
    ' End If
    ' Else
    ' strFilter where 会计期间 like ' + txbTwoTextTrim + '
    ' If txbThreeTextTrimLength <> 0 Then
    ' strFilter + and 日期 like '
    ' strFilter + txbThreeTextTrim + '
    ' End If
    ' End If
    ' Else
    ' strFilter where 证编号 like ' + txbOneTextTrim + '
    ' If txbTwoTextTrimLength <> 0 Then
    ' strFilter + and 会计期间 like ' + txbTwoTextTrim + '
    ' If txbThreeTextTrimLength <> 0 Then
    ' strFilter + and 日期 like '
    ' strFilter + txbThreeTextTrim + '
    ' End If
    ' Else
    ' If txbThreeTextTrimLength <> 0 Then
    ' strFilter + and 日期 like '
    ' strFilter + txbThreeTextTrim + '
    ' End If
    ' End If
    ' End If
    ' '清空DataSet11
    ' DataSet11Clear()
    ' SqlConnection1ConnectionString DataBasesConn
    ' SqlDataAdapter1SelectCommandCommandText _
    ' select * from 证表 + strFilter
    ' '根查询条件重新填充DataSet11
    ' SqlDataAdapter1Fill(DataSet11)
    ' dtData DataSet11Tables(证表)
    ' bmData MeBindingContext(DataSet11 证表)
    ' End Sub
    ' Public Overrides Sub SetDataGrid()
    ' LoadData()
    ' '定义DataGrid表样式
    ' Dim ts As New DataGridTableStyle
    ' Dim aColumnTextColumn As DataGridTextBoxColumn
    ' Dim numCols As Integer dtDataColumnsCount
    ' Dim i As Integer
    ' For i 0 To 2

    ' aColumnTextColumn New DataGridTextBoxColumn
    ' aColumnTextColumnMappingName _
    ' dtDataColumns(i)ColumnName
    ' aColumnTextColumnHeaderText _
    ' dtDataColumns(i)ColumnName
    ' aColumnTextColumnNullText
    ' aColumnTextColumnReadOnly True
    ' aColumnTextColumnWidth 55
    ' If i 2 Then
    ' aColumnTextColumnFormat yyyyMd
    ' End If
    ' tsGridColumnStylesAdd(aColumnTextColumn)
    ' Next
    ' tsAlternatingBackColor ColorLightGray
    ' tsAllowSorting False
    ' tsMappingName dtDataTableName
    ' dgdListTableStylesAdd(ts)
    ' Dim dv As DataView dtDataDefaultView
    ' dvAllowNew False
    ' dvAllowDelete False
    ' 'dvAllowEdit False
    ' '设置数源
    ' dgdListDataSource dtData
    ' 'dgdListDataMember 证表
    ' bmData MeBindingContext(DataSet11 证表)
    ' lblCountText 记录数 + dtDataRowsCountToString()
    ' MedgdListAllowNavigation False
    ' SetDetailDataGrid(dtDataRowsCount)
    ' End Sub
    ' Public Overrides Sub SetTextBoxState(ByVal bState As Boolean)
    ' MegrbAboveEnabled Not bState
    ' MegrbBottomEnabled Not bState
    ' End Sub
    ' Public Overrides Sub LoadDataForDetail()
    ' Dim strSQL As String SELECT 证编号 编号 摘 a科目代码 科目名称方 贷方 FROM 分录表 as a 科目表 as b where a科目代码b科目代码
    ' If dtDataRowsCount <> 0 Then
    ' strSQL + and 证编号 + dtDataRows(bmDataPosition)(证编号)
    ' End If
    ' Dim db As DataBase New DataBase
    ' dtDetail dbRunSelectSQL(strSQL)Table
    ' Dim dv As DataView dtDetailDefaultView
    ' dvAllowEdit False
    ' dvAllowNew False
    ' dvAllowDelete False
    ' dgdDetailDataSource dv
    ' End Sub
    ' Public Overrides Sub SaveForUpdate()
    ' Try
    ' InsertDetail(MetxbCodeText)
    ' Dim row As Integer
    ' row dgdListCurrentCellRowNumber
    ' dgdListCurrentCell _
    ' New DataGridCell((row + 1) Mod bmDataCount 0)
    ' '判断否更新数
    ' If MeDataSet11HasChanges True Then
    ' SqlDataAdapter1Update(DataSet11)
    ' End If
    ' Catch ex As Exception
    ' MessageBoxShow(数修改失败)
    ' End Try
    ' End Sub
    ' Public Overrides Sub Clear()
    ' ' 计算证编号(Primary key)
    ' Dim strID strID1 strT strSQL As String
    ' strID strID1
    ' strSQL select max(证编号) as 编号 from 证表历史
    ' Dim db As DataBase New DataBase
    ' Dim dv As DataView
    ' dv dbRunSelectSQL(strSQL)
    ' If dvItem(0)(0)GetType()ToString() SystemDBNull Then
    ' strID 000001
    ' Else
    ' strT 000000
    ' strID (CInt(dv(0)(0)) + 1)ToString
    ' strID strTSubstring(0 strTLength strIDLength) + strID
    ' End If
    ' strSQL select max(证编号) as 编号 from 证表
    ' dv dbRunSelectSQL(strSQL)
    ' If dvItem(0)(0)GetType()ToString() SystemDBNull Then
    ' strID1 000001
    ' Else
    ' strT 000000
    ' strID1 (CInt(dv(0)(0)) + 1)ToString
    ' strID1 strTSubstring(0 strTLength strID1Length) + strID1
    ' End If
    ' If strID < strID1 Then
    ' strID strID1
    ' End If

    ' txbCodeText strID
    ' Dim dvTemp As DataView dbRunSelectSQL(select 取值 from 系统参数表 where 参数名称 '前会计期间')
    ' txbPeriodText dvTemp(0)(0)ToString()Trim
    ' txbStateText 未
    ' txbDebitTotalText 0
    ' txbLenderTotalText 0
    ' txbDateText NowDateToString(yyyyMd)
    ' dtDetailRowsClear()
    ' ClearTextBox()
    ' cbbZiHaoText
    ' dbDispose()
    ' End Sub
    ' Public Overrides Sub ResetDataGridData()
    ' If bmDataPosition <> 1 Then
    ' txbCodeText dtDataRows(bmDataPosition)(证编号)
    ' End If
    ' End Sub
    ' Public Overrides Sub SaveForAdd()
    ' Dim dr As DataRow DataSet11Tables(证表)NewRow()
    ' Try
    ' dr(证编号) txbCodeTextTrim
    ' dr(证字号) cbbZiHaoTextTrim
    ' dr(日期) txbDateTextTrim
    ' dr(会计期间) txbPeriodTextTrim
    ' dr(账状态) txbStateTextTrim
    ' dr(方合计) txbDebitTotalTextTrim
    ' dr(贷方合计) txbLenderTotalTextTrim
    ' If txbDebitTotalTextTrim <> txbLenderTotalTextTrim Then
    ' MessageBoxShow(贷双方衡请检查)
    ' Exit Sub
    ' End If
    ' Catch ex As Exception
    ' MessageBoxShow(数格式正确)
    ' Exit Sub
    ' End Try
    ' Try
    ' DataSet11Tables(证表)RowsAdd(dr)
    ' If MeDataSet11HasChanges True Then
    ' SqlDataAdapter1Update(DataSet11)
    ' End If
    ' InsertDetail(dr(证编号)ToString())
    ' Catch ex As Exception
    ' MessageBoxShow(数添加失败)
    ' End Try
    ' End Sub
    ' Public Overrides Sub DeleteData()
    ' Try
    ' '删前行数
    ' DeleteDetail()
    ' MedgdDetailDataSource Nothing
    ' DataSet11Tables(证表) _
    ' Rows(bmDataPosition)Delete()
    ' If MeDataSet11HasChanges True Then
    ' '更新DataSet11
    ' SqlDataAdapter1Update(DataSet11)
    ' End If
    ' Catch ex As Exception
    ' MessageBoxShow(数删失败)
    ' End Try


    58 实现总分类账查询功
    (1) 新建窗体name属性改frmzongfen添加图47示控件


    图47 frmzongfen窗体


    (2) 控件属性设置图48示

    表48 frmzongfen窗体控件属性设置
    控件类型
    象名
    属性
    取值(说明)
    Form
    Frmzongfen
    Text
    总分类账查询
    Groupbox
    Grbsearch
    Anchor
    Topleft
    Imagelist
    Imagelist1
    Images

    Toolbar
    Toolbar1
    Imagelist
    Imagelist1
    Label
    Lblcount
    Text

    Datagrid
    Dgdlist
    Anchor
    Topbottomleftright
    Textbox
    Txbone
    Text

    Button
    Btnsearch
    Text

    Checkbox
    Cbbcheck
    Text
    发生金额显示


    (3) 总分类帐查询部分功前面介绍功相似frmzongfen类添加私函数loaddata
    Private Sub LoadData()
    Dim strFilter As String
    If MetxbOneTextTrimLength 0 Then
    If MecbbCheckChecked True Then
    strFilter where 期方合计 <>0 or 期贷方合计<>0
    End If
    Else
    strFilter where 科目代码 + MetxbOneTextTrim
    If MecbbCheckChecked True Then
    strFilter + and (期方合计 <>0 or 期贷方合计<>0)
    End If
    End If
    '清空DataSet11
    DataSet11Clear()
    SqlConnection1ConnectionString DataBasesConn
    SqlDataAdapter1SelectCommandCommandText _
    select * from 期汇总账簿 + strFilter
    '根查询条件重新填充DataSet11
    SqlDataAdapter1Fill(DataSet11)
    dtData DataSet11Tables(期汇总账簿)
    bmData MeBindingContext(DataSet11 期汇总账簿)
    lblCountText 记录数 + dtDataRowsCountToString()
    End Sub


    59 实现明细帐查询功
    建立总分类帐查询查询科目汇总信息明细账查询查询科目前会计期间发生笔业务余额
    (1) 新建窗体name属性改frmmingxi添加图49示控件


    图49 frmmingxi窗体


    (2) 控件属性设置表50示

    表50 frmmingxi窗体控件属性设置
    控件类型
    象名
    属性
    取值(说明)
    Form
    Frmmingxi
    Text
    明细账查询
    Groupbox
    Grbsearch
    Anchor
    Topleft
    Imagelist
    Imagelist1
    Images

    Toolbar
    Toolbar1
    Imagelist
    Imagelist1
    Label
    Lblcount
    Text

    Label
    Lblcode
    Text

    Datagrid
    Dgdlist
    Anchor
    Topbottomleftright
    Textbox
    Txbone
    Text

    Button
    Btnsearch
    Text


    明细帐查询功总分类查询功相似

    510 实现试算衡表功
    试算衡表菜单响应函数新建该窗体实例显示出
    Public sub mnpingheng_click(byual sender as systemobject_byval e as systemeventargs) handles mnpinghengClick
    If getinstancestate(frmpingheng) then
    Exit sub
    Dim childfrm as frmpinghengnew frmpingheng
    ChildfrmMdiparentme
    Childfrmshowdialog()
    Childfrmcalpingheng(1)
    End sub


    511 现期末结账功
    期末结账功程序中调sf_期末结账存储程完成程序窗体期末结账菜单响应函数中添加相应处理代码完成期末结账功具体代码

    Private Sub mnQimo_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles mnQimoClick
    '期末结帐
    Dim dlgResult As DialogResult _
    MessageBoxShow(结帐进入会计期间否结帐 _
    确定 MessageBoxButtonsYesNo)
    If dlgResult <> DialogResultYes Then
    Return
    End If
    'Dim db As DataBase New DataBase
    'Try
    ' dbRunDelOrInsSQL(begin tran exec sf_期末结帐)
    'Catch ex As Exception
    ' MessageBoxShow(期末结帐失败)
    ' dbRunDelOrInsSQL(rollback)
    ' Return
    'End Try
    'dbRunDelOrInsSQL(commit)
    MessageBoxShow(结帐成功)
    End Sub

    512 实现资产负债表报表输入功
    (1) 新建窗体name属性改frmreport窗体面添加crystalreportviewer控件(图51终完成窗体)

    图51 终完成印窗体

    (2)工具栏中拖动sqldataadapter象窗体连接mrpbook数库添加资产负债表选择字段单击确定钮完成sqldataadapter象配置
    (3)sqldataadapter象右击弹出快捷菜单中选择生成数集菜单命令弹出生成数集话框中单击确定钮
    (4)类frmreport添加变量
    Private iperiod as into6

    (5)类frmreport添加公函数
    Public Sub New(ByVal period As Int16)
    MeNew()
    iPeriod period
    End Sub

    (6)类load事件添加响应函数
    Private Sub frmReport_Load(ByVal sender As Object _
    ByVal e As SystemEventArgs) Handles MyBaseLoad
    Try
    SqlConnection1ConnectionString DataBasesConn
    SqlDataAdapter1SelectCommandCommandText _
    select * from 资产负债表 where 会计期间 + iPeriodToString()
    MeSqlDataAdapter1Fill(MeDataSet11)
    Dim obj As ReportDocument New ReportDocument
    'obj加载Crystal Report路径设置
    objLoad(Reportrpt)
    '设置报表数源
    objSetDataSource(MeDataSet11)
    MeCrystalReportViewer1ReportSource obj
    Catch ex As Exception
    MessageBoxShow(exToString)
    End Try
    End Sub

    (7) 添加菜单响应函数
    Private Sub mnFuzhai_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles mnFuzhaiClick

    If GetInstanceState(frmReport) Then
    Exit Sub
    End If
    Dim message title defaultValue As String
    Dim myValue As Object
    message 请输入统计会计区间
    title 输入 ' Set title

    ' 输入统计会计区间
    'Dim db As DataBase New DataBase
    'Dim dv As DataView dbRunSelectSQL(select 取值 from 系统参数表 where 参数名称 '前会计期间')
    'defaultValue (CInt(dv(0)(0)ToString()Trim) 1)ToString
    'myValue InputBox(message title defaultValue)
    'Dim strTemp As String
    'Try
    ' strTemp CInt(myValueToStringTrim)
    'Catch ex As Exception
    ' MessageBoxShow(请输入合法会计区间)
    ' Return
    'End Try

    '计算
    'dbRunDelOrInsSQL(exec sf_计算资产负债表 + strTemp)
    'dbDispose()
    '显示
    'Dim childFrm As frmReport New frmReport(CInt(myValueToStringTrim))
    'childFrmMdiParent Me
    'childFrmShow()
    End Sub

    513 编译运行系统
    完成整系统制作选择生成|生成解决方案菜单命令编译运行程序

    6 系统发布
    系统设计完成需包发布应制作成安装程序制作安装程序工具般Visual BasicNET开发应系统Visual BasicNET2003带功进行包Install Shield完成系统安装查询

    7 系统扩展
    财务理系统作独立系统运行应系统结合起实现数享进销存系统中进货销售应收应付款等会计分录动生成证图52示

    分销理系统
    销售出库单
    采购入库单

    库存核算
    库存理
    销售理
    采购系统

    销售发票
    材料库

    采购发票

    入库单
    出库单

    应收账款
    总账系统
    应付账款

    动生成证

    动生成证


    财务系统


    票理
    固定资产理
    费理
    成核算






    图52 财务理系统系统结合
    8 结
    掌握知识技巧
    l 财务理系统需求
    l 利Visual Baisic NET进行数库编程种方法
    l Visual Baisic NET类继承概念重载父类函数技巧
    l 利类继承封装应功编写方法
    l 利Visual Baisic NET编写财务理系统
    l 财务理系统扩展





    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 10 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    构建可持续发展框架下的绿色交通系统

    构建可持续发展框架下的绿色交通系统 内容提要   “绿色交通”是一个新的理念,也是一个实践目标。一般说来,“绿色交通”是为了减低交通拥挤,降低污染,促进社会公平,节省建设维护费用而发展低污染...

    15年前   
    16501    0

    基于CS框架的学生选课系统

     ...

    5年前   
    1262    0

    酒店财务管理系统数据库课程设计框架

    酒店财务管理系统数据库课程设计可以围绕多个关键方面进行,以下是一个建议的课程设计框架:一、课程目标本课程旨在设计并实现一个酒店财务管理系统数据库,使学生能够掌握数据库设计的基本原理和方法,了解酒...

    3周前   
    85    0

    基于SSH框架的图书管理系统的设计与实现

    基于SSH框架的图书管理系统的设计与实现基于SSH框架的图书管理系统摘 要 如今已经我们已经步入了信息时代,而在信息科技快速发展的形势下,网络现已成为我们工作和日常生活中必不可少的一部分...

    2年前   
    749    0

    联通客户管理系统需求框架

     客户管理系统需求框架 Ver 1.0 (征求意见稿) 中国联合通信有限公司 2004年4月 ...

    10年前   
    12475    0

    基于SSM框架的知识产权管理系统

    贯彻《企业知识产权管理规范》国家标准,标准化要求规范知识产权管理,建立适宜的、有效的、符合企业发展要求的知识产权管理系统体系。各行业后台管理系统数不胜数,但是对于知识产权的后台管理却是少之又少。...

    3年前   
    1481    0

    构建秘书职业资格制度框架的依据

    构建秘书职业资格制度框架的依据很多人也有一个错误的观点,以为只要自己的学历与经验适合雇主的要求,便不用太花心思去撰写求职信,更认为面试的机会必然垂手可得。一 、求职信1、雇主望你要知 正所谓:...

    11年前   
    442    0

    公司财务管理制度框架

    完达山股份公司财务管理制度 一、 公司财务管理框架(见财务机构框架图) 二、 财务管理体制(模式) 按股份公司管理框架建立财务管理框架,根据企业经营范围广、分支机构多、物资流量和资金...

    11年前   
    5763    0

    项目管理中的信息系统构建精要

    项目管理中的信息系统构建精要1、项目的信息化管理概述项目管理是近年来国际上兴起的一门新兴专业学科和技术。随着项目,尤其是较大型的建设工程项目的启动、规划、实施等项目生命周期的展开,与项目有关的...

    12年前   
    510    0

    关于构建智能人才评价系统的思考

    同样,要想构建一个科学智能的人才评价系统,最重要的,就是利用计算机系统,高效、直接、可储存、可查询,却没有丝毫主观性与个人情感,充分做到评价客观;目前,国网公司日常工作都强调痕迹化管理,基本...

    5年前   
    1356    0

    XXXX人力资源系统构建指导手册

    XXXX人力资源系统构建指导手册 一、 XXXX人力资源体系构建的战略思维: § 一个最高理念:人才为根本 § 一个总导向:建立“能力与机制高度匹配”的人力资源管理体系。 “能力”...

    7年前   
    2853    0

    美的销售系统财务管理

     销售系统的财务管理 一、客户资料建立    1. 客户基本资料建文件:      业务人员应搜集所有经销商基本资料填立“客户基本资料表”,审核后归档。 2....

    12年前   
    22159    0

    家庭财务管理系统

    目 录 摘要 1关键词 1Abstract 2Key Words 21绪论 1.1课题背景 31.2开发工具与技术 41.3软硬件需求 42系统技术开发 52.1 可行...

    8个月前   
    169    0

    美的销售系统财务管理

    一、客户资料建立   1. 客户根本资料建文件:      业务人员应搜集所有经销商根本资料填立“客户根本资料表〞,审核后归档。 2. 客户动态资料记录:应注意及时更新。3. 财务应...

    2年前   
    557    0

    基于Node.js Express框架的高校宿舍管理系统设计和实现

    本科毕业设计(论文) 基于Node.js + Express框架的高校宿舍管理系统设计和实现Design a...

    10个月前   
    357    0

    管理信息系统课设指导及写作框架范本

    管理信息系统课设指导及写作框架范本《管理信息系统》课程设计指导书一、 课程设计目的管理信息系统课程设计作为独立的教学环节,是管理专业集中实践性环节系列之一,是学习完《管理信息系统》课程后进行的...

    11年前   
    544    0

    基于SSM框架的校园网上订餐系统的设计与实现

    基于SSM框架的校园网上订餐系统的设计与实现Design and Implementation of Campus Online Food Ordering System B...

    2年前   
    1163    0

    建筑施工项目信息化管理系统框架

    建筑施工项目信息化管理系统框架【摘要】通过文献阅读和实地调研,建立了一个综合的施工项目信息化管理系统框架。该框架不仅包含信息技术的应用,而且考虑了现有的项目管理模式和施工项目管理的各个方面。框...

    9年前   
    371    0

    Oracle电子商务套件构建ERP系统应用案例-ERP解决方案

    Oracle电子商务套件构建ERP系统应用案例-ERP解决方案  综述  为了进一步提升企业的财务管理水平,缩短与国际一流水平电信企业的差距,中国联合通信有限公司(以下简称中国联通)积极地推进...

    10年前   
    723    0

    2021年体育文化系统构建三力总结

     2021年体育文化系统构建三力总结撰写人:___________日 期:___________2021年体育文化系统构建三力总结局成立了以局长为组长,为切实开展好县直文体系统“三力建设”工...

    2年前   
    319    0

    文档贡献者

    z***u

    贡献于2019-10-15

    下载需要 10 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档