|
4、出库单ckd
最初我设计的出库单象入库单一样,一次只能开一种材料,由于在车间使用就改成现在这样。图7-1
 (1)、文本框text2的“dateformat”为:‘14-汉语’;“topstop”为:‘.F.假’;“value”为:‘=date()’。其他略。 (2)、建立表格Grid1。右击Grid1选择生成器选择main表,选定如下字段:qcmc、ggxh、dw、dj、cksl、ckje、lb,按确定按钮。(图7-2)
 (3)、修改表格Grid1。“deletemark”为:‘.F.-假’;“recordmark”为:‘.F.-假’;“recordsource”为:(无)(去掉‘main’);“scrollbars”为:‘2-垂直’。 (3)、Combo1的“rowsource”为:‘一班,二班,三班,四班,五班,六班,办公室’;“rowsourcetype”为:‘1-值’。 (4)、表单的init过程: public
bz1,bh1,llr1 *建立临时表ls creat cursor ls ( ckbh c(10), rq d(8),qcmc
c(16),ggxh c(20),dw c(4),
;
dj n(8,2), cksl n(8,2), ckje n(10,2),gcmc c(30),bz
c(6),;
yt c(20),cly c(6),bgy c(6),jhy c(6),llr c(6),fzr c(6),lb c(6)) with
thisform.grid1 .recordsource='ls' .column1.controlsource='ls.qcmc' .column2.controlsource='ls.ggxh' .column3.controlsource='ls.dw' .column4.controlsource='ls.dj' .column5.controlsource='ls.cksl' .column6.controlsource='ls.ckje' .column7.controlsource='ls.lb' endwith (5)、打印按钮的cilck过程: bz1=thisform.combo1.value bh1=allt(thisform.text5.value) llr1=allt(thisform.text6.value) sele
ls messagebox('请用B5纸!',16,'提示信息') REPORT FORM ckdan.frx TO
PRINTER thisform.refresh
其中ckdan.frx为出库单报表,在后面会介绍。 (6)、保存按钮的cilck过程: bz1=thisform.combo1.value bh1=allt(thisform.text5.value) rq1=date() llr1=allt(thisform.text6.value) gcmc1=allt(thisform.text3.value) yt1=allt(thisform.text4.value) *检查输入是否有效 sele
ls count for !deleted() to zs if
zs=0 messagebox('至少要有一条记录才能保存!',16,'提示信息') return endif if
empty(bz1) messagebox('请填写班组',16,'提示信息') return endif locat
for ls.cksl=0 if
found() messagebox('请填写数量',16,'提示信息') return endif *加入到正式表中 go
top do while !eof() insert into main
(ckbh,rq,qcmc,ggxh,dw,dj,cksl,ckje,gcmc,yt,llr,jhy,lb,bz)
;
value
(bh1,rq1,ls.qcmc,ls.ggxh,ls.dw,ls.dj,ls.cksl,ls.ckje,gcmc1,ls.yt,llr1,jhy1,ls.lb,bz1)
if allt(ls.lb)="工器具" insert into grgjk
(ckbh,rq,qcmc,ggxh,dw,dj,cksl,ckje,llr,jhy)
;
value
(bh1,rq1,ls.qcmc,ls.ggxh,ls.dw,ls.dj,ls.cksl,ls.ckje,llr1,jhy1)
endif
skip enddo zap (6)、退出按钮的cilck过程: tt=0 thisform.release (7)、Grid1下的Column1下的Text1的DblClick过程: do
form qcmx sele ls this.value=main.qcmc with
thisform.grid1 .column2.text1.value=main.ggxh .column3.text1.value=main.dw .column4.text1.value=main.dj
.column5.text1.value=0
.column6.text1.value=0 .column7.text1.value=main.lb endwith thisform.refresh thisform.grid1.column5.text1.setfocus thisform.refresh (8)、Grid1下的Column5下的Text1的LostFocus过程: if
this.value>cksl1 ss=allt(str(cksl1))
messagebox('开票数量不能大于库存数量'+ss,16,'提示信息')
thisform.grid1.column5.text1.value=0
thisform.grid1.column5.text1.setfocus retu endif
thisform.grid1.column6.text1.value=ls.cksl*ls.dj thisform.grid1.refresh (9)、Grid1的rightcilck过程: sele
ls do tjia.mpr
&&调用tjia菜单 thisform.grid1.refresh thisform.grid1.setfocus
操作说明:
右击表单的表格Grid1,出现快捷菜单条,选择“填加一条”单击,表格中增加一条空白记录,双击器材名称的文本框调出“器材明细表”表单(下一课介绍)。在“器材明细表”中选择要出库的器材,退出“器材明细表”,这时“器材名称”、“规格型号”、“单位”、“单价”等自动填加到表格中,你填上出库数量,回车,如果你填加的数值大于库存量,会弹出一个“提示信息”窗口,提示你:“开票数量不能大于库存数量xx”。如果数值符合要求,回车后自动填加金额。你可以根据以上的操作过程填加多项,也可以选中某一条右击删除它,在未保存之前还可以右击恢复所有被删除的项目。填齐其它选项,就可以打印了,按保存按钮填写的器材就出库了。
附加:建立tjia菜单 (1)、新建快捷菜单(图7-3)。
 (2)、“填加一条”的‘过程’内容为: locat for
ls.cksl=0 if
found() messagebox('请填写数量',16,'提示信息') return endif append
blank (3)、“删除选定一条”的‘过程’内容为: if messagebox(
'是否真的删除该行?',36,'提示信息')=6 dele endif (4)、生成为tjia。
|