实战演练之一
本节的示例,可以参考CaseStudy目录下的文件:票据打印.Table。
该文件有两个表,分别为凭证和凭证明细,已经通过凭证ID建立关联。
本节的目的是设计一个窗口,用于打印一个下图所示的凭证:
设计步骤
1、首先新建一个窗口,然后在窗口设计器的“文件”菜单中,单击“页面设置”命令,设置好页面尺寸和边距。
2、在窗口插入一个Table控件,将其绑定到关联表“凭证.凭证明细”,并将其“最小行数”属性设置为6,这样当订单明细不够6行时,会自动补空行。
3、设置Table控件的“显示列”属性设置为:
摘要|186|会计科目_一级科目|126|会计科目_明细科目|130|借方金额|130|贷方金额|130
实际上很少能一次性地设置好"显示列"属性,上面的设置是反复调试后的结果。
4、按照常规方法,设计好窗口,并将相关控件绑定到字段:
5、上图中标有数字的控件,须在DataFormat事件中设置代码,使得打印格式符合我们的要求:
编号 | 说明 | DataFormat事件代码 |
1 | 大写金额 | e.Text = CUMoney(e.Value) |
2 | 借方金额 | e.Text = "¥ " & e.Value |
3 | 贷方金额 | e.Text = "¥ " & e.Value |
4 | 凭证标题 | If
e.Value IsNot Nothing
Then e.Text = e.Value.Chars(0) & " " & e.Value.Chars(1) & " 凭 证" End If |
5 | 日期 | e.Text = Format(e.Value,"yyyy年MM月dd日") |
6、设置按钮的Click事件代码。
“上一条”按钮的Click事件代码设为:
With
Tables("凭证")“下一条”按钮的Click事件代码设为:
With
Tables("凭证")“打印”按钮的Click事件代码设置为:
Dim
doc As PrintDoc = e.Form.GernatePrintDoc()多页凭证的设计
如果明细表的行数比较多,可能一份凭证需要分多页打印,要完成这个任务很简单,只需设置最大行数属性即可:
上图最小行数和最大行数属性都设置为6,这样明细的行数不到6行时,会自动补充空行,超过6行时,会分页打印凭证,每页打印6行。