主页

一课

二课

三课

四课

五课

六课

七课

八课

九课

十课

十一课

十二课

十三课

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。

 

主页

一课

二课

三课

四课

五课

六课

七课

八课

九课

十课

十一课

十二课

十三课