T100——查询 r类 报表开发流程

 

报表开发流程:
1、建立入口程序 如r类的作业:cxmr500
步骤:
azzi900中建立程序代号
azzi910中建立作业代号
设计器--规格--签出
设计器--程序--签出
adzp168(r.a)产生画面
设计器--规格--下载规格--修改规格--上传规格
设计器--程序--下载程序--修改程序--上传程序
azzi850中给程序赋权限

 

 

范例cxmr503,r.a后,画面等内容弄好后,代码上call报表子程序,具体见:

 

主要关注cxmr503_process函数:

   #add-point:process段前處理
IF cl_null(g_master.wc) THEN
    LET g_master.wc = '1=1'
END IF
LET g_master.wc = g_master.wc CLIPPED," AND xmdastus = 'Y' AND xmdaent = ",g_enterprise," AND xmdasite = '",g_site,"'"
CALL cxmr503_x01(g_master.wc)
   #end add-point

注意CALL cxmr503_x01(g_master.wc),这里要和cxmr503_x01里面的参数一致,一个就传入一个,两个就传入两个;

g_master.wc 是根据用户所选的条件进行组织(如CONSTRUCT),传入到cxmr503_x01后还会进行处理。

 在cxmr500的process函数中调用报表元件的代号,上传r类的程序;
然后就可以执行cxmr500,根据选择的条件进行打印。

 

 

到cxmr503_x01:

查询报表、凭证报表开发流程
azzi901 中建立报表的元件代号
查询报表x01结尾 例如:cxmr500_x01 如有多个:cxmr500_x02,cxmr500_x03 以此类推
凭证报表g01结尾 例如:cxmr500_g01 如有多个:cxmr500_g02,cxmr500_g03 以此类推

设计器--规格--签出
设计器--程序--签出
adzp188(报表元件设计器)中输入报表元件代号
根据需求选择报表类型、纸张设定(凭证报表才需要)、资料表、栏位、群组、筛选、参数、排版
产生4gl、产生4rp(凭证报表才需要)

设计器--程序--下载--上传
设计器--gr样板--下载样板--通过genero 打开--上传4rp

 

范例cxmr503_x01,具体见下截图:

 

 生成报表元件(4gl)后,下载程序,代码需要修改:

 

 

 

 

   #add-point:sel_prep g_order name="sel_prep.g_order"
LET g_where = " WHERE xmdaent=xmdcent AND xmdadocno=xmdcdocno ",
            " AND xmdcent=imaalent AND xmdc001=imaal001 AND imaal002='",g_dlang,"'",
            " AND xmda_t.xmdastus = 'Y' AND ",tm.wc CLIPPED
   #end add-point

 

 

 

 

 

 另外,我们可以在azzi300 里面给查询报表的格式进行相关设置:

 

 

 

效果:

 

posted @   AaronLi  阅读(2250)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示