不带冒号的逗号(COL之后?)

2020-09-16 07:41发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我希望这里的一些专家可以帮助我,而不会生气,说"这只是一个简单的基本知识"。 对于已经经验丰富的人来说,简单的事情对于像我这样的新生来说可能并不那么简单。

所以我谦卑地请大家让我在这里发表我的问题。

这与以下代码有关:

 CNT = SY-DBCNT。  " CNT TYPE C可抑制千位分隔符或逗号
 WRITE_GRID CNT 6 ON OFF COL_TOTAL。
 WRITE_GRID图标名称35开关COL_KEY。
 WRITE_GRID图标ID 7 ON OFF COL_POSITIVE。
 WRITE_GRID ICON + 1(2)4 ON OFF COL_HEADING。

进行语法检查时,我在SE38中收到以下错误:

对于第一个Write_Grid语句,"不带冒号的逗号(在COL之后?)"。

如果我评论第一行,即

* WRITE_GRID CNT 6 ON OFF COL_TOTAL。

,那么对于下一个Write_Grid语句,我将得到相同的错误。

WRITE_GRID图标名称35开关COL_KEY。

&等等...

在过去的8个小时中,我尝试了各种选择,但仍然无法弄清楚语法错误的地方。

我尝试写作-

 WRITE_GRID:CNT 6 ON OFF COL_TOTAL,
              ICON-NAME 35 ON OFF COL_KEY,
              ......
              ...... 

仍然没有任何帮助,我又一次又遇到了相同的错误。

请帮助。

谨此问候

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我希望这里的一些专家可以帮助我,而不会生气,说"这只是一个简单的基本知识"。 对于已经经验丰富的人来说,简单的事情对于像我这样的新生来说可能并不那么简单。

所以我谦卑地请大家让我在这里发表我的问题。

这与以下代码有关:

 CNT = SY-DBCNT。  " CNT TYPE C可抑制千位分隔符或逗号
 WRITE_GRID CNT 6 ON OFF COL_TOTAL。
 WRITE_GRID图标名称35开关COL_KEY。
 WRITE_GRID图标ID 7 ON OFF COL_POSITIVE。
 WRITE_GRID ICON + 1(2)4 ON OFF COL_HEADING。

进行语法检查时,我在SE38中收到以下错误:

对于第一个Write_Grid语句,"不带冒号的逗号(在COL之后?)"。

如果我评论第一行,即

* WRITE_GRID CNT 6 ON OFF COL_TOTAL。

,那么对于下一个Write_Grid语句,我将得到相同的错误。

WRITE_GRID图标名称35开关COL_KEY。

&等等...

在过去的8个小时中,我尝试了各种选择,但仍然无法弄清楚语法错误的地方。

我尝试写作-

 WRITE_GRID:CNT 6 ON OFF COL_TOTAL,
              ICON-NAME 35 ON OFF COL_KEY,
              ......
              ...... 

仍然没有任何帮助,我又一次又遇到了相同的错误。

请帮助。

谨此问候

付费偷看设置
发送
6条回答
Baoming ROSE
1楼-- · 2020-09-16 08:24

首先,WRITE_GRID不是ABAP语句!

这是一个宏,作为初学者,您不应该从头开始。 在某个地方,您必须具有该宏的DEFINE语句。 实际上,应尽可能避免使用宏。

首先,请使用记录在案的声明。 在WRITE_GRID上按F1键,您将看到它没有记录在案。

获取一些教程或培训以学习基本陈述。

PS:有趣的是,我本人大约在20年前为Stone Stone的一些文档创建了一个WRITE_GRID宏,而且似乎还在...

https: //help.sap.com/doc/saphelp_nw70ehp2/7.02.16/en-US/9f/dba23035c111d1829f0000e829fbfe/content.htm?no_cache=true

d56caomao
2楼-- · 2020-09-16 08:25

不要使用宏。

https: //help.sap.com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/index.htm?file=abenmacros_guidl.htm

作为当今的初学者,从真实的东西开始,从ABAP Objects的功能方法开始。

打个大熊猫
3楼-- · 2020-09-16 08:21

错误应该在宏内,您编写WRITE语句的方式会使命令成为错误 当它获取数据到占位符时。 由于您没有显示自己的宏代码,因此我尝试自行创建宏代码,并且该代码正常运行:

 DEFINE WRITE_GRID。
  格式颜色=&5。
  写入&2&1反向=&3增强=&4。
 定义结束。

 数据:CNT C型长度3,
  POS类型
 常数:
  COL_TOTAL TYPE I VALUE 3,
  COL_KEY TYPE I VALUE 4,
  COL_POSITIVE TYPE I VALUE 5,
  COL_HEADING TYPE I VALUE 1,
  在类型I值为1时,
  OFF TYPE I VALUE 0。

 CNT = SY-DBCNT。
 POS = 6。

 WRITE_GRID CNT POS ON OFF COL_TOTAL。

但是正如Horst所说,您不应该使用宏。 如果您仍然不熟悉ABAP对象,则可以编写子例程来处理此问题。

黑丝骑士
4楼-- · 2020-09-16 08:20

这是一个不寻常的错误,有时我也收到了,我用不了为什么发生了:)(也许您可以激活程序而忽略该错误以检查会发生什么;))。 以前,我认为学习不仅是要解决问题,而且要找到解决问题的方法,将宏转换为OOP之类的新技术将为您带来更多好处。

打个大熊猫
5楼-- · 2020-09-16 08:12

嗨Quynh,

是的,您是正确的! 一旦我不用复制就重写了整个程序,错误就消失了。

但是现在出现了一个新问题! 除了水平线和顶部出现的页码外,我什么也没有得到!

您能再帮忙吗?

这是修改后的代码:

报告YCL_CH07_INBOX_MACRO无标准页标题行数60行大小75。
 表格:图标。
 *包括。
 * TYPE-POOLS图标。
 数据:COL型SY-COLNO,
       LIN SY-LINNO,
       长度I,
       PG型SY-PAGNO,
       CNTR I型,
       C型碳纳米管
       V TYPE STRING。

 定义WRITE_GRID。
   COL = SY-COLNO。  LIN = SY-LINNO。
 格式反转&3增强&4颜色&5。
 写:" |"  NO-GAP,(&2)&1 NO-GAP,'|' 没有差距

 长度= SY-COLNO-COL。  "得出霍兹线的长度
 LIN = LIN-1。
 ULINE AT COL(长度)。 顶级霍兹线

 LIN = LIN + 2。
 ULINE AT COL(长度)。  " Horiz底线

 LIN = LIN-1。
 COL = SY-COLNO-2。

 跳到林琳。
 位置颜色。

 定义结束。


 选择开始。

 按名称按图标选择*。
   如果CNTR> = 58或CNT初始。
     执行头。
   万一。

  CNT = SY-DBCNT。

  WRITE_GRID CNT 6 ON OFF COL_TOTAL。
  WRITE_GRID图标名称35开关COL_KEY。
  CONCATENATE'@'ICON-ID + 1(2)'@'INTO V.
  WRITE_GRID图标ID 7 ON OFF COL_POSITIVE。
  WRITE_GRID V 4 ON OFF COL_HEADING。

  跳过2。

  位置5。

  CNTR = CNTR + 2。

 ENDSELECT。

 表格标题。

   新页无标题。

   PG = PG + 1。

   写59(3)PG。

   跳过2。

   位置5。

 WRITE_GRID TEXT-001 6 ON OFF COL_TOTAL。

 WRITE_GRID TEXT-002 35 ON OFF COL_KEY。

 WRITE_GRID TEXT-003 7 ON OFF COL_POSITIVE。

 WRITE_GRID TEXT-004 4 ON OFF COL_HEADING。

 跳过2。

 位置5。

 CNTR = 4。

 ENDFORM。

请不要告诉我从该程序中删除宏或其他任何部分。

请告诉我为什么程序似乎没有以

的身份进入宏?

当我在SE38中单击F8时,只有水平线出现在输出中,如下所示:

1

---------------------------------

-----------------------------------

2

---------------------------------

----------------------------

--------------------------------------------

木偶小白
6楼-- · 2020-09-16 08:24

您好,

我根本不会在不理解代码含义的情况下盲目复制代码,这就是为什么我有如此多的疑问,实际上这使我放慢了脚步,但我仍然没有放弃!

"文本-"在这里表示我们在SE38中使用"文本元素"输入的列标题。

一周热门 更多>