รายงาน ALV ใน SAP บทช่วยสอน - โปรแกรมดูรายการ ABAP

คุณลักษณะที่ต้องการโดยทั่วไปของรายงานใดๆ ก็ตาม ได้แก่ "การจัดตำแหน่งคอลัมน์" การเรียงลำดับ การกรอง ผลรวมย่อย ผลรวม ฯลฯ หากต้องการใช้สิ่งเหล่านี้ตั้งแต่ต้น ต้องใช้ความพยายามในการเขียนโค้ดอย่างมาก เพื่อหลีกเลี่ยงไม่ให้เราใช้แนวคิดที่เรียกว่า ABAP List Viewer (ALV)

แต่ละรายงานเหล่านี้มีให้ โมดูลฟังก์ชัน ซึ่งช่วยในการผลิตผลลัพธ์ที่ต้องการโดยไม่ต้องใช้ความพยายามมากนัก มาดูรายละเอียดกันดีกว่า –

รายงานอย่างง่าย

โมดูลฟังก์ชั่นที่สำคัญในสิ่งเหล่านี้ รายงาน คือ -

  • Reuse_alv_fieldcatalog_merge
  • Reuse_alv_list_display
  • Reuse_alv_events_get
  • Reuse_alv_grid_display
  • Reuse_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE

โมดูลฟังก์ชันนี้ใช้เพื่อเติมแค็ตตาล็อกฟิลด์ซึ่งจำเป็นต่อการแสดงข้อมูลใน ALV

หากข้อมูลเอาต์พุตมาจากตารางพจนานุกรมเดียวและเลือกคอลัมน์ทั้งหมดแล้ว เราไม่จำเป็นต้องสร้างแค็ตตาล็อกฟิลด์โดยเฉพาะ ก็เพียงพอแล้วที่จะกล่าวถึงชื่อตารางเป็นพารามิเตอร์ (I_structure_name) ใน REUSE_ALV_LIST_DISPLAY แต่ในกรณีอื่นเราจำเป็นต้องสร้างมันขึ้นมา

หมายเหตุ: สามารถกรอก Fieldcatalog ด้วยตนเองได้เช่นกัน โดยการกรอกรายละเอียดที่จำเป็นทั้งหมดลงในตารางภายใน

พารามิเตอร์ที่สำคัญคือ:

1. การส่งออก:

  • I_program_name : รหัสรายงาน
  • I_internal_tabname : ตารางเอาต์พุตภายใน
  • I_inclname : รวมหรือชื่อรายงานที่จัดการฟอร์มไดนามิกทั้งหมด

2. การเปลี่ยนแปลง

  • ct_fieldcat : อัน ตารางภายใน ด้วยประเภท SLIS_T_FIELDCAT_ALV ซึ่งได้รับการประกาศไว้ในประเภทพูล SLIS

REUSE_ALV_LIST_DISPLAY

นี่คือโมดูลฟังก์ชันที่พิมพ์ข้อมูล

พารามิเตอร์ที่สำคัญคือ:

1. การส่งออก:

  • I_callback_program : รหัสรายงาน
  • I_bypassing_buffer : 'X'
  • I_buffer_active : ' '
  • I_callback_pf_status_set : รูทีนที่ผู้ใช้สามารถตั้งค่าสถานะ pf ของตนเองหรือเปลี่ยนการทำงานของสถานะ pf ที่มีอยู่
  • I_callback_user_command : รูทีนที่จัดการโค้ดฟังก์ชัน
  • I_struction name : ชื่อของตารางพจนานุกรม
  • Is_Layout : โครงสร้างสำหรับกำหนดเค้าโครงของรายงาน
  • It_fieldcat : ตารางภายในพร้อมรายการฟิลด์ทั้งหมดและคุณลักษณะที่จะพิมพ์ (ฟังก์ชันนี้สามารถเติมตารางนี้ได้โดยอัตโนมัติ)
  • It_events : ตารางภายในพร้อมรายการเหตุการณ์ที่เป็นไปได้ทั้งหมดของ ALV และชื่อแบบฟอร์มที่เกี่ยวข้อง

2. ตาราง:

  • ก. t_outtab : ตารางภายในพร้อมข้อมูลที่จะส่งออก

REUSE_ALV_EVENTS_GET:

ส่งคืนตารางเหตุการณ์ที่เป็นไปได้สำหรับประเภทรายการ AA

1. นำเข้า:

Et_Events :ตารางเหตุการณ์จะถูกส่งกลับพร้อมกับเหตุการณ์ CALLBACK ที่เป็นไปได้ทั้งหมดสำหรับประเภทรายการที่ระบุ (คอลัมน์ 'NAME') เพื่อให้เหตุการณ์ที่ Callback ประมวลผลได้ จะต้องกรอกฟิลด์ 'FORM' หากฟิลด์ถูกเตรียมใช้งาน เหตุการณ์จะถูกละเว้น รายการสามารถอ่านได้จากตารางเหตุการณ์ ฟิลด์ 'FORM' ที่กรอก และรายการที่แก้ไขโดยใช้ค่าคงที่จากประเภทพูล SLIS

2. การส่งออก:

I_list_type: 0 = รายการแบบง่าย REUSE_ALV_LIST_DISPLAY

1 = รายการลำดับชั้น REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = รายการบล็อกแบบง่าย REUSE_ALV_BLOCK_LIST_APPEND

3 = รายการบล็อกลำดับชั้น REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_GRID_DISPLAY

ฟังก์ชันใหม่จากเวอร์ชัน ABAP4.6 เพื่อแสดงผลลัพธ์ในรูปแบบตารางแทนที่จะแสดงตัวอย่าง

พารามิเตอร์ : เหมือนกับ reuse_alv_list_display

หมายเหตุ: กริดไม่สามารถรองรับปริมาณข้อมูลสูงได้ ฟังก์ชันเช่นการเรียงลำดับ การเลื่อนลงจะใช้ทรัพยากรและเวลาจำนวนมาก หากปริมาณข้อมูลที่จะแสดงนั้นสูง ไม่มีคำจำกัดความที่ชัดเจน ดังนั้น หากปริมาณข้อมูลคือ X ให้เลือกรายการหรือกริด แต่ผู้พัฒนาต้องรับสายตามประสบการณ์ของเขา หากไม่แน่ใจ รายการเป็นตัวเลือกที่ดีกว่า

REUSE_ALV_COMMENTARY_WRITE

ซึ่งใช้ในเหตุการณ์ด้านบนของหน้าเพื่อพิมพ์ส่วนหัวและความคิดเห็นอื่นๆ สำหรับรายการ

พารามิเตอร์ที่สำคัญ

  • It_list_commentary : ตารางภายในที่มีส่วนหัวเป็นประเภท slis_t_listheader

ตารางภายในนี้มีสามฟิลด์:

  1. ประเภท : 'H' – ส่วนหัว, 'S' – การเลือก, 'A' – การดำเนินการ
  2. คีย์ : เฉพาะเมื่อพิมพ์เป็น 'S'
  3. ข้อมูล : ข้อความที่จะพิมพ์

รายงานบล็อก

ดูเหมือนรายงานธรรมดา แต่รายงานนี้มีคุณลักษณะของการเรียงลำดับและกรองข้อมูลเท่านั้น รายงานนี้ใช้ในกรณีที่คุณต้องแสดงรายงานมากกว่าหนึ่งรายงานในผลลัพธ์ ในทางเทคนิคแล้ว หากคุณมีตารางภายในหลายตารางที่มีข้อมูลที่ต้องแสดงเป็นบล็อกแยกกัน เราจะใช้รายงานแบบบล็อกของ ALV

ฟังก์ชั่นสำคัญที่ใช้ในการสร้างรายงานนี้คือ:

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT

โมดูลฟังก์ชันนี้ใช้เพื่อตั้งค่าสถานะ GUI เริ่มต้น ฯลฯ พารามิเตอร์จะคล้ายกับพารามิเตอร์ที่ใช้ใน reuse_alv_list_display หรือ reuse_alv_grid_display

REUSE_ALV_BLOCK_LIST_APPEND

โมดูลฟังก์ชันนี้จะเพิ่มข้อมูลลงในบล็อก

พารามิเตอร์ที่สำคัญ

1.ส่งออก:

  • is_layout : การตั้งค่าเค้าโครงสำหรับบล็อก
  • it_fieldcat : แค็ตตาล็อกฟิลด์
  • I_tabname : ชื่อตารางภายในพร้อมเหตุการณ์ที่เป็นไปได้ทั้งหมด

2.ตาราง :

  • t_outtab : ตารางภายในพร้อมข้อมูลเอาต์พุต

REUSE_ALV_BLOCK_LIST_DISPLAY

โมดูลฟังก์ชันนี้แสดงรายการพร้อมข้อมูลที่ต่อท้ายโดยฟังก์ชันด้านบน

พารามิเตอร์ : พารามิเตอร์ทั้งหมดเป็นทางเลือก

รายงานลำดับชั้น

การแสดงผลแบบลำดับชั้นใช้สำหรับแสดงข้อมูลที่เกี่ยวข้อง เช่น ใบสั่งขายและรายละเอียดรายการสินค้า โดยรายละเอียดใบสั่งขายสามารถเป็นข้อมูลส่วนหัวได้ ในขณะที่รายการในใบสั่งขายสามารถเป็นข้อมูลรายการสินค้าได้

โมดูลฟังก์ชันที่ใช้สำหรับสิ่งนี้คือ

REUSE_ALV_HIERSEQ_LIST_DISPLAY

ส่งออก:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_LAYOUT
  • it_fieldcat
  • มัน_เหตุการณ์
  • I_tabname_header : ชื่อของตารางภายในในโปรแกรมที่มีข้อมูลเอาต์พุตของระดับลำดับชั้นสูงสุด
  • I_tabname_item : ชื่อของตารางภายในในโปรแกรมที่มีข้อมูลเอาต์พุตของระดับลำดับชั้นต่ำสุด
  • Is_keyinfo : โครงสร้างนี้มีชื่อฟิลด์ส่วนหัวและตารางรายการซึ่งเชื่อมโยงทั้งสองตาราง (คีย์ที่ใช้ร่วมกัน)

ตาราง

  • t_outtab_header : ตารางส่วนหัวที่มีข้อมูลที่จะส่งออก
  • t_outtab_item : ชื่อของตารางภายในในโปรแกรมที่มีข้อมูลเอาต์พุตของระดับลำดับชั้นต่ำสุด

คำจำกัดความทั้งหมดของตารางภายใน โครงสร้าง และค่าคงที่จะถูกประกาศในประเภทพูลที่เรียกว่า สลิส. ตารางภายในนี้สามารถเติมได้โดยอัตโนมัติโดยใช้ REUSE_ALV_FIELDCATALOG_MERGE'

แสดงรูปแบบต่างๆ

  • รูปแบบการแสดงผลใช้เพื่อตั้งค่าคุณสมบัติเริ่มต้นของเอาต์พุต alv เช่น เกณฑ์การเรียงลำดับ เกณฑ์การกรอง การรวมและผลรวมย่อย ฯลฯ
  • รูปแบบการแสดงผลอาจเป็นรูปแบบเฉพาะของผู้ใช้และเป็นมาตรฐาน (ผู้ใช้ทุกคนสามารถใช้รูปแบบมาตรฐานได้)
  • ประเภทของรูปแบบการแสดงผลที่สามารถบันทึกได้จะถูกควบคุมโดยพารามิเตอร์ i_save ที่ส่งผ่านในโมดูลฟังก์ชัน reuse_alv_list_display / reuse_alv_grid_display
  • คุณสามารถระบุตัวเลือกบนหน้าจอการเลือกเพื่อเลือกรูปแบบการแสดงผลที่จะใช้ได้

โมดูลฟังก์ชันทั่วไปที่เกี่ยวข้องกับการเลือก / ตรวจสอบรูปแบบการแสดงผล ได้แก่

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existence

นั่นคือทั้งหมดที่ ABAP – การเขียนโปรแกรม ALV!