[SAP ABAP开发技术总结]逻辑数据库

LDB不常用,但学好它可以写出共用封装好的查询

6.   逻辑数据库

6.1.  组成

SLDB

image049 

6.2.  结构

image050

决定了数据从哪些数据库表、视图中提取数据以及这些表、视图之间的层次关系(层次将决定数据读取的顺序

数据库表T类型节点)、词典类型S类型节点),比如节点类型为S的节点:root_node,数据类型为INT4

image051

LDB的数据库程序的最TOP Include文件包括以下语句:

 NODES root_node.

另外,在LDB数据库程序包括了以下过程:

FORM put_root_node.
 
DO 10 TIMES.
    root_node
= sy-index.
   
PUT root_node."会去调用报表程序中的 GET root_node. 事件块
 
ENDDO.
ENDFORM.

在与此LDB关连的可执行程序:

image052

REPORT demo_nodes.
NODES root_node.
GET root_node. 
 
WRITE root_node.

6.3.  选择屏幕(Selections

定义了LDB的选择屏幕,该选择屏幕的布局由LDB的结构决定,一旦将LDB链接到报表程序后,该选择屏幕会自动嵌入到默认选择屏幕1000

image050[1]

第一次进入选择屏幕程序时,系统会为每个LDB生成一个名为DB<LDB_Name>SELInclude选择屏幕包含文件:

image053

image054

 

而且,所有表(T类型的节点)的主键都会出现在SELECT-OPTIONS语句中,成为屏幕选择字段(自动生成的需要去掉注释,并设置屏幕选择字段名):

image055

除了上面自动生成的LDB屏幕字段外,还可以使用以下面语句来扩展LDB选择屏幕:

6.3.1.   PARAMETERS屏幕参数扩充

增加一个单值输入条件框(PARAMETERS语句一般在LDB中只用于除节点表外的非表字段屏幕参数),在PARAMETERS语句中必须使用选项FOR NODE XXX 或者 FOR TABLE XXX 来指定这些扩展参数属性哪个节点的:PARAMETERS CITYTO LIKE SPFLI-CITYTO FOR NODE SPFLI.

注:SELECT-OPTIONS没有FOR NODE这样的用法

具体请参数后面的LDB选择屏幕章节

6.3.2.   SELECTION-SCREEN格式化屏幕

使用SELECTION-SCREEN语句来格式化屏幕

具体请参数后面的LDB选择屏幕章节

6.3.3.   DYNAMIC SELECTIONS动态选择条件

SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE|TABLE <node>.用来开启<node>节点的LDB dynamic selections功能,即可以在WHERE从句中使用动态选择条件(形如:…WHERE field1 = value1 AND (条件内表) …只有开启了动态选择条件功能的表,才可以在LDB数据库程序中对表进行动态选择条件处理。下面是数据库程序中如何使用动态选择条件示例:

image056

上面LDB数据库程序中的RSDS_WHERE条件内表来自RSDS类型组,相应源码如下:

image057

另外,上面LDB数据库程序中要能从DYN_SEL-CLAUSES内表读取数据,则必须在LDB选择屏幕里开启相应节点的动态选择条件:

image058

其中,DYN_SEL-CLAUSES内表行结构如下:

image059

6.3.3.1.            DYN_SEL

PUT_<node> Form中的SELECT语句中Where从句如果要使用 DYNAMIC SELECTIONS 动态选择条件时,需要用到变量DYN_SEL,该数据对象是在LDB数据库程序中自动生成的,其类型如下(注:不必在LDB程序中加入下面代码行就可以直接使用DYN_SEL):

TYPE-POOLS RSDS.
DATA DYN_SEL TYPE RSDS_TYPE.

你不必在程序中定义它就可以直接使用,但它只能在LDB数据库程序中使用,而不能用在报表程序中RSDS_TYPE数据类型是在类型组RSDS中定义的:

TYPE-POOL RSDS .
TYPES: RSDS_WHERE_TAB LIKE RSDSWHERE OCCURS 5."RSDSWHERE

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SAP ABAP开发是一种用于开发企业管理系统的编程语言。它是一种后端开发语言,主要用于处理企业资源计划(ERP)系统中的数据和业务逻辑ABAP语言具有丰富的功能和强大的数据处理能力,可以用于开发各种功能模块,如ALV报表、SMARTFORM智能表单、BDC、屏幕开发流程和wda技术等。通过学习ABAP语言,你可以掌握开发流程,并能够将其应用于实际工作中。\[1\] 作者THUNDER王是一位热爱财税和SAP ABAP编程的博主,他在江西师范大学会计学专业就读,并担任汉硕云(广东)科技有限公司的ABAP开发顾问。他对SAP企业管理系统、SAP ABAP开发数据库有深入的研究。\[2\] 在ABAP开发中,数据类型和数据字典是非常重要的概念。数据类型定义了变量的类型和长度,而数据字典则用于管理和维护数据库中的数据对象,如表和视图。通过学习ABAP基础语法和数据类型与数据字典的相关知识,你可以更好地理解和应用ABAP开发中的数据处理。\[3\] #### 引用[.reference_title] - *1* *2* *3* [SAP ABAP基础通关百宝书【从入门到精通】目录](https://blog.csdn.net/weixin_59480481/article/details/127914444)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值