1、具体代码参考:ZWD_QUOTATION_CREATE_C1VIEW(V_QUOTE_PRICE)WDDOINIT 方法如何通过代码去控制一个 ALV 组件的 TABLE 格式步骤:Step 1:在 Webdynpro 组件的已使用组件中添加 ALV 组件Step 2:在具体应用到 ALV 组件的视图上的组件使用上添加我们之前定义的 ALV 组件Step 3:通常在视图的 WDDOINIT 方法里去开始定制 ALV 的显示格式。首先要实例化 ALV 组件,如下图。实例化后,会自动生成下列代码,操控 ALV 组件之前,必须先实例化它,否则无法操控。Step 4:取的 ALV 组件的模型取的下列代
2、码Step 5:配置每列的中文名称DATA:LT_COLUMNS TYPE SALV_WD_T_COLUMN_REF,LS_COLUMN TYPE SALV_WD_S_COLUMN_REF,LR_COLUMN TYPE REF TO CL_SALV_WD_COLUMN,LR_HEADER TYPE REF TO CL_SALV_WD_COLUMN_HEADER,LR_INPUT_FIELD TYPE REF TO CL_SALV_WD_UIE_INPUT_FIELD,LR_CHECKBOX TYPE REF TO CL_SALV_WD_UIE_CHECKBOX.DATA: lo_col_hea
3、d TYPE REF TO cl_salv_wd_column_header.”列的抬头*根据 table 获取列lt_columns = lv_value-if_salv_wd_column_settingsget_columns( ).LOOP AT lt_columns INTO ls_column.lr_column = ls_column-r_column.CALL METHOD lr_column-get_headerRECEIVINGvalue = lo_col_head.”实例化列的抬头lo_col_head-set_prop_ddic_binding_field(proper
4、ty = if_salv_wd_c_ddic_binding=bind_prop_textvalue = if_salv_wd_c_ddic_binding=ddic_bind_none ).CALL METHOD lo_col_head-set_textEXPORTINGvalue = 具体列的显示名称.Step 6:某列作为按钮,可输入框,或者复选框等等特殊性质的列以按钮为例,首先定义个按钮对象DATA: lr_button1 TYPE REF TO cl_salv_wd_uie_button.DATA: lr_column1 TYPE REF TO cl_salv_wd_column.这
5、里我们采取了另一种获取 COLUMEN 对象,之前是采用( lt_columns = lv_value-if_salv_wd_column_settingsget_columns( ).LOOP AT lt_columns INTO ls_column.lr_column = ls_column-r_column.)lr_column1 = lo_value-if_salv_wd_column_settingsget_column( PRICE_BTN ).CREATE OBJECT lr_button1.这里实例化 BUTTON 对象,他不需要任何输入参数,原因在于他的构造方法是不需要输入参
6、数的,所以直接 CREATE OBJECT 即可lr_button1-set_text( 配置价格 ).lr_button1-set_enabled( abap_true ).lr_column1-set_cell_editor( lr_button1 ).同理如果是一个 CHECK_BOXLR_CHECKBOX TYPE REF TO CL_SALV_WD_UIE_CHECKBOX.CREATE OBJECT LR_CHECKBOXEXPORTINGCHECKED_FIELDNAME = LS_COLUMN-ID.“- ls_name-name.这里需要一个输入参数,是因为构造函数中有一个输
7、入参数。Step 7:设置该 ALV 组件的 TABLE 的功能按钮* 这里是设置该 ALV 组件的 TABLE 表是否可以编辑,如果是可编辑,则后面的附加,插入,删除上才可以实现,如果是默认是只读,则无法去控制是否有插入,删除等按钮的控制LV_VALUE-IF_SALV_WD_TABLE_SETTINGSSET_READ_ONLY( ABAP_FALSE ).“附加按钮LV_VALUE-IF_SALV_WD_STD_FUNCTIONSSET_EDIT_APPEND_ROW_ALLOWED( ABAP_TRUE ).* 珊瑚按钮LV_VALUE-IF_SALV_WD_STD_FUNCTIONSSET_EDIT_DELETE_ROW_ALLOWED( ABAP_TRUE ).LV_VALUE-IF_SALV_WD_STD_FUNCTIONSSET_EDIT_CHECK_AVAILABLE( ABAP_FALSE ).