标题:能否使用VFP实现这个功能
只看楼主
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:352
专家分:1152
注 册:2015-10-2
得分:20 
(一个简单例子仅供参考)
bb.zip (3.8 KB)
2020-10-27 00:56
vfpzhu
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2020-10-28
得分:0 
1. 可以实现。但存在一个问题,当部们人数增加后,报表将超出打印宽度,分页处理怎么要求?
2. 你的数据是存在哪的。从excel(原始数据)到excel表?excel到vfp报表?vfp形成vfp报表?

[此贴子已经被作者于2020-10-28 17:12编辑过]

2020-10-28 17:10
excel6687
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2020-10-20
得分:0 
回复 12楼 vfpzhu
1、如果人员较多,则自动进行分页处理,如果该页人员不满则打印空白栏目,但是每页最后的汇总项目不能少
2、目前的数据是EXCEL格式,数据是可以相互转换的
2020-10-28 17:38
excel6687
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2020-10-20
得分:0 
回复 11楼 wcx_cc
感谢你那么晚还给我回帖,并且提供了很好的思路
2020-10-28 17:45
excel6687
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2020-10-20
得分:0 
回复 12楼 vfpzhu
能否具体说说如何实现
2020-10-28 17:46
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 13楼 excel6687
“如果该页人员不满则打印空白栏目”
这样就简单,第页分别取一定的栏目数据到临时表统计打印
2020-10-28 18:59
vfpzhu
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2020-10-28
得分:0 
我做的话思路这样:
1. 建立一个A数据表,比excel数据多一个A字段。
2. 用select 语句以部门分组,生成组别表。
3. 从组别表第一个记录开始读取组别名称。
4. 在数据表A字段中输入标记(第一个循环,前6个记录;第二个循环,7到第12记录...)
5. 对A字段、组别名称进行筛选,A表结果的内容就是:同一组别、不大于6个记录。
6. 定义变量 或 变量组(设为字符型,初值为:''),存放最多59个数据(6*9=54 + 4 +1=59,从A表中不超过6个记录中读取 )。
7. 每一张报表(完整表式),加上59个数据(相应变量写在报表中)。
在同一组的A表中,每6个记录一次循环,直到表中记录全部输出。
在组别表中:从第一个记录,到最后一个记录。

或者:建一张与打印报表一样的表 B表
从1 到 5 同上
6. 把筛选的A表数据 相应地移到 B 表中,然后 循环打印B表。

[此贴子已经被作者于2020-10-28 20:49编辑过]

2020-10-28 19:30
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 16楼 吹水佬
示例:
第1页

第2页

程序代码:
CREATE CURSOR bb (b1 I,b2 I,b3 I,hj I)
CREATE CURSOR tt (f1 I,f2 I,f3 I,f4 I,f5 I)
INSERT INTO tt VALUES (1,2,3,4,5)
INSERT INTO tt VALUES (21,22,23,24,25)
INSERT INTO tt VALUES (31,32,33,34,35)

cf = FIELD(1,"tt")
nf = 2
DO WHILE nf <= FCOUNT("tt")
    cf = cf + ",f"+TRANSFORM(nf)
    IF nf%3 == 0    && 假设每页3个栏目
        print_bb(cf)
        nf = nf + 1
        cf = FIELD(nf,"tt")
    ENDIF 
    nf = nf + 1
ENDDO 
IF !EMPTY(cf)
    print_bb(cf)
ENDIF
RETURN

FUNCTION print_bb(cf)
    SELECT tt
    COPY TO ARRAY arr FIELDS &cf
    SELECT bb
    ZAP
    APPEND FROM ARRAY arr
    REPLACE ALL hj WITH b1+b2+b3
    BROWSE    && 这句改为报表输出
ENDFUNC
2020-10-28 20:01
excel6687
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2020-10-20
得分:0 
回复 18楼 吹水佬
非常棒,好好学习一下
2020-10-28 22:12



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




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

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