版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
服装公司业财一体化系统设计目录摘要 ④避免额外错误在服装业财一体化系统中,会频繁出现涉及各种基础数据的手动录入,主要包括商品信息表等基础信息表和采购单等单据的录入,主要涉及的展示控件包括掩码编辑框和单行编辑框,另外,在Grid/Freefrom风格的数据窗口中也可以对数据进行输入。对不不符合业务逻辑的数据,例如在进行科目编码设置时,默认科目编码为四位阿拉伯数字,如果输入不符合业务逻辑的数据,系统会马上提示,并清空数据栏,提醒用户输入正确的数据。4.5.1码表初始化在登录窗口,点击【初始化进销存数据】【初始化码表】【初始化账套数据】命令按钮,可以对账套信息、操作员信息、码表信息进行初始化。图4-5-1-1码表初始化4.5.2销售单、采购单输入在【进销存管理】模块,点击【销售单管理】【采购单管理】,进入新增销售单/采购单窗口,系统会自动生成单据号、制单日期,并且不可以更改,可以手动输入更改销售或采购商品的其他相关信息。图4-5-2-1销售单/采购单录入4.5.3基础数据输入设计在【账务管理系统】模块,进入菜单页面,分别有【码表维护】、【会计科目管理】,用户可以对其中的科目性质、科目类别、币别、行业、会计科目五个板块的基础数值进行设置。图4-5-3-1科目类别维护界面图4-5-3-2币别设置界面图4-5-3-3行业设置界面图4-5-3-4会计科目设置界面4.5.4凭证录入在【账务系统】中的【日常管理】【凭证录入】可以进行凭证录入,系统会自动填充账套号和凭证号等信息,其中账套号、和制单日期和凭证号不可以修改,用户可以通过这个界面进行日常凭证的录入,凭证可以自动计算总金额。图4-5-4-1凭证录入界面4.6输出设计服装公司业财一体化系统的输出设计主要涉及到数量月报表、财务报表、相关账表的展示。同时本系统利用特定组件,通过调试调用实现了数据窗口表格导出,导出格式为excel,真正实现了导出表格所见即所得。4.6.1财务报表图4-6-1-1资产负债表展示界面图4-6-1-2导出资产负债表excel格式展示图图4-6-1-2利润表展示界面图4-6-1-2数量月报表展示界面4.7系统出错处理设计当操作员在使用系统的过程当中出现操作不当,或者输入了不符合常识和业务逻辑的信息时,系统会通过messagebox来提示用户出现的错误,指导用户修改数据和操作,方便用户正确使用系统。图4-7-1会计科目增加报错展示界面4.8数据安全在初始数据库设计时,已经考虑到种种可能出现的错误和意外,采取了一定的预设错误提醒处理。同时,本系统在设计的时候,对于一些数据进行了控制,只允许从下拉框选择,而不允许用户输入填充,增加了数据录入的正确率;以及对于关键字数据以及具有审查意义的数据,如制单时间等,对用户设置不可修改;以及为保证系统的正常运行,一些数据在系统启用且产生业务数据以后不能进行修改,例如账套的会计期间等。本系统特别设置了数据稽核审计模块,目的就在于对业财一体化系统中的非正常数据进行稽核审计,便于发现错误修改错误,非正常数据包括主键为空,主键重复,制单人不存在于操作员表中、本月期初数量不等于上月期初数量等等。但在计算机系统中硬件的故障、软件的错误或者数据库遭受恶意破坏都会影响数据的正确性,所以系统需要不断地完善。5系统实现5.1系统管理模块5.1.1系统登录系统登录窗口w_main,如表5-1-1所示。表5-1-1窗口w_main的设计说明项目说明窗口名w_main所在的PBL库ais.pbl功能系统登录父窗口window界面设计窗口控件说明控件类型控件名控件名称说明命令按钮cb_jxc_sc删除进销存数据删除进销存数据命令按钮cb_jxc_csh初始化进销存数据初始化进销存数据下拉编辑框ddlb_zth账套号账套号命令按钮cb_jxc进销存系统进销存系统命令按钮cb_zw账务系统账务系统图片按钮pb_1退出退出命令按钮cb_zwxt_sc删除账套数据删除账套数据命令按钮cb_csmb初始化码表数据初始化码表数据命令按钮cb_zwxt_csh初始化账套数据初始化账套数据事件脚本w_ais:openintegerr_countbooleanr_flagstringr_zw_zthem_rq.text=string(today(),'yyyy-mm-dd')ddlb_zth.reset()ddlb_zth.additem('1')forr_count=72to72 r_zw_zth=string(r_count) r_zw_zth=fill('0',2-len(r_zw_zth))+r_zw_zth ddlb_zth.additem(r_zw_zth)nextcb_jxc_sc:Clicked!integerr_yesnor_yesno=messagebox('提示','是否真要需要删除进销存数据?',exclamation!,yesno!,2)ifr_yesno=2thenreturndeletefromc_operator;deletefromixc_goods;deletefromjxc_goods_price;deletefromjxc_sheet_cg;deletefromjxc_sheet_xs;deletefromjxc_sheet;deletefromsheet_jxc_xs_cbb;deletefromxjxcf;deletefromydjqf;deletefromjxc_goods_amount;deletefromjxc_oods_amount_mone;deletefromjxc_report;deletefromjxc_report_mone;messagebox('提示','进销存数据删除成功!')cb_jxc_csh:Clicked!integerr_yesnog_zw_zth=ddlb_zth.textifisnull(g_zw_zth)ortrim(g_zw_zth)=''then messagebox('提示!','请选择账套!') returnendifr_yesno=messagebox('提示','你真的要要初始化账套【'+g_zw_zth+'】的进销存数据吗?',exclamation!,yesno!,2)ifr_yesno=2thenreturnchoosecaseg_zw_zthcase'1'gf_starttial_jxc_1()case'72' gf_starttial_jxc_11706010420_谭明兰() Messagebox('提示','请选择账套号!')endchoosemessagebox('提示','初始化账套【'+g_zw_zth+'】的进销存案例数据成功!') cb_zwxt_sc:Clicked!integerr_yesnor_yesno=messagebox('提示','是否真要需要删除所有账套数据?',exclamation!,yesno!,2)ifr_yesno=2thenreturn deletefromc_tmlzw_kmlb; deletefromc_tmlzw_kmxz; deletefromc_tmlzw_bb; deletefromc_tmlzw_hy; deletefromzw_tmlztxxb; deletefromzw_tmlkjkmbmb; deletefromzw_tmlczy; deletefromzw_tmlpzzb; deletefromzw_tmlpzmxb; eldetefromzw_tmlkmyeb; deletefromzw_tmlmxzb; deletefromzcfzb; eletefromlrb;Messagebox('提示','所有账套数据删除成功!')cb_csmb:Clicked!integerr_yesnor_yesno=messagebox('提示!','您确定要需要初始化码表数据吗?',exclamation!,yesno!,2)ifr_yesno=2thenreturngf_starttial_zw_mb()//初始化码表数据messagebox('提示','初始化码表数据成功!')pb_1:Clicked!close(parent)cb_jxc:Clicked!open(w_jxc_log)g_zw_zth=ddlb_zth.textg_jxc_date=date(em_rq.text)cb_zw:Clicked!open(w_zw_xtdl)5.1.2账套信息账套信息管理窗口w_ztxx,如表5-1-2所示。表5-1-2窗口w_ztxxb的设计说明项目说明窗口名w_ztxxb所在的PBL库zw_window.pbl功能对账套信息表进行查询、新增、修改等操作父窗口window界面设计窗口控件说明控件类型控件名控件名称说明图片按钮cb_bc保存保存图片按钮pb_cx查询查询图片按钮b_qk清空清空图片按钮pb_tc退出退出图片按钮pb_xg修改修改图片按钮cb_zj增加增加数据窗口dw_table展示符合查询条件的账套信息事件脚本w_ztxxb:open!dw_table1.settransobSEct(sqlca)cb_bc:clicked!integerr_yesnodw_table1.accepttext()r_yesno=messagebox('提示','确定保存?',exclamation!,yesno!,2)ifr_yesno=2thenreturndw_table1.update()messagebox('提示','保存成功!')r_yesno=messagebox('提示','是否需要初始操作员信息表(插入操作员编码为【0】、密码为【000】的【系统管理员】)?',exclamation!,yesno!,2)ifr_yesno=2thenreturndeletefromzw_tmlczy;insertintozw_tmlczy(zth,czy_bm,czy_name,mm)values(:g_zw_zth,'0','系统管理员','000');messagebox('提示','操作员信息表初始完毕!')pb_cx:clicked!stringr_zw_zth,r_ztmc,r_bb_code,r_qjs,r_qsrq,r_qyrq,r_nkqjq,r_zw_databooleanr_flag=truestringr_zw_zth,r_zw_ztmc,r_zw_qsrq,r_zw_jsrq,r_zw_zt,r_zw_nkqjqlb_zw_data1.reset()r_zw_zth=sle_zw_zth.textr_zw_ztmc=sle_zw_ztmc.textr_zw_qsrq=sle_zw_qsrq.textr_zw_jsrq=sle_zw_jsrq.textr_zw_nkqjq=sle_zw_nkqjq.textr_zw_zt=sle_zw_zt.text//整合查询条件,当用户条件没有填写时,不对该项进行筛选ifr_zw_zth=''then r_zw_zth='%'endififr_zw_ztmc=''then r_zw_ztmc='%'endififr_zw_qsrq=''then r_zw_qsrq='%'endififr_zw_jsrq=''then r_zw_jsrq='%'endififr_zw_nkqjq=''then r_zw_nkqjq='%'endififr_zw_zt=''then r_zw_zt='%'endifdeclarec_curcursorforselectzth,ztmc,hy_code,bb_code,qjs,qsrq,jsrq,qyrq,nkqjq,ztfromztxxbwherezthlike:r_zw_zthandztmclike:r_zw_ztmcandqsrqlike:r_zw_qsrqandjsrqlike:r_zw_jsrqandztlike:r_zw_ztandnkqjqlike:r_zw_nkqjq;openc_cur; dowhiler_flag=true fetchc_curinto:r_zw_zth,:r_ztmc,:r_hy_code,:r_bb_code,:r_qjs,:r_qsrq,:r_jsrq,:r_qyrq,:r_nkqjq,:r_zt;ifsqlca.sqlcode=100thenr_flag=falseendififsqlca.sqlcode=-1thenmessagebox('提示','读取数据失败!',exclamation!)returnendififsqlca.sqlcode=0then r_zw_data='账套号:'+r_zw_zth+'|'+'账套名称:'+r_ztmc&+'|'+'行业:'+r_hy_code+'|'+'本位币:'+r_bb_code&+'|'+'期间数:'+r_qjs+'|'+'起始日期:'+r_qsrq&+'|'+'结束日期:'+r_jsrq+'|'+'启用日期:'+r_qyrq&+'|'+'年会计期间:'+r_nkqjq+'|'+'状态:'+r_ztlb_zw_data.additem(r_zw_data)endifloopclosec_cur;ifr_zw_data=''then messagebox('提示','没有符合查询条件的信息!',exclamation!)endifsle_zw_ztm.enabled=falsesle_zw_qjs.enabled=falsesle_zw_qsrq.enabled=falsesle_zw_jsrq.enabled=falsesle_zw_nkqjq.enabled=falsesle_zw_qyrq.enabled=falseddlb_hy_code.enabled=falseddlb_bb_code.enabled=false pb_zw:clicked!dw_table.retrieve()cb_zj:clicked!integerr_rowr_row=dw_table1.insertrow(0)dw_table1.setitem(r_row,'zth',g_zw_zth) dw_table1.setitem(r_row,'hy_zw_code','02') dw_tabl1e.setitem(r_row,'bb_zw_code','01') dw_table1.setitem(r_row,'qjs',12) dw_table1.setitem(r_row,'qsrq',left(g_rq,4)+'-01'+'-01')dw_table1.setitem(r_row,'jsrq',left(g_rq,4)+'-12'+'-31')dw_table1.setitem(r_row,'qyrq',left(g_rq,4)+'-01'+'-01')dw_table1.setitem(r_row,'nkqjq',left(g_rq,4)) dw_table1.setitem(r_row,'zt','初始') cb_sc:clicked!integerr_yesnor_yesno=messagebox('提示','确定删除?',exclamation!,yesno!,2)ifr_yesno=2thenreturndw_table1.deleterow(0)cb_bc:Clicked!integerr_yesnodw_table1.accepttext()r_yesno=messagebox('提示','确定保存?',exclamation!,yesno!,2)ifr_yesno=2thenreturndw_table1.update()messagebox('提示','成功保存!')r_yesno=messagebox('提示','确定要初始花操作员信息表(插入操作员编码为【0】、密码为【000】的【系统管理员】)?',exclamation!,yesno!,2)ifr_yesno=2thenreturndeletefromzw_czy;insertintozw_czy(zth,czy_bm,czy_name,mm)values(:g_zw_zth,'0','系统管理员','000');messagebox('提示','操作员信息表初始完毕!')5.1.3基础设置会计科目编码信息管理窗口w_zw_mb,如表5-1-3所示。表5-1-3窗口w_zw_mb的设计说明项目说明窗口名w_zw_mb所在的PBL库zw_window.pbl功能会计科目编码信息管理父窗口window界面设计窗口控件说明控件类型控件名控件名称说明命令按钮cb_zw1查询查询命令按钮cb_zj1增加增加命令按钮cb_bc1退出退出命令按钮cb_sc1退出退出命令按钮cb_fw1下一步下一步命令按钮cb_bc1退出退出事件脚本cb_zw1:clicked!dw_mb1.retrieve()sle_count.text='第'+string(dw_mb1.getrow())+'条共'+string(dw_mb1.rowcount())+'条'cb_cb_zj1:clicked!integerr_rowdw_mb1.insertrow(0)r_row=dw_mb1.rowcount()dw_mb1.scrolltorow(r_row)dw_mb1.selectrow(0,false)dw_mb1.selectrow(r_row,true) sle_count.text='第'+string(dw_mb.getrow())+'条共'+string(dw_mb.rowcount())+'条'cb_tc:clicked!close(parent)cb_sc1:clicked!integerr_yesno,r_rowr_row=dw_mb1.getrow()ifnotdw_mb1.isselected(r_row)thenreturnr_yesno=messagebox('提示','是否真要删除第【'+string(r_row)+'】行?',exclamation!,yesno!,2)ifr_yesno=2thenreturndw_mb1.deleterow(r_row)sle_count.text='第'+string(dw_mb.getrow())+'条共'+string(dw_mb.rowcount())+'条' cb_fw1:clicked!dw_mb1.reset()sle_count.text=''cb_bc1:clicked!integerr_rtn,r_yesnodw_mb1.accepttext()r_yesno=messagebox('提示','是否真的保存?',exclamation!,yesno!,2)ifr_yesno=2thenreturnr_rtn=dw_mb1.update()ifr_rtn=1then messagebox('提示','保存成功!') dw_mb1.reset() sle_count.text=''else messagebox('提示','保存失败!')endif5.1.4操作员设置对操作员进行设置的窗口w_zw_czy,如表5-1-4所示。表5-1-4窗口w_zw_czy的设计说明项目说明窗口名w_zw_czy所在的PBL库zw_window.pbl功能用户在此进行系统的操作员信息管理父窗口window界面设计窗口控件说明控件类型控件名控件名称说明命令按钮cb_cx1查询完成科目余额初始化命令按钮cb_zj1科目余额初始化修改修改初始化化余额命令按钮cb_bc1退出退出当前页面命令按钮cb_sc1退出退出当前页面命令按钮cb_fw1下一步进入下一步命令按钮cb_bc1退出退出当前页面事件脚本cb_cx1:clicked!dw_zw_free.retrieve()sle_count.text='第'+string(dw_zw_free.getrow())+'条共'+string(dw_zw_free.rowcount())+'条'cb_cb_zj1:clicked!integerr_rowr_row=dw_zw_free.insertrow(0)dw_zw_free.scrolltorow(r_row)dw_zw_free.setitem(r_row,'zth',g_zw_zth)//在sle_count.text中显示行数sle_count.text='第'+string(dw_zw_free.getrow())+'条共'+string(dw_zw_free.rowcount())+'条'cb_tc:clicked!close(parent)cb_sc1:clicked!integerr_row,r_yesnodw_zw_frid.accepttext()r_row=dw_zw_frid.getrow() ifr_row=0thenreturnr_yesno=messagebox('提示','确定删除当前行?',question!,yesno!,2) ifr_yesno=2thenreturndw_zw_frid.deleterow(0)sle_count.text='第'+string(dw_zw_free.getrow())+'条共'+string(dw_zw_free.rowcount())+'条' cb_fw1:clicked!dw_zw_free.reset()sle_count.text=''cb_bc1:clicked!integerr_rtn,r_yesnor_yesno=messagebox('提示','确定保存?',exclamation!,yesno!,2)ifr_yesno=2thenreturndw_zw_free.accepttext()//更新 r_rtn=dw_zw_free.update()ifr_rtn=1then messagebox('提示','保存成功!') cb_fw.TriggerEvent(Clicked!)else messagebox('提示','保存失败!')endif5.2进销存管理模块5.2.1商品信息管理对商品信息进行操作的窗口设计,如表5-1-1所示。表5-2-1窗口w_jxc_table_goods的设计说明项目说明窗口名w_jxc_table_goods所在的PBL库invest_fixed.pbl功能对商品信息表进行操作父窗口window界面设计窗口控件说明控件类型控件名控件名称说明命令按钮cb_filter查询查询商品信息命令按钮cb_cancelfilter删除删除商品信息命令按钮cb_saveas保存保存商品信息命令按钮cb_importfile增加新增操作员信息命令按钮cb_start清空清空界面信息数据窗口dw_zw_data_zw_free以free风格展示商品信息数据窗口dw_zw_data以grid风格展示商品信息事件脚本cb_filter:clicked!//覆盖父脚本stringr_type,r_newsql,r_wheredecimalr_pricemin,r_pricemaxr_type=ddlb_type.text+'%'r_pricemin=dec(em_pricemin.text)r_pricemax=dec(em_pricemax.text)r_where="WHEREtypelike'"+r_type+"'andprice>="+string(r_pricemin)+"andprice<="+string(r_pricemax)r_newsql=i_old_sql+r_wheredw_zw_data.SetSQLSelect(r_newsql)dw_zw_data.retrieve()sle_count.text=string(dw_zw_data.rowcount())cb_cancelfilter:Clicked!integerr_yesnor_yesno=messagebox('提示','是否真的要删除?',question!,yesno!,2)ifr_yesno=2thenreturndw_zw_data.deleterow(0)sle_count.text=string(dw_zw_data.rowcount())cb_tc:clicked!close(parent)cb_saveas:Clicked!//longr_ModifiedCoun,r_DeletedCount//r_ModifiedCoun=dw_zw_data.ModifiedCount()//r_DeletedCount=dw_zw_data.DeletedCount()//messagebox('r_ModifiedCoun',r_ModifiedCoun)//messagebox('r_DeletedCount',r_DeletedCount)integerr_yesnor_yesno=messagebox('提示','是否真的要保存?',question!,yesno!,2)ifr_yesno=2thenreturndw_zw_data.AcceptText()ifdw_zw_data.ModifiedCount()>0ordw_zw_data.DeletedCount()>0then dw_zw_data.update()endifcb_importfile:Clicked!integerr_row,r_lenstringr_shpzeetiddw_zw_data.reset()dw_zw_data.ObSEct.DataWindow.readonly='no'dw_zw_data_zw_free.ObSEct.DataWindow.readonly='no'r_row=dw_zw_data.insertrow(0)dw_zw_data:Clicked!ifrow=0thenreturnthis.selectrow(0,false)this.selectrow(row,true)dw_zw_data_zw_free.scrolltorow(row)sle_count.text=string(row)+'/'+string(dw_zw_data.rowcount())5.2.2进销存单据管理对进销存单据管理窗口w_jxc_sheet设计,如表5-2-2所示。表5-2-2窗口w_jxc_sheet的设计说明项目说明窗口名w_jxc_sheet所在的PBL库jxc_dw.pbl功能对进销存单据进行管理父窗口w_main界面设计窗口控件说明控件类型控件名控件名称说明图片按钮cb_retrieve1查询查询进销存单据信息图片按钮cb_deleterow1删除删除进销存单据信息图片按钮cb_update1保存保存进销存单据信息图片按钮pb_tc修改修改选中的进销存单据图片按钮cb_insertrow1增加新增进销存单据数据窗口dw_zw_data_zw_free以free风格展示进销存单据数据窗口dw_zw_data以grid风格展示进销存单据事件脚本cb_retrieve1:clicked!stringr_goodname,r_zdrdater_date_min,r_date_max,r_todayr_goodname=dw_spmc.getitemstring(1,1)selectcodeinto:r_goodnamefromgoodswherename=:r_goodname;r_date_min=date(em_date_min.text)r_date_max=date(em_date_max.text)r_today=date(g_zw_nkqjq+'-12'+'-31')messagebox('','today:'+string(r_today))ifr_date_max>r_todaythen messagebox('','超出实际时间') r_date_max=r_todayendifmessagebox('','r_date_max:'+string(r_date_max))ifisnull(r_goodname)=trueorr_goodname=''then r_goodname='%'endifr_zdr=sle_zdr.textselectczy_codeinto:r_zdrfromczywhereczy_name=:r_zdr;ifisnull(r_zdr)=trueorr_zdr=''then r_zdr='%'endif//messagebox('','date_min:'+string(r_date_min)+'//date_max:'+string(r_date_max)+'//code:'+r_goodname+'//zdr:'+r_zdr)ifi_type='sheet_xs_gl'ori_type='sheet_xs_xz'thendw_zw_data.retrieve('%',r_date_min,r_date_max,r_goodname,r_zdr)elsedw_zw_data.retrieve(r_date_min,r_date_max,r_goodname,r_zdr) endifcb_deleterow1:Clicked!integerr_yesnor_yesno=messagebox('提示','是否真的要删除?',question!,yesno!,2)ifr_yesno=2thenreturndw_zw_data.deleterow(0)sle_count.text=string(dw_zw_data.rowcount())pb_tc:clicked!close(parent)cb_update1:Clicked!//longr_ModifiedCoun,r_DeletedCount//r_ModifiedCoun=dw_zw_data.ModifiedCount()//r_DeletedCount=dw_zw_data.DeletedCount()//messagebox('r_ModifiedCoun',r_ModifiedCoun)//messagebox('r_DeletedCount',r_DeletedCount)decimalr_cgmone,r_taxstringr_codeintegerr_yesnobooleanr_flagr_flag=truer_yesno=messagebox('提示','是否真的要保存?',question!,yesno!,2)ifr_yesno=2thenreturndw_zw_data_zw_free.ObSEct.DataWindow.readonly='yes' dw_zw_data.ObSEct.DataWindow.readonly='yes' pb_zj.visible=true //st_zj.visible=false pb_sc.visible=true //st_sc.visible=false pb_qk.visible=true //st_qk.visible=falsedw_zw_data.AcceptText()ifdw_zw_data.ModifiedCount()>0ordw_zw_data.DeletedCount()>0then dw_zw_data.update() messagebox('提示!','保存成功!') dw_zw_data.reset()endififi_type='xs_yc'thenselectsum(mone)into:i_xssyfromsheet_xswheresheetdate=:i_date;declarec_curcursorforselectcodefromsheet_xswheresheetdate=:i_date;openc_cur;dowhiler_flag=true fetchc_curinto:r_code;ifsqlca.sqlcode=100thenr_flag=falseendififsqlca.sqlcode=-1thenmessagebox('','出错信息'+sqlca.SQLErrText)returnendififsqlca.sqlcode=0thenselectsum(mone)into:r_cgmonefromsheet_cgwherecode=:r_code; i_xscb=i_xscb+r_cgmoneendifloopclosec_cur;selectnumbinto:r_taxfrombasewherexx_code='001';i_xscb=i_xscb/(1+r_tax)i_xssy=i_xssy/(1+r_tax)endifcb_insertrow1:Clicked!integerr_row,r_lenstringr_shpzeetidchoosecasei_type case'sheet_cg_xz'dw_zw_data.reset()r_row=dw_zw_data.insertrow(0)//自动生成单据号r_shpzeetid=wf_sheetid(i_type)dw_zw_data.setitem(r_row,'sheetid',r_shpzeetid)dw_zw_data.setitem(r_row,'sheetdate',date(g_rq))dw_zw_data.setitem(r_row,'amount',1)dw_zw_data.setitem(r_row,'oper_code',g_id)sle_count.text=string(dw_zw_data.rowcount())case'sheet_xs_xz'dw_zw_data.reset()r_row=dw_zw_data.insertrow(0)//自动生成单据号r_shpzeetid=wf_sheetid(i_type)dw_zw_data.setitem(r_row,'sheetid',r_shpzeetid)dw_zw_data.setitem(r_row,'sheetdate',date(g_rq))dw_zw_data.setitem(r_row,'amount',1)dw_zw_data.setitem(r_row,'oper_code',g_id)sle_count.text=string(dw_zw_data.rowcount()) dw_zw_data_zw_free.ObSEct.DataWindow.readonly='no' dw_zw_data_zw_free.modify('sheetid.tabsequence=0')dw_zw_data_zw_free.modify('sheetdate.tabsequence=0')// dw_zw_data_zw_free.modify('oper_code.tabsequence=0')// dw_zw_data_zw_free.modify('code.tabsequence=0')// dw_zw_data_zw_free.modify('amount.tabsequence=0')// dw_zw_data_zw_free.modify('price.tabsequence=0')// dw_zw_data_zw_free.modify('mone.tabsequence=0')//dw_zw_data_zw_free.modify('note.tabsequence=0') dw_zw_data.ObSEct.DataWindow.readonly='no' dw_zw_data.modify('sheetid.tabsequence=0')dw_zw_data.modify('sheetdate.tabsequence=0')// dw_zw_data.modify('oper_code.tabsequence=0')// dw_zw_data.modify('code.tabsequence=0')// dw_zw_data.modify('amount.tabsequence=0')// dw_zw_data.modify('price.tabsequence=0')// dw_zw_data.modify('mone.tabsequence=0')//dw_zw_data.modify('note.tabsequence=0')case'sheet_cg_gl' messagebox('提示!','数据窗口已变为可编辑模式!') dw_zw_data_zw_free.ObSEct.DataWindow.readonly='no' dw_zw_data_zw_free.modify('sheetid.tabsequence=0')dw_zw_data_zw_free.modify('sheetdate.tabsequence=0')// dw_zw_data_zw_free.modify('oper_code.tabsequence=0')// dw_zw_data_zw_free.modify('code.tabsequence=0')// dw_zw_data_zw_free.modify('amount.tabsequence=0')// dw_zw_data_zw_free.modify('price.tabsequence=0')// dw_zw_data_zw_free.modify('mone.tabsequence=0')//dw_zw_data_zw_free.modify('note.tabsequence=0') dw_zw_data.ObSEct.DataWindow.readonly='no' dw_zw_data.modify('sheetid.tabsequence=0')dw_zw_data.modify('sheetdate.tabsequence=0')// dw_zw_data.modify('oper_code.tabsequence=0')// dw_zw_data.modify('code.tabsequence=0')// dw_zw_data.modify('amount.tabsequence=0')// dw_zw_data.modify('price.tabsequence=0')// dw_zw_data.modify('mone.tabsequence=0')//dw_zw_data.modify('note.tabsequence=0')case'sheet_xs_gl' messagebox('提示!','数据窗口已变为可编辑模式!') pb_zj.visible=false //st_zj.visible=false pb_sc.visible=false //st_sc.visible=false pb_qk.visible=false //st_qk.visible=false dw_zw_data_zw_free.ObSEct.DataWindow.readonly='no' dw_zw_data_zw_free.modify('sheetid.tabsequence=0')dw_zw_data_zw_free.modify('sheetdate.tabsequence=0')// dw_zw_data_zw_free.modify('oper_code.tabsequence=0')// dw_zw_data_zw_free.modify('code.tabsequence=0')// dw_zw_data_zw_free.modify('amount.tabsequence=0')// dw_zw_data_zw_free.modify('price.tabsequence=0')// dw_zw_data_zw_free.modify('mone.tabsequence=0')//dw_zw_data_zw_free.modify('note.tabsequence=0') dw_zw_data.ObSEct.DataWindow.readonly='no' dw_zw_data.modify('sheetid.tabsequence=0')dw_zw_data.modify('sheetdate.tabsequence=0')// dw_zw_data.modify('oper_code.tabsequence=0')// dw_zw_data.modify('code.tabsequence=0')// dw_zw_data.modify('amount.tabsequence=0')// dw_zw_data.modify('price.tabsequence=0')// dw_zw_data.modify('mone.tabsequence=0')//dw_zw_data.modify('note.tabsequence=0')endchoosedw_zw_data:Clicked!ifrow=0thenreturnthis.selectrow(0,false)this.selectrow(row,true)dw_zw_data_zw_free.scrolltorow(row)sle_count.text=string(row)+'/'+string(dw_zw_data.rowcount())dw_zw_data:itemchanged!returnwf_dw_zw_itemchanged(this)w_jxc_sheet:open!i_type=Message.StringParmchoosecasei_type case'sheet_cg' this.title='采购单管理' dw_zw_data.dataobSEct='dw_sheet_cg_zw_frid' dw_zw_data_zw_free.dataobSEct='dw_sheet_cg_zw_free' case'sheet_xs' this.title='销售单管理' dw_zw_data.dataobSEct='dw_sheet_xs_zw_frid' dw_zw_data_zw_free.dataobSEct='dw_sheet_xs_zw_free'// case'sheet_xs_cbb'// dw_zw_data.dataobSEct='dw_sheet_xs_zw_frid'endchoosedw_zw_data.settransobSEct(sqlca)dw_zw_data_zw_free.settransobSEct(sqlca)dw_zw_data.sharedata(dw_zw_data_zw_free)5.2.3进销存库存管理对进销存库存管理窗口w_jxc_goods_amount_retrieve设计,如表5-2-3所示。表5-2-3窗口w_jxc_goods_amount_retrieve的设计说明项目说明窗口名w_jxc_goods_amount_retrieve所在的PBL库Jxc_window.pbl功能对进销存库存进行管理父窗口w_main界面设计窗口控件说明控件类型控件名控件名称说明命令按钮cb_rest复位命令按钮cb_retrieve查询查询进销存库存信息数据窗口dw_zw_data以grid风格展示进销存库存信息事件脚本cb_rest:clicked!dw_zw_data.Reset()cb_retrieve:open!stringr_newsql,r_whereintegerr_minamount,r_maxamountstringr_coder_code=sle_code.text+'%'em_min_amountr_minamount=integer(em_min_amount.text)r_maxamount=integer(em_max_amount.text)r_where="WHEREcodelike'"+r_code+"'andamount>="+string(r_minamount)+"andamount<="+string(r_maxamount)r_newsql=i_old_sql+r_wheredw_zw_data.SetSQLSelect(r_newsql)dw_zw_data.retrieve()sle_count.text=string(dw_zw_data.rowcount())5.3账务管理模块5.3.1凭证录入对凭证录入窗口w_pz设计,如表5-3-1所示。表5-3-1窗口w_pz_的设计说明项目说明窗口名w_pz所在的PBL库zwxt_dw.pbl功能进行凭证录入父窗口w_main界面设计窗口控件说明控件类型控件名控件名称说明图片按钮cb_zjpz查询新增一张凭证图片按钮cb_tc退出退出凭证录入界面图片按钮cb_bc1保存保存凭证图片按钮cb_sc删除行删除当前行图片按钮cb_zjh1增加行增加行数图片按钮cb_fw1复位清空界面信息数据窗口dw_mian以free风格展示凭证主表内容数据窗口dw_zw_item以grid风格展示凭证明细表内容事件脚本cb_zjpz:clicked!integerr_rowstringr_pzhmintegerr_pzdw_zw_main.reset()dw_zw_item.reset()r_row=dw_zw_main.insertrow(0)r_row=dw_zw_item.insertrow(0)//初始默认值//为主表设置指定的值dw_zw_main.setitem(1,'zth',g_zw_zth)dw_zw_main.setitem(1,'nkqjq',g_zw_nkqjq)dw_zw_main.setitem(1,'ykjjq',g_zw_ykjjq)dw_zw_main.setitem(1,'rq',g_rq) //日期dw_zw_main.setitem(1,'zdr',g_id) //制单人dw_zw_main.setitem(1,'zdrq',g_rq) //制单日期dw_zw_main.setitem(1,'shbj','否') //审核标记dw_zw_main.setitem(1,'jzbj','否') //记账标记dw_zw_main.setitem(1,'shrq','0000-00-00')//审核日期dw_zw_main.setitem(1,'jzrq','0000-00-00')//记账日期dw_zw_main.setitem(1,'fdjs',0)//附单据数dw_zw_item.setitem(1,'zth',g_zw_zth)dw_zw_item.setitem(1,'nkqjq',g_zw_nkqjq)dw_zw_item.setitem(1,'ykjjq',g_zw_ykjjq)dw_zw_item.setitem(1,'jfSE',0)dw_zw_item.setitem(1,'dfSE',0)//凭证号处理//取出数据库中的最大凭证号selectcount(*)into:r_pzhmfromzw_pzzbwherezth=:g_zw_zthandnkqjq=:g_zw_nkqjqandykjjq=:g_zw_ykjjq;ifisnull(r_pzhm)then r_pzhm='0001' //第一张凭证号else r_pzhm=string(integer(r_pzhm)+1) //凭证号自动加1 r_pzhm=fill('0',4-len(r_pzhm))+r_pzhm //长度处理:4位endifdw_zw_main.setitem(r_row,'pzh',r_pzhm)dw_zw_item.setitem(r_row,'pzh',r_pzhm)cb_bc1:Clicked!integerr_row,r_rowcount,r_yesno,i,r_fdjs,r_rtn1,r_rtn2stringr_pzhm,r_zw_zth,r_nkqjq,r_ykjjq,r_rq,r_zdr,r_zdrq,r_shpzr,r_shpzrq,r_shpzpz,r_jzpzr,r_jzpzrq,r_jzpzpz,r_km_bm,r_zy,r_date,r_fzhs_codedecimalr_jfSE,r_dfSEdw_zw_main.accepttext()dw_zw_item.accepttext()r_yesno=messagebox('提示','是否真的保存?',exclamation!,yesno!,2)ifr_yesno=2thenreturnr_row=dw_zw_item.getrow()r_rowcount=dw_zw_item.rowcount()//判断借贷数额是否相等ifdw_zw_item.getitemdecimal(1,'jfhj')<>dw_zw_item.getitemdecimal(1,'dfhj')then messagebox('提示','借贷方数额不等,不能保存!') returnendififdw_zw_item.getitemdecimal(1,'jfhj')=0ordw_zw_item.getitemdecimal(1,'dfhj')=0then messagebox('提示','借贷方数额均为0,不能保存!') returnendif//取值r_zw_zth=dw_zw_main.getitemstring(1,'zth')r_nkqjq=dw_zw_main.getitemstring(1,'nkqjq')r_ykjjq=dw_zw_main.getitemstring(1,'ykjjq')r_pzhm=dw_zw_main.getitemstring(1,'pzh')r_zdr=dw_zw_main.getitemstring(1,'zdr')r_zdrq=dw_zw_main.getitemstring(1,'zdrq')r_rq=dw_zw_main.getitemstring(1,'rq')r_shpzpz=dw_zw_main.getitemstring(1,'shbj')r_jzpzpz=dw_zw_main.getitemstring(1,'jzbj')r_shpzr=dw_zw_main.getitemstring(1,'shr')r_jzpzr=dw_zw_main.getitemstring(1,'jzr')r_shpzrq=dw_zw_main.getitemstring(1,'shrq')r_jzpzrq=dw_zw_main.getitemstring(1,'jzrq')r_fdjs=dw_zw_main.getitemnumber(1,'fdjs')forr_row=1tor_rowcount r_km_bm=dw_zw_item.getitemstring(r_row,'km_code') ifisnull(r_km_bm)orr_km_bm=''then messagebox('提示','请输入科目编码!') return endifnext forr_row=1tor_rowcount r_zy=dw_zw_item.getitemstring(r_row,'zy') ifisnull(r_zy)orr_zy=''then messagebox('提示','请输入凭证摘要!') return endifnext forr_row=1tor_rowcount r_km_bm=dw_zw_item.getitemstring(r_row,'km_code') ifr_km_bm='1001'orr_km_bm='1002'then exit endifnextifr_row-1=r_rowcountthen dw_zw_main.setitem(1,'fzhs_code','000')endifi_fzhs_code=dw_zw_main.getitemstring(1,'fzhs_code')ifisnull(r_fdjs)thenr_fdjs=0ifisnull(r_shpzr)thenr_shpzr=''ifisnull(r_jzpzr)thenr_jzpzr=''ifisnull(r_shpzrq)thenr_shpzrq=''ifisnull(r_jzpzrq)thenr_jzpzrq=''ifisnull(i_fzhs_code)ori_fzhs_code=''then messagebox('提示','请选择辅助核算明细!') returnendifforr_row=1tor_rowcount r_km_bm=dw_zw_item.getitemstring(r_row,'km_code') r_zy=dw_zw_item.getitemstring(r_row,'zy') r_jfSE=dw_zw_item.getitemdecimal(r_row,'jfSE') r_dfSE=dw_zw_item.getitemdecimal(r_row,'dfSE') ifi_fzhs_code=''theni_fzhs_code='000' ifisnull(r_zy)thenr_zy=r_pzhm ifisnull(r_jfSE)thenr_jfSE=0 ifisnull(r_dfSE)thenr_dfSE=0nextifr_fdjs<0then messagebox('提示','附单据数必须为正整数') dw_zw_main.setitem(1,'fdjs',0) returnendifr_rtn2=dw_zw_item.update()r_rtn1=dw_zw_main.update()ifr_rtn1>0andr_rtn2>0thenmessagebox('提示','保存成功!')dw_zw_main.modify('fzhs_code.visible=false')dw_zw_main.modify('fzhs_code_t.visible=false')pb_zjpz.triggerevent(clicked!)elsemessagebox('提示','保存失败!')returnendifcb_tc:clicked!close(parent)cb_sch:Clicked!//删除当前行integerr_yesno,r_rowr_row=dw_zw_item.getrow()ifnotr_row>0thenreturnr_yesno=messagebox('提示','是否真要删除第【'+string(r_row)+'】行?',exclamation!,yesno!,2)ifr_yesno=2thenreturndw_zw_item.deleterow(r_row)cb_zjh1:Clicked!integerr_rowstringr_pzhmr_row=dw_zw_item.insertrow(0)r_pzhm=dw_zw_main.getitemstring(1,'pzh')dw_zw_item.setitem(r_row,'zth',g_zw_zth)dw_zw_item.setitem(r_row,'nkqjq',g_zw_nkqjq)dw_zw_item.setitem(r_row,'ykjjq',g_zw_ykjjq)dw_zw_item.setitem(r_row,'pzh',r_pzhm)dw_zw_main:Itemchanged!integerr_fdjsdw_zw_main.accepttext()dw_zw_item.accepttext()i_fzhs_code=dw_zw_main.getitemstring(1,'fzhs_code')r_fdjs=dw_zw_main.getitemdecimal(1,'fdjs')ifr_fdjs<0then messagebox('提示','附单据数必须为正整数') dw_zw_main.setitem(1,'fdjs',0)endifdw_zw_item:Itemchanged!stringr_km_bm,r_mjbj,r_tybj_code,r_colname,r_km_bm_r,r_zyintegerr_row,r_count,idw_zw_item.accepttext()r_row=dw_zw_item.getrow()ifnotr_row>0thenreturnr_colname=dw_zw_item.getcolumnname()choosecaser_colname case'km_code' r_km_bm=dw_zw_item.getitemstring(r_row,'km_code') //判断输入的科目编码是否在该账套中存在 selectcount(*)into:r_countfromzw_kjkmbmbwherezth=:g_zw_zthandkm_code=:r_km_bm; ifr_count=0then messagebox('提示','输入的科目编码不存在!') dw_zw_item.setitem(r_row,'km_code','') return1 endif //科目不能重复输入 i=1 r_count=dw_zw_item.rowcount() dowhilei<=r_count ifnoti=r_rowthen r_km_bm_r=this.getitemstring(i,'km_code') ifr_km_bm=r_km_bm_rthen messagebox('提示',r_km_bm_r+'科目在此凭证中已经使用,不能重复输入') this.setitem(r_row,'km_code','') return1 endif endif i=i+1 loop //复制上一行的摘要 ifr_row>1then r_zy=this.getitemstring(r_row-1,'zy') this.setitem(r_row,'zy',r_zy) endif //同一行只能输入借方或贷方数额,不能同时输入 case'jfSE' this.setitem(r_row,'dfSE',0) case'dfSE' this.setitem(r_row,'jfSE',0)endchoosedw_zw_main.accepttext()dw_zw_item.accepttext()//判断是否弹出辅助核算框ifdw_zw_item.getcolumnname()='km_code'then ifgf_check_dw_km_code(dw_zw_item,'1001')andgf_check_dw_km_code(dw_zw_item,'1002')then dw_zw_main.Modify('fzhs_code.visible=false') dw_zw_main.Modify('fzhs_code_t.visible=false') i_fzhs_code='000' dw_zw_main.setitem(1,'fzhs_code','i_fzhs_code') //messagebox('','000:'+i_fzhs_code) endif ifgf_check_dw_km_code(dw_zw_item,'1001')and(notgf_check_dw_km_code(dw_zw_item,'1002'))then //messagebox('提示','请选择辅助核算明细') dw_zw_main.Modify('fzhs_code.visible=true') dw_zw_main.Modify('fzhs_code_t.visible=true') i_fzhs_code='' dw_zw_main.setitem(1,'fzhs_code','') endif ifgf_check_dw_km_code(dw_zw_item,'1002')and(notgf_check_dw_km_code(dw_zw_item,'1001'))then// messagebox('提示','请选择辅助核算明细') dw_zw_main.Modify('fzhs_code.visible=true') dw_zw_main.Modify('fzhs_code_t.visible=true') i_fzhs_code='' dw_zw_main.setitem(1,'fzhs_code','') endif if(notgf_check_dw_km_code(dw_zw_item,'1002'))and(notgf_check_dw_km_code(dw_zw_item,'1001'))then dw_zw_main.Modify('fzhs_code.visible=false') dw_zw_main.Modify('fzhs_code_t.visible=false') i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 孤残儿童日常护理中的社交技能培养
- 呼吸机管道的维护与管理
- 2025年一级造价工程师考试《建设工程造价管理》真题及解析
- 护理教育:融入鱼骨图思维训练
- 护理人性化服务与护理文化
- 【中考真题】黑龙江省齐齐哈尔市2026年初中学业水平考试生物学试卷(解析版)
- 护理未来趋势
- 手术室护理神经外科护理
- 护理三基:静脉输液静脉抽血技术
- 2026普通销售面试题目及答案
- 2026年建设工程质量检测人员考试(建筑地基与基础检测)题库及答案(安徽)
- 2025年国家故宫博物院应届高校毕业生招聘64人(北京)笔试历年参考题及答案
- 2026年山东省统考中考语文真题含答案
- 2026年事业单位考试时事政治试题及答案
- 建筑电气设计统一技术措施-2021
- 2026年全国《安全生产月》知识培训试题及答案
- 西安交通大学2026年强基计划笔试模拟试题及答案解析
- 成都东部新七中2025高一入学数学分班考试真题含答案
- 2026年金陵河西中学招生分班考试试卷
- 2026年上海市杨浦区社区工作者招聘笔试模拟试题及答案解析
- 配电运检员考试题及答案
评论
0/150
提交评论