SAP学习从此开始!

当前位置: > SAP技术模块 > Basis >

逻辑数据库的数据库程序

时间:2016-07-22 18:22来源:未知 作者:安豆学院 点击:
逻辑数据库dba的数据库程序的名称符合命名规则SAPDBdba。重要的是,它包括系统在运行ABAP/4报表时调用的子程序集合。 报表中带事件关键字的子程序之间的相互作用,在逻辑数据库和ABAP/4报表(页342)中进行了描述。 逻辑数据库的结构决定PUT语句的行为,该语句

逻辑数据库 <dba> 的数据库程 序的名称符 合命名规则 SAPDB<dba>。 重要的是, 它包括系统 在运行 ABAP/4 报表时调用 的子程序集 合。

报表中带事 件关键字的 子程序之间 的相互作用 ,在 逻辑数据库 和 ABAP/4 报表 (页 342) 中进行了描 述。

逻辑数据库 的结构决定 PUT 语句的行为 ,该语句在 子程序 PUT_<table> 中很重要( 参见下面) 。

逻辑数据库 程序通常包 含 定义子程序 (页 错误!链接无效。). 中描述的下 列子程序, 并且都使用 FORM 语句定义。


FORM INIT

在显示选择 屏幕之前调 用一次。

FORM PBO

每次刷新选 择屏幕之前 调用。

FORM PAI

用户每次在 选择屏幕上 按 ENTER 时调用。

系统将参数 FNAME 和 MARK 传递给子程 序,这些参 数自动定义 和填充。

- FNAME 包含选择屏 幕上选择标 准或参数的 名称。

- MARK 说明用户所 做的选择:

MARK = SPACE 意味着用户 已经输入简 单的单值或 范围选择。

MARK = '*' 意味着用户 已经在“多 重选择”屏 幕上制作条 目。

FORM PUT_<table> 

以逻辑数据 库结构决定 的顺序调用 子程序。使 用 SELECT 语句读取节 点 <table> 的数据,并 且 PUT 语句将程序 流定向到报 表中合适的 GET 语句中。PUT 语句是该子 程序的主语 句:

语法

PUT < table >.

只能在逻辑 数据库子程 序中使用 PUT <table> 语句,该逻 辑数据库包 含以 PUT_< table > 开头的名称 的节点 <table>。


PUT 语句根据逻 辑数据库的 结构定向程 序流。读取 深度由有关 报表中的 GET 语句决定。 

首先,为根 节点执行子 程序 PUT_<root>。 PUT 语句然后如 下定向程序 流:

1. 如果 数据库程序 包含子程序 AUTHORITY_CHECK_< table >,则首先 执行该子程 序。

2. PUT 语句试图触 发报表中的 GET 事件,即如 果存在相关 GET <table> 语句,则执 行合适的代 码块。

3.  PUT 语句将程序 流定向到

- 下一节 点的子程序 上,前提是 节点的 GET 语句在报表 中相关分支 的较低级别 上。

- 相同级 别节点的子 程序上,前 提是先前节 点分支到此 节点并且在 报表中存在 该节点的 GET 语句。

步骤 1 时子程序中 的 PUT 再次起动。 如果它到达 有 GET 语句的报表 中分支的最 低层节点的 子程序,则 不再分支, 但继续处理 当前子程序 。当处理完 整个 PUT_<table> 子程序时, 程序流返回 将其分支到 子程序 PUT_<table> 处的 PUT 语句。

4. 从下 级子程序 PUT_< table > 返回后,如 果存在的话 ,PUT 语句分支到 报表的 GET <table> LATE 语句。

在逻辑数据 库结构中, LFB1 是 LFA1 的分支。

假定在选择 包含程序中 定义如下选 择标准:

SELECT-OPTIONS: SLIFNR FOR LFA1-LIFNR, 
                SBUKRS FOR LFB1-BUKRS. 

将读取数据 库程序的某 节:

FORM PUT_LFA1. 
  SELECT * FROM LFA1 
           WHERE LIFNR IN SLIFNR. 
    PUT LFA1. 
  ENDSELECT. 
ENDFORM. 

FORM PUT_LFB1. 
  SELECT * FROM LFB1 
           WHERE LIFNR =  LFA1-LIFNR. 
           AND   BUKRS IN SBUKRS. 
    PUT LFB1. 
  ENDSELECT. 
ENDFORM. 

链接到逻辑 数据库的报 表将包含:

GET LFA1.
  WRITE LFA1-LIFNR.

GET LFB1.
  WRITE LFB1-BUKRS.

在该示例中 ,系统在选 择处理的开 始时调用过 程 PUT_LFA1。 PUT LFA1 语句将程序 流定向到报 表中的GET LFA1 语句处理块 上。当执行 该块时, PUT LFA1 转到子程序 PUT_LFB1, 该子程序将 程序流定向 到报表中的 GET LFB1 语句。如果 LFB1 是读取的最 后节点,则 用 PUT_LFB1 中的 SELECT 循环恢复处 理。否则, 程序流移到 下一节点的 PUT_< table > 子程序上。 在最后节点 的 SELECT 循环末尾、 下一级开始 处节点的 SELECT 循环中恢复 处理。

下列图象显 示程序流:


在该示例中 ,PUT 语句不分支 到授权检查 子程序。


, IZE: 9pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">在该示例中 ,PUT 语句不分支 到授权检查 子程序。 (责任编辑:安豆学院)
TAG标签: SAP 逻辑数据库 数据库程序
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容
  • 传递列表属性

    处理列表级时,如果需要知道创建列表时忘记存储在变量中的属性,或者如果使用另一个报...

  • 滚动交互式列表

    要从程序中滚动到交互式列表,请使用SCROLL语句。 要在交互式列表中使用SCROLL语句,...

  • 调用报表

    要从其它报表中调用报表,请使用SUBMIT语句。 要在程序编码中静态地设置调用程序的名...

  • 从程序中退出被调用的报表

    通常,用户通过选择被调用报表列表级0上的F3或F15,使用SUBMIT...ANDRETURN退出调用的...

  • 使用被调用报表的列表结构

    要使用由SUBMIT调用的报表的列表结构,请写: 语法 SUBMIT...[LINE-SIZEwidth][LINE-C...

  • 填写被调用报表的选择屏幕

    启动报表时,系统通常显示选择屏幕,用户在该屏幕上输入选择标准和被连接逻辑数据库和...