壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4378|回复: 5

宝盛ERP中report模组的使用及开发(progress)

[复制链接]
发表于 2008/2/20 19:16:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
皮兄,我来给你增增人气.
以下文章版权所有,转载请注明出处:http://waterfrog.cn/?action=show&;id=127 哇哈哈.

REPORT模组使用
report模组为宝盛ERP的报表打印模组,其根据格式不同,共分五个模组类别:
reporta1.i 单档多笔连续报表模组
reporta2.i 头尾档多笔连续报表模组
reporta3.i 头尾档多笔一页一张报表模组
reporta4.i 头尾档多笔两页一张报表模组
reporta5.i 单档单笔连续报表模组

宝盛的report模组分两个部分,一个是报表的查询界面模组,其模组名为report.i;其二是打印模组,就是上面提到的五个模组,其逻辑为:

report.i生成查询条件的窗口,并在其中输入欲打印的条件 ==> 由其它打印模组根据条件进行打印

本文主要根据reporta1.i以程序syxx710来进行说明.

第一:报表打印的业务逻辑 报表打印大致遵循以下业务逻辑
1 确定需要打印的主表
2 确定需要打印的字段
3 确定需要打印资料的查询条件
4 将资料从表中取中并显示
select 语句表示既为 :
select 字段名 from 表名 where 条件
第二:查询界面report.i在用报表模组打印资料前,最终的筛选条件所使用的变量将在查询界面里面定义
如下查询界面

该查询界面只有一个查询条件,就是部门代号.
首先,定义一个这样子的form

FORM
"列印条件" COLON 38
SKIP(2)
/* 此处为自定义的部门代号的查询变量,该变量在程序syxx710里面进行声明 */
SYS77_WHSE COLON 40
SKIP(4)

/* 此处为输入设备的定义,该变量定义于各打印模组中 */
DEVICE AT ROW 15.3 COLUMN 6 DVNAM NO-LABEL '输出设备' COLON 77
WITH FRAME A1 THREE-D SIDE-LABELS NO-BOX ROW 2.4 COLUMN 1 WIDTH 91 FONT 0.


定义完form后再写主程序syxx710
其源代码如下:
{share.i} /* 该处为常用变量的引用,一般加上为宜 */
/* 该处定义我们需要的查询变量”部门代号”,该变量在form文件中使用,在打印模组中也需要使用,所以定义为shared var 类型 */
DEF NEW SHARED VAR SYS77_WHSE like dept_id.
/* 此处引用 report.i模组 */
{report.i
&qfld = "SYS77_WHSE" /* 该处定义查询条件所使用的变量,此处为自定义的部门代号 */
&qflds = " "
/*此处定义进入查询时所执行的程序,既按下F2时所执行的程序 */
&process = "RUN SYXX711.P."
&batchyn = "YES" /* 定义是否为批次作业 */
&begin-term = " "
&form-fle = "SYXX710" /* 该处为所引用的form文件,既我们刚才定义的form表单 */
&b1-button = " "
&defbtn-pos = " "
&sub-menu = " "
&menu-item = " "
&def-trigger = " "}

该程序的意思为: 我查询的报表使用的是syxx710.F这个表单文件,查询时的筛选条件为sys77_whse,查询后使用reporta1.i模组将结果打印出来时.

第三:查询结果的打印 syxx710这个表单提交后,将会调用syxx711.p这个程序来进行打印操作,而这个程序又将调用reporta1.i这个打印模组.
syxx711.p的源代码如下:
{share.i}

{reporta1.i
/* 此处用来定义模组所使用的变量,这里重申刚才在report.i中定义的变量 sys77_whse ,如有如需使用其它变量,亦可在这里定义*/
&def-var = "DEF SHARED VAR SYS77_WHSE like dept_id."
&prog-id = "syxx711" /* 此处为在报表中显示的程序名称,见下表处 */
&cop-nam = "'上海规矩仪器科技有限公司'" /* 此处为公司名称 */
&rpt-nam = "'员工资料档'" /* 此处定义报表名称 */
&rpt-typ = " "
&width-type = "3" /* 该处定义纸张宽度类型 */
&need-default-head = "yes" /* 定义是否打印报表的头部信息*/
&page-size = "66" /* 此处为一页所显示的行数 */
&file = "emp" /* 此处定义打印报表所使用的主档资料 */
/* 该处定义对主档资料的查询条件,select 语句后的where子句 */
&sel-term = "WHERE EMP_DEPT BEGINS SYS77_WHSE"
&break-term = " "
/* 这里定义的是在要报表中显示出来的字段或变量*/
&dis-fld = "EMP_NO EMP_NAM EMP_DEPT DEPT_NAM EMP_STA"
&pg-top = " "
&form-fld = "EMP_NO EMP_NAM EMP_DEPT DEPT_NAM EMP_STA"
/* 页尾要显示的资料,如果有多笔记录的话,将在页面的最底端显示这里定义的东西 */
&pg-bot = "仍有次页...'"
&begin-term = " "
&bfr-view-pg-top-bot = " "
/* 这里定义在报表显示之前所进行的操作,因为这里我们需要显示部门的名称,所以在这里对员工所属的部门名称进行查询,另外我们需要查询的结果是在职的员工,所以在这里把已离职的给过滤掉. */
&bfr-disp = " FIND DEPT WHERE DEPT_ID = EMP_DEPT NO-LOCK NO-ERROR.
IF EMP_STA <> '1' THEN NEXT. /*过滤已离职的员工 */
"
&aft-disp-bfr-down = " "
&aft-disp = " "
&end-term = " "
&last-page-hide-pg-bot = "yes" /* 在最后一页是否还显示刚才定义的&pg-bot,如此定义后,将在最后一页中不显示 “仍有次页...”这行字 */
&aft-output-close = " "
/* 此次定义供 &sel-term 使用的变量名,&sel-term中使用的变量,一定要在该处进行定义 */
&sel-var = "SYS77_WHSE"
&sel-var-form= "SYS77_WHSE"
}




查询结果如下




印表日期: 2008/02/20 上海規矩儀器科技有限公司 報表程式: syxx711
印表時間: 11:05:16 ========================
印表人員: admin 員工資料檔 頁 次: 1

員工職號 員工姓名 部門 部門名稱 狀態
-------- -------- -------- ---------- ----
SP02001 A130 資訊中心 1
SP02004 吳林鋒 A130 資訊中心 1
SP02007 陳璇 A130 資訊中心 1

篩選條件
========
部門代號: a130







            第四:其它 1:输入出设备的类型在sysa090里面的”打印组别”定义 ,p代表printer, w代表 word, e代表 excell
2:将自定义程序挂入作业流程,使用程序sysa460
3:程序所属目录可在sysa560中查询,然后将其在sysa090里面的所属目录维护既可.
4:程序编译使用程序sysa530进行,编译时包括子程序一并编译,并且该子程序需在sysa090里面定义.
5:程序权限设定通过sysa080进行.

[ 本帖最后由 readfor 于 2008-2-25 15:52 编辑 ]

report.pdf

177.54 KB, 下载次数: 23, 下载积分: 努力值 -5 点

该文pdf档

发表于 2009/3/10 13:02:48 | 显示全部楼层
谢谢哦 看看
发表于 2009/4/13 04:47:16 | 显示全部楼层
学习一下
发表于 2009/12/1 10:12:48 | 显示全部楼层
我的飒飒是倒萨
发表于 2009/12/2 14:58:51 | 显示全部楼层
谢谢了 重要的资料啊
发表于 2010/4/29 16:14:33 | 显示全部楼层
非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 22:03 , Processed in 0.020844 second(s), 17 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表