报表开发小结
2010-03-08 14:36
246 查看
生产订单的系统状态、用户状态获取
系统状态是REL 用户状态是30的 符合条件
获取操作生产订单的用户名、操作时间:
删除重复数据
读取长文本
ALV FM 定义 选择方式
wa_layout-box_fieldname = 'SEL'.
ALV FM 定义 变色
wa_layout-info_fieldname = 'COLOR'.
ALV FM 定义 光标离开事件
1:声明
2:
3:
ALV FM 排序
ALV FM 表头HTML格式
获取登录系统的用户名称
打印:一式二联
SELECT SINGLE objnr INTO l_objnr FROM aufk WHERE aufnr = s_aufnr. IF l_objnr IS NOT INITIAL. CALL FUNCTION 'STATUS_READ' "读取系统状态 EXPORTING client = sy-mandt objnr = l_objnr only_active = 'X' TABLES status = i_status EXCEPTIONS object_not_found = 1 OTHERS = 2. "SELECT SINGLE stat FROM jest " INTO l_stat " WHERE objnr = gi_qh-objnr " AND stat LIKE 'E%' " AND inact NE 'X'. SELECT txt04 INTO TABLE l_txt FROM tj02t FOR ALL ENTRIES IN i_status WHERE istat = i_status-stat AND spras = '1'. IF l_txt[] IS NOT INITIAL. READ TABLE l_txt WITH KEY txt04 = 'REL'. "REL 状态 IF sy-subrc = '0'. SELECT tj30~stonr INTO TABLE l_stonr "读取用户状态 FROM tj30 INNER JOIN jsto ON jsto~stsma = tj30~stsma WHERE jsto~objnr = l_objnr AND tj30~stonr = '30'. IF sy-subrc <> '0'. ENDIF. ENDIF. ENDIF.
系统状态是REL 用户状态是30的 符合条件
获取操作生产订单的用户名、操作时间:
SELECT SINGLE estat FROM tj30 INTO l_estat1 WHERE stsma = l_stsma AND stonr = '26' . SELECT SINGLE MAX( chgnr ) FROM jcds "获取审核人名字 INTO l_chgnr WHERE objnr = gi_qh-objnr AND stat = l_estat1 AND inact = '' . IF l_chgnr IS NOT INITIAL . SELECT SINGLE usnam udate FROM jcds INTO (l_usnam, l_udate) WHERE chgnr = l_chgnr AND stat = l_estat1 AND objnr = gi_qh-objnr. CONCATENATE l_udate+0(4) '年' l_udate+4(2) '月' l_udate+6(2) '日' INTO gi_qh-shdate . IF l_usnam IS NOT INITIAL . SELECT SINGLE persnumber FROM usr21 INTO l_persnumber WHERE bname = l_usnam . IF l_persnumber IS NOT INITIAL . SELECT SINGLE name_last name_first FROM adrp INTO (l_name_last , l_name_first) WHERE persnumber = l_persnumber. CONCATENATE '负责人:' l_name_last l_name_first INTO gi_qh-shr . ENDIF. ENDIF. ENDIF.
删除重复数据
SORT i_datasec BY werks. DELETE ADJACENT DUPLICATES FROM i_datasec COMPARING werks.
读取长文本
DATA conc TYPE thead-tdname. DATA it_txt TYPE TABLE OF tline WITH HEADER LINE. DATA wa_stxh TYPE stxh. CONCATENATE sy-mandt gi_qh-aufnr INTO conc. SELECT SINGLE * FROM stxh CLIENT SPECIFIED INTO wa_stxh WHERE tdobject = 'AUFK' AND tdname = conc AND tdid = 'KOPF' AND tdspras = sy-langu. IF sy-subrc = 0. CALL FUNCTION 'READ_TEXT' EXPORTING id = 'KOPF' language = sy-langu name = conc object = 'AUFK' TABLES lines = it_txt. LOOP AT it_txt. DATA m TYPE i . m = STRLEN( it_txt-tdline ). IF m = 0 OR it_txt-tdline = space. CONTINUE. ENDIF. CONCATENATE gi_qh-ktext '' it_txt-tdline INTO gi_qh-ktext. ENDLOOP. CLEAR it_txt[] . ENDIF.
ALV FM 定义 选择方式
wa_layout-box_fieldname = 'SEL'.
ALV FM 定义 变色
wa_layout-info_fieldname = 'COLOR'.
ALV FM 定义 光标离开事件
1:声明
CLASS lcl_event_receiver DEFINITION. PUBLIC SECTION. METHODS: handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING er_data_changed. ENDCLASS. "lcl_event_receiver DEFINITION CLASS lcl_event_receiver IMPLEMENTATION. METHOD handle_data_changed . DATA: ls_good TYPE lvc_s_modi. PERFORM handle_data_changed USING er_data_changed. ENDMETHOD. "handle_data_changed ENDCLASS. "lcl_event_receiver IMPLEMENTATION DATA: it_events TYPE slis_t_event, wa_events LIKE LINE OF it_events. DATA: lr_grid TYPE REF TO cl_gui_alv_grid. DATA: g_event_receiver TYPE REF TO lcl_event_receiver.
2:
wa_events-name = 'CALLER_EXIT'. wa_events-form = 'FM_BUTTON'. APPEND wa_events TO it_events.
3:
*&---------------------------------------------------------------------* *& Form fm_button *&---------------------------------------------------------------------* * 光标离开 *----------------------------------------------------------------------* * -->E_GRID text *----------------------------------------------------------------------* FORM fm_button USING e_grid TYPE slis_data_caller_exit. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lr_grid. * 设置enter事件 CALL METHOD lr_grid->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_enter EXCEPTIONS error = 1 OTHERS = 2. * 设置data changed事件 CALL METHOD lr_grid->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified EXCEPTIONS error = 1 OTHERS = 2. CREATE OBJECT g_event_receiver. SET HANDLER g_event_receiver->handle_data_changed FOR lr_grid. ENDFORM. "FM_BUTTON *&---------------------------------------------------------------------* *& Form handle_data_changed *&---------------------------------------------------------------------* * 屏幕字段改变值后判断 *----------------------------------------------------------------------* * -->P_ER_DATA_CHANGED text *----------------------------------------------------------------------* FORM handle_data_changed USING p_er_data_changed TYPE REF TO cl_alv_changed_data_protocol. FIELD-SYMBOLS: <fs_mod_rows> TYPE STANDARD TABLE, <fs_cells> TYPE lvc_t_modi , <fs_cell_wa> TYPE lvc_s_modi , <fs> LIKE LINE OF i_data. DATA: i TYPE i. IF NOT p_er_data_changed->mp_mod_rows IS INITIAL. ASSIGN p_er_data_changed->mp_mod_rows->* TO <fs_mod_rows>. ASSIGN p_er_data_changed->mt_mod_cells TO <fs_cells>. LOOP AT <fs_mod_rows> ASSIGNING <fs>. IF <fs>-sbdmng > <fs>-mbdmng OR <fs>-sbdmng < '0'. READ TABLE <fs_cells> INDEX sy-tabix ASSIGNING <fs_cell_wa>. i = <fs_cell_wa>-row_id. LOOP AT i_data WHERE number = i. i_data-color = 'C610'. MODIFY i_data. CLEAR i_data. ENDLOOP. ELSE. READ TABLE <fs_cells> INDEX sy-tabix ASSIGNING <fs_cell_wa>. i = <fs_cell_wa>-row_id. LOOP AT i_data WHERE number = i. i_data-color = ''. i_data-result = ''. MODIFY i_data. CLEAR i_data. ENDLOOP. ENDIF. ENDLOOP. CALL METHOD lr_grid->refresh_table_display. ENDIF. ENDFORM. "handle_data_changed
ALV FM 排序
*声明 DATA it_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE . *使用 CLEAR it_sort . it_sort1-fieldname = 'LGOBE' . it_sort1-spos = '4' . it_sort1-up = 'X'. it_sort1-subtot = 'X'. APPEND it_sort .
ALV FM 表头HTML格式
CALL METHOD p_cl_dd->html_insert EXPORTING contents = m_buffer CHANGING position = m_p. CALL METHOD p_cl_dd->add_text( text = text1 ). CALL METHOD p_cl_dd->add_gap( width = 20 ). CALL METHOD p_cl_dd->new_line.
获取登录系统的用户名称
SELECT SINGLE adrp~name_first adrp~name_last INTO (name_first,name_last) FROM adrp INNER JOIN usr21 ON adrp~persnumber = usr21~persnumber WHERE usr21~bname = sy-uname . IF sy-subrc = 0 . CONCATENATE name_last name_first INTO l_name . ELSE . l_name = sy-uname . ENDIF.
打印:一式二联
data: wa_printoption TYPE ssfcompop, wa_ctrl TYPE ssfctrlop, wa_archive_index TYPE toa_dara, wa_archive_index_tab TYPE tsfdara, wa_archive_parameters TYPE arc_params, fm_name TYPE rs38l_fnam. wa_ctrl-preview = ''. wa_ctrl-no_dialog = ''. wa_ctrl-no_open = 'X'. wa_ctrl-no_close = 'X'. CALL FUNCTION 'SSF_OPEN' EXPORTING control_parameters = wa_ctrl. "若是一个smart 只要调用2次 CALL FUNCTION fm_name 就可达到打印一式二联的效果, 代码省略 CALL FUNCTION 'SSF_CLOSE' .
相关文章推荐
- Java报表开发技术—JasperReports开发流程
- 使用C#和Excel进行报表开发(七)-设置单元格的显示格式
- Asp.net使用RDLC开发报表(一)
- DSP开发小结
- ASP.NET网站开发小结
- git版本控制开发流程小结笔记(一)
- Phonegap + HTML5 开发经验小结
- 报表SQL存储过程开发的十条军规
- ERP浅谈之报表开发上
- php持续开发集成中的常用几个工具小结
- android绘制报表开发笔记----aChartEngine图表显示(2)
- 银行满意度考核打分系统开发小结
- 使用C#和Excel进行报表开发(三)-生成统计图(Chart)
- 使用C#和Excel进行报表开发(七)-设置单元格的显示格式
- 敏捷开发智慧敏捷系列之六:之一~之五的小结
- android(MTK)开发中一些问题小结
- 将Excel应用于报表开发中(一)--开始
- JavaSSM学习小结(3):Service层开发
- 报表引擎API开发入门—带参程序数据集
- AgileEAS.NET平台开发实例-药店系统-报表开发(下)