| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 736 人关注过本帖
标题:关于标签打印的奇怪现象,各位帮忙分析一下原因
取消只看楼主 加入收藏
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1076
专家分:2628
注 册:2015-12-30
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:6 
关于标签打印的奇怪现象,各位帮忙分析一下原因
图片附件: 游客没有浏览图片的权限,请 登录注册

基本情况说明:
图中两个text,controlsource分别对应一个grid的两个字段,两个text.lostfocus中调用了一个表单的方法,其中判断text的值是否变化,如果变化了,则更新远程数据库中相应的数据
按钮“打印”是要打印一个标签,与grid表中当前记录相关(基本过程:根据grid表中的数据,生成一个供打印的临时表)
奇怪的情况:
输入了两个text中的值(可能是任一个),然后直接点“打印”按钮,则会报错:找不到变量boxprn(这是标签打印时生成的临时表中的一个字段名)
但是,如果输入text值后不点打印,而是点击grid中的另一条记录,然后再点击grid中的刚才那条记录,此时点击打印按钮就不会报错,打印结果正常

调试:在打印按钮的程序中brow将要打印的临时表,记录内容是正确的,boxprn字段也有且内容正确&ensp;<br>&ensp;<br>说明:临时表中的boxprn字段确实存在,只是在text值有变化(调用了一个方法)时会出现报错

这是什么原因呢?
百思不得其解,请各位援手,先谢了

[此贴子已经被作者于2023-9-26 08:21编辑过]

搜索更多相关主题的帖子: 标签 按钮 打印 text grid 
2023-09-26 08:17
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1076
专家分:2628
注 册:2015-12-30
收藏
得分:0 
以下是引用easyppt在2023-9-26 08:27:43的发言:

1、确认你Grid数据源是行缓冲还是表缓冲,表缓冲模式下,不改变当前记录号的情况下,数据的改动不会提交,除非手动提交。   
2、打印的报表中的 字段是否加了表的别名?如果没有,请确认工作区是否是对应的工作区。   
3、就是检查一下临时表是否已创建。  
  
程序编写要学会调试,比如代码中加入 临时用的全局变量或messagebox()等,调试,记录关键代码的结果。
 
你描述的问题,调试排查 其实并不难。

 
 
感谢回复
1.grid表更新后执行了
=CURSORSETPROP("Buffering",3,表名)
2.打印之前当前工作区已经是需要打印的临时表,打印中直接使用字段名
3.临时表已经创建,调试已确认结构和内容是正确的(直接点“打印”按钮则一切正常),调试结果
也验证了grid表的数据是已经更新过的


[此贴子已经被作者于2023-9-26 09:05编辑过]

2023-09-26 08:47
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1076
专家分:2628
注 册:2015-12-30
收藏
得分:0 
以下是引用hu9jj在2023-9-26 08:30:40的发言:

将调用表单的方法这段代码移到“打印”按钮试试看。

因为改变了text值后不是必然点“打印”按钮,所以那个方法不能与打印按钮合并
2023-09-26 08:49
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1076
专家分:2628
注 册:2015-12-30
收藏
得分:0 
两种操作方式的差异是:(1)点击了打印按钮,之前会执行一段程序,然后执行click事件(2)直接执行click事件
2023-09-26 13:53
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1076
专家分:2628
注 册:2015-12-30
收藏
得分:0 
汇报一下进展
不报错了,在text.lostfocus里人为移动了行,skip;skip -1,然后打印就正常了

虽然不报错了,但还是不明白为什么
2023-09-27 06:53
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1076
专家分:2628
注 册:2015-12-30
收藏
得分:0 
以下是引用hu9jj在2023-9-27 07:31:21的发言:

因为有些命令是要移动记录后才能生效的。

比如说?

我疑惑的是,点击按钮前,text要失去焦点,就要执行lostfocus,然后再执行按钮的click,想象应该是这个逻辑,click中按变化后的数据生成需要打印的临时表,数据也是正确的,但打印时只有那个字段报错找不到,临时表中明明已经有字段了

最搞不明白的是,打印时用的是新生成的临时表,跟那个表没啥关系,为什么那个表移动了记录不报错了???

2023-09-27 08:03
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1076
专家分:2628
注 册:2015-12-30
收藏
得分:0 
吹版怎么看?
2023-09-27 11:50
快速回复:关于标签打印的奇怪现象,各位帮忙分析一下原因
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013642 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved