摘要: 在SAP系统中,通过SE11显示一个table的内容,可以发现ALV grid的显示界面上有个spread sheet的标准按钮,点击这个按钮可以将显示的内容下载成excel文件,其中也包括扩展名.xlsx的文件。 这个功能很方便,因为下载的结果和ALV中看到的是一样的。 debug研究了一下标准代 阅读全文
posted @ 2019-08-30 17:03 真的是很难 阅读(3363) 评论(0) 推荐(0)
摘要: 函数组SCMS_CONV下包含了若干字符串转换的函数,包括二进制,文本,string,xstring之间的相互转换, SCMS_BINARY_TO_FTEXT SCMS_BINARY_TO_STRING SCMS_BINARY_TO_TEXT SCMS_BINARY_TO_XSTRING SCMS_ 阅读全文
posted @ 2019-08-30 17:02 真的是很难 阅读(776) 评论(0) 推荐(0)
摘要: 1, 问题描述 table control的垂直滚动条(scroll)不起作用,不能向下滚动。 2, 问题解决 查看代码,发现table control不是wizard创建的,是自己写的,漏掉了下面一段代码,计算一下table control对应的内表的行数,在PBO中加上之后scroll就起作用了 阅读全文
posted @ 2019-08-30 16:59 真的是很难 阅读(781) 评论(0) 推荐(0)
摘要: 选择画面中有两个radio button,点击不同的radio button,显示不同的选择条件,并且做必输项检查,如下: 选择download,显示plant和sales Document两个条件 选择Upload,显示File name, 实现代码, 注意:屏幕字段必输属性设置时,要赋值2(sc 阅读全文
posted @ 2019-08-30 16:50 真的是很难 阅读(632) 评论(0) 推荐(0)
摘要: 利用SALV可以简单的实现一个alv弹出窗口,代码如下: 运行结果: 以上。 阅读全文
posted @ 2019-08-30 16:50 真的是很难 阅读(1455) 评论(0) 推荐(0)
摘要: SAP提供了很多随机数生成的函数,可以在SE37中查到。 下面介绍其中三个. 1, CACS_RANDOM_I4 CACS_RANDOM_I4能生成正整数随机数。 2, <!--StartFragment -->QF05_RANDOM_INTEGER 3, <!--StartFragment --> 阅读全文
posted @ 2019-08-30 16:49 真的是很难 阅读(552) 评论(0) 推荐(0)
摘要: 在执行一些数据量大的程序时,通常在程序下方的状态栏中加一个秒表用来显示进度,供用户了解程序运行到什么程度。实现方法有如下两种: 1, SAPGUI_PROGRESS_INDICATOR 常用而古老的方法,调用<!--StartFragment -->SAPGUI_PROGRESS_INDICATOR 阅读全文
posted @ 2019-08-30 16:48 真的是很难 阅读(1012) 评论(0) 推荐(0)
摘要: 1, 问题描述 用excel上载大数据量的BOM数据到SAP系统中,一次上载的数量级别在10万条左右,这时用ALSM_EXCEL_TO_INTERNAL_TABLE上载时会dump,查看了代码发现ALSM_EXCEL_TO_INTERNAL_TABLE中是将数据先保存到剪贴板(<!--StartFr 阅读全文
posted @ 2019-08-30 16:46 真的是很难 阅读(2034) 评论(1) 推荐(1)
摘要: 选择画面上创建按钮,并且在按钮上通过<!--StartFragment -->ICON_CREATE()添加图标。 代码: 运行效果: 以上。 阅读全文
posted @ 2019-08-30 16:45 真的是很难 阅读(1226) 评论(0) 推荐(0)
摘要: 1, 前台操作 Tcode:CSKB 输入销售订单号和行项目,点击start order browser展开订单BOM(order BOM). 找到对应的物料,右键display 可以看到链接的文档信息, 2, 例子程序 可以通过函数<!--StartFragment -->BAPI_DOCUMEN 阅读全文
posted @ 2019-08-30 16:44 真的是很难 阅读(298) 评论(0) 推荐(0)
摘要: 通常SAP系统中的表维护视图(sm30)把所有数据都显示在一个屏幕上,没有筛选,如下,左图是sm30,右图是SE11中的表数据显示。 如何要按条件进行筛选,要用到<!--StartFragment -->VIEW_RANGETAB_TO_SELLIST创建筛选条件内表, 例子程序如下: 简单介绍: 阅读全文
posted @ 2019-08-30 16:44 真的是很难 阅读(1497) 评论(0) 推荐(0)
摘要: 下面介绍将smartforms转换成PDF文档,然后下载的实例以及相关的代码。 1, 创建smartform Tcode:smartforms创建一个简单的smartform 添加一个文本节点, 2, 创建程序 创建程序生成smartform,然后通过<!--StartFragment -->CON 阅读全文
posted @ 2019-08-30 16:41 真的是很难 阅读(1565) 评论(0) 推荐(0)
摘要: 介绍一个项目中经常会遇到的场景:将smartform转化成PDF,然后再把PDF作为邮件的附件发送出去。 1, 创建smartform Tcode:smartforms创建一个简单的smartform 添加一个文本节点, 2, 创建程序 创建一个abap程序,简单逻辑如下: 1,生成smartfor 阅读全文
posted @ 2019-08-30 16:40 真的是很难 阅读(795) 评论(0) 推荐(0)
摘要: 介绍一个有趣的函数<!--StartFragment -->SYSTEM_CALLSTACK(),这个函数可以得到abap程序执行的堆栈,包括事件(event),form。。。 例子代码如下: 执行结果,先触发事件 start-of-selection,然后调用frm_call,最后是frm_out 阅读全文
posted @ 2019-08-30 16:37 真的是很难 阅读(1396) 评论(0) 推荐(0)
摘要: OO ALV中经常会用的行单击,行双击,application tool bar上添加按钮以及按钮的相应事件,如下: 1,单击:handle_hotspot_click 事件 2,双击:handle_double_click 3,工具栏上添加自定按钮: handle_toolbar,其中,butn_ 阅读全文
posted @ 2019-08-30 16:36 真的是很难 阅读(5261) 评论(0) 推荐(0)
摘要: 如何传输请求(TR)已经释放了,就不能通过SE01更改它的描述, 这时只能用非法手段,直接更改保存传输请求(TR)的数据库表E07T中的描述字段AS4TEXT,表Eo7T是E070的文本表,TR的相关信息是保存在E070中的。 直接更改表的方法-->通过Debug直接更改数据库表中数据 以上。 阅读全文
posted @ 2019-08-30 16:34 真的是很难 阅读(418) 评论(0) 推荐(0)
摘要: SAP系统中用Excel上载数据时,为防止用户用错模板,可以将excel模板保存在SMW0中,每次上载前通过程序再从SMW0下载下来。 1, SMW0 模板上载 Tcode SMW0选择‘Binary data...'选项 输入package,运行 进入下一屏后,点击创建按钮添加excel文档, 如 阅读全文
posted @ 2019-08-30 16:34 真的是很难 阅读(502) 评论(0) 推荐(0)
摘要: 用<!--StartFragment -->STARTING NEW TASK 方式调用函数ABAP4_CALL_TRANSACTION,会打开一个新的窗口(session)运行tcode。 函数ABAP4_CALL_TRANSACTION本质上是封装了<!--StartFragment -->CA 阅读全文
posted @ 2019-08-30 16:33 真的是很难 阅读(1019) 评论(0) 推荐(0)
摘要: 调用类cl_abap_structdescr中的方法<!--StartFragment -->describe_by_data()和<!--StartFragment -->get_ddic_field_list()能得到表或结构的列名字(colomn name). 代码: REPORT ztest 阅读全文
posted @ 2019-08-30 16:33 真的是很难 阅读(1976) 评论(0) 推荐(0)
摘要: SAP提供了一个类CL_ABAP_ZIP来创建.zip扩展名的压缩文件。 代码: 先将文件通过<!--StartFragment -->cl_gui_frontend_services=>gui_upload以BIN的文件类型上载,然后通过<!--StartFragment -->cl_abap_z 阅读全文
posted @ 2019-08-30 16:32 真的是很难 阅读(711) 评论(0) 推荐(0)
摘要: 下面介绍如何在在表维护视图(maintenance view)的工具栏上添加自定义按钮,如下红框内的眼睛按钮。 步骤如下: 1, 创建表维护视图 SE11,输入自定义表名 ZLM_TEST_MT,通过菜单进入table maintenance generator或者直接SE54进入 如下输入相关信息 阅读全文
posted @ 2019-08-30 16:30 真的是很难 阅读(1592) 评论(0) 推荐(0)
摘要: SAP项目有会要动态显示ALV列的需求,就是ALV的列数量不固定,这是就要用到动态内表的技术,动态内表通过<!--StartFragment -->cl_alv_table_create=>create_dynamic_table来创建。 完整代码: 运行结果: 选择画面上输入alv显示的列数目, 阅读全文
posted @ 2019-08-30 16:28 真的是很难 阅读(760) 评论(0) 推荐(0)
摘要: 可以通过MM03产看物料的单位转换关系, MM03进入显示物料,点击additional data按钮, 在units of measure tab页中可以看到物料维护的单位转换关系,1pc = 50 M 这个物料单位转换可以通过调用函数MD_CONVERT_MATERIAL_UNIT实现, SE3 阅读全文
posted @ 2019-08-30 16:27 真的是很难 阅读(765) 评论(0) 推荐(0)
摘要: 开发文件上载或下载的程序时,经常会遇到拆分全路径名的情况,就是从全路径名(full path name)中得到文件名和路径。 这个可以通过函数STPU1_EXTRACT_FILENAME实现, SE37 当然也有其他函数能实现这个功能,比如SPLIT_FILENAME,不过它支持的全路径名长度有限, 阅读全文
posted @ 2019-08-30 16:20 真的是很难 阅读(394) 评论(0) 推荐(0)
摘要: 可以调用函数<!--StartFragment -->RS_SET_SELSCREEN_STATUS隐藏选择画面中状态栏中的按钮,比如运行按钮(function code是‘ONLI’)。这个功能键可以通过/HS 启动系统debug(System Debugging)得到,如下: 系统变量 sy-u 阅读全文
posted @ 2019-08-30 16:13 真的是很难 阅读(358) 评论(0) 推荐(0)
摘要: SAP提供了一个XML相关类cl_xml_document_base,通过这个类可以将abap程序中内表中的数据转化成XML格式的数据,然在再下载到本地。 方法<!--StartFragment -->create_with_data:转换内表数据到XML格式 方法<!--StartFragment 阅读全文
posted @ 2019-08-30 16:13 真的是很难 阅读(576) 评论(0) 推荐(0)
摘要: ABAP程序中的ALV显示是很常用的一种数据展示手段,除了常规的alv,有时也会用到ALV tree这种有层次结构的展示方式更好的展现数据,下面介绍一个创建list alv tree的方法: 1)用函数RS_TREE_CONSTRUCT构造alv 树的层次结构, alv tree的节点类型(node 阅读全文
posted @ 2019-08-30 16:11 真的是很难 阅读(341) 评论(0) 推荐(0)
摘要: 介绍几个abap中的弹出选择框函数: 1, POPUP_TO_DECIDE_LIST 弹出供选择窗口,最多为25个选项选择可以是单选或是多选. 缺点是弹出窗口的大小不能设置,只和<!--StartFragment --> textline1/textline2中的文本长度相关。 代码: 2, POP 阅读全文
posted @ 2019-08-30 16:10 真的是很难 阅读(720) 评论(0) 推荐(0)
摘要: ABAP开发中经常会对字符串操作,下面列出一些相关命令/函数: SHIFT STRING:左移字符串。长度减1。CONCATENATE:连接字符串。SPLIT:拆分字符串。SEARCH:查询字符串。REPLACE:替换字符串。CONDENSE:删除多余的空格。TRANSLATE:转换字符格式,如将' 阅读全文
posted @ 2019-08-30 16:08 真的是很难 阅读(985) 评论(0) 推荐(0)
摘要: 使用REUSE_ALV_GRID_DISPLAY_LVC显示ALV时,如何将列、行或者具体的某个单元格设置成可编辑能输入状态?这个其实很简单,下面一一讲解: 1, 列可编辑 只要将catalog中的字段edit设置成‘X',整列就变成能输入的了,LVC_S_FCAT-EDIT 代码: 运行结果: 2 阅读全文
posted @ 2019-08-30 16:07 真的是很难 阅读(3060) 评论(0) 推荐(1)
摘要: 下面介绍SAP SD的销售订单外向交货单按批次拆分(Batch-Managed),包括前台操作和调用bapi ‘BAPI_OUTB_DELIVERY_CHANGE’ 实现。 1, 前台操作 按批次拆分操作: 外向交货单Tcode: VL02n 选中10行项目,点击‘批次拆分’按钮,填写批次后,回车, 阅读全文
posted @ 2019-08-30 16:05 真的是很难 阅读(3867) 评论(0) 推荐(0)
摘要: UUID含义是通用唯一识别码 (Universally Unique Identifier),通俗一点就是一个不重复的字符串,有时会把UUID作为数据库的一个主键,这样就不用担心主键重复的问题。 SAP中有个专门生成CL_SYSTEM_UUID,提供了4个静态方法创建生成不同类型的UUID:2进制, 阅读全文
posted @ 2019-08-30 16:04 真的是很难 阅读(1679) 评论(0) 推荐(0)
摘要: 1, BADI ‘BOM_UPDATE’介绍 SE18,查看BADi BOM_UPDATE,Chage_AT_SAVE就是BOM创建和修改保存时触发的方法,也就是CS01,CS02保存时触发 输入参数: 2, 实例业务场景 公司实际业务过程中,设计变更比较频繁,导致BOM的组件也要经常修改更新,在用 阅读全文
posted @ 2019-08-30 16:03 真的是很难 阅读(1251) 评论(0) 推荐(1)
摘要: 全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。SAP也提供了几个函数来创建生成GUID。 /IBS/RB_GENERATE_GUID ISH_N2_RAD_GENERATE_GUID RS_DME_MG_GENER 阅读全文
posted @ 2019-08-30 16:03 真的是很难 阅读(1006) 评论(0) 推荐(0)
摘要: ABAP程序中使用REUSE_ALV_GRID_DISPLAY_LVC显示alv,如何实现行选择功能?方法如下: 1,在输出内表中,定义一个C类型字段用来标记哪些行被选中,选中的为‘X’ 2,在LVC_S_LAYO-BOX_FNAME 中指定1中定义的行选择字段 完整代码: 为程序创建一个statu 阅读全文
posted @ 2019-08-30 16:02 真的是很难 阅读(2925) 评论(0) 推荐(0)
摘要: ABAP程序中调用REUSE_ALV_GRID_DISPLAY_LVC显示ALV,经常会有双击某行或某字段跳转到其他tcode的需求。下面简单介绍一下。 双击事件的ucomm是'&IC1'. 完整代码: 运行: 跳转到me23n显示采购订单3000000100 以上。 阅读全文
posted @ 2019-08-30 16:02 真的是很难 阅读(1420) 评论(0) 推荐(0)
摘要: 一个简单的调用REUSE_ALV_GRID_DISPLAY_LVC显示ALV的abap程序模板。 实现一下几个简单功能: 1,双击跳转-‘&IC1’ 2,在自定义状态栏(status)上添加按钮,copy自函数组KKBL中的status。 SE80: 3,行选择功能 基本上能满足简单的ALV显示。 阅读全文
posted @ 2019-08-30 16:01 真的是很难 阅读(544) 评论(0) 推荐(0)
摘要: 介绍两个SAP函数FREE_SELECTIONS_DIALOG和FREE_SELECTIONS_INIT,通过这两个函数能生成基于某个数据库表的动态选择屏幕。 比如要根据销售订单抬头表VBAK生成动态屏幕, 对应的完整代码: 运行结果: 然后可以按需要将左侧的vbak中的字段,选到右边生成选择屏幕。 阅读全文
posted @ 2019-08-30 16:00 真的是很难 阅读(546) 评论(0) 推荐(0)
摘要: 一段创建动态内表和动态select数据库表的abap程序。 逻辑如下: 1,通过<!--StartFragment --> cl_abap_tabledescr=>create()创建动态内表 2,通过动态Select语句抽取数据库表数据 3,ALV显示 完整代码: 运行: 输入表T000,运行, 阅读全文
posted @ 2019-08-30 16:00 真的是很难 阅读(1012) 评论(0) 推荐(0)
摘要: 利用类CL_ABAP_ELEMDESCR中的方法GET_C()可以创建动态长的字符串, 当然还可以调用其他方法 GET_I,GET_F,GET_N等等创建动态长的I,F,N类型的数据。 代码: 运行:超出7位的就被截断不显示了。 阅读全文
posted @ 2019-08-30 15:59 真的是很难 阅读(491) 评论(0) 推荐(0)
摘要: 如果仅仅知道类方法中某个参数的名字,如何找到用到这个参数的类方法呢? 其实很简单,可以通过表SEOSUBCO来查询。方法如下: SEOSUBCO-SCONAME字段中保存的就是参数名字,CLSNAME中是类的名字,CMPNAME是方法名字 SE24中验证一下类CL_SQL_CONNECTION中的m 阅读全文
posted @ 2019-08-30 13:50 真的是很难 阅读(260) 评论(0) 推荐(0)
摘要: SAP类 cl_proxy_ui_utils中提供了一个方法show_xml_diff,可以比较两个XML文件的差异点,并以不同颜色显示两个xml的差异之处。 代码: 其中可以通过SCMS_BINARY_TO_XSTRING,将xml转换成xstring,实际上最后比较的就是这个xstring 显示 阅读全文
posted @ 2019-08-30 13:49 真的是很难 阅读(613) 评论(0) 推荐(0)
摘要: 函数DAY_ATTRIBUTES_GET可以查看某日期的一些属性,比如:是否是休息日,是否是节假日,星期几的描述。 SE37,输入工厂日历,factory_calendar,运行: 在输出table day_attributes看结果: 其他: 工厂日历和节假日可以通过表TFACD查看,TFACD- 阅读全文
posted @ 2019-08-30 13:46 真的是很难 阅读(878) 评论(0) 推荐(0)
摘要: 1, 拆分字符串split 语法: 代码: 2, 连接字符串Concatenate 语法: 代码: 显示结果: 在 C1 到 C5 之间,忽略 尾部空格。 分隔符 SEP 保留尾部空格。 3, 获得字符串长度STRLEN 语法: 代码: 显示结果: 请注意,STRLEN 将操作数 <c> 作为字符数 阅读全文
posted @ 2019-08-30 13:40 真的是很难 阅读(13823) 评论(0) 推荐(0)
摘要: 1, 替换字段内容REPLACE 语法: REPLACE <str1> WITH <str2> INTO <c> [LENGTH <l>]. ABAP/4 搜索字段 <c> 中模式 <str1> 前 <l> 个位置第一 次出现的地 方。如果未 指定长度, 按全长度搜 索模式 <str1>。 然后,语 阅读全文
posted @ 2019-08-30 13:35 真的是很难 阅读(2486) 评论(0) 推荐(0)
摘要: 1, 问题描述 ALV单元格在可输入状态下,金额和数量类型的字段小数点的位置会发生错误,数量是quan类型,金额是curr类型,如下: 错误情况如下:qty输入66,结果显示0.066小数点提前3位,差1000倍,price输入7,结果显示0.07,小数点提前两位,差100倍。 2, 问题解决 方法 阅读全文
posted @ 2019-08-30 13:29 真的是很难 阅读(573) 评论(0) 推荐(0)
摘要: 总结了ABAP程序开发中,经常会用到的一些客户主数据相关的表,如下: 1、KNA1:客户主文件的一般数据 2、KNB1:客户主数据 (公司代码) 3、KNVV:客户主记录销售数据 4、KNVP:客户主记录伙伴功能 5、KNVK:客户主要联系伙伴 6、KNAS:客户主数据(一般地区的增值税登记号) & 阅读全文
posted @ 2019-08-30 13:28 真的是很难 阅读(20346) 评论(0) 推荐(0)
摘要: 1, 问题描述 在多clientSAP系统中修改abap程序时,经常会遇到下面的提示信息: “Carry out repairs in non-original system only if they are urgent” 然后强制修改时,会有些代码不能编辑 这是由于程序是在另外一个client创 阅读全文
posted @ 2019-08-30 13:25 真的是很难 阅读(532) 评论(0) 推荐(0)
摘要: 介绍一个PP模块的BAPI, “BAPI_PRODORD_GET_DETAIL”,通过这个BAPI能取得PP订单的详细信息. 具体能读取的详细信息包括: 抬头(Header) 行项目(Item) 工序中的Sequence 工序(Operation) 子工序(Suboperation or secon 阅读全文
posted @ 2019-08-30 13:17 真的是很难 阅读(1619) 评论(0) 推荐(0)
摘要: 1, 视图簇介绍 SAP系统中经常会看到有层次结构的可以维护数据的屏幕,比如Tcode OMT3: 这个其实就是视图簇(View cluster),是通过SE54将多个表维护视图按照一定的关联关系链接起来,形成层次结构,方便维护数据。 用SE93查看OMT3,看到实际上维护视图簇是调用了Tcode: 阅读全文
posted @ 2019-08-30 13:08 真的是很难 阅读(2248) 评论(0) 推荐(0)
摘要: 通过vl02n可以修改包装单元(handling unit)的用户状态,如下图: 调用函数HU_STATUS_UPDATE也可以更新HU的用户状态。 例子代码: 阅读全文
posted @ 2019-08-30 13:07 真的是很难 阅读(800) 评论(0) 推荐(0)
摘要: 下面介绍一下如何如何在table control中创建单选按钮(radio button),其实很简单, 只要右键点击table control中的单元格,通过convert->radio button->left button或right button就可以将单元个转换成radio button。 阅读全文
posted @ 2019-08-30 13:06 真的是很难 阅读(680) 评论(0) 推荐(0)
摘要: 在AT SELECTION-SCREEN ON VALUE-REQUEST事件中,是不能直接取得选择屏幕字段的默认值或输入的值,而是需要通过函数<!--StartFragment --> DYNP_VALUES_READ读取。 例子程序: debug截图: 发现,虽然P_folder有初始默认值z: 阅读全文
posted @ 2019-08-30 13:05 真的是很难 阅读(1823) 评论(0) 推荐(0)
摘要: ABAP语言中提供了好几种ALV的展示方式,比如grid alv,SALV,list alv,OO alv等等。 不同种类alv对应的一些数据结构也是不一样的,比如,OO alv(也就是调用<!--StartFragment --> grid->set_table_for_first_display 阅读全文
posted @ 2019-08-30 13:04 真的是很难 阅读(584) 评论(0) 推荐(0)
摘要: 1, List ALV 通过调用函数REUSE_ALV_LIST_DISPLAY实现。List AlV显示如下: 2, Hierarchical sequential list 有层次结构的ALV对应的函数REUSE_ALV_HIERSEQ_LIST_DISPLAY。界面显示如下: 3, Tree 阅读全文
posted @ 2019-08-30 11:24 真的是很难 阅读(858) 评论(0) 推荐(0)
摘要: 1, 用到的函数,类方法 下面介绍一个能根据所选表字段自动创建动态select-options的例子代码,代码中用到了以下函数和类方法: 1,<!--StartFragment --> FREE_SELECTIONS_INIT:初始化动态选择画面 2, FREE_SELECTIONS_DIALOG: 阅读全文
posted @ 2019-08-30 11:16 真的是很难 阅读(563) 评论(0) 推荐(0)
摘要: 1, 简介 在网上第一次看到有人用BAPI BAPI_PATIENT_CREATE创建病人主数据,特此转贴记录一下。 SE37 2, NEW_PATIENT_DATA为空 调用之后,如果没能成功创建任何数据(NEW_PATIENT_DATA为空), 该问题有几种可能性: 3, 地址数据没有更新 调用 阅读全文
posted @ 2019-08-30 11:14 真的是很难 阅读(461) 评论(0) 推荐(0)
摘要: 1, 简介 整理了一段代码,实现上载本地图片到SAP的数据库表中,并且显示在屏幕上。 其中用到了一下函数: 1, GUI_UPLOAD:上载图片文件 2,<!--StartFragment --> SCMS_BINARY_TO_XSTRING:将图片文件转换成xstring 3,<!--StartF 阅读全文
posted @ 2019-08-30 11:11 真的是很难 阅读(905) 评论(0) 推荐(0)
摘要: 1, READ_TEXT参数填写 可以通过函数READ_TEXT读取物料BOM行项目和抬头上的长文本。本文着重介绍如何读取物料BOM行项目上的长文本。 SE37: 读取物料BOM行项目长文本时,函数READ_TEXT的参数如下: ID:<!--StartFragment --> 固定值 ‘MPO’ 阅读全文
posted @ 2019-08-30 11:06 真的是很难 阅读(1059) 评论(0) 推荐(0)
摘要: 1, 问题描述 调用函数<!--StartFragment --> CSAP_ORD_BOM_CREATE创建订单BOM,在创建Variable-size item时,一切正常只是发现字段Qty Var-Sz Item更新失败,总是用系统自动计算出来的值来替代函数输入的值。 CS63前台查看, 看了 阅读全文
posted @ 2019-08-30 11:05 真的是很难 阅读(302) 评论(0) 推荐(0)
摘要: 下面介绍如何在ALV头中显示Logo图片的方法,其中ALV是调用函数REUSE_ALV_GRID_DISPLAY创建的。详细步骤如下: 1, OAER上载Logo Tcode: OAER上载需要显示的LOGO图片, 输入Class name ’PICTURERS',Class type以及Objec 阅读全文
posted @ 2019-08-30 11:03 真的是很难 阅读(306) 评论(0) 推荐(0)
摘要: 只要将ICON的名字或ID传送到SELECTION-SCREEN COMMENT中,就可以在选择画面中显示ICON图标。 ICON的ID和名字可以在type pool ICON中得到: 也可以通过表ICON看到图标的样子 代码如下: 显示结果: 以上。 阅读全文
posted @ 2019-08-30 11:02 真的是很难 阅读(549) 评论(0) 推荐(0)
摘要: 可以通过函数COPO_POPUP_TO_DISPLAY_TEXTLIST为选择画面中字段创建一个简单的F1帮助文档。 代码: 为选择画面中的一个checkbox创建F1帮助文档。 运行结果: 以上。 阅读全文
posted @ 2019-08-30 11:01 真的是很难 阅读(279) 评论(0) 推荐(0)
摘要: 函数RS_REFRESH_FROM_SELECTOPTIONS可以取得选择画面中的select-option和parameters的输入值。 代码如下 测试: 选择画面中输入需要的值: 运行结果: 以上。 阅读全文
posted @ 2019-08-30 11:00 真的是很难 阅读(374) 评论(0) 推荐(0)
摘要: 下面通过一段代码介绍如何在选择画面中显示图片。 1, SMW0上载图片 Tcode:SMW0,选择Binary的选项 由于是测试,选择$TMP本地package,然后运行进入下一屏幕, 上载图片,命名为ZPIC,程序中会用来标识图片的。 2, 例子代码 3, 测试运行 以上。 阅读全文
posted @ 2019-08-30 10:59 真的是很难 阅读(582) 评论(0) 推荐(0)
摘要: 下面介绍调用REUSE_ALV_GRID_DISPLAY_LVC创建ALV时,如何显示单选按钮(radio button),以及对应的单选按钮选择相应。 简单逻辑: 1,radio button的ICON:<!--StartFragment --> '@TB@' <!--StartFragment 阅读全文
posted @ 2019-08-30 10:48 真的是很难 阅读(854) 评论(0) 推荐(0)
摘要: 1, 问题描述 ALV显示时,使用标准的ALV工具栏上的过滤功能,发现不起作用,如下,对Change Indicator列过滤失效,不能正确显示过滤结果。 2, 问题解决 失效的原因其实就是,alv中显示的内容中有小写字母,但是过滤的时候会默认输入的都是大写,大小写不匹配导致过滤失败。 解决办法: 阅读全文
posted @ 2019-08-30 10:45 真的是很难 阅读(364) 评论(0) 推荐(0)
摘要: 有时在进行字符串处理的时候,需要将字符串中的数字提取出来,这个数字可能是金额或者数量。 比如:需要将‘2.5 days’中的2.5提取出来。 通过函数<!--StartFragment --> PREPARE_STRING可以快速实现这个功能。此函数可以用来实现将字符串中非法字符删除的功能,也就是保 阅读全文
posted @ 2019-08-30 10:43 真的是很难 阅读(1098) 评论(0) 推荐(0)
摘要: 1, CONVERT_OTFSPOOLJOB_2_PDF 无论是SAP script还是smartform,要想转换成PDF其实就是通过Spool list中的Spool ID转换的。 可以用于PDF转换的函数有几个,这里介绍<!--StartFragment --> CONVERT_OTFSPOO 阅读全文
posted @ 2019-08-30 10:41 真的是很难 阅读(1155) 评论(0) 推荐(0)
摘要: 可以通过函数ICON_CREATE将alv中的单元格(Cell)变成ICON. 代码如下: 另外不要忘了声明一个TYPE-POOLS:icon. 显示结果: 以上。 阅读全文
posted @ 2019-08-30 10:40 真的是很难 阅读(726) 评论(0) 推荐(0)
摘要: 1, 介绍 一般来说可以通过函数CLAF_CLASSIFICATION_OF_OBJECTS读取物料的特性值。 不过有的场合下,需要根据特性值来筛选物料,比如说在SAP系统抽取所有特性A为’5‘的物料,这时就不能利用CLAF_CLASSIFICATION_OF_OBJECTS来便利全部物料了,效率低 阅读全文
posted @ 2019-08-30 10:36 真的是很难 阅读(1143) 评论(0) 推荐(0)
摘要: 可以通过函数<!--StartFragment --> STATUS_TEXT_EDIT读取销售订单的用户状态(user status)以及系统状态(system status)。 SE37: 其中输入参数OBJNR的格式如下: VB+销售订单号+销售订单行项目号,如果读取header的状态行项目号 阅读全文
posted @ 2019-08-30 10:33 真的是很难 阅读(1204) 评论(0) 推荐(0)
摘要: 1. 前台操作 可以通过函数VC_I_GET_CONFIGURATION读取销售订单行项目上的特性值。 前台操作,tcode VA03,双击进入行项目 双击Characteristics 按钮 可以看到特性 Actual Lead Time-total 有值,16.0 days,双击右边的叹号按钮。 阅读全文
posted @ 2019-08-30 10:31 真的是很难 阅读(517) 评论(0) 推荐(0)
摘要: 1, CP_EX_PLAN_READ 可以通过函数<!--StartFragment --> CP_EX_PLAN_READ对PP模块中的routing进行展开。 SE37,展开的结果放在各个Table参数中。 2, 前台操作 前台可以通过tcode:CA03来查看routing的展开 输入物料,工 阅读全文
posted @ 2019-08-30 10:28 真的是很难 阅读(451) 评论(0) 推荐(0)
摘要: 1, 前台操作 在前台可以通过tcode:CO03查看生产订单工序。 选择order entered 选项,输入生产订单 进入到工序的详细屏幕: 2, 例子代码 可以通过函数<!--StartFragment --> PM_ORDER_DATA_READ来读取生产订单下的工序(operation), 阅读全文
posted @ 2019-08-30 10:26 真的是很难 阅读(518) 评论(0) 推荐(0)
摘要: TCode:SU01或SU3中可以看到用户参数文件(user profile)中的parameter : 这个parameters可以通过函数<!--StartFragment --> BAPI_USER_GET_DETAIL 例子代码 运行结果: 也可以在表USR05中直接抽取数据: 以上。 阅读全文
posted @ 2019-08-30 10:24 真的是很难 阅读(488) 评论(0) 推荐(0)
摘要: 在abap程序的BDC录屏中,数量和日期格式是和su3中的设置相关的,如果格式不一致BDC会报错。 Tcode:SU3,可以看到小数点,日期格式以及时间格式的设置。 所以在处理数量,日期和时间时要用write to转换一下: 数量转换: 注意不要忘了单位 UNIT 日期时间: 调用CONVERT_D 阅读全文
posted @ 2019-08-30 10:20 真的是很难 阅读(773) 评论(0) 推荐(0)
摘要: Tcode:VA03进入销售订单显示屏幕,点击header按钮。 可以看到订单货币和本位币之间的汇率(exchange rate) 订单货币:VBAK-WAERK 汇率:VBKD-KURSK 本位币保存在表TVKO中的字段TVKO-WAERS,可以根据销售订单采购组织(Sales Organizat 阅读全文
posted @ 2019-08-30 10:19 真的是很难 阅读(823) 评论(0) 推荐(0)
摘要: SAP后台Job数据保存在表TBTCP/TBTCO中,也可以通过视图V_OP查看。 TBTCO: TBTCP: view: V_OP 前台可以通过SM37查看后台job: 以上。 阅读全文
posted @ 2019-08-30 10:13 真的是很难 阅读(2232) 评论(0) 推荐(0)
摘要: ABAP提供了一个函数K_WERKS_OF_BUKRS_FIND能取得公司代码下的所有工厂。 SE37 以上。 阅读全文
posted @ 2019-08-30 10:04 真的是很难 阅读(474) 评论(0) 推荐(0)
摘要: 可以通过函数TH_POPUP给指定用户发送系统消息。 SE37测试: 输入client,用户名以及要发送的SAP系统消息,运行: 运行结果: 以上。 阅读全文
posted @ 2019-08-30 10:03 真的是很难 阅读(604) 评论(0) 推荐(0)
摘要: 在登录SAP系统的时候,经常会看到一个弹出的对话框,这个是通过tcode SM02实现的,如下: SM02,点击创建按钮,然后在弹出的窗口中输入消息内容,服务器和语言以及有效时间段。 以上。 阅读全文
posted @ 2019-08-30 10:03 真的是很难 阅读(1001) 评论(0) 推荐(0)
摘要: 在用户登录SAP系统时会自动触发用户出口SUSR0001,tcode SMOD显示如下: CMOD创建project,然后代码写在下面的include中, 以上。 阅读全文
posted @ 2019-08-30 10:02 真的是很难 阅读(584) 评论(0) 推荐(0)
摘要: 可以通过 BAPI_COSTELEMENTGRP_GETDETAIL取得成本要素组(cost element group),也就是tcode KAH3对应的bapi是BAPI_COSTELEMENTGRP_GETDETAIL。 例子代码: 其中输入参数 1, CHARTOFACCOUNTS和cont 阅读全文
posted @ 2019-08-30 09:58 真的是很难 阅读(632) 评论(0) 推荐(0)
摘要: SAP系统中有两种内存: 1,ABAP内存 简单说来一个session就是登录SAP系统开的窗口。 可以通过abap内存实现同一session中的数据交换。具体使用到 EXPORT 和IMPORT memory id 语句,这里不详细讲述。 2,SAP内存 在整个登录过程中,可以通过SAP内存实现多 阅读全文
posted @ 2019-08-30 09:57 真的是很难 阅读(532) 评论(0) 推荐(0)
摘要: Alv grid/OO ALV中有两个事件(Event):data_changed和ata_changed_finished. 第一个事件在可编辑字段的数据发生变化时触发,可用来检查数据的输入正确性,第二个事件是当数据修改完成后触发 如果数据没有被修改,当失去焦点(比如输入结束后,光标移动到下一个需 阅读全文
posted @ 2019-08-30 09:52 真的是很难 阅读(1877) 评论(0) 推荐(0)
摘要: 经常会在ALV的状态栏上加入自定义的按钮(button),有时还需要动态更改自定义按钮上的文本和图标,如下:开始是修改按钮,点击后变成显示按钮,按钮上的显示的内容可以自动切换。 下面介绍具体实现方法: 1,现在程序中定义一个全局变量,类型是<!--StartFragment --> smp_dynt 阅读全文
posted @ 2019-08-30 09:52 真的是很难 阅读(1000) 评论(0) 推荐(0)
摘要: 下面介绍一下如何在选择画面中创建下拉列表字段(drop down list box),语法使用到parameter中的as list box,如下: 下拉列表创建完毕后,使用函数VRM_SET_VALUES填入下拉列表值。 例子代码如下: 运行如下: 以上。 阅读全文
posted @ 2019-08-30 09:46 真的是很难 阅读(531) 评论(0) 推荐(0)
摘要: ABAP中,如果可以通过下图方法重新分配函数的函数组。 se37中,点击reassign 按钮可以更改function group。 注意,new function group一定是要激活状态的。可以通过se80激活函数组。 以上。 阅读全文
posted @ 2019-08-30 09:44 真的是很难 阅读(1019) 评论(0) 推荐(0)
摘要: 下面简单介绍一下如何在abap语言中定义一个嵌套内表(nested internal table),也就是内表中的一个字段也是内表。 1, SE11中定义一个表类型 这里找了一个SAP标准的表类型EKKO_TTY 2, 定义内表时使用table type 例子代码如下,其中字段podata就是嵌套的 阅读全文
posted @ 2019-08-30 09:43 真的是很难 阅读(2081) 评论(0) 推荐(0)
摘要: 下面简单介绍一下使用REUSE_ALV_GRID_DISPLAY函数时,如何设定单元格颜色,方法比较简单,直接上代码: 测试结果: 第一行的最后一列单元格颜色变为浅绿色。 以上。 阅读全文
posted @ 2019-08-30 09:42 真的是很难 阅读(495) 评论(0) 推荐(0)
摘要: 下面介绍一下如何在ABAP程序中创建嵌套动态内表,也就是动态内表中的某个字段也是个内表。 步骤如下: 1, SE11创建表类型 2, SE11创建结构 创建的结构中包含第一步中创建的表类型。 3, 程序中参考这个字段创建动态表的catalog 如下图红框内,然后调用cl_alv_table_crea 阅读全文
posted @ 2019-08-30 09:39 真的是很难 阅读(576) 评论(0) 推荐(0)
摘要: ABAP中可以通过tcode SE84根据方法名查询类名,也就是在已知method名的情况下,找到method所在的class。 SE84-->Class Library-->Methods 输入Method名字然后点击运行。 查询结果: 其他,可以看到,也可以根据attributes, event 阅读全文
posted @ 2019-08-30 09:36 真的是很难 阅读(1310) 评论(0) 推荐(0)
摘要: Table Name Description ANAR 资产类型ANAT 资产类型文本ANEA 比例值的资产行项目ANEK 凭证抬头资产过帐ANEKPV 在建工程科目单项视图ANEP 资产行项目ANEV 资产定金结算ANGA 资产目录一般数据ANGB 资产目录折旧范围ANGT 资产目录文本表ANIA 阅读全文
posted @ 2019-08-30 09:29 真的是很难 阅读(473) 评论(0) 推荐(0)
摘要: 从网上抄来的程序,没运行过。。。仅供参考: 更新了usr04,ust04,usrbf2这三张表。 ABAP REPORT ZTESTCREATEUSER. data: l_USR04 LIKE USR04 , l_UST04 LIKE UST04 , l_PROFS LIKE USR04-PROFS 阅读全文
posted @ 2019-08-30 09:28 真的是很难 阅读(540) 评论(0) 推荐(0)
摘要: 在SAP中没有专门的Tcode创建parameter ID,只能通过SM30给表TPARA添加parameter ID记录来实现。 1, SM30输入TPARA表名,然后点击maintain按钮 2, 输入paramterID名字,然后回车 3, 输入描述点击SAVE按钮 以上。 阅读全文
posted @ 2019-08-30 09:25 真的是很难 阅读(1474) 评论(0) 推荐(0)