初学abap 总结2
来源:互联网 发布:js延时函数 编辑:程序博客网 时间:2024/05/17 09:07
Sap补0函数:
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = qmtab1-zqmnum
IMPORTING
output = qmtab1-zqmnum.
去掉0函数:
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = qmtab1-zqmnum
IMPORTING
output = qmtab1-zqmnum.
自定义的字段实现模糊查找(参考程序ZPROINFO02):
DATA: itab LIKE zinfo01 OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-b01..
PARAMETERS: chengxu LIKE zinfo01-zprom . "程序名称
PARAMETERS: bbname LIKE zinfo01-zrname . "报表名称
*SELECT-OPTIONS: bbname FOR zinfo01-zrname . "报表名称
PARAMETERS: syfw LIKE zinfo01-zfw . "适用范围
PARAMETERS: jysm LIKE zinfo01-zsm . "简要说明
SELECTION-SCREEN END OF BLOCK b1.
CONCATENATE '%' chengxu '%' INTO chengxu.
CONCATENATE '%' bbname '%' INTO bbname.
CONCATENATE '%' syfw '%' INTO syfw.
CONCATENATE '%' jysm '%' INTO jysm.
SELECT * INTO CORRESPONDING FIELDS OF TABLE itab
FROM zinfo01
WHERE zprom LIKE chengxu AND
zrname LIKE bbname AND
zfw LIKE syfw AND
zsm LIKE jysm.
汇率转换(参考程序ZFIXY001):
DATA: date LIKE sy-datum. "获取汇率的时间,函数会取离指定时间前面最近维护的一个汇率
DATA: rate LIKE vbrp-kursk. "要输出的金额 最好参考一个有5位小数点的类型 不然精度会丢失
DATA: curr_ex LIKE bapicurr-bapicurr .
DATA: fa LIKE vbrp-kursk , "要转换的金额
fc LIKE t001-waers , "外币
lc LIKE t001-waers , "本币
ty LIKE tcurr-kurst. "类型
*----------------------------省略---------------------------------------
fc = rkwa-bwaer. "要转换的币种
fa = rkwa-wrbtr. "要转换的金额
curr_ex = fa.
date = rkwa-budat. "记账日期
CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_INTERNAL'
EXPORTING
currency = fc
amount_external = curr_ex
max_number_of_digits = 13
IMPORTING
amount_internal = fa.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' "获取汇率
EXPORTING
date = date
foreign_amount = fa
foreign_currency = fc
local_currency = lc
type_of_rate = ty
IMPORTING
local_amount = rate
EXCEPTIONS
no_rate_found = 1
OTHERS = 2.
zwrbtr = rate. "转换后的金额
关于select的几种总结(参考程序:zmm0002):
单行多个字段:
SELECT SINGLE ebelp ebeln INTO (i_list-ebelp , i_list-ebeln) FROM ekpo WHERE banfn = i_list-banfn AND bnfpo = i_list-bnfpo.
单行单个字段:
SELECT SINGLE mmsta INTO i_list-mmsta FROM marc WHERE matnr = i_list-matnr AND werks = i_list-werks.
单行全部字段:
SELECT SINGLE * FROM ekpo WHERE ebeln = i_list-ebeln AND ebelp = i_list-ebelp.
i_list-pomenge = ekpo-menge.
i_list-quant = i_list-pomenge - i_list-menge. "差异数量
i_list-quant1 = i_list-menge - i_list-pomenge. "差异数量
多行多字段(尽量少用):
SELECT * FROM ekpo WHERE ebeln = i_list-ebeln AND ebelp = i_list-ebelp.
************这里相当于一个循环
ENDSELECT
获取工厂和欠料编码相同情况下累计欠料最大值(参考程序zpp002)
FORM get_max_ylnum_data.
SORT i_list BY werks matqq ylnum ASCENDING.
LOOP AT i_list.
c_list[] = i_list[].
DELETE c_list WHERE werks <> i_list-werks OR matqq <> i_list-matqq.
SORT c_list BY werks matqq ylnum ASCENDING.
READ TABLE c_list INDEX 1.
IF sy-subrc = 0 .
i_list-ylnum1 = c_list-ylnum.
ENDIF.
MODIFY i_list.
ENDLOOP.
ENDFORM. " get_max_ylnum_data
获取bom (参考程序zpp0026 ; 测试程序 ZEROTEST03)
REPORT zerotest03.
TABLES: mara,marc,makt,stko,mast,stpo,t143t , eine.
TYPE-POOLS: slis.
*WRITE: sy-datum. "系统当前日期
*WRITE: sy-uzeit. "系统当前时间
*DATA: BEGIN OF selpool.
* INCLUDE STRUCTURE cstmat.
*DATA: END OF selpool.
*DATA: dstst_flg LIKE csdata-xfeld.
DATA: matnr LIKE mara-matnr. "物料编码
matnr = '410500017'.
DATA: werks LIKE marc-werks. "工厂
DATA: BEGIN OF stb OCCURS 1000.
INCLUDE STRUCTURE stpox.
DATA: END OF stb.
DATA: BEGIN OF selpool.
INCLUDE STRUCTURE cstmat.
DATA: END OF selpool.
DATA: dstst_flg LIKE csdata-xfeld. "YHG132854
DATA: pm_stlal LIKE stko-stlal VALUE 1.
DATA: pm_stlan LIKE stzu-stlan VALUE 1.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
aufsw = ''
capid = 'PP01'
datuv = sy-datum
ehndl = '1' "HGA108310
mbwls = ''
mtnrv = '410500017' "物料编码
*del MEHRS = 'X' "YHG134257
mehrs = '' "YHG134257 是否多层展开,1表示多层,空为单层
*del MMORY = '1' "YHG020009"HGB070841
stlal = pm_stlal
stlan = pm_stlan
"HGD246532
werks = '1600' "工厂
aumgb = 'X' "NOTE_887365
IMPORTING
topmat = selpool
dstst = dstst_flg "YHG132854
TABLES
stb = stb
* matcat = matcat
EXCEPTIONS
material_not_found = 4
no_plant_data = 8
no_bom_found = 12
no_suitable_bom_found = 16
alt_not_found = 24
*d missing_authorization = 28. "HGD059252
missing_authorization = 28 "HGD059252
conversion_error = 36. "HGD059252
IF SY-SUBRC = 0.
LOOP AT stb.
WRITE: stb-idnrk.
WRITE: stb-mmsta.
ENDLOOP.
ENDIF.
报表打印工单缺少一位问题:
需要参考原来的表名打印(参考程序:ZPP002 ,ZDS004)
CLEAR v_i_fieldcat.
v_i_fieldcat-fieldname = 'AUFNR'.
v_i_fieldcat-tabname = 'I_LIST'.
v_i_fieldcat-ref_fieldname = 'AUFNR'.
v_i_fieldcat-ref_tabname = 'AFKO'.
v_i_fieldcat-seltext_m = '工单号'.
v_i_fieldcat-key = 'X'.
APPEND v_i_fieldcat.
- 初学abap 总结2
- abap初学总结2
- ABAP初学敲门砖
- WPF初学总结2
- 初学总结2
- 初学mysql 总结(2)
- ABAP总结
- ABAP总结
- ABAP总结
- 【ABAP】ABAP OO使用总结
- hibernate初学总结(2)
- ABAP知识总结
- abap 函数总结
- ABAP常用代码总结
- abap 日期处理总结
- ABAP常用函数总结
- SAP ABAP 总结
- ABAP ALV 总结整理
- extjs学习03——extjs的面向对象程序设计
- verilog 中signed数据处理,负数
- hive中对lzo压缩文件建立索引实现并行处理
- OSG开发概览
- Dom编程(图片 在 某一区域内 跟随鼠标运动、仅IE浏览器支持)
- 初学abap 总结2
- 关于文献阅读和寻找新的科研题目
- Bootstrap3如何解决ie8适配的问题-云帮平台
- js之实现页面内所有图片旋转
- WebRTC源代码探索之旅——多线程篇(5 - 4)
- 如何开发一个自己的个人网站
- nyoj51 管闲事的小明
- 两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i]
- .frm .myd .myi