简洁实用,快捷灵活
打开报表设置窗口,如下图
首先编写打印后执行的语句,单击打印后执行脚本按钮,编写语句如下图
然后编写打印前执行的语句,单击打印前执行脚本按钮,编写语句如下图
注:在编写语句前要在内部表增加一个字段,类型不限制,这个字段起标识作用,如上图的“打印”字段。
脚本解析:
1、打印后脚本:
begin
if DataMdl_Tabledoc.Fieldbyname('打印').asstring='S' then
exit;//如果主表的打印字段其值为S,那么就退出操作。
if not ((DataMdl_Tabledoc.state=dsedit) or (DataMdl_Tabledoc.state=dsinsert)) then DataMdl_Tabledoc.edit;//如果主表不是编译或者插入状态,把主表置为编译状态。
DataMdl_Tabledoc.Fieldbyname('打印').asstring:='S';//如果主表是编译状态,调用主表打印字段,赋其值为S,这里可以赋任意的字符值。
DataMdl_Tabledoc.post;//保存主表
end.
2、打印前脚本:
begin
if DataMdl_Tabledoc.Fieldbyname('打印').asstring ='S' then
begin
//如果打印字段已经赋值为S,将系统变量SYSTEMINFO_CANPRINT标识为FALSE
SYSTEMINFO_CANPRINT:=FALSE;
Application.messagebox('当前信息已经打印过,不能再打印','打印合法检查',0);
//如果系统变量SYSTEMINFO_CANPRINT值为FALSE,弹出对话框提示不能打印的信息。
exit;
end
else
SYSTEMINFO_CANPRINT:=TRUE;//将系统变量SYSTEMINFO_CANPRINT赋值为TRUE
end.
下一篇:利用按扭脚本实现“提交成功”