1. *&---------------------------------------------------------------------*
  2. *& Report ZRHSSD002
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&create by ly 20170123
  6. *&for Inventory count input MI04
  7. *&
  8. *& DEVK940966 2017.01.23 16:59:32 LIYUAN
  9. *&---------------------------------------------------------------------*
  10.  
  11. REPORT ZRHSSD002 MESSAGE-ID ZCRM.
  12.  
  13. "INVENTROY HEAD DATA TABLE
  14. TABLES:IKPF.
  15.  
  16. TYPE-POOLS:SLIS.
  17.  
  18. TYPES:BEGIN OF TY_ITAB,
  19. SEL(),
  20. ICON(),
  21. MESSAGE(),
  22. MATNR TYPE ISEG-MATNR,
  23. CHARG TYPE ISEG-CHARG,
  24. ERFMG TYPE ISEG-ERFMG,
  25. ERFME TYPE ISEG-ERFME,
  26. END OF TY_ITAB.
  27.  
  28. "Inventory item data itab
  29. DATA:GT_ITEM TYPE TABLE OF BAPI_PHYSINV_ITEM,
  30. GW_ITEM LIKE LINE OF GT_ITEM,
  31. GW_HEAD TYPE BAPI_PHYSINV_HEAD,
  32. GT_RETURN TYPE TABLE OF BAPIRET2,
  33. GW_RETURN LIKE LINE OF GT_RETURN,
  34. GT_ITEM_INPUT TYPE TABLE OF BAPI_PHYSINV_COUNT_ITEMS,
  35. GW_ITEM_INPUT LIKE LINE OF GT_ITEM_INPUT.
  36. DATA:GT_EXCEL_T TYPE ALSMEX_TABLINE OCCURS WITH HEADER LINE,
  37. GS_EXCEL_T LIKE LINE OF GT_EXCEL_T.
  38. DATA:GT_FIELDCAT TYPE LVC_T_FCAT.
  39. DATA GS_FIELDCAT LIKE LINE OF GT_FIELDCAT.
  40. DATA LS_LAYOUT TYPE LVC_S_LAYO.
  41. DATA:GT_ITAB TYPE TABLE OF TY_ITAB,
  42. GW_ITAB LIKE LINE OF GT_ITAB.
  43. DATA:LV_S TYPE STRING,
  44. LV_N TYPE STRING VALUE '0123456789.-'.
  45. DATA:GV_FM TYPE C."GL VALUE FOR DIFF FM.
  46.  
  47. DEFINE APPEND_FIELDCAT .
  48. CLEAR GS_FIELDCAT.
  49. GS_FIELDCAT-FIELDNAME = &.
  50. GS_FIELDCAT-SCRTEXT_L = &.
  51. GS_FIELDCAT-OUTPUTLEN = &.
  52. GS_FIELDCAT-NO_ZERO = &.
  53. APPEND GS_FIELDCAT TO GT_FIELDCAT.
  54. END-OF-DEFINITION.
  55.  
  56. SELECTION-SCREEN BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-.
  57. PARAMETERS:P_IBLNR TYPE IKPF-IBLNR OBLIGATORY MEMORY ID IBN,
  58. P_GJAHR TYPE IKPF-GJAHR OBLIGATORY DEFAULT SY-DATUM+(),
  59. P_DATE TYPE IIKPF-ZLDAT OBLIGATORY DEFAULT SY-DATUM,
  60. P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
  61. SELECTION-SCREEN END OF BLOCK BLK01.
  62.  
  63. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  64. PERFORM FRM_GET_FILEPATH.
  65.  
  66. START-OF-SELECTION.
  67. CLEAR:GV_FM.
  68. PERFORM PRM_DATA_CHECK.
  69. PERFORM PRM_UPLOAD.
  70. PERFORM PRM_SET_FIELD.
  71. PERFORM PRM_SHOW.
  72.  
  73. *&---------------------------------------------------------------------*
  74. *& Form FRM_GET_FILEPATH
  75. *&---------------------------------------------------------------------*
  76. * text
  77. *----------------------------------------------------------------------*
  78. * --> p1 text
  79. * <-- p2 text
  80. *----------------------------------------------------------------------*
  81. FORM FRM_GET_FILEPATH .
  82. CALL FUNCTION 'WS_FILENAME_GET'
  83. EXPORTING
  84. MASK = ',Excel(*.xls),*.XLS,*.XLSX,'
  85. TITLE = text-
  86. IMPORTING
  87. FILENAME = P_FILE
  88. EXCEPTIONS
  89. INV_WINSYS =
  90. NO_BATCH =
  91. SELECTION_CANCEL =
  92. SELECTION_ERROR =
  93. OTHERS = .
  94. IF SY-SUBRC <> .
  95. MESSAGE S000 DISPLAY LIKE 'E'."(ZCRM) TYPE 'S' DISPLAY LIKE 'E'.
  96. LEAVE LIST-PROCESSING.
  97. ENDIF.
  98. ENDFORM. "FRM_GET_FILEPATH
  99. *&---------------------------------------------------------------------*
  100. *& Form PRM_DATA_CHECK
  101. *&---------------------------------------------------------------------*
  102. * text
  103. *----------------------------------------------------------------------*
  104. * --> p1 text
  105. * <-- p2 text
  106. *----------------------------------------------------------------------*
  107. FORM PRM_DATA_CHECK .
  108.  
  109. CALL FUNCTION 'BAPI_MATPHYSINV_GETDETAIL'
  110. EXPORTING
  111. PHYSINVENTORY = P_IBLNR
  112. FISCALYEAR = P_GJAHR
  113. IMPORTING
  114. HEAD = GW_HEAD
  115. TABLES
  116. ITEMS = GT_ITEM
  117. RETURN = GT_RETURN.
  118.  
  119. READ TABLE GT_RETURN INTO GW_RETURN WITH KEY TYPE = 'E'.
  120. IF SY-SUBRC = .
  121. MESSAGE GW_RETURN-MESSAGE TYPE 'S' DISPLAY LIKE 'E'.
  122. LEAVE LIST-PROCESSING.
  123. ENDIF.
  124.  
  125. IF GW_HEAD-DELETE_STATUS = 'X'.
  126. MESSAGE S001 DISPLAY LIKE 'E'.
  127. LEAVE LIST-PROCESSING.
  128. ENDIF.
  129.  
  130. IF GW_HEAD-FREEZEBOOKINV = 'X'.
  131. MESSAGE S002 DISPLAY LIKE 'E'.
  132. LEAVE LIST-PROCESSING.
  133. ENDIF.
  134.  
  135. SORT GT_ITEM[] BY MATERIAL.
  136.  
  137. ENDFORM. "PRM_DATA_CHECK
  138. *&---------------------------------------------------------------------*
  139. *& Form PRM_UPLOAD
  140. *&---------------------------------------------------------------------*
  141. * text
  142. *----------------------------------------------------------------------*
  143. * --> p1 text
  144. * <-- p2 text
  145. *----------------------------------------------------------------------*
  146. FORM PRM_UPLOAD .
  147. IF P_FILE IS NOT INITIAL.
  148. *将excel数据传入内表
  149. CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
  150. EXPORTING
  151. FILENAME = P_FILE
  152. I_BEGIN_COL = ''
  153. I_BEGIN_ROW = ''
  154. I_END_COL = ''
  155. I_END_ROW = ''
  156. TABLES
  157. INTERN = GT_EXCEL_T.
  158. ENDIF.
  159. IF GT_EXCEL_T[] IS INITIAL.
  160. MESSAGE S003 DISPLAY LIKE 'E'.
  161. LEAVE LIST-PROCESSING.
  162. ENDIF.
  163.  
  164. LOOP AT GT_EXCEL_T INTO GS_EXCEL_T.
  165. AT NEW ROW.
  166. CLEAR:GW_ITAB.
  167. ENDAT.
  168.  
  169. CASE GS_EXCEL_T-COL.
  170. WHEN ."MATNR
  171. GW_ITAB-MATNR = GS_EXCEL_T-VALUE.
  172. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  173. EXPORTING
  174. INPUT = GW_ITAB-MATNR
  175. IMPORTING
  176. OUTPUT = GW_ITAB-MATNR.
  177.  
  178. READ TABLE GT_ITEM INTO GW_ITEM WITH KEY MATERIAL = GW_ITAB-MATNR BINARY SEARCH.
  179. IF SY-SUBRC = .
  180. IF GW_ITEM-QUANTITY <> .
  181. GV_FM = ''."CHANGE MODE
  182. * GW_ITAB-MESSAGE = text-008.
  183. * GW_ITAB-ICON = '@0A@'.
  184. ENDIF.
  185. ELSE.
  186. GW_ITAB-MESSAGE = text-.
  187. GW_ITAB-ICON = '@0A@'.
  188. ENDIF.
  189. WHEN ."ERFMG
  190. CLEAR:LV_S.
  191. LV_S = GS_EXCEL_T-VALUE.
  192. IF LV_S CO LV_N.
  193. GW_ITAB-ERFMG = GS_EXCEL_T-VALUE.
  194. ELSE.
  195. GW_ITAB-MESSAGE = text-.
  196. GW_ITAB-ICON = '@0A@'.
  197. ENDIF.
  198. WHEN ."CHARG
  199. GW_ITAB-CHARG = GS_EXCEL_T-VALUE.
  200. WHEN OTHERS.
  201. ENDCASE.
  202.  
  203. AT END OF ROW.
  204. APPEND GW_ITAB TO GT_ITAB.
  205. ENDAT.
  206. ENDLOOP.
  207. ENDFORM. "PRM_UPLOAD
  208. *&---------------------------------------------------------------------*
  209. *& Form PRM_SET_FIELD
  210. *&---------------------------------------------------------------------*
  211. * text
  212. *----------------------------------------------------------------------*
  213. * --> p1 text
  214. * <-- p2 text
  215. *----------------------------------------------------------------------*
  216. FORM PRM_SET_FIELD .
  217. REFRESH GT_FIELDCAT.
  218. LS_LAYOUT-CWIDTH_OPT = 'X'. "优化列宽选项是否设置
  219. LS_LAYOUT-ZEBRA = 'X'.
  220. LS_LAYOUT-BOX_FNAME = 'SEL'.
  221. APPEND_FIELDCAT:'ICON' TEXT- '',
  222. 'MESSAGE' TEXT- '',
  223. 'MATNR' TEXT- 'X',
  224. 'ERFMG' TEXT- 'X'.
  225. * 'CHARG' TEXT-006 17 'X'.
  226. ENDFORM. "PRM_SET_FIELD
  227. *&---------------------------------------------------------------------*
  228. *& Form PRM_SHOW
  229. *&---------------------------------------------------------------------*
  230. * text
  231. *----------------------------------------------------------------------*
  232. * --> p1 text
  233. * <-- p2 text
  234. *----------------------------------------------------------------------*
  235. FORM PRM_SHOW .
  236. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  237. EXPORTING
  238. I_CALLBACK_PROGRAM = SY-REPID
  239. IS_LAYOUT_LVC = LS_LAYOUT
  240. IT_FIELDCAT_LVC = GT_FIELDCAT[]
  241. I_CALLBACK_PF_STATUS_SET = 'PRM_SET_STATUS'
  242. I_CALLBACK_USER_COMMAND = 'PRM_USER_COMMAND'
  243. * i_grid_title = lv_title
  244. I_DEFAULT = 'X'
  245. I_SAVE = 'A'
  246. TABLES
  247. T_OUTTAB = GT_ITAB
  248. EXCEPTIONS
  249. PROGRAM_ERROR =
  250. OTHERS = .
  251. IF SY-SUBRC <> .
  252. ENDIF.
  253. ENDFORM. "PRM_SHOW
  254. *&---------------------------------------------------------------------*
  255. *& Form PRM_SET_STATUS
  256. *&---------------------------------------------------------------------*
  257. * text
  258. *----------------------------------------------------------------------*
  259. * -->RT_EXTAB text
  260. *----------------------------------------------------------------------*
  261. FORM PRM_SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB..
  262. SET PF-STATUS 'ZSTAT'.
  263. ENDFORM. "PRM_SET_STATUS
  264. *&---------------------------------------------------------------------*
  265. *& Form PRM_USER_COMMAND
  266. *&---------------------------------------------------------------------*
  267. * text
  268. *----------------------------------------------------------------------*
  269. * -->P_UCOMM text
  270. * -->P_SELFIELD text
  271. *----------------------------------------------------------------------*
  272. FORM PRM_USER_COMMAND USING P_UCOMM LIKE SY-UCOMM
  273. P_SELFIELD TYPE SLIS_SELFIELD.
  274. DATA:LR_GRID TYPE REF TO CL_GUI_ALV_GRID.
  275. CHECK P_UCOMM EQ 'EXCU'.
  276.  
  277. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
  278. IMPORTING
  279. E_GRID = LR_GRID.
  280.  
  281. CLEAR:GT_ITEM_INPUT[],GW_ITEM_INPUT,GT_RETURN[],GW_RETURN.
  282.  
  283. LOOP AT GT_ITAB INTO GW_ITAB WHERE SEL = 'X' AND ICON = ''.
  284. READ TABLE GT_ITEM INTO GW_ITEM WITH KEY MATERIAL = GW_ITAB-MATNR BINARY SEARCH.
  285. IF SY-SUBRC = .
  286. GW_ITEM_INPUT-ITEM = GW_ITEM-ITEM.
  287. GW_ITEM_INPUT-MATERIAL = GW_ITEM-MATERIAL.
  288. GW_ITEM_INPUT-BATCH = GW_ITEM-BATCH.
  289. GW_ITEM_INPUT-ENTRY_QNT = GW_ITAB-ERFMG.
  290. IF GW_ITEM_INPUT-ENTRY_QNT = .
  291. GW_ITEM_INPUT-ZERO_COUNT = 'X'.
  292. ENDIF.
  293. GW_ITEM_INPUT-ENTRY_UOM = GW_ITEM-ENTRY_UOM.
  294. APPEND GW_ITEM_INPUT TO GT_ITEM_INPUT.
  295. CLEAR:GW_ITEM_INPUT.
  296. ENDIF.
  297. ENDLOOP.
  298.  
  299. IF GT_ITEM_INPUT[] IS INITIAL.
  300. MESSAGE text- TYPE 'S' DISPLAY LIKE 'E'.
  301. LEAVE LIST-PROCESSING.
  302. ELSE.
  303. IF GV_FM IS INITIAL.
  304. CALL FUNCTION 'BAPI_MATPHYSINV_COUNT'
  305. EXPORTING
  306. PHYSINVENTORY = P_IBLNR
  307. FISCALYEAR = P_GJAHR
  308. COUNT_DATE = P_DATE
  309. TABLES
  310. ITEMS = GT_ITEM_INPUT
  311. RETURN = GT_RETURN.
  312. ELSE.
  313. CALL FUNCTION 'BAPI_MATPHYSINV_CHANGECOUNT'
  314. EXPORTING
  315. PHYSINVENTORY = P_IBLNR
  316. FISCALYEAR = P_GJAHR
  317. TABLES
  318. ITEMS = GT_ITEM_INPUT
  319. RETURN = GT_RETURN.
  320. ENDIF.
  321.  
  322. READ TABLE GT_RETURN INTO GW_RETURN WITH KEY TYPE = 'E'.
  323. IF SY-SUBRC <> .
  324. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  325. EXPORTING
  326. WAIT = 'X'.
  327.  
  328. LOOP AT GT_ITAB INTO GW_ITAB WHERE SEL = 'X' AND ICON = ''.
  329. GW_ITAB-ICON = '@08@'.
  330. GW_ITAB-MESSAGE = text-.
  331. MODIFY GT_ITAB FROM GW_ITAB.
  332. ENDLOOP.
  333. ELSE.
  334. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  335. READ TABLE GT_RETURN INTO GW_RETURN WITH KEY TYPE = 'E'.
  336. IF SY-SUBRC = .
  337. * MESSAGE GW_RETURN-MESSAGE TYPE 'S' DISPLAY LIKE 'E'.
  338. LOOP AT GT_ITAB INTO GW_ITAB WHERE SEL = 'X' AND ICON = ''.
  339. GW_ITAB-ICON = '@0A@'.
  340. GW_ITAB-MESSAGE = GW_RETURN-MESSAGE.
  341. MODIFY GT_ITAB FROM GW_ITAB.
  342. ENDLOOP.
  343. ENDIF.
  344. ENDIF.
  345. ENDIF.
  346.  
  347. CALL METHOD LR_GRID->REFRESH_TABLE_DISPLAY.
  348. ENDFORM. "PRM_USER_COMMAND

MI04 盘点单数据录入的更多相关文章

  1. 汉码盘点机PDA无缝对接思迅思迅盘点机思迅条码数据采集器批号商品盘点的方法

    1.1.    盘点批号 如果某些商品进行了批号管理,我们不仅仅要清点什么商品总数有多少个,我们还要区分该商品的某个批号有多少个数量,因此以前批号盘点工作量是非常大的. 我们的盘点机PDA支持批号盘点 ...

  2. haohantechsoft-PDA软件,PDA管理软件,PDA管理系统,仓库PDA销售开单盘点软件

    为了更好服务于广大服装客户群体进行销售.盘点.调拨配送等.推出基于无线网络版移动PDA销售开单盘点软件系统.该系统支持无线3G.WIFI.GPRS系统,用户可以手持PDA在无线网络连接状态下进行销售. ...

  3. OCEANIAERP对接-code盘点机并存储实时库存计划和方案的使用,实时库存,云清查方案

    1.     PDA手持设备按键说明 [Tab]键:使输入焦点在控件上切换. [ESC]键:弹出是否退出确认对话框,退出操作界面或程序. [OK]键:确认输入或选择,进入下一步操作. [C]键:删除键 ...

  4. 金蝶盘点机PDA条码数据采集器WMS系统具体有哪些功能

    1.  使用汉码盘点机PDA实现仓库条码管理的好处 (1)  传统电脑管理软件出入库需要来回电脑跑人工手工电脑录单效率低,通过人眼识别商品品种和清点商品数量,容易造成录单错误.从而造成电脑管理软件库存 ...

  5. 金蝶盘点机PDA仓库条码管理:仓库如何盘点

    1.1. 仓库盘点 传统的仓库盘点,需要人工手工抄写盘点单,时候再去电脑上一行行的录入盘点单,操作非常耗时费力,往往需要盘点好几天,最终盘点效果还不好,在抄写过程中容易出现错误,从而造成盘点结果不准确 ...

  6. 【MM系列】SAP MM模块-库存盘点BAPI的使用及注意点

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-库存盘点BAPI的 ...

  7. 【系统设计】WMS系统中 库存、盘点、移库、拆库功能的设计(库内管理)

    最近负责WMS系统 盘点 移库 两个功能模块的功能及数据库设计. 物流仓储系统的搭建,要基于仓库的实际情况,整理内部员工需求,再参考其他WMS系统,经过长时间的讨论和研究,最终转化为产品需求. 这里先 ...

  8. 金蝶K3表

    系统ID     表ID     表名     表中文名     表说明     FType     FSefDefSign0     0     t_VoucherGroup     凭证字表    ...

  9. 大家都在用PDA条码扫描枪管理企业仓库 PDA无线数据采集程序

    PDA数据采集器又称之为手持终端,这些都是用于扫描货物条码统计数据用的,PDA扫描枪有效提高企业仓库管理,在仓库管理中引入条码技术,对仓库的到货检验.入库.出库.调拨.移库移位.库存盘点等各个作业环节 ...

随机推荐

  1. 1、iptables-netfilter基础

    .iptables: 包过滤型防火墙功能.四表五链 .iptables规则.规则管理工具.iptables命令 .iptables链管理.规则管理.查看等 .iptables匹配条件.目标.显式扩展. ...

  2. HDU 4557 Tree(可持久化字典树 + LCA)

    http://acm.hdu.edu.cn/showproblem.php?pid=4757 题意: 给出一棵树,每个结点有一个权值,现在有多个询问,每次询问包含x,y,z三个数,求出在x到y的路径上 ...

  3. Win10远程桌面可能是由于CredSSP加密Oracle修正

    win10更新1083之后,远程桌面就会连接失败,显示如下: 根据微软官方的说法是更改了安全策略: https://support.microsoft.com/zh-cn/help/4093492/c ...

  4. JavaScript中 call和apply

    call()方法和apply()方法的作用相同,他们的区别在于接收参数的方式不同. 对于call(),第一个参数是this值没有变化,变化的是其余参数都直接传递给函数.(在使用call()方法时,传递 ...

  5. QT读文件夹内所有文件名

    void monizhuzhan::filenameInDir() { //判断路径是否存在 QDir dir(path); if(!dir.exists()) return; //查看路径中后缀为. ...

  6. _itemmod_description

    物品额外描述 表说明: `entry` 物品entry `description` 额外描述

  7. P1262 间谍网络

    传送门 思路: ①在 Tarjan 的基础上加一个 belong 记录每个点属于哪个强连通分量. ②存图完成后,暴力地遍历全图,查找是否要间谍不愿受贿. inline void dfs(int u) ...

  8. MySQL 并发测试中,线程数和数据库连接池的实验

    我一直以来,对性能测试中,连接池的大小要如何配置,不是太清楚: 就我所知道的,就DB自带对连接数的限制,在sqlserver中用select @@connection 可以查到, 在代码中,可以配置D ...

  9. 如何将exe注册为windows服务,直接从后台运行

    方法一:使用windows自带的命令sc 使用sc create 方法创建. 如:注册服务 sc create ResharperServices binpath= D:\ResharperServi ...

  10. SpringBoot整合+logback日志配置

    本次演示的代码结构如下,基于maven,整合SpringBoot.Spring.Mybaits的SSM框架.同时测试logback日志框架的使用及配置. 1.创建maven工程,修改pom.xml文件 ...