注册 登录
编程论坛 VFP论坛

将DBF表的某列值相加后输出到报表

wangjiayu45 发布于 2021-06-01 10:28, 1972 次点击
只有本站会员才能查看附件,请 登录
如图,老师表.dbf

将此表的内容,用报表的输出的格式如下:
十二中学:王小强、张大宝、李国、陈匠、江小凤
二一中学:顾小飞、史才山、张珍、陈茹

搞了好久没有用?请老师赐教!
14 回复
#2
厨师王德榜2021-06-01 10:44
没时间直接给出代码,只能给出思路
select 老师表
go top
取第一行 学校名称 到 变量A ;人员名单 到变量B
从第二行开始,循环至表末:
{
    如果 (本行的学校名称=变量A),那么 {
        变量B=变量B + "," + 人员名单
    否则
        输出 变量A ,变量B
        重新赋值:变量A =学校名称,变量B=人员名单 }
}
#3
sdta2021-06-01 10:50
CREATE CURSOR test (学校 C(10), 姓名 M)
INSERT INTO test (学校) SELECT DISTINCT 学校名称 FROM AA
INDEX ON 学校 TAG XX
USE AA IN 0
SELECT AA
SET RELATION TO 学校名称 INTO test
SCAN
    REPLACE 学校 WITH 学校 - "、" - AA.人员名单 IN test
ENDSCAN
SET RELATION TO
SELECT test
REPLACE 姓名 WITH SUBSTR(姓名, 3) ALL
SET ORDER TO
BROWSE
#4
xuminxz2021-06-01 13:00
回复 楼主 wangjiayu45
你是想做报表吗?
#5
wangjiayu452021-06-01 15:07
回复 4楼 xuminxz
是的。想做报表
#6
wangjiayu452021-06-01 15:07
回复 2楼 厨师王德榜
谢谢秒回!
#7
wangjiayu452021-06-01 15:08
回复 3楼 sdta
谢谢秒回!测试没通过,好象有点问题。
#8
sdta2021-06-01 15:15
以下是引用wangjiayu45在2021-6-1 15:08:38的发言:

谢谢秒回!测试没通过,好象有点问题。

什么问题
#9
wangjiayu452021-06-01 15:38
回复 8楼 sdta
不能实现:姓名、姓名、姓名、姓名、姓名
#10
sdta2021-06-01 16:12
以下是引用wangjiayu45在2021-6-1 15:38:48的发言:

不能实现:姓名、姓名、姓名、姓名、姓名

没有数据测试,有问题在所难免!
#11
wangjiayu452021-06-01 18:16
文件夹放在C根目录下
要求:
初审报告,不要在报表“细节"上体显。
请以下列形式:同个学校的放在一起。
1:XXX学校:XX老师于xx年xx月xx日获得XXXXXXXX;XX老师于xx年xx月xx日获得XXXXXXXX
2:YYY学校:XX老师于xx年xx月xx日获得XXXXXXXX;XX老师于xx年xx月xx日获得XXXXXXXX
代码写在表单:生成报表 的command1.click
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2021-6-1 18:19编辑过]

#12
wangjiayu452021-06-01 18:20
回复 10楼 sdta
上传了数据,请老师帮忙看下
#13
sdta2021-06-01 18:53
以下是引用wangjiayu45在2021-6-1 18:20:36的发言:

上传了数据,请老师帮忙看下

程序代码:
CREATE CURSOR test (学校 C(10), 姓名 M)
INSERT INTO test (学校) SELECT DISTINCT 学校名称 FROM 老师
INDEX ON 学校 TAG XX
SELECT 老师
SET RELATION TO 学校名称 INTO test
SCAN
    REPLACE 姓名 WITH 姓名 - "、" - 老师.老师姓名 IN test
ENDSCAN
SET RELATION TO
SELECT test
REPLACE 姓名 WITH SUBSTR(姓名, 3) ALL
SET ORDER TO
BROWSE
#14
xuminxz2021-06-01 19:51
回复 11楼 wangjiayu45
细节上显示什么?
先按下列代码准备好数据,再调用报表。你的报表要求我没看明白。
程序代码:
CLOSE TABLES all
SELECT distinct 学校名称 xxmc FROM 老师  INTO CURSOR rptemp READWRITE
ALTER table rptemp ADD jsxx m
SCAN
    _xxmc=ALLTRIM(xxmc)
    SELECT 老师姓名 xm FROM 老师 INTO CURSOR mpmp WHERE ALLTRIM(学校名称)==_xxmc
    _jsxx=''
    SCAN
        _jsxx=_jsxx+''+ALLTRIM(mpmp.xm)
    ENDSCAN
    REPLACE jsxx WITH SUBSTRC(_jsxx,2) IN rptemp
ENDSCAN

是不是细节区只放学校与老师姓名
页脚放获奖信息?

[此贴子已经被作者于2021-6-1 20:15编辑过]

#15
wangjiayu452021-06-02 08:12
回复 14楼 xuminxz
谢谢,是的。细节区只放学校与老师姓名
页脚放获奖信息
1