最新消息:本站持续更新中,请注意添加收藏夹。搜索关键词时,多换一个同义词。比如要搜索界面,可以尝试页面,画面,PER档等词汇。善于搜索,将大大提高你的查找效率。

【实习之T100开发】T100 Q查询开发流程

T100 ERP bron1984 2147浏览

很多步骤前面做过很多次了,就写的很省略,具体可以参见:

要求

QBE查询条件:

  • 订单单号 xmzyucdocno
  • 订单日期 xmzyucdocdt
  • 业务人员 xmzyuc001
  • 业务部门 xmzyuc002
  • 客户编号 xmzyuc003

数据订单页签:

  • 订单单号
  • 订单日期
  • 客户编号
    简称
  • 项次
  • 料号
    品名
    规格
  • 单位
    单位说明
  • 数量
  • 单价
  • 含税金额
  • 未税金额
  • 税额

1. azzi900建立程序代号cxmq666

在这里插入图片描述

2. azzi910建立作业代号cxmq666

在这里插入图片描述

3. 设计器 – 规格 – 下载规格 – 同时签出规格和程序

4. 设计器 – 常用工具 – r.a画面产生器 – 产生规格

r.a画面产生器(adzp168

  • 【样板类型】一定要选择Q查询作业
  • 列表模式资料浏览区块:可以选择左方QBE或者上方QBE,根据需求设定  在这里插入图片描述
  • 根据需求设定需要显示的字段,然后生成画面
    在这里插入图片描述

5. 设计器 – 规格 – 下载规格

6. 设计器 – 档案 – 开启档案,修改规格

【参考字段】设置

客户编号 – 交易对象简称
在这里插入图片描述
料号 – 品名
在这里插入图片描述
料号 – 规格
在这里插入图片描述
单位 – 说明
在这里插入图片描述

修改完成后,上传规格

7. 设计器 – 程序 – 下载程序,修改程序

设计器不产生【开窗】代码,需自己写

此时,cxmq666里面的内容是空的,设计器只会帮我们产生一个空的框架,里面的内容需要自己修改,包括 constuct查询 和 input输入 都需要自己写。

位置:xxx_ui_dialog → DIALOG → DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)

  • input输入,在#add-point:input段落 name=”ui_dialog.input”写input内容。
  • construct查询,在#add-point:construct段落 name=”ui_dialog.construct”里面写。
    在这里插入图片描述

这部分代码控制开窗:

#单号、单据日期、业务人员、业务部门、客户编号

CONSTRUCT BY NAME g_wc ON xmzyucdocno,xmzyucdocdt,xmzyuc001,xmzyuc002,xmzyuc003

ON ACTION controlp INFIELD xmzyucdocno

#add-point:ON ACTION controlp INFIELD xmzyucdocno name=”construct.c.xmzyucdocno”

#查询时开窗 add by lzy

INITIALIZE g_qryparam.* TO NULL

LET g_qryparam.state = ‘c’

LET g_qryparam.reqry = FALSE

CALL cq_xmzyucdocno() #呼叫開窗

#CALL q_ooba002_1()

DISPLAY g_qryparam.return1 TO xmzyucdocno #顯示到畫面上

NEXT FIELD xmzyucdocno #返回原欄位

 

ON ACTION controlp INFIELD xmzyuc001

#add-point:ON ACTION controlp INFIELD xmzyuc001 name=”construct.c.xmzyuc001″

#開窗c段

INITIALIZE g_qryparam.* TO NULL

LET g_qryparam.state = ‘c’

LET g_qryparam.reqry = FALSE

CALL q_ooag001() #呼叫開窗

DISPLAY g_qryparam.return1 TO xmzyuc001 #顯示到畫面上

NEXT FIELD xmzyuc001

 

ON ACTION controlp INFIELD xmzyuc002

#add-point:ON ACTION controlp INFIELD xmzyuc002 name=”construct.c.xmzyuc002″

#開窗c段

INITIALIZE g_qryparam.* TO NULL

LET g_qryparam.state = ‘c’

LET g_qryparam.reqry = FALSE

CALL q_ooeg001_9() #呼叫開窗

DISPLAY g_qryparam.return1 TO xmzyuc002 #顯示到畫面上

NEXT FIELD xmzyuc002 #返回原欄位

 

ON ACTION controlp INFIELD xmzyuc003

#add-point:ON ACTION controlp INFIELD xmzyuc003 name=”construct.c.xmzyuc003″

#開窗c段

INITIALIZE g_qryparam.* TO NULL

LET g_qryparam.state = ‘c’

LET g_qryparam.reqry = FALSE

CALL q_pmaa001_13() #呼叫開窗

DISPLAY g_qryparam.return1 TO xmzyuc003 #顯示到畫面上

NEXT FIELD xmzyuc003 #返回原欄位

END CONSTRUCT

根据construct获取条件组成g_wc,在b_fill修改

在#add-point:b_fill段rank_sql_after name=”b_fill.rank_sql_after”中修改:
在这里插入图片描述

LET ls_sql_rank = “SELECT UNIQUE ‘N’,xmzzucdocno,xmzzucseq,xmzyucdocdt,xmzyuc003,pmaal004,xmzzuc001,imaal003,imaal004,”,

“xmzzuc002,”,xmzzuc003,xmzzuc007,xmzzuc008,xmzzuc009,xmzzuc010″,

” FROM xmzyuc_t “,

” LEFT JOIN xmzzuc_t ON xmzyucent=xmzzucent AND xmzyucdocno=xmzzucdocno “,

” LEFT JOIN pmaal_t ON xmzyucent=pmaalent AND xmzyuc003=pmaal001 AND pmaal002='”,g_dlang,”‘”,

” LEFT JOIN imaal_t ON xmzzucent=imaalent AND xmzzuc001=imaal001 AND imaal002='”,g_dlang,”‘”,

” WHERE xmzyucent=?”,

” AND “, g_wc

LET ls_sql_rank = ls_sql_rank, cl_sql_add_filter(“xmzyuc_t”),

” ORDER BY xmzyuc_t.xmzyucdocno”

还需在 #add-point:b_fill段sql_after name=”b_fill.sql_after” 里修改:
在这里插入图片描述

如果画面上的栏位,不能用表里面的字段来表示,需要用自定义字段来接收的,可以在#add-point:b_fill段資料填充 name=”b_fill.fill”里面补充资料例如获取客户名称,数值计算等
在这里插入图片描述

#add-point:b_fill段資料填充 name=”b_fill.fill”

# [单位说明]的查询, add by lzy

SELECT oocal003 INTO g_xmzyuc_d[l_ac].xmzzuc002_desc FROM oocal_t

WHERE oocalent = g_enterprise

AND oocal001 = g_xmzyuc_d[l_ac].xmzzuc002

#end add-point

如果需求是有多页单身,那么需要在b_fill的函数里面根据画面的栏位写多条sql语句,具体可以参考axmq540标准程序的b_fill逻辑

8. azzi850 给程序授权

总结

Q查询开发流程不难,主要就是在 b_fill 中写SQL

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_43734095/article/details/113391746

转载请注明:赫非域 » 【实习之T100开发】T100 Q查询开发流程