5.2会计科目设置 paper51.com 图:5-2会计科目设置窗体 http://www.paper51.com
在这个窗体中,可以对会计科目的各项基础信息进行管理。其中【科目类别】选项组表示该科目所属的类别,有资产、负债、权益、损溢和成本5个选项,一般资产类科目余额方向为借方,负债和权益科目余额方向为贷方,但“坏帐准备”的科目余额方向则为贷方。 内容来自www.paper51.com
该窗体中还设有搜索功能,在窗体中的文本框内输入科目代码,科目名称或类别中的任何一项或几项,再单击【搜索】按钮,即可在窗体左边的表格中得到与设定的搜索条件相符合的结果。同时窗体中还显示当前表格中的数据总数。 内容来自论文无忧网 www.paper51.com 在浏览情况下,除搜索一栏的文本框外,窗体中的表格,数据文本框和选项组中的数据都是不可编辑状态的,只有当【新增】或者【修改】按钮被按下后才可以使用,当单击【保存】或【取消】按钮提交后,它们又恢复只读状态。 paper51.com 需要对数据表中的数据进行修改或者新增数据时,单击相应的按钮,输入新信息后单击【保存】按钮即可。需要删除一条信息,单击【删除】按钮。 内容来自论文无忧网 www.paper51.com //---------------新增记录---------------- 内容来自www.paper51.com procedureTSecSetting.ToolButton6Click(Sender: TObject); 内容来自www.paper51.com begin paper51.com SetToolBar(true); paper51.com datasource1.DataSet.Insert; 内容来自论文无忧网 www.paper51.com end; copyright paper51.com //---------------修改记录---------------- 内容来自论文无忧网 www.paper51.com procedure TSecSetting.ToolButton7Click(Sender:TObject); 内容来自www.paper51.com begin paper51.com SetToolBar(true); paper51.com datasource1.DataSet.Edit; 内容来自www.paper51.com
end; 内容来自论文无忧网 www.paper51.com //---------------删除记录---------------- 内容来自www.paper51.com
procedureTSecSetting.ToolButton8Click(Sender: TObject); 内容来自论文无忧网 www.paper51.com begin copyright paper51.com if application.MessageBox('删除该条记录?','财务管理系统',MB_OKCANCEL)=IDOK then 内容来自www.paper51.com datasource1.DataSet.Delete; paper51.com
end; 内容来自www.paper51.com //----------查询数据并显示------------- copyright paper51.com procedureTSecSetting.BitBtn1Click(Sender: TObject); 内容来自论文无忧网 www.paper51.com
begin copyright paper51.com adoquery1.Close; copyright paper51.com
adoquery1.SQL.Clear; 内容来自www.paper51.com
adoquery1.SQL.Add('select *from 科目表where (科目代码 like ''%'+edit1.Text+'%'')and'); paper51.com adoquery1.SQL.Add('(科目名称 like''%'+edit2.Text+'%'')and(科目类别 like''%'+edit3.Text+'%'')'); 内容来自论文无忧网 www.paper51.com adoquery1.Open; 内容来自论文无忧网 www.paper51.com end; copyright paper51.com
5.3账户设置 paper51.com
内容来自论文无忧网 www.paper51.com
图:5-3账户设置窗体 http://www.paper51.com 该功能模块有【建立新帐簿】、【启用帐簿】和【试算平衡】3个按钮。【建立新帐簿】按钮用于建立一个新的初始帐簿,系统在后台调用“sf_初始化帐户”存储过程,删除“帐簿初始化表”原有的信息,根据“科目表”重新创建“帐簿初始化表”并在窗体中显示。在表格中输入各科目的初始信息和系统参数信息,完成后通过【启用帐簿】按钮启用新的帐簿。【启用帐簿】按钮先检查当前帐簿试算是否平衡,如果平衡在后台调用“sf_启用帐户”存储过程,启用新定义的帐簿,如果不平衡,会提示用户查阅试算平衡表,检查输入的初始化信息并修改,直到试算平衡才能启用新定义的帐簿。需要注意的是,启用新定义的帐簿会删除系统中历史的所有数据。【试算平衡】按钮可以随时查看当前的帐簿信息是否平衡,当试算不平衡时,窗体下方的表格将变为红色,向用户发出试算不平衡的警告。 copyright paper51.com
//-----------------初始化帐户----------------------- 内容来自论文无忧网 www.paper51.com procedureTAccountSetting.BitBtn1Click(Sender: TObject); http://www.paper51.com begin 内容来自论文无忧网 www.paper51.com //执行储存过程,初始化帐户 内容来自www.paper51.com adocommand1.CommandText:='EXEC sf_初始化帐户'; 内容来自论文无忧网 www.paper51.com if application.MessageBox('是否清除原帐簿信息,并初始化新帐簿?','确认',MB_OKCANCEL)=IDOK then http://www.paper51.com adocommand1.Execute; 内容来自www.paper51.com //刷新数据表 copyright paper51.com adotable1.Active:=false; paper51.com adotable1.Active:=true; paper51.com adotable2.Active:=false; copyright paper51.com adotable2.Active:=true; copyright paper51.com end; copyright paper51.com //--------------------启用新帐户----------------- 内容来自论文无忧网 www.paper51.com procedureTAccountSetting.BitBtn2Click(Sender: TObject); 内容来自www.paper51.com begin 内容来自www.paper51.com //判断是否试算平衡 paper51.com adoquery1.Close; 内容来自www.paper51.com
adoquery1.SQL.Clear; copyright paper51.com adoquery1.SQL.Add('selectsum(累计借方)借方,sum(累计贷方) 贷方 from 帐簿初始化表'); paper51.com
adoquery1.Open; copyright paper51.com if adoquery1.FieldByName('借方').AsString<>adoquery1.FieldByName('贷方').AsString then 内容来自论文无忧网 www.paper51.com begin 内容来自www.paper51.com showmessage('新帐簿初始化不平衡,请检查试算平衡表后重新输入'); http://www.paper51.com exit; 内容来自www.paper51.com end; http://www.paper51.com //如果试算平衡,则可以新建帐簿 内容来自论文无忧网 www.paper51.com if application.MessageBox('试算结果平衡,启用新帐簿将删除所有历史记录'+#13+'是否继续?','确认',MB_OKCANCEL)=IDOK then 内容来自论文无忧网 www.paper51.com begin 内容来自论文无忧网 www.paper51.com //执行储存过程,启用帐户 内容来自论文无忧网 www.paper51.com adocommand1.CommandText:='EXEC sf_启用帐户'; http://www.paper51.com adocommand1.Execute; http://www.paper51.com //刷新数据表 paper51.com
adotable1.Active:=false; http://www.paper51.com
adotable1.Active:=true; paper51.com adotable2.Active:=false; http://www.paper51.com adotable2.Active:=true; 内容来自论文无忧网 www.paper51.com //显示帐户启用成功消息 内容来自www.paper51.com showmessage('新帐户启用成功'); copyright paper51.com
end; 内容来自论文无忧网 www.paper51.com end; paper51.com 5.4凭证输入 paper51.com
paper51.com
图:5-4 凭证输入窗体 paper51.com 在该窗体输入凭证和会计分录信息。【新增】按钮单击后,系统自动新建一个凭证,凭证号和会计期间等信息自动生成,其中的会计期间是“系统参数表”中的“当前会计期间”,日期是系统的当前日期,窗体后台程序对凭证编号自动进行计算保证新输入的凭证号不和以前已有的凭证编号冲突。在下方的StringGrid中,双击“科目名称”列,将弹出一个包括科目设置的基本信息的窗体,在该窗体表格中的任意一栏双击,将选中的科目名称和科目代码自动输入到【会计凭证输入】窗体中的StringGrid中并关闭该选择窗体,如需添加多条分录信息,则可以再次双击“科目名称”列,重复前面的操作逐项输入分录的信息,完成后单击【保存】按钮,系统先检查借贷双方是否平衡,如果平衡给予保存。 内容来自论文无忧网 www.paper51.com
//---------------新增记录---------------- copyright paper51.com procedureTDocuInput.ToolButton6Click(Sender: TObject); copyright paper51.com
var paper51.com
totalnum:string; copyright paper51.com begin http://www.paper51.com //刷新数据,得到凭证数据中最大编码并加一,防止编码重复 paper51.com adoquery3.Close; 内容来自www.paper51.com
adoquery3.SQL.Clear; 内容来自论文无忧网 www.paper51.com
adoquery3.SQL.Add('selectmax(凭证编号)最大编号 from 凭证表'); copyright paper51.com
adoquery3.Open; copyright paper51.com totalnum:=adoquery3.FieldByName('最大编号').Asstring; http://www.paper51.com totalnum:=copy(totalnum,1,6); http://www.paper51.com if totalnum='' thentotalnum:='0'; paper51.com totalnum:=inttostr(strtoint(totalnum)+1); http://www.paper51.com //开始新增 http://www.paper51.com SetToolBar(true); 内容来自论文无忧网 www.paper51.com datasource1.DataSet.Insert; 内容来自www.paper51.com //组成六位的凭证编码 paper51.com if length(totalnum)=1 then paper51.com dbedit1.Text:='00000'+totalnum; copyright paper51.com if length(totalnum)=2 then 内容来自论文无忧网 www.paper51.com dbedit1.Text:='0000'+totalnum; 内容来自论文无忧网 www.paper51.com
if length(totalnum)=3 then 内容来自论文无忧网 www.paper51.com dbedit1.Text:='000'+totalnum; copyright paper51.com //默认凭证字号 http://www.paper51.com
dbcombobox1.SelText:='收'; copyright paper51.com //加入当前日期 copyright paper51.com dbedit2.Text:=datetostr(date); 内容来自www.paper51.com // 默认会计期间 内容来自论文无忧网 www.paper51.com main.setpara; http://www.paper51.com dbedit4.Text:=main.para[2]; paper51.com //默认过帐状态 paper51.com
dbedit5.Text:='未过'; 内容来自www.paper51.com
//设置操作类型 http://www.paper51.com
op:='insert'; 内容来自www.paper51.com end; 内容来自论文无忧网 www.paper51.com 5.5凭证过账 内容来自www.paper51.com http://www.paper51.com 图:5-5 凭证过账对话框 内容来自论文无忧网 www.paper51.com 凭证过账功能时依靠在程序中调用“sf_凭证过账”存储过程完成的,由于SQL Server在后台执行,因此无窗体界面。在程序主窗体“凭证过账”菜单的响应函数中添加相应的处理代码,完成凭证过账的功能。运行时对话框如图:5-5。 内容来自论文无忧网 www.paper51.com 5.6总分类账查询 paper51.com
内容来自www.paper51.com 图:5-6 总账分类查询窗体 内容来自论文无忧网 www.paper51.com
在【总分类帐查询】窗体中,可以通过选中【无发生金额布显示】单选框来确定是否要对表格中的数据进行过滤,只显示那些发生了金额的项目。 内容来自论文无忧网 www.paper51.com
//----------查询数据并显示------------- copyright paper51.com
procedureTTotalAccount.BitBtn1Click(Sender: TObject); 内容来自www.paper51.com
begin 内容来自www.paper51.com adoquery1.Close; 内容来自www.paper51.com adoquery1.SQL.Clear; copyright paper51.com adoquery1.SQL.Add('selecta.*,b.科目名称 from 本期汇总帐簿 a,科目表 bwhere (a.科目代码 like ''%'+edit1.Text+'%'')and'); http://www.paper51.com adoquery1.SQL.Add('(a.科目代码=b.科目代码)'); paper51.com
adoquery1.Open; 内容来自论文无忧网 www.paper51.com end; paper51.com //---------根据用户的操作对表中的数据进行过滤----------- paper51.com procedureTTotalAccount.CheckBox1Click(Sender: TObject); paper51.com begin 内容来自www.paper51.com if checkbox1.Checked then 内容来自www.paper51.com begin paper51.com datasource1.DataSet.Filter:='余额<>0'; 内容来自www.paper51.com datasource1.DataSet.Filtered:=true; http://www.paper51.com end http://www.paper51.com
else copyright paper51.com datasource1.DataSet.Filtered:=false; http://www.paper51.com end; 内容来自论文无忧网 www.paper51.com 5.7试算平衡 内容来自论文无忧网 www.paper51.com http://www.paper51.com 图:5-7试算平衡窗体 paper51.com 结帐阶段的试算平衡表主要反映在凭证过帐之后结帐时的统计信息。 内容来自www.paper51.com
|