
SAP ABAP一般
文章平均质量分 54
技术价值体现之道践行者
后IT时代,新制造企业数字化运营转型专家
展开
-
HTTPS 协议下东东的下载
最近上了SAP的开发者网络,下载的东东,发现全部都是https协议的,快车试过了不行,IE和OPERA倒是可以下,可是几个G的东东,用这些来下实在是有些吃力,于是找呀找呀,找了好些个软件都不行,终于找到一个叫Internet Download Manager的可以下,可以和IE及Opera整合。 用了感觉不错,所以发文分享,想下的朋友百度一下即可。原创 2008-02-28 12:04:00 · 801 阅读 · 0 评论 -
利用宏生成FieldCatalog.
一般情况,做ALV报表时都会调用系统函数REUSE_ALV_FIELDCATALOG_MERGE, 我发现当字段较多时,调用该函数经常出现超长错误。于是改为用手工生成 FIELDCATALOG, 利用宏可以使用代码更简练一些,示例如下:*手工构造FieldCatalog. CLEAR it_filed.*&----------------------------------------原创 2008-03-14 11:54:00 · 971 阅读 · 2 评论 -
SAP ABAP验证日期合法性.
用惯了C#,今天试了一下,SAP竟然也可以这样验证日期:DATA: v_date TYPE d, v_c(8) TYPE c.***************************** check date****************************v_c = 20081130.v_date = v_c.IF v_date = 0. WRITE: / v原创 2008-03-11 10:42:00 · 2850 阅读 · 0 评论 -
SAP ABAP验证数字合法性
同理,验证数字:DATA: v_int TYPE i, v_c(8) TYPE c.***************************** check number****************************v_c = A.TRY. v_int = v_c. WRITE: / v_c , is a OK number.. C原创 2008-03-11 10:43:00 · 3211 阅读 · 4 评论 -
SAP系统自带的示例程序
1. 系统菜单: Environment -> Examples。2. SE38后,输入DEMO*, F4.3. SE38, input BCALV*, F4,ALV相关的例子原创 2008-03-18 08:57:00 · 2706 阅读 · 0 评论 -
ABAP 判断内表为空
IF ITAB IS INITIAL. WRITE ITAB is empty.ENDIF. 在FOR ALL ENTRIES 之前一定要对条件内表作验证工作,不然程序效率将会非常低!原创 2008-03-27 15:03:00 · 3574 阅读 · 0 评论 -
SmartForms 连续打印实现
调用smartforms时直接打印,不出现打印预览窗口,适用于凭证的批量打印。代码如下: DATA: fm_name TYPE rs38l_fnam. DATA: ctrl_param TYPE ssfctrlop, out_option TYPE ssfcompop. ctrl_param-preview = . out_option-tddest = LP0原创 2008-07-24 16:34:00 · 3397 阅读 · 1 评论 -
如何Call系统标准TCODE.
经常用户会有这咱需求,比如在自开发的报表中双击物料凭证号就可以进入到系统标准的物料凭证中去,下面就是实现代码: SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L0S33 {color: #4DA619;}.L0S52 {原创 2008-07-24 16:59:00 · 1011 阅读 · 0 评论 -
如何得到所有未关闭的项目列表?
方法一,通过取项目状态的系统函数BAPI_BUS2001_GET_STATUS来过滤项目列表。方法二,找到相关的状态表直接与项目表关联,经过查看BAPI_BUS2001_GET_STATUS的代码,得到这个表为 SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #F5原创 2008-07-30 14:35:00 · 1017 阅读 · 0 评论 -
数字型转文本型,如何保留千位符.
当然可以直接操作字符串,每隔三位加一个逗号进去,不过感觉有些麻烦了。今天正好遇到用户有这个需求,在网上搜了一下,找到一个简单的办法,经测试OK,简单实现代码如下: data: v_c(20) type c, v_n type p DECIMALS 2.v_n = 5422121.23.write v_n to v_c.write v_c. 原来只要采用Wr原创 2008-07-31 15:00:00 · 2554 阅读 · 0 评论 -
递归的方法动态保留小数位,有几位小数就显示几位小数
在实际的开发中,经常需要把数字转成文本显示,以示适用户的显示格式需求。在SAP ABAP中,我们定义了一个数字型的小数位后,即使没有小数ABAP也会以0填充,所以就会出现5.000的情况,用户希望这种情况下只输出5就可以了,于是用递归的方法写了一个函数,代码如下: SPAN {font-family: "Courier New";font-size: 10pt;colo原创 2008-08-04 11:08:00 · 1964 阅读 · 0 评论 -
计算月间隔日期.
要求计算一个日期加减月份后的日期,自己写了一个, 后来才发现有系统函数,唉. SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L0S31 {font-style: italic;color: #808080;}.L0S32原创 2008-05-22 15:09:00 · 1147 阅读 · 0 评论 -
SAP如何装字体?
SAP系统自带的字体实在太少了,用户很钟意Arial字体,没办法,查了下资料,发现SE73可以安装字体进去. 不过可惜,只直持西文字体,以双字节的字体比如中文不支持,说是太大了,唉.以下是帮助的原文: Using TrueType Fonts UseTrueType fonts are fonts that are not built into the printer, bu原创 2008-05-23 10:39:00 · 8982 阅读 · 0 评论 -
类的多参数,带返回值的静态方法的调用
写了这么多报表了,中间也写了很多技巧性的子程序,总是COPY来COPY去的或者用include方式引用,感觉像很久以前的过程编程,即然ABAP已经支持OO了,就尝试将这些功能封装了一下,当只有一个输入参数的可以用如下方式引用: SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;backgro原创 2008-08-06 13:50:00 · 2298 阅读 · 0 评论 -
ABAP如何自定义下拉列表
1. 在选择屏幕上添加下拉列表控件, 代码如下: SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #F5F5F5;}.L1S32 {color: #3399FF;}.L1S33 {color: #4DA619;}.L1S52 {co原创 2008-08-06 16:21:00 · 3057 阅读 · 0 评论 -
删除内表重复行
代码如下: SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L0S52 {color: #0000FF;}sort itab by key1. SPAN {font-family: "Courier原创 2008-08-25 17:01:00 · 812 阅读 · 0 评论 -
工具栏按钮与屏幕上的按钮,响应方式的区别
响应事件一样,都是在屏幕的 PAI事件中, 类似SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L1S52 {color: #0000FF;} SPAN {font-family: "Courier Ne原创 2008-08-25 17:08:00 · 899 阅读 · 0 评论 -
ABAP程序运行中,状态动态提示
代码如下: SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L1S33 {color: #4DA619;}.L1S52 {color: #0000FF;} CALL FUNCTION SAPGUI_P原创 2008-08-25 17:06:00 · 1500 阅读 · 0 评论 -
ABAP 程序中的用户权限验证
代码如下: SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L0S33 {color: #4DA619;}.L0S52 {color: #0000FF;}AUTHORITY-CHECK OBJECT V_VBR原创 2008-08-28 10:28:00 · 2171 阅读 · 0 评论 -
更改程序的开发类(本地程序的传输)
方法一:1. SE38打开程序,change状态. 2. 菜单[GOTO]->[Object Directory Entry], 点击修改图标。 3. 修改成功后,保存,会提示Request key,选一个或新申请一个都可。 3. 激活,这样就可以传输了。 **************************************方法二:TCODE:原创 2008-08-28 18:43:00 · 1262 阅读 · 0 评论 -
递归方法计划销售订单的计划物料成本
一个PS报表中的需求,要求求销售订单的计划成本,其中就包括计划物料成本,比较确准的计算主法就是遍历BOM,求出物料成本. 如果在创建销售订单时项目BOM可以产生,且用户进行了成本估算,则完全可以从系统表中取出系统计算的计划成本,此法简单且快,但可惜不是所有的销售订单都能满足. 代码如下: SPAN {font-family: "Anonymous";font-原创 2008-06-19 11:03:00 · 1206 阅读 · 0 评论 -
SmartForm动态换行的实现
虽然SAP的标准类可以提供换行符,但是在SAP系统中却是不生效的,无论是Write还是SmartForm中的文本字段.所以,在其他语言中常用的方法,即在字符串中插入换行符的做法是行不通的.那么在SAP该如何实现动态换行呢?经过摸索和实践,利用内表循环输出可以达到这个目的.在SmartForms中,将动态换行的文本分行插入内表,并在合适的位置循环输入即可.原创 2008-07-02 15:01:00 · 5975 阅读 · 0 评论 -
取所有未关闭的项目
BAPI_BUS2001_GET_STATUS 这个函数是取得项目状态用的, 经过查看该函数代码及跟踪测试,得知项目状态关系到的三个表,即PROJ,JEST,TJ02T. SPAN {font-family: "Anonymous";font-size: 10pt;color: #000000;background: #FFFFFF;}.L1S33 {c原创 2008-09-24 11:05:00 · 712 阅读 · 0 评论 -
多行文本弹出窗口
利用函数 POPUP_TO_CONFIRM_WITH_MESSAGE 可以弹出确认窗口,但行数受限,每行只有35个字符,很多时候不是很合用。后来找到另一个函数 POPUP_WITH_TABLE 可以将内表内容放入弹出窗口。代码如下: SPAN {font-family: "Anonymous";font-size: 10pt;color: #000000;ba原创 2008-10-21 19:23:00 · 1159 阅读 · 0 评论 -
ABAP门派现状报告200803
出处:http://blog.chinaunix.net/u2/64908/showart_511501.htmlABAP是一个很小的程序员门派. 专门做SAP软件的开发(极少数)和二次开发(绝大多数). SAP公司和SAP软件都是很牛的,所以ABAP程序员混得也不错. 其实在NetWeaver平台推出之前,ABAP门派的人主要是在修炼一种叫ABAP的功夫. 这种功夫类似C语言,是纯转载 2008-10-20 10:14:00 · 984 阅读 · 0 评论 -
BDC 实践总结
1. BDC录制TCODE: SHDB。 2. 具体调用方法可以参考系统生成的代码,但感觉有些繁锁,以下是我的调用代码: CALL TRANSACTION [TCODE] USING bdcdata_tab OPTIONS FROM opt . 关于BDCDATA的生成,我定义了两个宏: SPAN {font-family: "Anonymous";f原创 2008-10-04 09:26:00 · 1227 阅读 · 0 评论 -
FM to get WBS element(PS_POSID) by using internal number(PS_PSP_PNR)
1. CALL FUNCTION CONVERSION_EXIT_KONPR_OUTPUT EXPORTING input = g_ps_psp_pnr IMPORTING output = g_ps_posid.2. CALL FUNCTION PSPNUM_INTERN_TO_EXTERN_CON转载 2008-10-24 10:32:00 · 2019 阅读 · 0 评论 -
SAP中本地文件的upload和download的方
无论是upload还是download,首先要确定文件的路径和名字。下面介绍几种使用文件选择框的方法:-、使用FM F4_FILENAMEcall function F4_FILENAME importing file_name = filename.二、使用FM KD_GET_FILENAME_ON_F4call function KD_GET_FILENAME_ON_F4转载 2008-10-24 10:38:00 · 2498 阅读 · 0 评论 -
SAP Smart forms中文字体重叠的解决方法
前注:英文环境指login language 为 E的系统,中文环境指login language 为 1。 如果想在smart forms中显示中文内容,最好在中文环境中编辑,我曾经在英文环境编辑,那些中文描述要英文环境中打印都成了乱码。这个问题具体成因和解决方法我现在还未找出。 smart forms写好以后,测试时发现,当要在form中显示的业务数据(Fi转载 2008-10-24 10:34:00 · 3559 阅读 · 0 评论 -
ALV 导出EXCEL时,编号少位?
今天财务部的同事说,一个报表导出EXCEL时科目编号少了一位,看了下代码,ALV显示很正常,但是导出时确实少了一位,而且自动去了前导零。 于是尝试将科目编号去前导零后输出,再导出时正常了。 故, 所有N型C型编号,在输出时还是去掉前导零为好,必免此类错误。原创 2008-11-05 14:42:00 · 2369 阅读 · 0 评论 -
万能ABAP编辑器
万能ABAP编辑器! SPAN {font-family: "Anonymous";font-size: 10pt;color: #000000;background: #FFFFFF;}.L1S32 {color: #3399FF;}.L1S52 {color: #0000FF;}REPORT zt_freeabap.DATA:转载 2008-12-29 13:44:00 · 1590 阅读 · 0 评论 -
号码段表及相关操作TCODE
如果号码段出现异常,可以直接修改此表. NRIV 销售凭证对象名:RV_BELEG 物料凭证对象名:MATBELEG 相关TCODE: FICO相关号码段维护:FBN1 SD相关号码段维护: VN01 WH相关凭证号码段: LN01 MM 相关号码段: OMBT 所原创 2008-12-30 13:23:00 · 1586 阅读 · 0 评论 -
Express document "Update was terminated" From ...错误解决
刚出现这个错误时也吓了一跳,不知道如何着手,于是上网狂查,加上自己的一点分析终于解决了,其原因是号码段出了问题,我这里就是MIGO操作时出的错,产生的物料凭证号竟然是己经存在的,于是将该号码段加大100,问题解决。 是哪里出错就查哪里的号码段,然后将当前值加大一点就可以了。 是不是很简单,号码段所在表NRIV, 写个程序UPDATE,原创 2008-12-31 16:38:00 · 2960 阅读 · 2 评论 -
Creating and changing a production order from ABAP.
正好遇到这个问题,在网上搜到的,不过看到红色字体那还是有点失望吧。 http://abaplog.wordpress.com/2007/05/19/creating-and-changing-a-production-order-from-abap/ Creating production orders is one of common tasks when you have so转载 2009-01-09 16:11:00 · 1598 阅读 · 0 评论 -
好地方
http://abap.wikiprog.com/wiki/Main_Page原创 2009-01-09 13:17:00 · 735 阅读 · 0 评论 -
存放所有程序标题的表
TRDIRT 可以用来生成程序列表原创 2009-01-16 10:58:00 · 602 阅读 · 0 评论 -
ABAP 程序名竟然里外可以不一样的
今天为了修改一个标准程序,从而COPY了一个,发现当程序名为A,但代码中写report B 时,竟然也是可以的。 记录一下。 顺便说一下TCODE: s_alr_87013611 他所对应的程序每个Client都不一样的,当需要修改时也只能COPY目标Client的代码了。原创 2009-01-15 16:54:00 · 791 阅读 · 0 评论 -
ABAP 宏 参数限制
今天发现,在宏中好像只能定义9个参数,多了就报错。 看来还是perform好些,没啥限制。原创 2008-11-21 14:09:00 · 1668 阅读 · 0 评论 -
手工后台查看PO审批时间
一个用户咨询的,挺简单的,就不用开发报表了,操作方法如下: 1. SE16 输入表名CDHDR 回车 2. 对象价值: 即为PO号码 名称: 即用户名 事务: ME28 即可查看该 PO的日期和时间原创 2009-01-15 10:27:00 · 1342 阅读 · 0 评论 -
在vs2005中使用Com连接SAP系统-Form方式
原文地址:http://www.cnblogs.com/flysky927/archive/2009/01/03/1367684.html一,添加对Interop.SAPFunctionsOCX.dll以及Interop.SAPLogonCtrl.dll这两个com组件的引用。 二,通过SAPLogonCtrl进行SAP系统的登录,输入登陆SAP系统需要的一些参数,具体参见如下代码转载 2009-01-22 09:37:00 · 2034 阅读 · 0 评论