标题:根据数据环境选择报表页表头
只看楼主
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:0 
楼主已经用VF了,怎么还用@13,20 say '单位编号:' GET 来接收数据?怎么不用文本框接收?

相互学习,互相交流,共同提高。
2010-05-19 18:41
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
以下是引用qq156059757在2010-5-19 09:20:27的发言:

parameters bh &&bh=部门编号
clear
set talk off
set safe off
sele 1
use xtzk &&各单位名称库
inde on bh to bh
sele 2
wbh=1
DO WHILE wbh<51  &&运行后出现嵌套错误
IF wbh<10
  II=STR(wbh,1)
ELSE
  II=STR(wbh,2)
ENDIF
use gzz&wbh
set rela to bh into name
name=a->name
return name
1、clear通常不能用在子程序中,仅用有主程序开始。否则会将有用的变量全部清除。
2、set talk off和set safe off通常也只要用在主程序开始,除非确有必要,在程序的其他部位很少使用。
3、通常不要自己指定工作区,除非你对所有工作区打开的表都全盘规划(这样做太累,也无必要),否则很容易关闭其他程序中已经打开的表。习惯用法是use XXX in 0,然后用表别名来选择所需要的表。

活到老,学到老! http://www. E-mail:hu-jj@
2010-05-20 08:04
qq156059757
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2010-5-15
得分:0 
*  ?my_func(wbh) &&自定义函数是这样调用吗?? 如果我把前面的‘*‘去掉的话 打印程序运行就出现问题了
老兄 麻烦看一下8楼的打印程序   调用时自定义函数是这样操作吗(把*号去掉?)
我在设计的报表中的
修改后,运行报表显示无法找到wbh
我去掉打印程序中*  ?my_func(wbh) 前面的*号,又显示无法找到某个字段(该字段在部门名称表xtzk.dbf中缺省,只在各单位的工资表中存在),这是怎么回事,
我怀疑是在调用自定义函数的时候  迫使  报表选择了 数据环境 为各单位名称表   而不是各单位的工资表
请问我调用自定义函数的方法对吗,还有 我的打印程序哪里出错了呢
2010-05-20 08:37
qq156059757
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2010-5-15
得分:0 
回复 11楼 qjbzjp
谢谢提醒
对vfp还不是很熟悉
慢慢改进
2010-05-20 08:38
qq156059757
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2010-5-15
得分:0 
只要有这个域控件 就不能完美运行(而这个域控件有很重要)
哪位老兄有时间  
帮我调试调试
不胜感激!
工资打印.rar (11.73 KB)

为了避免头晕,只上传了2个工资单位库

[ 本帖最后由 qq156059757 于 2010-5-20 09:13 编辑 ]
2010-05-20 09:10
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:10 
2个.prg文件和报表文件都有改动,请试试。
工资打印.rar (10.57 KB)


[ 本帖最后由 qjbzjp 于 2010-5-20 10:02 编辑 ]

相互学习,互相交流,共同提高。
2010-05-20 10:00
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:10 
回13楼,可以把自定义函数看成要返回的内容来直接使用,假设wbh=1,时返回“办公室”,你就可以把“my_func(wbh)”看成是“办公室”这个字符串来使用。
?my_func(wbh)是正确的。
但在打印文件中调用时,my_func()中有一条SELECT xtzk,当前工作区成为“名称库”工作区,调用后应该“SELECT 打印用表”返回打印所需用表的工作区,否则就会出问题。
用一个公有变量先得到自定义函数内容只是一个折衷的办法,楼主可以探讨更好的方法。

相互学习,互相交流,共同提高。
2010-05-20 10:33
qq156059757
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2010-5-15
得分:0 
回复 17楼 qjbzjp


程序运行良好,完全达到打印要求

非常感谢 qjbzjp 热心帮助与指导

现在主要问题已经解决了,还有些不足的地方我会慢慢改进
再次感谢!


2010-05-20 14:43
qq156059757
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2010-5-15
得分:0 
回复 17楼 qjbzjp
你好  现在打印程序已经成功运行
但是打印出来的工资表有点问题,如下:

我原来的打印程序已通过调整细节以及页标头距离  调整为每页打印24条记录,可是现在每页能打印24条记录,
问题是:如果一个单位有48条记录,第25条记录应该打印在第二页上,可是现在  这第25条录失踪了!!
第一页没有,第二页从第26条记录开始打印的

还有,每个单位需要一个‘合计数’打印在‘总结’区,问题出现了:如果该单位记录不满24条,则可以打印出来
如果正好24条,这个‘合计数’有失踪了

这是怎么回事呢,还请明示
2010-05-20 17:12
qq156059757
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2010-5-15
得分:0 
回复 19楼 qq156059757
经过调试 页标头间距  好像默认每页打印的是25行,这是咋回事呢
怪了 ,难道原来就是默认打印25行  我没有发现?!

还是不对,本来应该打印在第二页首行的记录 又缺失了!!
哪位大侠出手啊

新建了一个报表,上下边距都调为0cm,每页能打印25条记录了
难道调整页面页边距会造成数据的丢失?(我的意思是打印不出来)


ok  问题已解决,原来是自定义了纸张页边距的关系,上下页边距为0,然后在调整报表   各编辑区的行距就可以了
哈哈

[ 本帖最后由 qq156059757 于 2010-5-20 17:39 编辑 ]
2010-05-20 17:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-307134-1-1.html




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

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