SAP ABAP 跪求指导

问题描述

我是ABAP新手请各位高手指点下下面这道题帮忙改错和优化谢谢REPORTZ_PP.TYPES:BEGINOFTY_DATA,MATNRTYPEMARA-MATNR,MAKTXTYPEMAKT-MAKTX,ENDOFTY_DATA.DATAIT_DATATYPESTANDARDTABLEOFTY_DATA.DATAIS_DATATYPETY_DATA.DATAIT_MARATYPESTANDARDTABLEOFMARA.DATAIS_MARATYPEMARA.DATAIT_MAKTTYPESTANDARDTABLEOFMAKT.DATAIS_MAKTTYPEMAKT.SELECT*INTOCORRESPONDINGFIELDSOFTABLEIT_MARAFROMMARA.SELECT*INTOCORRESPONDINGFIELDSOFTABLEIT_MAKTFROMMAKT.LOOPATIT_MARAINTOIS_MARA.READTABLEIT_MAKTINTOIS_MAKTWITHKEYMATNR=IS_MARA-MATNRBINARYSEARCH.IS_DATA-MATNR=IS_MAKT-MATNR.IS_DATA-MAKTX=IS_MAKT-MAKTX.APPENDIS_DATATOIT_DATA.WRITE:/IS_MAKT-MATNR,IS_MAKT-MAKTX,IS_DATA-MATNR,IS_DATA-MAKTX.ENDLOOP.

解决方案

解决方案二:
晕,这点东西还指导啥呀,就是代码懒了点
解决方案三:
该回复于2011-08-12 16:20:38被版主删除
解决方案四:
蛮好的呀,怎么啦?
解决方案五:
跪求,严重了吧,
解决方案六:
http://www.cnblogs.com/mengxin523/一起进步
解决方案七:
挺难在,还要不会
解决方案八:
该回复于2011-09-06 17:52:57被版主删除
解决方案九:
1、在SELECT语句中尽量写出你需要选择的字段,减少数据检索量,你这两个选择语句可以合并成一条,至于是leftjoin还是innerjoin就要看你的需要了。leftjoin,innerjoin在一次select中最好不要超过三个表2、就算按你这个写法,选取makt的时候,可以用forallentriesIT_MARA3、在使用BINARYSEARCHReadTable时,先对内表按条件进行排序
解决方案十:
还是要自己多动手,不过河,怎么知道水的深浅?
解决方案十一:
1.可以表连接,合并两次DB操作为一次。速度会大大提升,请用se30性能分析验证。2.二分查找之前请对内表排序。3.readtable之后,编辑数据之前请判断sy-subrc。4.在循环里面使用工作区后请clear。
解决方案十二:
没有看有什么问题!!
解决方案十三:
SQL查数据,可以使用join关键字,还有最好不要使用这样的SELECT*FROMTABLE的语句。
解决方案十四:
MARA表太大了,最好先用forallentrisein
解决方案十五:
使用BINARYSEARCHReadTable时,先对内表按条件进行排序
其他方案:
用SAP标准的功能MM60或自己学习一下SAPquery,这个代码写得可行不可取,除非sapbasis是你家亲戚。
其他方案:
1、SELECT语句写出你需要选择的字段;2、就算按你这个写法,先查询MAKT到IT_MAKT中,可以用forallentries:selct。。。。。。fromMARAforallentriesinit_maktwheremara~matnr=it_makt-matnr.3、在使用BINARYSEARCHReadTable时,先对内表按条件进行排序:SORTit_marabymatnr
其他方案:
data:beginofIT_DATAoccurs0,matnrlikemara-matnr,maktxlikemakt-maktx,endofIT_DATA.你这个功能直接从MAKT中取数就行了,不用MARA表。selectmatnrmaktxINTOCORRESPONDINGFIELDSOFTABLEIT_DATAfrommakt.如果一定要从MARA关联,可以使用JOINselecta~matnrb~maktxINTOCORRESPONDINGFIELDSOFTABLEIT_DATAfrommaraasainnerjoinmaktasbona~matnreqb~matnrandb~langu=sy-langu.loopatit_data."write:.......endloop.
其他方案:
一般少用模糊查询
其他方案:
条件设置范围太大
其他方案:
引用19楼u011527422的回复:

条件设置范围太大

+1
其他方案:
整体思路和语法没有问题,就是你写的select语句有问题,在查询物料主数据和对应物料名称时,可以写做左连接查询(leftjoin)这样速度会大幅提升的。
其他方案:
哥们,你READTABLEIT_MAKTINTOIS_MAKTWITHKEYMATNR=IS_MARA-MATNRBINARYSEARCH.READ之前不排序?
其他方案:
是要取物料號及其對應的描述吧?不知以下代碼效率如何,你可以參考下。SELECTa~matnrb~maktxINTOCORRESPONDINGFIELDSOFTABLEIT_dataFROMMARAasainnerjoinmaktasbonb~matnr=a~matnrwhereb~spras=sy-langu.

时间: 2024-10-21 19:48:41

SAP ABAP 跪求指导的相关文章

加强51 卡尔曼滤波-[51单片机] 有没有大神做基于加强51的MPU6050啊~~~跪求指导

问题描述 [51单片机] 有没有大神做基于加强51的MPU6050啊~~~跪求指导 本人只会用串口和用1602读出数据... 不会卡尔曼滤波.等对数据的处理和进一步转换 解决方案 http://bbs.elecfans.com/jishu_364692_1_1.html

j2ee-新人跪求指导Java自学路线

问题描述 新人跪求指导Java自学路线 我现在自学完了Javase,oracle 想问一下个为大神是否可以跳过javaweb的学习直接学习j2ee?

数据库登陆错误-跪求指导,oracle数据库错误

问题描述 跪求指导,oracle数据库错误 oracle登陆时怎么总是出现无效的参数?ORA-12532:TNS:无效的参数!每次联网弄好后,再开机就又不好用了,求大牛帮帮忙! 解决方案 配置没错?有没有成功过?会不会是安装的过程出现包错误? 解决方案二: 你是不是没设置好SID啊 set oracle_sid=*** ***填你的数据库实例的SID号 解决方案三: 谢啦,搞定了,是本机IP的问题!所以没监听到!

sql-关于插入数据库数据但不是实时的跪求指导

问题描述 关于插入数据库数据但不是实时的跪求指导 写入ORA时,但是插入的数据不是最新的,一直是重复一样的数据,(比如今天是11月11号,数据更新的时间是10号,但是写入数据库时的时间一直是9号的)求指导!具体代码如下: time_t timeTmp = ctime; CTime Oratm(timeTmp); char timess[100] = {0}; sprintf(timess,"to_date('%d-%d-%d %02d:%02d:00','yyyy-mm-dd hh24:mi:s

关于ictclas,跪求指导

问题描述 关于ictclas,跪求指导 ictclas分词系统最后输出的权重是怎么计算的,是相对词频吗?初次使用ictclas,跪求解答,谢谢!! 解决方案 http://bbs.csdn.net/topics/370186420

【经验总结】跪求指导:如何判断图片是否加载完成

群里某筒子问了下,如何判断一张图片已经完成,把想到的可能的情况整理了下 一.一般情况下 1)图片静态页面标签<img />创建 <img src = 'http://www.baidu.com/img/baidu_sylogo1.gif' onload='onloadHandler(this)' /> 2)图片通过脚本动态创建 1 var img = document.createElement('img'); 2 img.onload = function(){ 3 alert(

本人新手想用C#开发一个能够操作Word,有数据库的软件,跪求指导!

问题描述 我初步的想法是先读取某一个地址的Word文件然后将数据导入数据库(这一步不知道对不对,以为我需处理的Word的文件一般都是论文或者书之类的.所以不敢用变量直接存储.)处理完数据后再导出为Word文件.目前还不知道如何建工程,是用WPF应用程序好还是用web应用程序好,希望大家能给点意见或者样例程序之类的.将不胜感激! 解决方案 解决方案二:我觉得你这个东西的点在于你如何处理数据读取word和保存word都不是问题,找office相关组件的示例就可以了解决方案三:如果是结构化的数据,还是

广州汇智通信技术公司如何,跪求内行人指导!!!

问题描述 本人是应届生,已经通过该公司的面试了...公司说本科生的年薪不会少于8万,但是座谈的时候一直不说基本工资...有没有在广州的朋友或者内行知情者,跪求指导,真心求帮助!

C#编写WinForm,生成数字码并写入指定Excel(求指导哇)

问题描述 Excel文件要求:文件名固定,有两个表单且表单名固定.表单用途:(跟下面的序列号生成规则结合起来,就不太会了--)数字码写入sheet1列"A",每次写入均从第二行往下写(覆盖),写完后其他行清空:数字码写入sheet2列"D",每次写入数据不覆盖,接着之前的数字码下面写(用于记录以往数字码的生成历史).窗体功能:1.数字码生成(这个容易搞定,只是为了介绍下我要做什么)数字码=当天日期(格式:yymmdd)+序列号(格式:XXX,从001开始)2.序列号