原创 Tab Zhu [ SAP TAB ](javascript:void\(0\);)
**点击蓝字关注我们**
富强 民主 文明 和谐
自由 平等 公正 法制
爱国 敬业 诚信 友善
_**01** _
**这个可以是个序号标题**
**不念过** **去**
**START**
**不畏将来**
如图在 ALV 下拉框内做了 1 到 5 的选择下拉框,下面一起来看下如何实施
## 1.在GT_DATA中增加一个字段来用于下拉框的使用:
TYPES : BEGIN OF ty_data ,
checkbox TYPE c ,
matnr TYPE mara \- matnr ,
mtart TYPE mara \- mtart ,
matkl TYPE mara \- matkl ,
maktx TYPE makt \- maktx ,
context TYPE char10 , " 用于下拉框
END OF ty_data .DATA gt_data TYPE TABLE OF ty_data WITH EMPTY KEY .
---
## 2.设置fieldcat属性:
设置 context 字段可输入,设置 fieldcat-drdn_hndl= ‘ 1 ’ .
( 这个 1 是下面下拉框对应的组,可以用 23 4 5 6 ··· 来标记下拉框的组,以此来实现多个下拉框 )
FORM frm_set_fieldcat .DATA lv_pos TYPE i .
DATA ls_fieldcat LIKE LINE OF gt_fieldcat .
DEFINE %%append_fieldcat .
lv_pos = lv_pos + 1 .
ls_fieldcat \- col_pos = lv_pos .
ls_fieldcat \- fieldname = &1 . " 字段名
ls_fieldcat \- coltext = &2 . " 文本
* ls_fieldcat-no_zero = &3." 去掉前导零
ls_fieldcat \- ref_table = &3 .
ls_fieldcat \- ref_field = &4 .
APPEND ls_fieldcat TO gt_fieldcat .CLEAR ls_fieldcat .
END-OF-DEFINITION .'CHECKBOX' ' 选择 ' '' '' ,
'MATNR' '' 'MARA' 'MATNR' ,
'MTART' '' 'MARA' 'MTART' ,
'MATKL' '' 'MARA' 'MATKL' ,
'MAKTX' '' 'MAKT' 'MAKTX' ,
'CONTEXT' ' 下拉输入 1' '' '' .
READ TABLE gt_fieldcat ASSIGNING FIELD \- SYMBOL ( <fs1> ) WITH KEYfieldname = 'CONTEXT' .
IF sy \- subrc EQ 0 .<fs1> \- edit = 'X' .
<fs1> \- drdn_hndl = '1' . “分组标识
ENDIF .---
## 3.设置下拉框内容
如下图, set_drop_down_table() 方法需要在 set_table_for_first_display()
方法之前调用,否则下拉框没有下拉值。
Handle = 1 就是给下拉框分组
"ALV 下拉框
DATA : ls_drop_down TYPE lvc_s_drop ,
lt_drop_down TYPE lvc_t_drop .
" 句柄 HANDLE 为 I 类型,相同数字为同一组下拉框
DO 5 TIMES .
CLEAR ls_drop_down .
ls_drop_down \- handle = '1' . “对应分组标识
ls_drop_down \- value = sy \- index .
APPEND ls_drop_down TO lt_drop_down .
ENDDO .---
"ALV 下拉框
cr_grid -> set_drop_down_table (
it_drop_down = lt_drop_down). CALL METHOD cr_grid -> set_table_for_first_display
EXPORTING
is_variant = ls_disvarianti_default = 'X'
i_save = 'U'
is_layout = ls_layout
it_toolbar_excluding = lt_excludeCHANGING
it_outtab = ct_data
it_fieldcatalog = ct_fieldcat .
## 4.有多个下拉框分组的时候效果:
这样应该理解了 handle= 1 / 2 时分组的概念了。
**不念过** **去**
**END**
**不畏将来**
**SAP ABAP TAB**
微信号 : TAB_JXZHU
后台回复’ABAP‘领取学习资料哈
长按二维码关注我们