从表中获取数据 - SAP SmartForms

时间:2012-10-04 14:16:57

标签: sap

我是smartforms的新手。我正在尝试从KNA1获取一些数据,如在交货单上显示的名称和地址。我怎么得到这个?我知道我必须将表格放在“全局选项”的某个选项中,但我只是不知道哪一个。拜托,有人可以帮帮我吗?感谢。

2 个答案:

答案 0 :(得分:2)

您需要知道如何为此开发ABAP编码。假设您知道这一点,您应该尝试扩展表单的输入结构,并将必要的选择逻辑添加到提供程序中。如果无法做到这一点,您可以在表单中添加代码,但不建议出于各种原因。

编辑: 如果您确实知道如何编写ABAP代码,那么理解您的问题就更难了。我假设你已经看过excellent online doumentation了。如果您检查表单的标题条目,您会注意到global definitions和初始化编码等内容。如果您仔细查看可以在表单中插入的元素,您将发现program lines。因此,这是以一种从数据库中选择数据的形式嵌入ABAP代码的一种方法。你可以像任何其他领域一样打印出来。

然而,这是一个坏主意。它通常会减慢您的表单处理速度,如果使用得太广,则会成为一个噩梦。相反,你应该take a look at the parameters of the form and the program that is calling the form。如果可能,请编辑相应的结构或使用append structure添加其他字段。然后,使用BAdI,用户出口或隐式增强来填充调用程序中的字段。这样做的好处是数据将传递给所有表单,您不必在多个表单中复制逻辑。 (此外,如果您不得不将其移植到Interactive Forms,将会更容易。)

答案 1 :(得分:1)

每个smartform都有一个表单界面,这是向其传递信息的主要方式(在表单树的“全局设置”下)。当缺少此信息并且您无法更改接口以及由于某种原因调用它的ABAP代码(因为它在太多不同的地方调用或因为它是从SAP标准代码调用的),仍然存在集成ABAP编码的方法进入smartform以获取任何其他数据:

  1. 您可以单击“全局定义”来定义全局变量和全局表单例程
  2. 您可以将“Flow Logic - > Program Lines”节点添加到窗口节点。在这里,您可以编写一些ABAP代码来读取所需的数据并将其写入全局变量。
  3. 然后,您可以在窗口的文本元素中使用此变量。
相关问题