sap 不用sm30 alv表 增删改查
时间: 2023-11-27 20:01:01 浏览: 110
SAP系统在进行数据的增删改查时,通常可以使用不同的方法,而不必使用SM30表和ALV表。
首先,对于数据的增加,可以通过事务码或者自定义的界面来完成。如果需要在特定的表中进行增加操作,可以使用事务码SE16或SE16N来跳转到数据浏览界面,然后选择相关的表格,并点击新增按钮进行数据的添加。
其次,对于数据的修改和删除操作,可以使用事务码SE16或SE16N来跳转到数据浏览界面,选择需要修改或删除的数据行,然后使用编辑或删除按钮进行相应操作。
此外,SAP系统还提供了更为强大的数据维护功能,如事务码SM35,可以记录并执行一系列的数据维护操作;事务码LSMW,可以通过导入数据文件的方式进行数据的批量更改等。
另外,对于需要展示查询结果的情况,SAP系统也提供了更加灵活的报表工具。除了传统的ALV表格外,还可以使用SQ01、SQ02等事务码创建查询,通过自定义的查询逻辑来检索数据,并以各种方式展示查询结果,包括图表、文本等。
综上所述,SAP系统提供了多种方法来进行数据的增删改查操作,不仅可以使用SM30表和ALV表,还可以通过事务码、自定义界面、数据维护工具以及报表工具等方式来实现。
相关问题
alv报表自定义增删改查
ALV报表是一种针对ABAP程序开发的高级列表显示工具。它可以方便地进行自定义的增删改查操作。
首先,我们可以通过ALV报表的自定义菜单来实现增删改的功能。通过在报表的工具栏或右键菜单中添加相应的功能按钮,用户可以点击按钮进行相应的操作。例如,我们可以加入一个“新增”按钮,当用户点击该按钮时,程序会弹出一个对话框,用户可以在对话框中输入新增的数据,并将数据添加到报表中。同样地,我们也可以添加“删除”按钮和“修改”按钮,用户点击后可以删除或修改报表中的数据。
其次,ALV报表还提供了强大的搜索和筛选功能,可以方便地进行查询操作。用户可以在报表上层的搜索栏中输入关键字进行搜索,报表会根据关键字自动筛选出符合条件的数据。例如,用户可以输入一个日期范围,报表会自动筛选出在该日期范围内的数据。
此外,ALV报表还可以进行行编辑和单元格编辑。用户可以通过双击某一行或某一单元格,对该行或单元格中的数据进行修改。编辑后的数据会自动保存到数据库中。
最后,ALV报表还支持导入和导出功能。用户可以将报表中的数据导出为Excel或其他格式的文件,也可以将外部的数据导入到报表中进行展示和处理。
总之,ALV报表提供了丰富的功能和灵活的操作方式,可以满足用户对于数据的自定义增删改查需求。
写一个abap能查询学生学号姓名成绩的查询,带ALV和有增删改查功能
以下是一个简单的ABAP代码示例,可以查询学生学号、姓名和成绩,并带有ALV和增删改查功能:
REPORT z_student_scores.
TABLES: zscores.
*定义选择屏幕
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS:
p_student_id TYPE zscores-student_id,
p_student_name TYPE zscores-student_name.
SELECTION-SCREEN END OF BLOCK b1.
*定义ALV对象
DATA: it_fieldcat TYPE lvc_t_fcat,
it_scores TYPE STANDARD TABLE OF zscores,
wa_scores TYPE zscores,
it_display TYPE lvc_t_datab,
wa_display TYPE lvc_s_datab.
*定义标志变量
DATA: lv_mode TYPE c,
lv_index TYPE i.
*初始化ALV对象
INITIALIZATION.
PERFORM init_alv.
*开始选择
START-OF-SELECTION.
PERFORM select_scores.
*&---------------------------------------------------------------------*
*& Form init_alv
*&---------------------------------------------------------------------*
FORM init_alv.
CLEAR it_fieldcat.
CLEAR wa_display.
*设置表格列
REFRESH it_fieldcat.
wa_display-fieldname = 'STUDENT_ID'.
wa_display-seltext_m = '学生学号'.
APPEND wa_display TO it_fieldcat.
CLEAR wa_display.
wa_display-fieldname = 'STUDENT_NAME'.
wa_display-seltext_m = '学生姓名'.
APPEND wa_display TO it_fieldcat.
CLEAR wa_display.
wa_display-fieldname = 'SCORE'.
wa_display-seltext_m = '成绩'.
APPEND wa_display TO it_fieldcat.
*初始化ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_display.
ENDFORM. " init_alv
*&---------------------------------------------------------------------*
*& Form select_scores
*&---------------------------------------------------------------------*
FORM select_scores.
CLEAR it_scores.
*查询数据
SELECT * FROM zscores
INTO TABLE it_scores
WHERE student_id = p_student_id
AND student_name = p_student_name.
*显示数据
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
TABLES
t_outtab = it_scores.
PERFORM process_user_command.
ENDFORM. " select_scores
*&---------------------------------------------------------------------*
*& Form process_user_command
*&---------------------------------------------------------------------*
FORM process_user_command.
DATA: lv_okcode TYPE sy-ucomm.
*等待用户命令
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_name = sy-repid
IMPORTING
e_okcode = lv_okcode.
*根据用户命令执行操作
CASE lv_okcode.
WHEN 'ADD'.
PERFORM add_score.
WHEN 'EDIT'.
PERFORM edit_score.
WHEN 'DELETE'.
PERFORM delete_score.
WHEN 'BACK'.
EXIT.
ENDCASE.
ENDFORM. " process_user_command
*&---------------------------------------------------------------------*
*& Form add_score
*&---------------------------------------------------------------------*
FORM add_score.
DATA: wa_new_score TYPE zscores.
*提示用户输入新数据
CLEAR wa_new_score.
wa_new_score-student_id = p_student_id.
wa_new_score-student_name = p_student_name.
WRITE:/ '请输入新成绩:'.
READ wa_new_score-score.
*将新数据添加到表格中
INSERT zscores FROM wa_new_score.
COMMIT WORK.
ENDFORM. " add_score
*&---------------------------------------------------------------------*
*& Form edit_score
*&---------------------------------------------------------------------*
FORM edit_score.
DATA: lv_selected_index TYPE i.
*获取用户选择的行
CALL FUNCTION 'GET_GRID_SELECTED_ROWS'
EXPORTING
i_grid_name = 'ALV'
IMPORTING
e_index = lv_selected_index.
*如果用户没有选择任何行,则退出
IF lv_selected_index IS INITIAL.
RETURN.
ENDIF.
*获取用户输入的新数据
CLEAR wa_scores.
READ TABLE it_scores INTO wa_scores INDEX lv_selected_index.
WRITE:/ '原成绩:', wa_scores-score.
WRITE:/ '请输入新成绩:'.
READ wa_scores-score.
*将新数据更新到表格中
MODIFY zscores FROM wa_scores.
COMMIT WORK.
ENDFORM. " edit_score
*&---------------------------------------------------------------------*
*& Form delete_score
*&---------------------------------------------------------------------*
FORM delete_score.
DATA: lv_selected_index TYPE i.
*获取用户选择的行
CALL FUNCTION 'GET_GRID_SELECTED_ROWS'
EXPORTING
i_grid_name = 'ALV'
IMPORTING
e_index = lv_selected_index.
*如果用户没有选择任何行,则退出
IF lv_selected_index IS INITIAL.
RETURN.
ENDIF.
*从表格中删除用户选择的行
DELETE zscores INDEX lv_selected_index.
COMMIT WORK.
ENDFORM. " delete_score
*结束程序
END-OF-PROGRAM.
阅读全文