账务处理与报表MIS的设计与实现.ppt_第1页
账务处理与报表MIS的设计与实现.ppt_第2页
账务处理与报表MIS的设计与实现.ppt_第3页
账务处理与报表MIS的设计与实现.ppt_第4页
账务处理与报表MIS的设计与实现.ppt_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

管理信息系统,主 讲:李国红 E-mail: ,2019/7/9,管理信息系统:李国红主讲,2,6.1 账务处理与报表系统设计概述 6.2 会计科目设置 6.3 记账凭证输入处理 6.4 登记现金日记账 6.5 登记总账 6.6 损益表数据自动生成及输出 6.7 账务处理与报表系统的菜单设计 6.8 MIS操作维护设计与实现 6.9 MIS用户登录的设计与实现,第6章 账务处理与报表系统的设计与实现,2019/7/9,管理信息系统:李国红主讲,3,6.1 账表MIS概述 (1/4),1. 账表MIS的任务:(P153),2019/7/9,管理信息系统:李国红主讲,4,6.1 账表MIS概述 (2/4) 2.账务与报表处理的DFD: (P154),2019/7/9,管理信息系统:李国红主讲,5,6.1 账表MIS概述 (3/4),3. 账务处理系统的主要功能模块:,2019/7/9,管理信息系统:李国红主讲,6,6.1 账表MIS概述(4/4),4.VFP开发环境设置与相关操作 VFP系统环境设置 主要操作和常用命令、常用函数 项目管理器的使用,2019/7/9,管理信息系统:李国红主讲,7,6.2 会计科目设置,6.2.1 科目输入 6.2.2 科目查询与修改 6.2.3 科目删除 6.2.4 记录定位及信息提示框,2019/7/9,管理信息系统:李国红主讲,8,6.2.1 科目输入,1.科目输入包括设置会计科目和输入期初数。 2.建立会计科目表文件kjkm.dbf,表中包括kmbh、kmmc、jdfx、qcye四个字段,数据通过表单界面输入。 3.设计表单,含科目编号、科目名称、借贷方向、期初余额等的标签及其文本框。其中期初余额文本框应设置为数值型数据类型的文本框。 4.编程。应考虑:科目编号不能为空(位数不低于4)、科目编号不能重复、多于4位的科目必须有上级科目。 5.功能演示 6.考虑科目输入的基本过程。 7.用VFP实现账表MIS的系统初始化。有关命令及函数。,转科目输入程序流程,2019/7/9,管理信息系统:李国红主讲,9,Kjkm.dbf数据表的结构,返科目输入 返查询修改 返科目删除,2019/7/9,管理信息系统:李国红主讲,10,科目输入用户界面,2019/7/9,管理信息系统:李国红主讲,11,上级科目假设,假设:从二级科目开始,某科目的代码去掉最后二位即为该科目的上级科目。 一级科目:1001、1002、1101、 二级科目:100201、100202、 三级科目:10020101、10020102、 余类推。,2019/7/9,管理信息系统:李国红主讲,12,科目输入的基本过程,1002,银行存款,1,1256000.00,2019/7/9,管理信息系统:李国红主讲,13,有关命令及函数、属性、方法,set exact on | off use locate for append blank replace with len() alltrim() subs() 或 left() space() messagebox(),found() 对象.value 对象.setfocus 对象.refresh 对象.release,2019/7/9,管理信息系统:李国红主讲,14,a=messagebox(“真的想退出吗?“,4+48,“提示“),单击“是”,a=6 单击“否”,a=7,a=7,a=6,2019/7/9,管理信息系统:李国红主讲,15,a=messagebox(“要提示的信息!“,0+48,“提示“),a=1,转“科目输入”,2019/7/9,管理信息系统:李国红主讲,16,会计科目输入程序流程,2019/7/9,管理信息系统:李国红主讲,17,用VFP实现账表MIS的科目输入 “确定”按钮的Click过程,set exact on b=0 use kjkm kmbh1=allt(thisform.text1.value) length1=len(allt(thisform.text1.value) if length14 b=messagebox(“请输入不低于四位的科目编号!“,48) thisform.text1.setfocus else loca for allt(kmbh)=kmbh1 ,2019/7/9,管理信息系统:李国红主讲,18,辅助功能 文本框单击被清空,Text2、Text3的Click事件 This.value=space(0) Text4的Click事件 This.value=0,2019/7/9,管理信息系统:李国红主讲,19,取消本次输入 “取消”按钮的Click过程,thisform.text1.value=spac(0) thisform.text2.value=spac(0) thisform.text3.value=spac(0) thisform.text4.value=0.00 thisform.text1.setfocus,2019/7/9,管理信息系统:李国红主讲,20,退出输入模块 “退出”按钮的Click过程,a=messagebox(“真的想退出吗?“,4+48,“提示“) if a=6 thisform.release endif,if messagebox(“真的想退出吗?“,4+48,“提示“) =6 thisform.release endif,2019/7/9,管理信息系统:李国红主讲,21,进一步思考的问题,有关a=messagebox(“XXXXXX”,m+48,“提示”) 见(P185-186),2019/7/9,管理信息系统:李国红主讲,22,(P185-186) b=messagebox(“XXXXXXXXXXXX!“,m+48,“提示“),m=0 单击“确定”,b=1 m=1 单击“确定”,b=1 单击“取消”,b=2,2019/7/9,管理信息系统:李国红主讲,23,(P185-186) b=messagebox(“XXXXXXXXXXXX!“,m+48,“提示“),m=2 单击“终止”,b=3 单击“重试”,b=4 单击“忽略”,b=5 m=5 单击“重试”,b=4 单击“取消”,b=2,2019/7/9,管理信息系统:李国红主讲,24,(P185-186) b=messagebox(“XXXXXXXXXXXX?“,m+48,“提示“),m=3 单击“是”,b=6 单击“否”,b=7 单击“取消”,b=2 m=4 单击“是”,b=6 单击“否”,b=7,2019/7/9,管理信息系统:李国红主讲,25,(P185-186) a=messagebox(“XXXXXXXXXXXX“,m+48,“提示“),单击“确定”,a=1 单击“取消”,a=2 单击“终止”,a=3 单击“重试”,a=4 单击“忽略”,a=5 单击“是”,a=6 单击“否”,a=7,2019/7/9,管理信息系统:李国红主讲,26,本节小结,账表MIS的任务及模块结构 账表MIS的系统初始化 kjkm.dbf表文件 输入表单界面 会计科目设置流程 科目设置的VFP实现 进一步思考问题,2019/7/9,管理信息系统:李国红主讲,27,本节结束!,2019/7/9,管理信息系统:李国红主讲,28,上机步骤,在F:盘以自已的学号或姓名建立文件夹。 打开VFP,利用工具,选项将新建文件夹所在目录设置为默认目录。 建表(文件名不要用“表1.dbf”)。 创建表单,输入代码。 运行。 关机。,2019/7/9,管理信息系统:李国红主讲,29,6.2.2 科目查询与修改,1、数据表的结构:同Kjkm.dbf 2、科目查询与修改表单界面设计 3、科目查询与修改功能目标 指定查询条件 查询与修改操作 退出:thisform.release 4、功能的实现,2019/7/9,管理信息系统:李国红主讲,30,查询与修改表单界面,返回,2019/7/9,管理信息系统:李国红主讲,31,指定查询条件,表单的Load与Unload事件 Load:定义Public xiangmu(4),bijiao(7) Combo1与Combo2关联的数据源 RowSourceType:5-数组 RowSource:xiangmu、biaojiao Style:2-下拉列表框 表单的Init事件 Combo1和Combo2的InteractiveChange事件 Text2的数据类型和输入掩码 Text1和Text2的Click事件,2019/7/9,管理信息系统:李国红主讲,32,查询与修改,Cursor1的Filter属性 表单初始运行后,表格中不含数据:.F. Combo2的ControlSource属性 bj:“”、“=” 宏替换&bj.: 、= “查询”按钮的Click事件 表格只读 选择不同项目时对应的不同条件tj Cursor1的filter属性设置为tj 根据Combo1是否“期初余额”,为Text2或Text1设置焦点 刷新表单,2019/7/9,管理信息系统:李国红主讲,33,本节结束,2019/7/9,管理信息系统:李国红主讲,34,6.2.3 科目删除,1、表的结构:同Kjkm.dbf 2、界面设计 3、相关功能 选择列表项 删除功能的实现 实现退出功能 单击Text1,内容被清空 单击Combo1,Text1获得焦点,2019/7/9,管理信息系统:李国红主讲,35,删除科目界面,下拉列表框,Style属性为2,2019/7/9,管理信息系统:李国红主讲,36,列表项,表单的Load过程:public shuzu(4) Combo1下拉列表框对应的数据源类型、数据源以及用于保存所选列表项的变量 RowSourceType:5-数组 RowSource:shuzu ControlSource:xuanxian 表单的Init过程 bo1.listindex=2 thisform.text1.setfocus,2019/7/9,管理信息系统:李国红主讲,37,“删除”按钮的Click事件,do case case xuanxiang=“科目编号“ ziduan=“kmbh“ case xuanxiang=“科目名称“ ziduan=“kmmc“ case xuanxiang=“借贷方向“ ziduan=“jdfx“ case xuanxiang=“期初余额“ ziduan=“qcye“ endcase,2019/7/9,管理信息系统:李国红主讲,38,“删除”按钮的Click事件,use kjkm if ziduan“qcye“ locate for allt(&ziduan)=allt(thisform.text1.value) if found() dele for allt(&ziduan)=allt(thisform.text1.value) pack thisform.text1.value=space(0) else messagebox(“没找到相关记录!“,0+48,“提示“) endif else locate for &ziduan.=val(thisform.text1.value) if found() dele for &ziduan.=val(thisform.text1.value) pack thisform.text1.value=space(0) else messagebox(“没找到相关记录!“,0+48,“提示“) endif endif use thisform.text1.setfocus,2019/7/9,管理信息系统:李国红主讲,39,利用比较运算符和宏替换的删除设计,2019/7/9,管理信息系统:李国红主讲,40,数据删除以科目删除为例,设计表单 Combo1的设置:RowsourceType:1-值;RowSource:科目编号,科目名称,借贷方向,期初余额;Style:2-下拉列表框 Combo2的设置:RowsourceType:1-值;RowSource:=、,;ControlSource:ysf ;Style:2-下拉列表框 Form1的Init过程代码: Tmbo1.listindex=2 Tmbo2.listindex=3 Thisform.setfocus 删除按钮的Click过程代码 宏替换函数:&变量.,2019/7/9,管理信息系统:李国红主讲,41,use kjkm do case case allt(bo1.value)=“科目编号“ ziduan=“kmbh“ case allt(bo1.value)=“科目名称“ ziduan=“kmmc“ case allt(bo1.value)=“借贷方向“ ziduan=“jdfx“ case allt(bo1.value)=“期初余额“ ziduan=“qcye“ endc if allt(bo1.value)“期初余额“ locate for &ziduan.&ysf.allt(thisform.text1.value) if found() delete for &ziduan.&ysf.allt(thisform.text1.value) pack else,2019/7/9,管理信息系统:李国红主讲,42,messagebox(“无符合条件的记录!“,0+48,“提示“) endif else locate for &ziduan.&ysf.val(thisform.text1.value) if found() delete for &ziduan.&ysf.val(thisform.text1.value) pack else messagebox(“无符合条件的记录!“,0+48,“提示“) endif endif use,2019/7/9,管理信息系统:李国红主讲,43,本节结束,2019/7/9,管理信息系统:李国红主讲,44,6.2.4 记录定位及信息提示框,记录定位功能的实现 首记录、上一条、下一条、末记录 信息提示框的运用与表示 Messagebox(“提示信息”,m+n, “提示”),2019/7/9,管理信息系统:李国红主讲,45,2019/7/9,管理信息系统:李国红主讲,46,6.3 记账凭证输入处理,1.概述 记账凭证是登记账薄的直接依据,分为收款凭证、付款凭证和转账凭证3类,但输入记账凭证采用统一的记账凭证的输入屏幕格式。 输入数据的正确是保证账内数据正确的关键,也是由记账凭证正确生成会计报表、账薄数据的关键。 功能演示 2.功能实现 建立记账凭证表文件jzpzfb.dbf和jzpzzb.dbf。表中的字段包括pzh、rq、fjzs、sh、zd;pzh、zy、km、jd、je等。其中sh字段的值后三位为_#$表示已登账,由程序自动处理;其余字段的值通过表单界面输入。,2019/7/9,管理信息系统:李国红主讲,47,6.3 记账凭证输入处理,设计凭证输入表单。主表的数据在表格中输入,附表的数据在文本框中输入,其中,日期和附件张数文本框应分别设置成日期型和数值型数据的文本框, 借贷和科目通达下拉列表选择输入(科目必须是kjkm.dbf表中存在的科目编号)。 编程。应考虑:必须指定科目、借贷;输入金额不能为0;借贷必须平衡;须输入制单人;各命令按钮在必要的时候变为灰色,需要的时候变成可用状态。 记账凭证输入的基本过程、程序流程。 用VFP实现记账凭证处理。准备工作、命令按钮代码、其他辅助功能。,2019/7/9,管理信息系统:李国红主讲,48,记账凭证数据表的结构,2019/7/9,管理信息系统:李国红主讲,49,记账凭证用户输入表单,2019/7/9,管理信息系统:李国红主讲,50,记账凭证输入基本过程,2019/7/9,管理信息系统:李国红主讲,51,输入记账凭证流程图,转“记账凭证及相关处理”,2019/7/9,管理信息系统:李国红主讲,52,准备工作,建立数据环境 添加kjkm、jzpzfb、jzpzzb、建立表间关系 文本框、表格与数据表建立关联 日期、附件张数文本框设置 日期文本框:日期型,Value属性为 。 附件张数文本框:数值型,掩码为99。 辅助功能的实现 Form1的BufferMode:2-开放式。 命令按钮状态方法程序:buttonstatus1、 buttonstatus2、 buttonstatus3 Form1.load、unload、Init事件 Text6.InteractiveChange事件,2019/7/9,管理信息系统:李国红主讲,53,用VFP实现记账凭证处理 “新增凭证”按钮的Click过程(1/2),if len(allt(thisform.text6.value)0 &如果Text6中输入了凭证号 sele (thisform.dataenvironment.cursor_JZPZFB.alias) &选择jzpzfb工作区 locate for allt(pzh)=allt(thisform.text6.value) &查jzpzfb中有无匹配凭证号 if .not.found() &如果输入至Text6中的凭证号是一个新的凭证号 thisform.buttonstatus2 &“输入分录”、“取消”按钮有效,其余按钮无效 append blank &在jzpzfb中追加一条空记录 thisform.text1.value=thisform.text6.value & Text1自动取Text6中的值 thisform.text6.value=space(0) & Text6中的内容清空 thisform.text6.readonly=.t. & Text6的ReadOnly属性设置为.t. thisform.text2.value=date() & Text2中自动取值为系统当前日期 thisform.refresh &刷新表单,返回记账凭证及相关处理,2019/7/9,管理信息系统:李国红主讲,54,用VFP实现记账凭证处理 “新增凭证”按钮的Click过程(2/2),else &如果输入至Text6中的凭证号已存在于jzpzfb中 thisform.buttonstatus1 &“新增凭证”、“关闭”按钮有效,其余按钮无效 =messagebox(“已存在此凭证号的凭证!“,48) &提示对话框 thisform.text6.setfocus & Text6文本框获得焦点 endif else &如果Text6中还未输入凭证号 thisform.buttonstatus1 &“新增凭证”、“关闭”按钮有效,其余按钮无效 =messagebox(“请输入新增凭证的凭证号!“,48) &提示对话框 thisform.text6.setfocus & Text6文本框获得焦点 endif,2019/7/9,管理信息系统:李国红主讲,55,用VFP实现记账凭证处理 “输入分录”按钮的Click过程,sele (thisform.dataenvironment.cursor_JZPZZB.alias) appe blank replace pzh with thisform.text1.value thisform.grid1.refresh thisform.buttonstatus3,2019/7/9,管理信息系统:李国红主讲,56,用VFP实现记账凭证处理 “确定”按钮的Click过程(1/3),sele (thisform.dataenvironment.cursor_JZPZZB.alias) set filter to allt(pzh)=allt(thisform.text1.value) locate for len(allt(km)=0 if .not. found() locate for len(allt(jd)=0 if .not. found() locate for je=0.00 if .not. found() sum je to je_jie for allt(jd)=借 sum je to je_dai for allt(jd)=贷 if je_jie=je_dai,2019/7/9,管理信息系统:李国红主讲,57,用VFP实现记账凭证处理 “确定”按钮的Click过程(2/3),if len(allt(thisform.text5.value)0 sele (thisform.dataenvironment.cursor_JZPZFB.alias) =tableupdate(.t.) sele (thisform.dataenvironment.cursor_JZPZZB.alias) =tableupdate(.t.) thisform.refresh thisform.buttonstatus1 thisform.text6.setfocus thisform.text6.readonly=.f. else =messagebox(“请输入制单人! “,48) thisform.text5.setfocus thisform.buttonstatus3 thisform.text6.readonly=.t. endif,2019/7/9,管理信息系统:李国红主讲,58,用VFP实现记账凭证处理 “确定”按钮的Click过程(3/3),else =messagebox(“借贷不平衡!“,48) thisform.grid1.column_JE.setfocus endif else =messagebox(“金额不能为0!“,48) thisform.grid1.column_JE.setfocus endif else =messagebox(“指定借或贷!“,48) thisform.grid1.column_JD.setfocus endif else =messagebox(“请指定科目!“,48) thisform.grid1.column_KM.setfocus endif,2019/7/9,管理信息系统:李国红主讲,59,用VFP实现记账凭证处理 “取消”按钮的Click过程,sele (thisform.dataenvironment.cursor_JZPZFB.alias) =tablerevert(.t.) sele (thisform.dataenvironment.cursor_JZPZZB.alias) =tablerevert(.t.) thisform.refresh thisform.buttonstatus1 thisform.text6.readonly=.f. thisform.text6.setfocus,2019/7/9,管理信息系统:李国红主讲,60,用VFP实现记账凭证处理 “关闭”按钮的Click过程,a=messagebox(“真的想退出吗?“,4+48,“提示“) if a=6 thisform.release endif,if messagebox(“真的想退出吗?“,4+48,“提示“)=6 thisform.release endif,返回记账凭证及相关处理,2019/7/9,管理信息系统:李国红主讲,61,其他辅助功能,防止手工修改Text1、Text2、Column_PZH、Text4中的值 ReadOnly设置为:.T.-真 防止对已审核凭证进行更改 Text3、Text5、Grid1的When过程 允许正常输入与修改操作:Text6.GotFocus 防止修改状态下执行新增凭证和关闭操作 Text3、Text5、textZY、ComboKM、ComboJD、ComboJE的InteractiveChange事件 使输入凭证号更方便 Text6.Click:this.value=space(0),2019/7/9,管理信息系统:李国红主讲,62,本节小结,2019/7/9,管理信息系统:李国红主讲,63,本节结束!,2019/7/9,管理信息系统:李国红主讲,64,6.4 登记现金日记账,不要求,2019/7/9,管理信息系统:李国红主讲,65,6.5 登记总账处理,总账即总分类账,是按照一级科目设立账户,以货币为计量单位,连续核算整个企业各种资金占用、资金来源、资金增减变动及其结余的总括情况的一种分类账。 登记总账的依据是:会计科目表(kjkm.dbf)、记账凭证附表(jzpzfb.dbf)、记账凭证主表(jzpzzb.dbf)。 会计科目:KJKM(kmbh,kmmc,jdfx,qcye) 记账凭证附表:JZPZFB(pzh, rq,fjzs,sh,zd) 记账凭证主表:JZPZZB(pzh,zy,km,jd,je) 总账:ZZ(rq,zzh,kmbh,kmmc,jffs,dffs,jdfx,ye) 功能演示 基本过程及程序流程 相关命令与函数及程序,2019/7/9,管理信息系统:李国红主讲,66,登记总账基本过程,1区zz,2区jzpz,3区kjkm,转登记总账处理,4区 jzpzfb,2019/7/9,管理信息系统:李国红主讲,67,登记总账流程图,转登记总账处理,2019/7/9,管理信息系统:李国红主讲,68,相关命令与函数,set filter to set filt to len(allt(sh)!=0 and right(allt(sh),3)!=_#$ set filt to len(allt(kmbh)=4 set filt to allt(kmbh)=kmbh1 set filt to rq=rq1 .and. zzh=zzh1 sum to for sum je to jffs1 for left(km,4)=kmbh1 .and. jd=借 sum je to dffs1 for left(km,4)=kmbh1 .and. jd=贷 do whileloop(exit)enddo go top、go bottom、skip eof()、found() qcs1=iif(eof(),qcye1,ye),转登记总账处理,2019/7/9,管理信息系统:李国红主讲,69,登记总账程序djzz.prg,set talk off set exact on open database zwcl sele 1 use zz sele 2 use jzpz set filt to len(allt(sh)!=0 and right(allt(sh),3)!=_#$ go top pzh1=pzh go bottom pzh2=pzh zzh1=“汇“+allt(pzh1)+“-“+allt(pzh2),2019/7/9,管理信息系统:李国红主讲,70,登记总账程序djzz.prg,rq1=rq go top sele 3 use kjkm set filt to len(allt(kmbh)=4 go top do while .not. eof() kmbh1=allt(kmbh) kmmc1=kmmc jdfx1=jdfx qcye1=qcye sele jzpz loca for left(km,4)=allt(kmbh1),2019/7/9,管理信息系统:李国红主讲,71,登记总账程序djzz.prg,if .not. found() sele kjkm skip loop endif sum je to jffs1 for left(km,4)=kmbh1 .and. jd=借 sum je to dffs1 for left(km,4)=kmbh1 .and. jd=贷 sele zz set filt to allt(kmbh)=kmbh1 go bottom qcs1=iif(eof(),qcye1,ye) ye1=iif(jdfx1=1,qcs1+jffs1-dffs1,qcs1-jffs1+dffs1),2019/7/9,管理信息系统:李国红主讲,72,登记总账程序djzz.prg,appe blan repl rq with rq1,zzh with zzh1 repl kmbh with kmbh1,kmmc with kmmc1 repl jffs with jffs1,dffs with dffs1 repl jdfx with jdfx1,ye with ye1 sele kjkm skip enddo,2019/7/9,管理信息系统:李国红主讲,73,sele 4 use jzpzfb repl sh with allt(sh)+_#$ for len(allt(sh)!=0 .and. right(allt(sh),3)!=_#$ =messagebox(“生成总账结束!“,48,“提示“) sele zz set filt to rq=rq1 .and. zzh=zzh1 brow noedit close database set exact off set talk on retu,2019/7/9,管理信息系统:李国红主讲,74,2019/7/9,管理信息系统:李国红主讲,75,6.6 损益表数据自动生成及输出,损益表(syb.dbf)中的数据由总账表(zz.dbf)中取得。 总账:ZZ(rq,zzh,kmbh,kmmc,jffs,dffs,jdfx,ye) 损益表:SYB(xm,hc,bys,ljs,kmbh,bz) 损益表数据生成原理:确定会计期间,预置syb.dbf表中的有关内容,kmbh长度取1、4、8分别处理,由程序依据总账表的数据自动生成损益表文件中的本月数和本年累计数。 通过VFP6.0的报表生成器完成损益表的输出,也可通过建立查询在屏幕上输出有关内容。,2019/7/9,管理信息系统:李国红主讲,76,总账表部分数据,损益表部分数据,2019/7/9,管理信息系统:李国红主讲,77,生成损益表表单,use zz go bott thisform.text1.value=allt(str(year(rq) thisform.text2.value=allt(str(month(rq) use,表单的Init过程代码:,2019/7/9,管理信息系统:李国红主讲,78,损益表数据自动生成及输出N-S图,2019/7/9,管理信息系统:李国红主讲,79,生成损益表代码,set talk off set exact on set safety off sele 1 use zz set filter to year(rq)=val(thisform.text1.value) and month(rq)=val(thisform.text2.value) go top sele 2 use syb repl all bys with 0,ljs with 0 go top &以便从损益表的首记录开始,以下求本月数,2019/7/9,管理信息系统:李国红主讲,80,do while .not. eof() kmbh1=allt(kmbh) &kmbh1为syb表当前记录的kmbh(去掉前后空格) length=len(kmbh1) &length为syb表当前记录的kmbh去掉前后空格后的长度 do case case length=8 declare sz(2) &数组sz表示本月数 sele 1 &总账表工作区 i=1 do while ibz=“d“,dffs-jffs,jffs-dffs) else sz(i)=0 endif i=i+1 enddo sele 2 &损益表工作区 repl bys with sz(1)+sz(2),2019/7/9,管理信息系统:李国红主讲,81,case length=4 sele 1 &总账表工作区 loca for allt(kmbh)=kmbh1 if found() bys1=iif(b-bz=d,dffs-jffs,jffs-dffs) else bys1=0 endif sele 2 &损益表工作区 repl bys with bys1 case length=1 r=recn() sum bys to bys1 for bz=d sum bys to bys2 for bz=j go r repl bys with bys1-bys2 endc skip endd,2019/7/9,管理信息系统:李国红主讲,82,go top month(rq)=val(thisform.text2.value) .and. allt(kmbh)=subs(kmbh1,4*i-3,4) go bottom sz1(i)=iif(eof(),0,ye) i=i+1 enddo sele 2 &损益表工作区 repl ljs with sz1(1)+sz1(2),2019/7/9,管理信息系统:李国红主讲,83,case length=4 sele 1 month(rq)=val(thisform.text2.value) .and. allt(kmbh)=kmbh1 go bottom ljs1=iif(eof(),0,ye) sele 2 &损益表工作区 repl ljs with ljs1 case length=1 r=recn() sum ljs to ljs1 for bz=d sum ljs to ljs2 for bz=j go r repl ljs with ljs1-ljs2 endc skip endd,2019/7/9,管理信息系统:李国红主讲,84,copy to “syb“+allt(thisform.text1.value)+“-“+allt(thisform.text2.value)+“.dbf“; fields xm,hc,bys,ljs “syb“+allt(thisform.text1.value)+“-“+allt(thisform.text2.value)+“.dbf“ close databases set safety on set exact off set talk on,2019/7/9,管理信息系统:李国红主讲,85,2019/7/9,管理信息系统:李国红主讲,86,6.7 账务处理与报表系统的菜单设计,1、功能模块,2019/7/9,管理信息系统:李国红主讲,87,2、菜单规划与设计,2019/7/9,管理信息系统:李国红主讲,88,2、菜单规划与设计,2019/7/9,管理信息系统:李国红主讲,89,菜单设计,2、菜单规划与设计,2019/7/9,管理信息系统:李国红主讲,90,2、菜单规划与设计,2019/7/9,管理信息系统:李国红主讲,91,3、报表设计 创建与修改报表:modi report 报表文件名 预览报表:report form 报表主名.frx for 条件 preview 打印报表:report form 报表主名.frx for 条件 to printer 4、查询设计 创建与修改查询:modi query 查询文件名 执行查询:do 查询主文件名.qpr 5、菜单的运行 执行菜单,生成:生成扩展名为.mpr的可执行菜单文件 执行菜单:Do 菜单文件主名.mpr,2019/7/9,管理信息系统:李国红主讲,92,6.8 MIS操作维护设计与实现,1、在zwcl数据库中建立mima.dbf表,返回:用户登录,2019/7/9,管理信息系统:李国红主讲,93,2、增加操作员 设计表单 Text2、Text3的PasswordChar:* 退出:thisform.release 确定:,2019/7/9,管理信息系统:李国红主讲,94,set exact on open database zwcl use mima if len(allt(thisform.text1.value)0 &输入的操作员密码不全为空格 locate for allt(czy)=allt(thisform.text1.value) if found() messagebox(“已有此操作员,请重新输入!“,0+48) thisform.text1.value=space(0) thisform.text2.value=space(0) thisform.text3.value=space(0) thisform.text1.setfocus else &密码表中无与Text1中匹配的内容 if allt(thisform.text2.value)=allt(thisform.text3.value) if len(allt(thisform.text2.value)0 appe blank repl czy with allt(thisform.text1.value) repl mm with allt(thisform.text2.value) thisform.text1.value=space(0) thisform.text2.value=space(0) thisform.text3.value=space(0) thisform.text1.setfocus else &Text2中未输入字符或输入的是空格字符串 messagebox(“请输入密码,注意不能全为空格!“,0+48) thisform.text2.setfocus endif,2019/7/9,管理信息系统:李国红主讲,95,else &Text2与Text3中的内容不相同 messagebox(“密码不一致,请重新输入!“,0+48) thisform.text2.value=space(0) thisform.text3.value=space(0) thisform.text2.setfocus endif endif else &Text1中未输入字符或输入的是空格字符串 messagebox(“请输入操作员代码,注意不能全为空格!“,0+48) thisform.text2.value=space(0) thisform.text3.value=space(0) thisform.text1.setfocus endif close database set exact off,2019/7/9,管理信息系统:李国红主讲,96,3、删除操作员 设计表单 Combo1: RowSourceType: 6-字段; RowSource: mima.czy; Style: 2-下拉列表框; ControlSource: mima.czy Text1: PasswordChar: *,2019/7/9,管理信息系统:李国红主讲,97,Form1.Load: open database zwcl Form1.Init: thisform.text1.setfocus Form1.Unload: close database Combo1.Click: thisform.text1.setfocus 退出.Click: thisform.release 确定.Clik:,2019/7/9,管理信息系统:李国红主讲,98,set exact on use mima loca for allt(czy)=allt(bo1.value) and allt(mm)=allt(thisform.text1.value) if found() dele &为找到的那条记录加上逻辑删除标记 pack &物理删除带逻辑删除标记的记录 thisform.text1.value=space(0) thisform.refresh messagebox(“删除成功!“,0+48) else messagebox(“密码不对,不能删除!“,0+48) thisform.text1.value=space(0) endif thisform.text1.setfocus set exact off,2019/7/9,管理信息系统:李国红主讲,99,4、修改密码 设计表单,建数据环境 Combo1: RowSourceType: 6-字段; RowSource: mima.czy; Style: 2-下拉列表框; ControlSource: mima.czy Text1、Text2、Text3: PasswordChar: *,2019/7/9,管理信息系统:李国红主讲,100,Form1.Load: open database zwcl Form1.Init: thisform.text1.setfocus Form1.Unload: close database Combo1.Click: thisform.text1.setfocus 退出.Click: thisform.release 确定.Clik:,2019/7/9,管理信息系统:李国红主讲,101,set exact on use mima locate for allt(czy)=allt(bo1.value) if allt(thisform.text1.value)=allt(mm) if thisform.text2.value=thisform.text3.value if len(allt(thisform.text2.value)0 replace mm with allt(thisform.text2.value) messagebox(“密码修改成功,请牢记新密码!“,0+48) thisform.text1.value=space(0) th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论