abap主索引和表的二级索引。

abap主索引和表的二级索引。,第1张

这段文字说明的很清楚,我给你解释一下你就明白了。

透明表的索引有两种,一种是主索引,另一种是二级索引。主索引不是我们创建的,是在表创建后激活的时候由系统自动创建的,这个我们不能插手。 二级索引就不同了,我们可以自己创建。主索引的字段是表的主键,而二级索引就不是了,你可以根据你自己的需要用表的任何字段的组合来创建,用来使某个特定的SELECT语句(WHERE条件的字段和字段顺序要与二级索引的字段和字段顺序粗略一致)的检索时间缩短。

第一种办法:对表中某字段的引用,设置ref_table、ref_field,将自动触发该字段所带的搜索帮助。

第二种办法:就是利用自定义代码来实现ALV的搜索帮助,显然它的功能更强大、更灵活。针对在OO ALV中实现搜索帮助,

其主要步骤有:

1、在ALV的事件处理类中添加个Method,其DEFINITION如下:

handle_onf4 FOR EVENT onf4 OF cl_gui_alv_grid

IMPORTING e_fieldname es_row_no er_event_data.

其IMPLEMENTATION中就是我们希望执行的代码,用来d出可选择对话框。e_fieldname代表用户点击了ALV的哪个字段来触发搜索帮助,es_row_no代表了当前行信息,

es_row_no-row_id就是ALV中内表记录的INDEX。er_event_data代表了当前用户对ALV进行了哪些编辑的信息。在Method的最后,记得加上

er_event_data->m_event_handled = 'X'.

通知系统搜索事件处理完毕,这样就不会调用系统标准的Search Help。

2、那就是对需要自定义搜索帮助的字段,设置其field catalog时:

ls_fieldcat-f4availabl = 'X'.

3、在创建ALV对象之后,要对需要自定义搜索帮助的字段进行注册。

DATA: lt_f4 TYPE lvc_t_f4 WITH HEADER LINE.

CLEAR lt_f4.

lt_f4-fieldname = 'FIELD_NAME'.

lt_f4-register = 'X'.

lt_f4-chngeafter = 'X'.

APPEND lt_f4.

CALL METHOD mygrid->register_f4_for_fields

EXPORTING

it_f4 = lt_f4[].

lvc_s_f4中的字段getbefore和changeafter应该代表是否触发data_changed事件。

4、然后我们为其指定事件处理类(假设go_evt_receiver是自定义事件处理类的一个对象):

CREATE OBJECT go_evt_receiver.

SET HANDLER go_evt_receiver->handle_onf4 FOR go_alv_grid.

ABAP中有三类内表,标准表,排序表和哈希表。三种内表介绍标准表的每一行对应一个逻辑索引-SY-TABIX,填充内表的时候,可以将数据附加在现有行之后,也可以插入到指定的位置,程序对内表行的寻址 *** 作可通过关键字或索引进行。在对表进行插入删除等 *** 作时,各数据行在内存中的位置不变,系统仅重新排列各数据行的索引值。排序表也有逻辑索引,不同的是排序表总是按其表关键字升序排列后再进行存储,也就是在内存中的位置发生改变。哈希表没有索引,只有关键字。系统用哈希算法管理表中的数据,因而其寻址一个数据行的时间与表的行数无关。表关键字 内表关键字在访问内表以及排序时非常之关键,定义时通过With key来定义,这也是一个可选项,即如果没有显式声明,那么内表中的非数值型栏位都为Key。 还有Unique的问题,即唯一性关键字声明,标准表不能使用此关键字,排序表可以用UNIQUE 或NON-UNIQUE,哈希表不能使用NON-UNIQUE,只能使用唯一表关键字。行访问方式标准表排序表哈希表索引访问允许允许不允许关键字访问允许允许允许相同值关键字行可重复可重复或不可重复不可重复推荐访问方式主要通过索引主要通过关键字只能通过关键字对于一个小于100行的内表,且很少使用关键字 *** 作,则使用标准表没有效率问题;数据量比较巨大,切不存在重复行,只需使用关键字访问的内表应定义为哈希表;排序表适用于运行期内必须以某种排序形式出现的内表。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11179297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存