| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2725 人关注过本帖, 1 人收藏
标题:请教各位高手:下面是用代码写与的报表文件.frx,里面的一些属性是什么意思, ...
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏(1)
已结贴  问题点数:20 回复次数:16 
请教各位高手:下面是用代码写与的报表文件.frx,里面的一些属性是什么意思,请不吝指教
WAIT WINDOW NOWAIT '正在生成报表,请稍候...'
 IF  .NOT. USED('tblClass_1')
    USE IN 0 tblClass_1 ALIAS TBLCLASS_1
 ENDIF
 SELECT TBLCLASS_1
 SET ORDER TO 班名称
 LOREPORT = NEWOBJECT('SFReportFile','SFREPOBJ')
 LOREPORT.CREPORTFILE = 'MyReport.frx'
 LOREPORT.LSUMMARYBAND = .T.
 LOREPORT.CFONTNAME = '宋体'
 LOREPORT.NFONTSIZE = 11
 LOREPORT.LPRIVATEDATASESSION = .F.
 LOREPORT.CUNITS = 'C'
 LOVARIABLE = LOREPORT.CREATEVARIABLE()
  = 'nCountStudent'
 LOVARIABLE.CVALUE = 0
 LOVARIABLE.CINITIALVALUE = 0
 LOVARIABLE.CTOTALTYPE = 'Count'
 LOVARIABLE.NRESETONGROUP = 1
 LOVARIABLE = LOREPORT.CREATEVARIABLE()
  = 'nAveMark1'
 LOVARIABLE.CVALUE = 'tblclass_1.语文成绩'
 LOVARIABLE.CINITIALVALUE = 0
 LOVARIABLE.CTOTALTYPE = 'Average'
 LOVARIABLE.NRESETONGROUP = 1
 LOVARIABLE = LOREPORT.CREATEVARIABLE()
  = 'nAveMark2'
 LOVARIABLE.CVALUE = 'tblclass_1.数学成绩'
 LOVARIABLE.CINITIALVALUE = 0
 LOVARIABLE.CTOTALTYPE = 'Average'
 LOVARIABLE.NRESETONGROUP = 1
 LOPAGEHEADER = LOREPORT.GETREPORTBAND('Page Header')
 LOPAGEHEADER.NHEIGHT = 4
 LOOBJECT = LOPAGEHEADER.ADDITEM('text')
 LOOBJECT.CEXPRESSION = '学生成绩表'
 LOOBJECT.CFONTNAME = '楷体_GB2312'
 LOOBJECT.NFONTSIZE = 20
 LOOBJECT.NWIDTH = 20
 LOOBJECT.NHEIGHT = 2
 LOOBJECT.NVPOSITION = 2
 LOOBJECT.NHPOSITION = 20
 LOOBJECT.NFORECOLOR = RGB(0,0,0)
  LOREPORT.CREATEGROUPBAND()
 LOGROUP = LOREPORT.GETREPORTBAND('Group Header',1)
 LOGROUP.CEXPRESSION = 'tblClass_1.班名称'
 LOGROUP.NHEIGHT = 2.6
 LOGROUP.LPRINTONEACHPAGE = .T.
 LOGROUP.LSTARTONNEWPAGE = .T.
 LOOBJECT = LOGROUP.ADDITEM('field')
 LOOBJECT.CEXPRESSION = "'班级名称:'+ALLTRIM(班名称)"
 LOOBJECT.NWIDTH = 40
 LOOBJECT.NHEIGHT = 1
 LOOBJECT.NVPOSITION = 0.5
 LOOBJECT.NHPOSITION = 2
 LOOBJECT = LOGROUP.ADDITEM('box')
 LOOBJECT.NHEIGHT = 1.5
 LOOBJECT.NWIDTH = 64
 LOOBJECT.NVPOSITION = 2
 LOOBJECT.NHPOSITION = 2
 LOOBJECT.NPENSIZE = 1
 LOOBJECT = LOGROUP.ADDITEM('line')
 LOOBJECT.NHEIGHT = 1.5
 LOOBJECT.NVPOSITION = 2
 LOOBJECT.NHPOSITION = 18
 LOOBJECT.LVERTICAL = .T.
 LOOBJECT.NPENSIZE = 1
 LOOBJECT = LOGROUP.ADDITEM('line')
 LOOBJECT.NHEIGHT = 1.5
 LOOBJECT.NVPOSITION = 2
 LOOBJECT.NHPOSITION = 42
 LOOBJECT.LVERTICAL = .T.
 LOOBJECT.NPENSIZE = 1
 LOOBJECT = LOGROUP.ADDITEM('text')
 LOOBJECT.CEXPRESSION = '学生姓名'
 LOOBJECT.NWIDTH = 8
 LOOBJECT.NVPOSITION = 2.5
 LOOBJECT.NHPOSITION = 6
 LOOBJECT = LOGROUP.ADDITEM('text')
 LOOBJECT.CEXPRESSION = '语文成绩'
 LOOBJECT.NWIDTH = 8
 LOOBJECT.NVPOSITION = 2.5
 LOOBJECT.NHPOSITION = 28
 LOOBJECT = LOGROUP.ADDITEM('text')
 LOOBJECT.CEXPRESSION = '数学成绩'
 LOOBJECT.NWIDTH = 8
 LOOBJECT.NVPOSITION = 2.5
 LOOBJECT.NHPOSITION = 50
 LODETAIL = LOREPORT.GETREPORTBAND('Detail')
 LODETAIL.NHEIGHT = 1.5
 LOOBJECT = LODETAIL.ADDITEM('box')
 LOOBJECT.NHEIGHT = 1.5
 LOOBJECT.NWIDTH = 64
 LOOBJECT.NVPOSITION = 0
 LOOBJECT.NHPOSITION = 2
 LOOBJECT.NPENSIZE = 1
 LOOBJECT = LODETAIL.ADDITEM('line')
 LOOBJECT.NHEIGHT = 1.5
 LOOBJECT.NVPOSITION = 0
 LOOBJECT.NHPOSITION = 18
 LOOBJECT.LVERTICAL = .T.
 LOOBJECT.NPENSIZE = 1
 LOOBJECT = LODETAIL.ADDITEM('line')
 LOOBJECT.NHEIGHT = 1.5
 LOOBJECT.NVPOSITION = 0
 LOOBJECT.NHPOSITION = 42
 LOOBJECT.LVERTICAL = .T.
 LOOBJECT.NPENSIZE = 1
 LOOBJECT = LODETAIL.ADDITEM('field')
 LOOBJECT.CEXPRESSION = 'tblClass_1.学生姓名'
 LOOBJECT.NWIDTH = 10
 LOOBJECT.NVPOSITION = 0.25
 LOOBJECT.NHPOSITION = 6
 LOOBJECT = LODETAIL.ADDITEM('field')
 LOOBJECT.CEXPRESSION = 'tblClass_1.语文成绩'
 LOOBJECT.NWIDTH = 12
 LOOBJECT.NVPOSITION = 0.25
 LOOBJECT.NHPOSITION = 26
 LOOBJECT = LODETAIL.ADDITEM('field')
 LOOBJECT.CEXPRESSION = 'tblClass_1.数学成绩'
 LOOBJECT.NWIDTH = 12
 LOOBJECT.NVPOSITION = 0.25
 LOOBJECT.NHPOSITION = 48
 LOGROUP = LOREPORT.GETREPORTBAND('Group Footer',1)
 LOGROUP.NHEIGHT = 2
 LOGROUP.LPRINTONEACHPAGE = .T.
 LOGROUP.LSTARTONNEWPAGE = .T.
 LOOBJECT = LOGROUP.ADDITEM('field')
 LOOBJECT.CEXPRESSION = "'班级人数:'+STR(nCountStudent)"
 LOOBJECT.NWIDTH = 20
 LOOBJECT.NHEIGHT = 1
 LOOBJECT.NVPOSITION = 1
 LOOBJECT.NHPOSITION = 2
 LOOBJECT = LOGROUP.ADDITEM('field')
 LOOBJECT.CEXPRESSION = "'语文平均成绩:'+STR(nAveMark1)"
 LOOBJECT.NWIDTH = 25
 LOOBJECT.NHEIGHT = 1
 LOOBJECT.NVPOSITION = 1
 LOOBJECT.NHPOSITION = 22
 LOOBJECT = LOGROUP.ADDITEM('field')
 LOOBJECT.CEXPRESSION = "'数学平均成绩:'+STR(nAveMark2)"
 LOOBJECT.NWIDTH = 25
 LOOBJECT.NHEIGHT = 1
 LOOBJECT.NVPOSITION = 1
 LOOBJECT.NHPOSITION = 44
 LOPAGEFOOTER = LOREPORT.GETREPORTBAND('Page Footer')
 LOPAGEFOOTER.NHEIGHT = 4
 LOOBJECT = LOPAGEFOOTER.ADDITEM('field')
 LOOBJECT.CEXPRESSION = "'共'+STR(_PAGETOTAL)+'页    第'+STR(_PAGENO)+'页'"
 LOOBJECT.NWIDTH = 30
 LOOBJECT.NHEIGHT = 1
 LOOBJECT.NVPOSITION = 1
 LOOBJECT.NHPOSITION = 40
  LOREPORT.SAVE()
 REPORT FORM MyReport.frx PREVIEW
*


[ 本帖最后由 sylknb 于 2012-12-29 17:31 编辑 ]
搜索更多相关主题的帖子: always 
2012-12-29 17:29
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:4 
对报表.FRX文件的分析
  其实报表文件.FRX是一个表,其.FPT是一个备注库,其库结构和一般自由表没什么不同,都可以USE打开他的???.FRX,其字段总共有74项,分别介绍如下,希能给大家有所帮助:
 字段名称 类型 长度 小数 说明  
1 PLATFORM C 8 操作平台(_DOS或_WINDOWS)  
2 UNIQUEID C 10 唯一标识(当NAME合EXPR都为空时以_RHE开头, 否则以_RNR开头)  
3 TIMESTAMP N 10 时间标签(先后次序)  
4 OBJTYPE N 2 目标类型(1.环境; 2.数据库; 5.文字; 8.变量;9.TIMESTAMP为空; 23.TIMESTAMP为空)
5 OBJCODE N 3 目标代码(1.;4.;7.;53)  
6 NAME M 10 名称(数据库名称)  
7 EXPR M 10 表达式  
8 VPOS N 9 3 行座标  
9 HPOS N 9 3 列座标  
10 HEIGHT N 9 3 高度  
11 WIDTH N 9 3 宽度  
12 STYLE M 10 风格(透明,不透明)  
13 PICTURE M 10 格式或OLE文件名称  
14 ORDER M 10 索引排序  
15 UNIQUE L 1 唯一数据库(.F.,.T.,空)  
16 COMMENT M 10 注释  
17 ENVIRON L 1 是否报表运行环境(.T.时)  
18 BOXCHAR C 1 画框字符  
19 FILLCHAR C 1 表达式类型(C,N,D等,文字型的为空)  
20 TAG M 10 (当该记录为记录环境的记录时,该字段储存打印信息等;记录数据库时,储存数据库名称)  
21 TAG2 M 10 当该记录为记录环境的记录时,该字段储存打印控制等  
22 PENRED N 5 前景红  
23 PENGREEN N 5 前景绿  
24 PENBLUE N 5 前景蓝  
25 FILLRED N 5 填充红  
26 FILLGREEN N 5 填充绿  
27 FILLBLUE N 5 填充蓝  
28 PENSIZE N 5 划线宽度  
29 PENPAT N 5 指定填充图案(0.空;1.实体;2.水平;3.垂线;4.左  斜;5右斜;6.交叉;7.斜交叉)  
30 FILLPAT N 5 划线类型(0.无;1.点;2.虚线;3. 虚线-点;4. 虚线-点-点)  
31 FONTFACE M 10 字体类型  
32 FONTSTYLE N 3 字体风格  
33 FONTSIZE N 3 字体大小  
34 MODE N 3 模式  
35 RULER N 1 标尺(2-默认值,3-象素)  
36 RULERLINES N 1 标线宽度  
37 GRID L 1 是否显示网格线  
38 GRIDV N 2 垂直网格线刻度  
39 GRIDH N 2 水平网格线刻度  
40 FLOAT L 1 浮动  
41 STRETCH L 1 溢出时伸展  
42 STRETCHTOP L 1 相对于顶端伸展  
43 TOP L 1 相对于顶端固定  
44 BOTTOM L 1 相对于底端固定  
45 SUPTYPE N 1 控制类型  
46 SUPREST N 1 控制设置  
47 NOREPEAT L 1 每页都打印页标题  
48 RESETRPT N 2 重置报表  
49 PAGEBREAK L 1 每组从新的一页开始  
50 COLBREAK L 1 从新的一列开始  
51 RESETPAGE L 1 每组页号重新从1开始  
52 GENERAL N 3 通用  
53 SPACING N 3 空格  
54 DOUBLE L 1 是否加倍  
55 SWAPHEADER L 1 头互换  
56 SWAPFOOTER L 1 脚注互换  
57 EJECTBEFOR L 1 打印前走纸  
58 EJECTAFTER L 1 打印后走纸  
59 PLAIN L 1 指定只在报表开始位置出现页标题  
60 SUMMARY L 1 是否仅打印总计和分类总计信息  
61 ADDALIAS L 1 是否增加别名  
62 OFFSET N 3 偏移(0-左;1-右;2-居中)  
63 TOPMARGIN N 3 上边界高度  
64 BOTMARGIN N 3 下边界高度  
65 TOTALTYPE N 2 计算类型  
66 RESETTOTAL N 2 重置(1-表尾,2-页尾)  
67 RESOID N 3 源标识  
68 CURPOS L 1 是否显示当前位置  
69 SUPALWAYS L 1 是否打印重复值  
70 SUPOVFLOW L 1 当细节区数据溢出时到新页或新列打印  
71 SUPRPCOL N 1 当此列改变时打印  
72 SUPGROUP N 2 当此组改变时打印  
73 SUPVALCHNG L 1 若空行则删除  
74 SUPEXPR M 10 是否打印控制条件  
==============================  
Objtype Objcode Offset 含义  
5 0 文字  
8 0 表达式  
6 0 1 直线(水平线)  
6 0 0 直线(垂直线)  
7 4 矩形框(0~99椭圆)  
用于报表布局的控制的特征值列入下表:  
Objtype Objcode 含义  
9 0 页头高度  
9 1 页细节高度  
9 3 组标头高度  
9 4 组细节高度  
9 5 组脚注高度  
9 7 页脚注高度  
其他常用到的字段有:
①水平坐标(Hpos);
②宽度(Width);
③表达式类型(Fillchar);  
④字体(Fontface);
⑤对齐方式(Offset)。


文章出处:飞诺网(www.):http://www.

坚守VFP最后的阵地
2012-12-29 18:13
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
sdta:你提供的内容与上面的题目中的内容对不起来
2012-12-29 20:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
自己再仔细看看

坚守VFP最后的阵地
2012-12-29 20:53
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
用:
USE  MyReport.frx
BROWSE
对照自己的代码,与上面的内容比较一下,自己研究吧

坚守VFP最后的阵地
2012-12-29 20:56
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:4 
我想,
这个项目里,已经自定义一个EMPTY类,叫SFREPOBJ
类的属性:CREPORTFILE是报表的文件名,其他属性是报表的字段名加字段名类型,即CFONTNAME属性,就是字段FONTNAME加上这个字段的类型C。其他各属性类似。
类的方法:SAVE,就是把这些(除CREPORTFILE的)属性值保存到报表CREPORTFILE每一个字段里。
这样就把好多代码封装在这个类里了。
S版的表名,跟类的属性名是相对应的。现在你只要在你的项目里找到这个类定义就行了。

坚持学习vfp,QQ:306805680
2012-12-29 21:09
qshuju
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:217
专家分:112
注 册:2011-6-9
收藏
得分:4 
[em05]
2012-12-30 04:12
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
谢谢各位,我从以下的内容中得到了一些理介。现提供给大家,不知有否对大家的帮助。
 http://bbs.在这篇文章中讲的还比较细。
又附上中vfp9.0权威指南的一文,可都是英文,看不很明白。
repobj.rar (15.48 KB)
哪一位高手能否把它译成中文?
2012-12-30 11:47
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:4 
其实我感觉英文学好了就知道什么意思了

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-12-31 09:03
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
回复 8楼 sylknb
http://bbs.一文就是你那篇文章的翻译。人家已经翻译好了。
看来我的想法是对的。这个类名,就叫SFRepObj。
现在就是在你的工程里,你找到那个类定义后,自己再学习吧。
如果找到了,可以传上来,大家共享。

[ 本帖最后由 月沐庭轩 于 2012-12-31 10:10 编辑 ]

坚持学习vfp,QQ:306805680
2012-12-31 10:08
快速回复:请教各位高手:下面是用代码写与的报表文件.frx,里面的一些属性是什么 ...
数据加载中...
 
   



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

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