UI基础三:简单的BOL报表开发
巧了。。。刚好一个需求,就直接来撸起来吧。
需要做一个报表:
1.创建查询结构和结果结构
2.创建实施类:
SE24创建ZCL_JPEXPORT_ORDER_IL
更改父类:CL_WCF_GENIL_ABSTR_COMPONENT
重定义方法:GET_DYNAMIC_QUERY_RESULT
METHOD if_genil_appl_intlay~get_dynamic_query_result.TYPES:BEGIN OF ty_order,guid TYPE crmt_object_guid,object_id TYPE crmt_object_id_db,process_type TYPE crmt_process_type,END OF ty_order,BEGIN OF ty_product,product_guid TYPE comt_product_guid,product_id TYPE comt_product_id,short_text TYPE comt_prshtextx,END OF ty_product,BEGIN OF ty_part,guid_hi TYPE crmt_object_guid,addr_nr TYPE ad_addrnum,addr_type TYPE ad_adrtype,partner_fct TYPE crmt_partner_fct,END OF ty_part,BEGIN OF ty_adrc,addrnumber TYPE ad_addrnum,name1 TYPE ad_name1,smtp_addr TYPE ad_smtpadr,tel_number TYPE ad_tlnmbr1,street TYPE ad_street,str_suppl1 TYPE ad_strspp1,str_suppl2 TYPE ad_strspp2,post_code1 TYPE ad_pstcd1,city1 TYPE ad_city1,END OF ty_adrc.DATA: lt_selection TYPE axtt_tables_sel_param,ls_selection TYPE axt_tables_sel_param,rt_object_id TYPE RANGE OF crmt_object_id,rs_object_id LIKE LINE OF rt_object_id,rt_process_type TYPE RANGE OF crmt_process_type,rs_process_type LIKE LINE OF rt_process_type,rt_cgi_date TYPE RANGE OF zadtel00009q,rs_cgi_date LIKE LINE OF rt_cgi_date,rt_cgi_time TYPE RANGE OF zadtel00009u,rs_cgi_time LIKE LINE OF rt_cgi_time,lx_root TYPE REF TO cx_root. "#EC NEEDEDDATA:gt_order TYPE TABLE OF ty_order,gw_order LIKE LINE OF gt_order,gt_product TYPE TABLE OF ty_product,gw_product LIKE LINE OF gt_product,gt_part TYPE TABLE OF ty_part,vt_part TYPE TABLE OF ty_part,gw_part LIKE LINE OF gt_part,gt_adrc TYPE TABLE OF ty_adrc,gw_adrc LIKE LINE OF gt_adrc,gv_index TYPE i. " DATA ls_selection_paras TYPE genilt_selection_parameter.DATA lt_where_condition TYPE crmt_report_dyn_sql_line_ta.DATA: gt_result TYPE TABLE OF zcrms0056,vt_result TYPE TABLE OF zcrms0056,ls_result TYPE zcrms0056.DATA: lv_maxhit TYPE int4,lv_object_key TYPE crmt_bsp_objectkey,lr_object TYPE REF TO if_genil_cont_root_object.DEFINE set_result.LOOP AT GT_RESULT INTO LS_RESULT.LR_OBJECT = IV_ROOT_LIST->ADD_OBJECT( IV_OBJECT_NAME = 'ZTCRESULT'IS_OBJECT_KEY = LS_RESULT-GUID ).LV_OBJECT_KEY = LS_RESULT-GUID.LR_OBJECT->SET_KEY( LV_OBJECT_KEY ).LR_OBJECT->SET_ATTRIBUTES( LS_RESULT ).CLEAR LS_RESULT.ENDLOOP.END-OF-DEFINITION .lt_selection = it_selection_parameters. * SORT LT_SELECTION BY ATTR_NAME.LOOP AT lt_selection INTO ls_selection.CASE ls_selection-attr_name.WHEN 'ZZAFLD00001Y'.MOVE-CORRESPONDING ls_selection TO rs_cgi_time.INSERT rs_cgi_time INTO TABLE rt_cgi_time.WHEN 'PROCESS_TYPE'.MOVE-CORRESPONDING ls_selection TO rs_process_type.INSERT rs_process_type INTO TABLE rt_process_type.WHEN 'ZZAFLD00001X'.MOVE-CORRESPONDING ls_selection TO rs_cgi_date.INSERT rs_cgi_date INTO TABLE rt_cgi_date.ENDCASE.ENDLOOP.lv_maxhit = is_query_parameters-max_hits.SELECT b~guida~guid AS headera~po_number_solda~zzztrackreturna~zzafld000001b~zzafld00001x AS zzgi_dateb~description AS short_textINTO CORRESPONDING FIELDS OF TABLE gt_resultFROM zhsb_sales_index AS aINNER JOIN crmd_orderadm_i AS bON a~guid = b~headerWHERE a~process_type = 'ZSO5'AND a~sales_org = 'O 50000231'AND a~sold_to_party = '0000202693'AND b~zzafld00001x IN rt_cgi_dateAND b~zzafld00001y IN rt_cgi_timeAND b~itm_type = 'ZSO5'."取前置服务工单vt_result[] = gt_result[].DELETE vt_result WHERE po_number_sold IS INITIAL.IF vt_result[] IS NOT INITIAL.SELECT guidobject_idprocess_typeINTO TABLE gt_orderFROM zhsb_order_indexFOR ALL ENTRIES IN vt_resultWHERE object_id = vt_result-po_number_sold+0(10)AND process_type = 'ZSV1'.ENDIF."取合作伙伴ship toREFRESH:vt_result.vt_result[] = gt_result[].SORT vt_result BY header.DELETE ADJACENT DUPLICATES FROM vt_result COMPARING header.IF vt_result[] IS NOT INITIAL.SELECT crmd_link~guid_hicrmd_partner~addr_nrcrmd_partner~addr_typecrmd_partner~partner_fctINTO TABLE gt_partFROM crmd_linkINNER JOIN crmd_partnerON crmd_link~guid_set = crmd_partner~guidFOR ALL ENTRIES IN vt_resultWHERE crmd_link~guid_hi = vt_result-headerAND crmd_partner~partner_fct = '00000002'AND crmd_link~objtype_set = '07'."PARTNERREFRESH:vt_part.vt_part[] = gt_part[].SORT vt_part BY addr_nr.DELETE ADJACENT DUPLICATES FROM vt_part COMPARING addr_nr.IF vt_part[] IS NOT INITIAL.SELECT adrc~addrnumberadrc~name1adr6~smtp_addradrc~tel_numberadrc~streetadrc~str_suppl1adrc~str_suppl2adrc~post_code1adrc~city1INTO TABLE gt_adrcFROM adrcLEFT JOIN adr6ON adrc~addrnumber = adr6~addrnumberFOR ALL ENTRIES IN vt_partWHERE adrc~addrnumber = vt_part-addr_nr.REFRESH:vt_part.ENDIF.ENDIF.SORT gt_part BY guid_hi.SORT gt_adrc BY addrnumber.LOOP AT gt_result INTO ls_result.READ TABLE gt_order INTO gw_order WITH KEY object_id = ls_result-po_number_sold+0(10).IF sy-subrc <> 0.CONTINUE.ENDIF.ls_result-name2 = '固定值'."赋值联系人信息READ TABLE gt_part INTO gw_part WITH KEY guid_hi = ls_result-header BINARY SEARCH.IF sy-subrc = 0.READ TABLE gt_adrc INTO gw_adrc WITH KEY addrnumber = gw_part-addr_nr BINARY SEARCH.IF sy-subrc = 0.ls_result-tel_number = gw_adrc-tel_number.ls_result-post_code1 = gw_adrc-post_code1.ls_result-street = gw_adrc-street.ls_result-str_suppl1 = gw_adrc-str_suppl1.ls_result-name1 = gw_adrc-name1.ENDIF.ENDIF.MODIFY gt_result FROM ls_result.ENDLOOP.set_result.ENDMETHOD.
注意在处理Object key的时候一定不能有重复,不然会dump
3.创建BOL对象
t-code:GENIL_MODEL_BROWSER
创建结果对象
定义动态搜索对象:
到此对象创建完成,点击transport将对象数据添加到请求中
4.创建组件集:
5.创建搜索页面
T-CODE:BSP_WD_CMPWB
输入组件名:ZHSI_JPEXP点击创建
4.1添加BOL模型节点
点击:Runtime Repository Editor
点击编辑按钮
右键Model节点,添加model:ZJPEXP保存
4.2创建搜索页面:
转载于:https://www.cnblogs.com/sapSB/p/7723008.html
UI基础三:简单的BOL报表开发相关推荐
- 数据准备 ——报表开发中的深层次问题
前言 现在企业的报表开发大部分都使用报表工具完成,成熟的报表工具提供了丰富的显示设置.图表类型.导出打印等功能可以简化报表开发,非常方便.但在实际报表开发中还是经常碰到一些非常棘手的深层次问题,即使是 ...
- 你的报表工具会做数据准备吗 ——报表开发中的深层次问题
前言 现在企业的报表开发大部分都使用报表工具完成,成熟的报表工具提供了丰富的显示设置.图表类型.导出打印等功能可以简化报表开发,非常方便.但在实际报表开发中还是经常碰到一些非常棘手的深层次问题,即使是 ...
- iOS开发UI基础—手写控件,frame,center和bounds属性
iOS开发UI基础-手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...
- iPhone开发教程 UI基础课程(58课时)
qianqianlianmeng iPhone开发教程 UI基础课程(58课时) 第一章 iPhone开发入门 UI基础课程 第一章 iPhone开发入门 1.1 iOS概述和架构 ...
- iOS开发UI篇—UIWindow简单介绍
iOS开发UI篇-UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWi ...
- iOS开发UI篇—UITabBarController简单介绍
iOS开发UI篇-UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...
- iOS开发UI篇—Modal简单介绍
iOS开发UI篇-Modal简单介绍 一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展⽰出来 Modal的默认效果:新控制器从屏幕的 ...
- 三周一套报表开发系统,原来Excel的顶级替代品是它
老规矩,文末送模板! 报表是企业IT数据建设里必不可少的一环,可以说小到一张张出入单据,大到各个公司里的大屏看板等等,都是重要的数据资产. 像我这种程序员平日里也经常会遇到要做报表的情况,比如领导每月 ...
- 三天,我通过了Apsara Clouder基础技能认证:阿里巴巴Android开发规范
花费了三天时间学习了阿里巴巴 Android 开发规范,顺便通过了Apsara Clouder基础技能认证:阿里巴巴Android开发规范.证可能用处不大,但能反向push自己:1.注重代码规范,磨练 ...
最新文章
- 去掉动网广告“国内使用量最大的动网论坛”的方法
- python计算每月工资-Python实现扣除个人税后的工资计算器示例
- SCANF SCANF_S
- Spring boot中使用log4j记录日志
- 再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署...
- 2010-11-23 network virtualization papers(2)
- linux时间老是跳快6分钟,Linux超省时小技巧,让你原来要十分钟解决的问题现在只用一秒钟...
- java实现身份证号码的严格校验!
- 史上最全源码安装ROS-BUG解决集合2:在树莓派4B上安装Raspbian Bluster aarch64系统 + ROS-Melodic
- 灰度发布:灰度很简单,发布很复杂
- python基础趣讲精练_Python内置函数精讲精练 enumerate()
- 阿里云认证有什么用?考试费用高不高?
- SmartUplod中文乱码问题(已解决)
- 如何建立英文字符的哈希表
- 骷髅创意设计灵感_20种创意旅行应用程序设计,激发您的灵感
- 翁恺《零基础学习Java语言》作业答案 第1周到第7周
- 计算机技术发展作文,【推荐】科技发展作文三篇
- 好消息,发现一款知网学术不端论文检测查重助手,永久免费分享给大家使用
- 仙剑java_xianjian 仙剑游戏JAVA版源码,早期练习保存的资料 Develop 244万源代码下载- www.pudn.com...
- php esc p 打印,ESC/P 打印指令使用,3种票据打印方法(转)
热门文章
- ${pageContext.request.contextPath}的作用
- 2017年05月13日勒索软件, 勒索病毒(WannaCry)肆虐全球, 中国安全防线严重受挫
- 存储过程中is的含义
- 西门子1200 plc与台达14ES plc之间modbus 通讯实战程序 西门子1200plc做主站,台达DVP plc做从站,进行数据交换
- 产品化软件开发与项目化软件开发的对比
- 计算机记录乐器,2013年计算机考试题模拟考试2套题.doc
- 交通大数据应用场景——高速落地检
- Windows10搭建opengrok服务器
- qt编写网易云界面(3)----列表框的实现
- Python:绘制动态地图-pyecharts