
SAP abap
kenwu
2002年开始从事PowerBuilder开发,2007年开始从事SAP ABAP开发,2021年开始兼C#开发.
展开
-
指定格式或者快速导出的EXCEL文件函数(升级版)
该函数与前面的函数不同,为升级版,可以生成文件的同时,自动按照ID区分生成多个sheet,并且每个sheet可以按照KEY_FIELD生成多个不同的表格,内表参数结构在后面的贴图中。一、函数:FUNCTION ZF_EXP_EXCEL_FILE_MULTI.*"----------------------------------------------------------------------*"*"Local interface:*" IMPORTING*" REFEREN...原创 2021-07-07 14:31:55 · 706 阅读 · 1 评论 -
定时打印信息
CLASS CL_TIME_EVENT DEFINITION. PUBLIC SECTION. CLASS-METHODS: AUTO_EXE FOR EVENT FINISHED OF CL_GUI_TIMER IMPORTING SENDER.ENDCLASS. "cl_time_event DEFINITIONCLASS C原创 2012-02-10 15:13:27 · 513 阅读 · 0 评论 -
TABLE CONTROL 跳页代码
TABLE CONTROL 跳转代码总结,TABLE CONTROL的名字是SCR_RESULT,屏幕上分别有四个按钮:第一页,上一页,下一页和最后一页 定义全局变量:DATA: G_SCR_RESULT_LINES LIKE SY-LOOPC.在屏幕PBO里面设置G_SCR_RESULT_LINES 的值:PROCESS BEFORE OUTPUT. ...原创 2011-12-19 11:28:34 · 775 阅读 · 0 评论 -
用OO生成ALV集成代码
*& 调用说明:*&*& 1. 创建ALV_GRID.*& FORM CONTAINER_CREATE TABLES P_IT_TAB "显示的内表*& USING P_CONTAINER_NAME "控件名称*& P_CONTAINER原创 2011-07-06 14:03:38 · 2130 阅读 · 0 评论 -
根据屏幕中的控件获得其所在的屏幕号
有时候实现更加复杂的屏幕设计时,需要用到很多子屏幕和CONTAINER来实更丰富的功能,假如屏幕有多个子屏幕,子屏幕上有多个CONTAINER的时候,在某种情况下,如果想知道,用户操作的事件来自哪个子屏幕号,便可以从事件源来找其所在子屏幕,得到它的屏幕号,同时也可以CONTAINER的名字,这个问题折腾了我很多时间,也请教过别人,最终还是没得到想要的答案,今天总结一下,就拿OO ALV原创 2011-12-19 11:10:43 · 851 阅读 · 0 评论 -
弹出屏幕如何DEBUG
一直对这种屏幕的DEBUG都是在CALL SCREEN或者屏幕PBO设置断点,今天学到一招弹出屏幕的DEBUG方法,这个方法很简单,为了避免忘记把它记录在这里。 方法:先文本文件写入以下代码 [FUNCTION] Command = /H Type原创 2011-11-02 10:49:49 · 1188 阅读 · 0 评论 -
alv设置单元格效色
用ALV显示数据,有时候因为一些特殊的要求,可以把某些字段背景颜色设置为不同的颜色,这样可以让用户马上一目了然数据的异同。 其实设置背景颜色并不难,只要在传递数据给ALV函数的那个数据内表加多一列颜色设置,用于设置单元格的背景颜色,这个列的定义,可以直接引用这个结构SLIS_T_SPECIALCOL_ALV。 下面代码说明这个用法:原创 2011-11-01 11:07:36 · 733 阅读 · 0 评论 -
保存文件(以TAB键隔开列的文件)
标准程序保存文件到EXCEL总会出现一些前导显示格式不对,去掉了前导0或者用一串数字字符串显示成科学计数,很不方便,所以今天有空用函数GUI_DOWNLOAD 转换一下格式保存文件。 保存文件代码 如下:(1)调用FORM保存文件: PERFORM SAVE_DATA TABLES ITAB. "ITAB不需要指定结构的内表(2)保存文件代码 FORM SAVE_DA原创 2011-10-31 08:45:30 · 1427 阅读 · 0 评论 -
取图标ICON号码
TYPE-POOLS: SLIS.*INCLUDE ZPHBDP_ALV_DISPALY.**** begin of ALV 引用 *****************TYPE-POOLS SLIS. "引用ALV控件DATA: GT_LIST_TOP_O原创 2011-09-22 14:24:48 · 1042 阅读 · 0 评论 -
SMARTFORMS 参数
SMARTFORMS 参数 &symbol& (括号中为参数,SYMBOL为变量) &symbol& 屏蔽从第一位开始的N位&symbol (n)& 只显示前N位&symbol (S)& 忽略正负号&symbol (符号在左边&symbol (>)& 符号在右边&symbol (Z)& 不输出前导零&symbol (C)& 空格压转载 2012-07-10 09:46:06 · 733 阅读 · 0 评论 -
修改销售订单(备注)
DATA:SALESDOCUMENT LIKE BAPIVBELN-VBELNVALUE'0000000011', ORDER_HEADER_INX LIKE BAPISDH1X, IT_RETURN LIKE BAPIRET2 OCCURS0WITHHEADERLINE, IT_ORDER_ITEM_IN LIKE BAPISDITM OCCU原创 2012-07-03 15:35:14 · 1883 阅读 · 0 评论 -
关于集中采购问题
客户订单(调拨单或销售订单,这里暂且叫客户订单吧)参与集中采购,部份表数据变化:一、汇总报订前:1、当调拨单报订时,调拨单信息必须存在表VETVG,(具体数据汇总可参与FUNCTION:W_CPO_SELLING_DOC_GET_PO);2、当销售订单报订时,销售订单信息必须存在表VEPVG,(具体数据汇总可参与FUNCTION:W_CPO_SELLING_DOC_GET_SO);原创 2017-10-19 11:23:57 · 1018 阅读 · 0 评论 -
非法字符处理(替换)
FUNCTION ZF_REPLACE_STR.*"----------------------------------------------------------------------*"*"Local interface:*" CHANGING*" REFERENCE(STR) TYPE CLIKE*"---------------------------原创 2017-08-09 09:53:45 · 5548 阅读 · 0 评论 -
SAP ABAP常用增强记录文档
BADI-ADDRESS_UPDATE-CRM服务商主数据字段必输控制增强-V1.docxBADI-ALERT_EXIT_LOCAL_PPF-CRM报价单审批Alert增强-V1.docxBADI-BADI_ACC_DOCUMENT_POST-会计凭证创建BAPI的增强-V1.docxBADI-BADI_CRM_BP_UIU_AUTHORITY-CRM客户主数据权限增强-V1.docx转载 2017-05-23 14:30:10 · 4596 阅读 · 2 评论 -
采购单与调拨单或销售订单关联,增加表FRET记录
采购单与调拨单或销售订单关联,增加表FRET记录,在对采购单做收货时,系统自动对调拔单或销售订单,创建拣配单(交货单),具体做法:1、往FRET增加记录;2、修改采购单抬头和行项目相应关联标识。代码:(1)在SE11创建结构: ZST_SAVE_FRETBLNRB CHAR 10 0 凭证号,采购BPOSB NUMC 6 0 凭证项目,采购 BLNRA CH原创 2015-01-22 14:43:56 · 3357 阅读 · 0 评论 -
指定格式或者快速导出的EXCEL文件函数
DATA: IT_FIELD LIKE ZST_EXP_EXCEL_FILE_COND OCCURS 0 WITH HEADER LINE.CLEAR:IT_FIELD[],IT_FIELD....IT_FIELD-NAME = 'MATNR'.IT_FIELD-TEXT = '商品编码'.IT_FIELD-LEN = 10IT_FIEL原创 2013-03-19 11:03:49 · 2021 阅读 · 0 评论 -
自定义价格计算方案要执行的程序
一般新建的价格计算方案方法:定义VOFM公式后,编写相应代码;当从DEV传到QAS或PRD时,发现新的价格计算方案用不了,可以用以下方法解决:1、在SE38直接 执行RV80HGEN 2、在SE38 打开RV61ANNN, 执行菜单Utilities Menu>Update Navigation Index原创 2013-01-11 16:17:13 · 695 阅读 · 0 评论 -
SAP数据更新
SAP 应用系统架构应用层运行着DIALOG进程,每个DIALOG进程绑定一个数据库进程,DIALOG进程与GUI进行通信,每次GUI向应用服务器发送请求时都会通过dispatcher服务为每个GUI的请求分配一个Dialog进程.一个程序运行时,GUI与Dialog进行需要多次通信,每次通信使用的Dialog进程不一定相同,在Dialog进程将控制权转给前台的GUI时,由于Dialog进转载 2012-10-10 14:07:14 · 10403 阅读 · 0 评论 -
无固定内表字段,导出EXCLE文件
FORM FRM_DOWLOAD TABLES P_IT_TABLE USING P_FILENAME. DATA:FRM_FILENAME LIKE RLGRAP-FILENAME. DATA:FRM_IT_DOWNLOAD TYPE STRING OCCURS 0 WITH HEADER LINE. DATA:FRM_ITAB_COMPONET TYPE REF TO CL_原创 2012-07-16 10:51:09 · 707 阅读 · 0 评论 -
产生销售订单的后续交货单
产生销售交货单很简单,只要调用以下函数就可以了,传入参数也很简单,只需要传入SALES_ORDER_ITEMS 这个参数就可以了,不指定行项目号的时候,是整单交货,产生了哪些交货行项目可以从CREATED_ITEMS查看得到。 注意:这个函数产生的交货单,当可用原创 2011-08-16 10:39:39 · 1860 阅读 · 0 评论 -
撇开取可用量标准函数,取可用量的另外一种取法
系统取可用量可以用标准函数AVAILABILITY_CHECK去读取,它会把商品的所有可用量信息全部列出来,而且列的很清楚,这很方便地从可以从执行结果得到需求所要的东西,对如CO09单个商品查可用量是非常方便的,但如果一个报表取可用量,那在同一时间取可用量就可能非常多的商原创 2011-08-15 17:07:16 · 1589 阅读 · 0 评论 -
读取XML文件
读取XML文件方法,其实也不难,可以参考以下的程序:BCCIIXMLT1BCCIIXMLT2BCCIIXMLT3 可以拷贝相关的程序代码,如果想把它的内容读出来给内表,我可以把其中的一段代码:... CASE pnode->get_type( ).原创 2011-08-02 13:35:40 · 813 阅读 · 0 评论 -
at new 用法
DATA: BEGIN OF ITAB OCCURS 0, C1(4), C2(4), C3(4), C4(4), END OF ITAB.DATA: C1(4).ITAB-C1 = '原创 2011-07-05 13:45:36 · 605 阅读 · 0 评论 -
ABAP 数学函数
abs :取绝对值。cos、sin、tan :取三角函数值。acos、asin、atan :反三角函数。cosh、sinh、tanh :双曲函数。exp :e的幂函数。Log原创 2011-07-04 15:05:20 · 2874 阅读 · 1 评论 -
SAP SD定价技术分析
定价技术一直是SAP引以为豪的一个设计。设计也很复杂。基础的IMG设定有(定价表/访问顺序/定价类型/定价过程)等; SAP的定价逻辑如下: 1) 定价程序 FunctionPool: SAPLV61A Function Name: Pricing 2) 变量说明 XKOMV 记录系统定价结果(Item Level) TKOMV 记录系统定价结果(Doc. Level) KOMT1 定价过程 KOMT2 访问顺序 KOMK 定价关键字(表头) KOMP 定价关键字(行) 3) 程序处理逻辑 A) 整理 KO转载 2011-04-15 09:42:00 · 6445 阅读 · 0 评论 -
SAP最强大的定价过程
在开发机上写完定价过程的计算方案,并且测试通过了,觉得还算满意,然后传输到测试机,再测试一下,这回问题出来,发现订单无法调用计算方案进行正确计算商品价格,经过一番网上的搜索,在SDN换到解决方法,然后咨询了一些SAP高手,说这是SAP的BUGER,那没办法,只能照做。计算方案的开发过程:1、首先打开事务代码VOFM,然后进入菜单:公式->定价值,在打开的屏幕的表格输入一条新记录,回车输入开发KEY,回车就新增了一条新的计算方案记录,这里还得选中新建记录的活动的那个单选框,再点菜单:表格->激活,到目前计算方原创 2011-04-13 16:59:00 · 9931 阅读 · 0 评论 -
pb 与SAP的连接
oleObject i_ole_Conn,i_ole_FxnCtrl //用OLE定义对象long ll_status //通过OLE建立的SAP函数成功或失败 (0-成功,否则失败)boolean lb_logon //判断登录SAP成功或失败 (true - 成功,false - 失败)i_ole_FxnCtrl = create oleobjectll_status = i_ole_FxnCtrl.ConnectToNewObject ("sap.fun原创 2011-01-14 16:30:00 · 1927 阅读 · 1 评论 -
PB调用SAP RFC函数
<br />OLEObject I_OLE_ExcelServer<br />long ll_col , ll_cols , ll_row , ll_rows<br />string ls_filename<br />long i,j<br />string ls_data<br />long ll_ret_row //返回当前导出的数据行数<br /> <br /> <br />fxn = i_ole_fxnctrl.add(as_export_table)//给接口原创 2011-01-14 16:34:00 · 2809 阅读 · 1 评论 -
QUERY调整功能
<br />QUERY 程序代码都是自动生成,包括选择屏幕,ALV显示查询结果等,它是很不错的生成报表工具。<br /> 相关事务代码:SQ03,SQL02,SQL01。<br /> 在开发机创建并生成可执行程序,再传输到测试机和开发机进行使用。<br /> 开发好的QUERY从开发机传输QUERY到测试机和生产机时,可能就出现丢失函数或函数没有更新的情况,这时,可以直接进入测试机的SQ01进行QUERY的调整,这是QUERY很大的一个功能。<br /> 例:SELECT查询原创 2011-01-13 16:49:00 · 794 阅读 · 0 评论 -
取商品的可用量函数,类似CO09
FUNCTION ZF_GET_SP_KYL.*"----------------------------------------------------------------------*"*"Local interface:*" IMPORTING*" REFERENCE(MATNR) LIKE MARA-MATNR*" REFERENCE(WERKS) LIKE T001W-WERKS*" REFERENCE(PRREG) LIKE ATPCS-PRREG DEFA原创 2011-01-13 16:35:00 · 1565 阅读 · 1 评论 -
取字符长度
DATA: LENGTH TYPE P.PARAMETERS P_STR TYPE STRING.LENGTH = CL_ABAP_LIST_UTILITIES=>DYNAMIC_OUTPUT_LENGTH( P_STR ). "包含中文字符串(全角/半角)MESSAGE i0原创 2011-07-11 14:35:22 · 589 阅读 · 0 评论 -
取用户帐号描述
DATA: NAME_FIRST LIKE ADRP-NAME_FIRST, NAME_LAST LIKE ADRP-NAME_LAST. SELECT SINGLE ADRP~NAME_FIRST原创 2011-07-12 13:22:26 · 737 阅读 · 0 评论 -
变式表
1、选择屏幕变式表: VARID:变式目录 VARIT:变式描述 VARI :变式内容原创 2011-07-26 10:51:39 · 1484 阅读 · 0 评论 -
获取标准程序的BADI,用户出口,增强
TABLES: SXS_ATTR, TOBJT, TSTCT, "TCode texts TRDIRT, "Program texts SXC_EXIT.转载 2011-07-14 09:27:39 · 797 阅读 · 0 评论 -
修改导入本地EXCEL文件的函数(ALSM_EXCEL_TO_INTERNAL_TABLE)
ABAP原来提供的导入本地EXCEL文件的函数(ALSM_EXCEL_TO_INTERNAL_TABLE)感觉比较麻烦,所以做了相应的修改。 FUNCTION ZF_TEST.*"--------------------------------------------------原创 2011-07-25 16:50:18 · 3754 阅读 · 0 评论 -
ABAP读取文件
ABAP读取文本文件分两种情况:第一种是本地文本文件,第二种是服务器。它读取方式不一样,本地文件可以直接用 CALL FUNCTION 'WS_UPLOAD'来实现,然再进行处理,服务器读取文件需要用OPEN DATASET来读取,然后再进行处理。以下是两种读取方式的代码: "(原创 2011-07-25 13:30:43 · 5754 阅读 · 0 评论 -
ASCII码转换
通常ASCII码的转换可以通过ASCII码去查找得到,程序里面也会有专的ASCII码转换函数,ABAP的ASCII码转换,可以简单地先将字符转换成一个16进制的数,再把它转换成一个10进制的数字,就可以了! "转换成ASCI码FIELD-SYMBOLS : TYPE X.DAT原创 2011-07-14 15:26:05 · 3120 阅读 · 0 评论 -
内表列值相加
有些报表需要将每一列的数值做合计,而且列非常多,将每列的值相加就要写很多条列相加的代码是很麻烦的,所以ABAP提供了一个简单的计算方法:ADD xxx THEN xxx UNTIL xxx GIVING/TO xxx.它自动把指定的列进行相加. DATA: BEGIN OF S原创 2011-07-14 16:07:54 · 2197 阅读 · 0 评论 -
读取本地EXCEL文件
DATA: IT_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.PARAMETERS FN LIKE RLGRAP-FILENAME MEMORY ID MO1.AT SELECTION-SCREEN ON VALUE-R原创 2011-07-14 09:42:57 · 739 阅读 · 0 评论 -
内表当前与其它所有的行相加
DATA: DATA TYPE I, C_DATA, CON_DATA.DATA: POS TYPE STRING VALUE '1', SUM TYPE i VALUE 3.DATA: COUNT TYPE I.DATA: BEGIN OF IT_原创 2011-07-14 09:36:09 · 400 阅读 · 0 评论