VA02/VA03增加alv

news/2025/2/5 22:12:45/文章来源:https://www.cnblogs.com/chaguoguo/p/18316371

项目背景:

  搞备库单(新建一种类型的销售订单),备库单不出货(通过排程明细类别控制,也需要新增),正式销售订单创建时,备库单分配数量给正式SO,SO的排程明细类别也是新增的(不跑MRP),

创建后,如果备库单已有库存,则从备库单直接自动调拨库存到正式SO上,还有其它的一些增强还有控制,这里不说了。只能说这种需求能不做就尽量不做。后台作业太多了,各种错误都有。还得设置专门

修复错误的程序。

  这里贴上VA02显示分配的情况(自建表)

 

 

MODULE SHOW_BKD_DATA OUTPUT.
*  CHECK SY-UNAME EQ 'MISHM'.CHECK SY-TCODE EQ 'VA02' OR SY-TCODE EQ 'VA03'."
DEFINE %_SET_FCAT.CLEAR: GS_FIELDCAT.GS_FIELDCAT-FIELDNAME = &1.       "字段名称GS_FIELDCAT-COLTEXT   = &2.       "字段描述GS_FIELDCAT-REPTEXT   = &2.       "字段描述GS_FIELDCAT-SCRTEXT_S = &2.       "字段描述GS_FIELDCAT-SCRTEXT_M = &2.       "字段描述GS_FIELDCAT-SCRTEXT_L = &2.       "字段描述GS_FIELDCAT-HOTSPOT   = &3.       "单机敏感热点事件GS_FIELDCAT-KEY       = &4.       "关键字段GS_FIELDCAT-NO_ZERO   = &5.       "隐藏前导零GS_FIELDCAT-EDIT      = &6.       "可编辑GS_FIELDCAT-CHECKBOX  = &7.       "复选框GS_FIELDCAT-REF_TABLE = &8.       "参考表GS_FIELDCAT-REF_FIELD = &9.       "参考字段APPEND GS_FIELDCAT TO LT_FIELDCAT.END-OF-DEFINITION.DATA:
*       GV_CONTAINER TYPE REF TO CL_GUI_DOCKING_CONTAINER,GV_ALV           TYPE REF TO CL_GUI_ALV_GRID ,             "ALV网格GV_ROW_ALV       TYPE REF TO CL_GUI_ALV_GRID_BASE,GT_EXCLUDE       TYPE UI_FUNCTIONS,                        "用于去掉不要的菜单栏GV_INDEX_COLUMNS TYPE LVC_T_COL,                           "选择列LT_FIELDCAT      TYPE LVC_T_FCAT,                          "fcatGS_FIELDCAT      TYPE LVC_S_FCAT,                  "fcatGT_F4            TYPE LVC_T_F4 WITH HEADER LINE,           "搜索帮助GS_LAYOUT        TYPE LVC_S_LAYO ,                         "布局结构GS_VARIANT       TYPE DISVARIANT,                          "字段格式保存GT_SORT          TYPE LVC_T_SORT,                          "用于排序GT_INDEX         TYPE LVC_T_COL,                           "选择列GT_FILT          TYPE LVC_T_FILT.                          "用于过滤DATA:GT_NU3_ROWS TYPE LVC_T_ROW,GT_NU3_NO   TYPE  LVC_T_ROID,GS_NU3_NO   TYPE  LVC_S_ROID.DATA:GV_LINES TYPE I.DATA: BEGIN OF GT_EXCLTAB OCCURS 0, "隐藏工具栏按钮FCODE LIKE SY-UCOMM,END OF GT_EXCLTAB.DATA:G_CUSTOM_CONTAINER2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,G_CONTAINER2        TYPE SCRFNAME VALUE 'Z_BKD_ALV'.IF GV_ALV IS INITIAL .      "ALV对象如果为空,则生成对象,把ALV放入容器中CREATE OBJECT G_CUSTOM_CONTAINER2EXPORTINGCONTAINER_NAME = G_CONTAINER2.CREATE OBJECT GV_ALVEXPORTINGI_PARENT = G_CUSTOM_CONTAINER2.*    PERFORM FRM_PREPARE_LAYOUT       CHANGING GS_LAYOUT .        "获取样式GS_LAYOUT-NO_ROWMARK = 'X'.        "禁用行选择GS_LAYOUT-CWIDTH_OPT = 'X'.        "最优化宽度GS_LAYOUT-ZEBRA      = 'X'.        "间隔颜色(斑马线)GS_LAYOUT-STYLEFNAME = 'CELLTAB'.  "单元格可编辑控制字段GS_LAYOUT-CTAB_FNAME = 'CELLCOLOR'."颜色控制字段*    PERFORM FRM_BUILD_FIELDCAT .                                 "获取字段格式CLEAR:LT_FIELDCAT.%_SET_FCAT 'VKORG'      '銷售組織'                ''  ''  ''  ''  ''  'ZHMSBKALV'  'VKORG'.%_SET_FCAT 'ZVBELN'     '備庫單(虛擬SO)'          ''  ''  ''  ''  ''  'ZHMSBKALV'  'ZVBELN'.%_SET_FCAT 'ZPOSNR'     '備庫單(虛擬SO)行項目'    ''  ''  ''  ''  ''  'ZHMSBKALV'  'ZPOSNR'.%_SET_FCAT 'VBELN'      '正式銷售訂單'            ''  ''  ''  ''  ''  'ZHMSBKALV'  'VBELN'.%_SET_FCAT 'POSNR'      '正式銷售訂單行項目'      ''  ''  ''  ''  ''  'ZHMSBKALV'  'POSNR'.%_SET_FCAT 'MATNR'      '物料號碼'                ''  ''  ''  ''  ''  'ZHMSBKALV'  'MATNR'.%_SET_FCAT 'ZKWMENG_C'  '待調撥(冲销)数量'        ''  ''  ''  ''  ''  'ZHMSBKALV'  'ZKWMENG_C'.%_SET_FCAT 'ZKWMENG_F'  '分配的數量'              ''  ''  ''  ''  ''  'ZHMSBKALV'  'ZKWMENG_F'.*    PERFORM FRM_EXCLUDE_TB_FUNCTIONS CHANGING GT_EXCLUDE .       "去掉不用的菜单按钮DATA LS_EXCLUDE TYPE UI_FUNC.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_CUT .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_PRINT .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_MB_VIEW .APPEND LS_EXCLUDE TO GT_EXCLUDE.LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_INFO .APPEND LS_EXCLUDE TO GT_EXCLUDE.*    PERFORM FRM_EVENTLOAD .                                      "读取事件(总)DATA LV_EVENT_HANDLER TYPE REF TO LCL_EVENT_HANDLER .  "事件响应DATA:LT_F4 TYPE LVC_T_F4 WITH HEADER LINE. "F4帮助CREATE OBJECT LV_EVENT_HANDLER.
*
    IF GV_ALV IS NOT INITIAL."注册单元格可编辑事件CALL METHOD GV_ALV->SET_READY_FOR_INPUTEXPORTINGI_READY_FOR_INPUT = 1."注册回车触发单元格校验事件CALL METHOD GV_ALV->REGISTER_EDIT_EVENTEXPORTINGI_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTEREXCEPTIONSERROR      = 1OTHERS     = 2."注册鼠标移动触发单元格校验事件CALL METHOD GV_ALV->REGISTER_EDIT_EVENTEXPORTINGI_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIEDEXCEPTIONSERROR      = 1OTHERS     = 2."注册搜索帮助事件
*    lt_f4[] = VALUE #( ( fieldname = 'ZXSY'  register = 'X' getbefore = 'X' chngeafter = 'X' ) ).CALL METHOD GV_ALV->REGISTER_F4_FOR_FIELDSEXPORTINGIT_F4 = LT_F4[]."为ALV添加按钮SET HANDLER LV_EVENT_HANDLER->HANDLE_TOOLBAR FOR GV_ALV ."数据更新事件SET HANDLER LV_EVENT_HANDLER->HANDLE_DATA_CHANGED FOR GV_ALV."数据更新完成后事件SET HANDLER LV_EVENT_HANDLER->HANDLE_DATA_CHANGED_FINISHED FOR GV_ALV."单机事件SET HANDLER LV_EVENT_HANDLER->HANDLE_HOTSPOT_CLICK FOR GV_ALV."双击事件SET HANDLER LV_EVENT_HANDLER->HANDLE_DOUBLE_CLICK FOR GV_ALV."按钮触发前事件SET HANDLER LV_EVENT_HANDLER->HANDLE_BEFORE_USER_COMMAND FOR GV_ALV."搜索帮助事件SET HANDLER LV_EVENT_HANDLER->HANDLE_ONF4 FOR GV_ALV.DATA LV_EVENT_HANDLER1 TYPE REF TO LCL_EVENT_HANDLER .  "事件响应CREATE OBJECT LV_EVENT_HANDLER1.ENDIF.IF GT_ALV[] IS INITIAL.CASE VBAK-AUART.WHEN 'ZBK1'."備庫單SELECT *INTO CORRESPONDING FIELDS OF TABLE GT_ALVFROM ZHMTSDXH01WHERE ZVBELN EQ VBAK-VBELN. "備庫單
WHEN OTHERS."正式SOSELECT *INTO CORRESPONDING FIELDS OF TABLE GT_ALVFROM ZHMTSDXH01WHERE VBELN EQ VBAK-VBELN. "正式SOENDCASE.ENDIF.LOOP AT GT_ALV INTO GS_ALV.IF GS_ALV-ZFLAG EQ 'X'.GS_ALV-ZKWMENG_C = 0.ENDIF.MODIFY GT_ALV FROM GS_ALV .CLEAR GS_ALV.ENDLOOP.
*----------------------显示ALV--------------------------CLEAR GS_VARIANT.GS_VARIANT-REPORT = SY-REPID.GS_VARIANT-HANDLE = 9000.CALL METHOD GV_ALV->SET_TABLE_FOR_FIRST_DISPLAYEXPORTINGIS_LAYOUT                     = GS_LAYOUTIT_TOOLBAR_EXCLUDING          = GT_EXCLUDEIS_VARIANT                    = GS_VARIANTI_SAVE                        = 'A'CHANGINGIT_OUTTAB                     = GT_ALVIT_FIELDCATALOG               = LT_FIELDCATEXCEPTIONSINVALID_PARAMETER_COMBINATION = 0PROGRAM_ERROR                 = 0TOO_MANY_LINES                = 0OTHERS                        = 0.ELSE .CASE VBAK-AUART.WHEN 'ZBK1'."備庫單SELECT *INTO CORRESPONDING FIELDS OF TABLE GT_ALVFROM ZHMTSDXH01WHERE ZVBELN EQ VBAK-VBELN. "備庫單
WHEN OTHERS."正式SOSELECT *INTO CORRESPONDING FIELDS OF TABLE GT_ALVFROM ZHMTSDXH01WHERE VBELN EQ VBAK-VBELN. "正式SOENDCASE.LOOP AT GT_ALV INTO GS_ALV.IF GS_ALV-ZFLAG EQ 'X'.GS_ALV-ZKWMENG_C = 0.ENDIF.MODIFY GT_ALV FROM GS_ALV .CLEAR GS_ALV.ENDLOOP.*    PERFORM FRM_REFURBISH_ALV. "刷新ALVDATA:LS_STABLE TYPE LVC_S_STBL.CALL METHOD GV_ALV->SET_FRONTEND_LAYOUTEXPORTINGIS_LAYOUT = GS_LAYOUT.LS_STABLE-ROW = 'X'.LS_STABLE-COL = 'X'.CALL METHOD GV_ALV->REFRESH_TABLE_DISPLAYEXPORTINGIS_STABLE = LS_STABLEEXCEPTIONSFINISHED  = 0OTHERS    = 0.ENDIF .ENDMODULE.                    "SHOW_BKD_DATA OUTPUT
View Code

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/758811.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Folding Strip

第一次在考场中做出来的E题,rank也是来到了20,纪念一下,一定要相信自己呀 构造方法见官方题解,证明见下: 对于原始串\(s\),如果第一个(从左往右数)相同交界不折,选择折后面的交界,那么根据决策包容性,我们可以折一下第一个相同交界,答案不会更差,如下 如果不折第一…

【matplotlib】生成各种图表

一、场景工作中,可能需要使用脚本分析各种数据,并生成图表二、工具matplotlibhttps://matplotlib.org/stable/install/index.html三、安装python -m pip install -U pip python -m pip install -U matplotlib 四、生成图表 1、折线图import matplotlib.pyplot as plt# 准备数…

浅谈cookie和session

最近写了好多次登录注册的业务接口,那不免会听到session、cookie等概念。那么他们是什么呢?之间的关系?有啥作用呢?我这次终于好好捋清楚他们的关系了,这次做一次学习总结。关于用户信息存储相关的问题 背景 先讨论Session和Cookie,我们先了解其诞生的背景,毕竟需求推动…

施工行业必备:2024年值得选择的项目管理工具

国内外主流的10款施工项目进度管理软件对比:PingCode、Worktile、Contractor Foreman、建设工程项目管理平台(JSGC)、智慧工地综合管理系统、工程项目信息管理系统(GCXX)、Buildertrend、Procore、Autodesk Construction Cloud、Fieldwire、ClickUp、monday.com。在施工行…

spingboot 发布 https

1 进入jdk安装目录,我的是在C:\Program Files\Java\jdk1.8.0_311\bin 菜单栏 输入 cmd回车 2. 使用JDK自带的keytool工具生成ssl证书(这里注意JDK版本,版本向上兼容,高版本生成的密钥,不能用于低版本) keytool -genkey -alias gateway -storetype PKCS12 -keyalg RSA -ke…

thinkPHP/fastAdmin框架使用memcached缓存

1.安装memcached扩展: 2.重启PHP,在thinkPHP或者fastAdmin启用扩展(开放相应端口:例如11211) 在fastAdmin中,则需修改config.php里面的cache配置: 3.实际运行测试: 第一个信息正常显示说明运行成功,第二个显示false,说明缓存删除成功每天进步一点点

线性代数过滤的脏水

线性代数 向量 \(\to\),信息学中用形如 \[\begin{bmatrix}a_1\\a_2\\\vdots\\a_p\end{bmatrix} \]的矩阵来表示指向 \(\left(a_1,a_2,...,a_p\right)\) 的 \(p\) 维向量。 向量求和 直接就 \(\vec{a}+\vec{b}=\vec{c}\) 时满足 :投影 借用8分钟带你彻底弄懂《线性代数》-CSDN博…

谷歌为什么要用AIDL替代HIDL(HAL)?

谷歌为什么要用AIDL替代HIDL(HAL)?背景:官方:https://source.android.com/devices/architecture/aidl/aidl-hals.Google 在Android 11引入了AIDL for HALs,旨在代替HIDL原先的作用。在之后的Android版本推荐使用AIDL 实现Hal层的访问。这样做的原因,应该有以下几点:AIDL比…

Halcon的Blob分析

一、Blob分析流程及常用算子 1.基本步骤 Blob分析的基本步骤,这是一种理想状态,也是最基本的套路,获取图像->分割图像(区分前景像素和背景像素)->特征提取(比如面积、重心、旋转角度等)。 halcon代码实现如下: read_image(Image,‘particle’) threshold(Image, …

U454574

好奇怪的题,玩空洞的时候想到的,但原来草稿纸丢掉了qwq,懒,什么时候来补吧 看到这个很容易想到dp,设dp[i]为到第i个点的最小时间。然后用dp[i]更新后面。考虑判定如何从一个点走到另一个点。我们发现,平移原来的跳跃路径是没有关系的。通过数学方法和感新理解可以发现前面…

蓝牙H4传输层协议

蓝牙H4传输层协议蓝牙几种不同接口的传输协议:H2/H4/H5/BCSP/SDIO及区别 H2:基于USB的传输H4:基于五线UART(RX/TX/CTS/RTS/GND带硬件流控)的传输,最简单的传输方式,只在HCI raw data前面加上一个type;H5: 基于三线UART(RX/TX/GND)的传输,需要软件协议层加一个数据完整性校…