REPORT z_barry_test_fieldsymols .
TYPE-POOLS: slis.
TABLES: mseg,mkpf.
DATA: gd_fieldcat TYPE slis_t_fieldcat_alv.
DATA: sla TYPE slis_layout_alv ,
ivariant LIKE disvariant,
i_repid LIKE sy-repid ,
i_excluding TYPE slis_t_extab.
TYPES: BEGIN OF ty_sum ,
werks LIKE mseg-werks ,
matnr LIKE mseg-matnr ,
lgort LIKE mseg-lgort ,
bwart LIKE mseg-bwart ,
menge LIKE mseg-menge ,
END OF ty_sum.
DATA : itab TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
DATA : hs_sum TYPE HASHED TABLE OF ty_sum
WITH UNIQUE KEY werks matnr lgort bwart WITH HEADER LINE .
DATA : itab_sum TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
TYPES: BEGIN OF ty_bwart ,
bwart LIKE mseg-bwart ,
END OF ty_bwart.
DATA : hs_bwart TYPE HASHED TABLE OF ty_bwart
WITH UNIQUE KEY bwart WITH HEADER LINE .
DATA : itab_bwart TYPE STANDARD TABLE OF ty_bwart WITH HEADER LINE .
FIELD-SYMBOLS: <f_fs1> ,
<f_out> TYPE STANDARD TABLE ,
<f_out_wa> .
DATA: max_count TYPE i ,
dy_out TYPE REF TO data ,
dy_out_wa TYPE REF TO data,
xfc TYPE lvc_s_fcat,
ifc TYPE lvc_t_fcat.
DATA: c(2) TYPE n ,
txt(20) TYPE c .
SELECT-OPTIONS: s_mblnr FOR mseg-mblnr ,
s_budat FOR mkpf-budat .
PARAMETERS: p_sum AS CHECKBOX .
START-OF-SELECTION.
PERFORM getdata.
PERFORM fixdata.
IF p_sum = 'X'.
PERFORM outdata.
ELSE.
PERFORM outdata2.
ENDIF.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
FORM getdata.
SELECT werks matnr lgort bwart menge INTO TABLE itab
FROM mkpf INNER JOIN mseg ON mkpf~mblnr = mseg~mblnr AND
mkpf~mjahr = mseg~mjahr
WHERE mkpf~mblnr IN s_mblnr AND
mkpf~budat IN s_budat .
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form FIXDATA
*&---------------------------------------------------------------------*
FORM fixdata.
DATA: index LIKE sy-tabix .
LOOP AT itab.
hs_sum = itab.
COLLECT hs_sum.
hs_bwart = itab-bwart .
COLLECT hs_bwart.
ENDLOOP.
SORT hs_bwart.
itab_bwart[] = hs_bwart[].
itab_sum[] = hs_sum[].
PERFORM creat_itab_out.
LOOP AT itab_sum.
ASSIGN COMPONENT 'WERKS' OF STRUCTURE <f_out_wa> TO <f_fs1>.
<f_fs1> = itab_sum-werks.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <f_out_wa> TO <f_fs1>.
<f_fs1> = itab_sum-matnr.
ASSIGN COMPONENT 'LGORT' OF STRUCTURE <f_out_wa> TO <f_fs1>.
<f_fs1> = itab_sum-lgort.
READ TABLE itab_bwart WITH KEY bwart = itab_sum-bwart .
index = sy-tabix + 3.
ASSIGN COMPONENT index OF STRUCTURE <f_out_wa> TO <f_fs1>.
<f_fs1> = itab_sum-menge.
ASSIGN COMPONENT 'LINE_SUM' OF STRUCTURE <f_out_wa> TO <f_fs1>.
<f_fs1> = itab_sum-menge.
COLLECT <f_out_wa> INTO <f_out> .
CLEAR <f_out_wa>.
ENDLOOP.
ENDFORM. " FIXDATA
*&---------------------------------------------------------------------*
*& Form outdata
*&---------------------------------------------------------------------*
FORM outdata.
PERFORM fieldcat_init .
sla-colwidth_optimize = 'X'.
sla-zebra = 'X'.
i_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_repid
it_fieldcat = gd_fieldcat[]
i_save = 'A'
is_variant = ivariant
is_layout = sla
it_excluding = i_excluding
* i_callback_user_command = 'USER_COMMAND'
TABLES
t_outtab = itab_sum
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " outdata
*---------------------------------------------------------------------*
* FORM fieldcat_init *
*---------------------------------------------------------------------*
FORM fieldcat_init .
PERFORM frm_catlg_set USING: 'WERKS' 'WERKS' 'X' ,
'MATNR' 'MATNR' 'X' ,
'LGORT' 'LGORT' 'X' ,
'BWART' 'BWART' '' ,
'MENGE' 'MENGE' '' .
ENDFORM. "fieldcat_init
*---------------------------------------------------------------------*
* FORM frm_catlg_set *
*---------------------------------------------------------------------*
FORM frm_catlg_set USING p_field
p_text
p_key.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
ls_fieldcat-fieldname = p_field.
ls_fieldcat-seltext_l = p_text.
ls_fieldcat-key = p_key.
IF p_field = 'LINE_SUM'.
ls_fieldcat-emphasize = 'C700'.
ENDIF.
APPEND ls_fieldcat TO gd_fieldcat .
CLEAR ls_fieldcat .
ENDFORM. "frm_catlg_set
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------*
*FORM user_command USING r_ucomm LIKE sy-ucomm
* rs_selfield TYPE slis_selfield.
* READ TABLE itab INDEX rs_selfield-tabindex.
* CASE r_ucomm.
* WHEN '&IC1'. "双击
*
* WHEN 'EXIT'.
* LEAVE PROGRAM.
* ENDCASE.
** rs_selfield-refresh = 'X'. "自动刷新
*ENDFORM. "user_com
*---------------------------------------------------------------------*
* FORM outdata2 *
*---------------------------------------------------------------------*
FORM outdata2.
PERFORM fieldcat_init2 .
sla-colwidth_optimize = 'X'.
sla-zebra = 'X'.
i_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_repid
it_fieldcat = gd_fieldcat[]
i_save = 'A'
is_variant = ivariant
is_layout = sla
it_excluding = i_excluding
TABLES
t_outtab = <f_out>
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " outdata
*---------------------------------------------------------------------*
* FORM fieldcat_init2 *
*---------------------------------------------------------------------*
FORM fieldcat_init2 .
CLEAR c .
PERFORM frm_catlg_set USING: 'WERKS' 'WERKS' 'X' ,
'MATNR' 'MATNR' 'X' ,
'LGORT' 'LGORT' 'X' .
LOOP AT hs_bwart .
c = c + 1.
CONCATENATE 'MENGE' c INTO txt.
PERFORM frm_catlg_set USING: txt hs_bwart-bwart '' .
ENDLOOP.
PERFORM frm_catlg_set USING: 'LINE_SUM' 'SUM' '' .
ENDFORM. "fieldcat_init
*---------------------------------------------------------------------*
* FORM creat_itab_out *
*---------------------------------------------------------------------*
FORM creat_itab_out.
CLEAR c.
PERFORM build_itab_stru USING: 'WERKS' 'MSEG' 'WERKS' ,
'MATNR' 'MSEG' 'MATNR' ,
'LGORT' 'MSEG' 'LGORT' .
LOOP AT hs_bwart.
c = c + 1.
CONCATENATE 'MENGE' c INTO txt.
PERFORM build_itab_stru USING: txt 'MSEG' 'MENGE' .
ENDLOOP.
PERFORM build_itab_stru USING: 'LINE_SUM' 'MSEG' 'MENGE' .
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = ifc
IMPORTING
ep_table = dy_out.
ASSIGN dy_out->* TO <f_out>.
CREATE DATA dy_out_wa LIKE LINE OF <f_out>.
ASSIGN dy_out_wa->* TO <f_out_wa>.
ENDFORM.
*---------------------------------------------------------------------*
* FORM build_itab_stru *
*---------------------------------------------------------------------*
FORM build_itab_stru USING fdname ref_t ref_f.
xfc-fieldname = fdname .
xfc-ref_table = ref_t.
xfc-ref_field = ref_f.
APPEND xfc TO ifc.
ENDFORM.
分享到:
相关推荐
以下是一些关于使用鼠标指针安装生成器的知识点: 1. **文件格式**:鼠标指针的图像文件通常是.ani(动画)或.cur(静态)格式。.ani文件用于动态指针,而.cur文件用于静态指针。生成器会处理这两种类型的文件,并...
因此,我们需要通过某种方式扩展这个范围,或者使用其他方法生成更大的随机数。 一种方法是通过位运算来组合多个`rand()`的输出。例如,我们可以生成4个16位的随机数,然后将它们合并成一个32位的数。为了做到这...
移植 Linux-X 鼠标指针到 Windows 系统需要经过四个步骤:使用 GIMP 生成鼠标指针图像,使用 Icon Craft 或 AWicons Pro 制作鼠标指针,使用“鼠标指针安装文件生成器 v2.0.exe”工具生成安装文件,最后使用 AWicons...
鼠标指针安装文件生成器一枚,在网络上寻找到一套十分符合自己心意的个性鼠标指针方案是一件美妙的事情,但当你解压之后才发现居然没有安装文件,这样显得无比郁闷,自己一个一个手动换那是一件非常麻烦的事情,但又...
这就需要一种能够精确检测和追踪指针位置的方法。Hough变换算法恰好为此提供了解决方案。Hough变换是一种在图像中检测直线的算法,它能够将图像空间中的像素点转换到参数空间中的直线。在指针式仪表的应用中,我们...
在训练过程中,会使用带有标注的图像数据集,其中包含了指针的位置信息(如中心坐标或角度)。这些标注数据通常由人工完成,或者通过自动化工具辅助生成。通过迭代训练,模型会学习到如何从图像中提取指针特征并确定...
标题中的“我用C#做的一个指针表盘控件”表明了这是一个使用C#编程语言开发的,专用于创建模拟指针式仪表盘的自定义控件。这种控件通常用于可视化显示如电压、电流、速度或温度等实时数据。在C#的标准工具箱中可能...
Linux 动态库的生成与使用 Linux 动态库是 Linux 操作系统中的一种重要组件,提供了一个灵活的方式来共享代码和资源。在本文中,我们将详细介绍 Linux 动态库的生成和使用。 动态库的生成 要生成动态库,需要使用...
在编程领域,函数指针和动态链接库是两个非常关键且实用的概念,它们在软件开发中扮演着重要的角色。下面将详细阐述这两个知识点及其在实际工程中的应用。 首先,我们来了解一下函数指针。函数指针是C/C++语言中的...
其次,无参数的函数指针的使用方法与ANSI C基本相同。例如: ```c void foo(void) { return; } int main(void) { void (*pf) (void) = foo; (*pf) (); return 0; } ``` 最后,带参数的函数指针一般来说,函数...
标题中的“使用元编程为空指针异常生成动态补丁”是一项程序修复技术,它涉及到元编程和空指针异常处理。元编程是编程的一种高级形式,允许程序在运行时修改自身的结构和行为。在这个场景中,元编程被用来动态生成...
5. **数组或容器**:如果你需要生成多个按钮,可以考虑使用数组或容器类(如std::vector)来存储按钮的指针。这样方便批量操作和事件处理。例如,可以为每个按钮创建一个事件处理器,然后在数组中遍历,将所有按钮的...
在C++中,我们可以使用虚函数和多态性来实现动态生成具有特定行为的对象。当一个基类指针指向派生类对象时,通过虚函数调用,可以实现对派生类特定方法的调用,即使在基类中并未定义这些方法。这样,我们可以在运行...
2. 使用创建指针_api生成自定义指针。 3. 在窗口创建或需要更改指针样式时,调用SetClassLong_api设置窗口的鼠标指针。 4. 当需要恢复系统默认指针或销毁窗口时,调用清除指针_api。 通过对易语言设置窗口动态鼠标...
本项目是一个基于PyTorch框架的文本摘要生成模型,使用了指针生成网络(PointerGenerator Network)的方法。该模型旨在通过训练学习如何从给定的文本中生成简洁、准确的摘要。 ## 项目的主要特性和功能 1. 数据...
对于指针读数,可能需要使用边缘检测算法(如Canny或Hough变换)来识别指针和刻度线,再利用形状识别和角度分析来确定指针的具体位置和指向的数值。 接着,图像识别算法,比如深度学习模型,如卷积神经网络(CNN)...
在Windows编程中,动态链接库(DLL)是一种重要的技术,它允许多个程序共享代码和数据。DLL中的类可以被其他程序使用,实现跨模块的复用。本篇将详细讲解DLL导出类的三种常见方法:导出接口类、导出类指针以及导出类...
基于中英文数据集的三个指针生成网络实验python源码.zip基于中英文数据集的三个指针生成网络实验python源码.zip基于中英文数据集的三个指针生成网络实验python源码.zip基于中英文数据集的三个指针生成网络实验python...
在指针时钟程序中,消息循环会检测并响应用户交互和定时器消息,调用相应的方法更新时钟状态。 6. **多线程编程**: 虽然不是必须,但为了确保时钟的平滑运行,开发者可能采用了多线程技术,让计时和界面更新在...
西门子动态密码程序:学习随机码生成与指针存储数据,Smartline触摸屏操作指南及编程视频教程,西门子动态密码程序:学习随机码生成与存储数据的...,西门子动态密码程序:触摸屏Smartline随机码生成与指针存储技术解析