บทช่วยสอนหน้าจอย่อย ABAP: เรียกหน้าจอย่อยเข้า SAP

ก่อนที่คุณจะอ่านบทช่วยสอนนี้ คุณต้องแน่ใจว่า Dialog Program คืออะไร

โทรหน้าจอย่อย

  • หน้าจอย่อยคือหน้าจออิสระที่แสดงในพื้นที่ของหน้าจออื่น (“หน้าจอหลัก”)
  • หน้าจอย่อยช่วยให้คุณสามารถฝังหน้าจอหนึ่งไว้ภายในอีกหน้าจอหนึ่งขณะรันไทม์ได้ คุณสามารถรวมหลายหน้าจอย่อยบนหน้าจอหลักได้
  • คำว่าหน้าจอย่อยใช้กับทั้งหน้าจอที่คุณฝัง และพื้นที่บนหน้าจอหลักที่คุณวางไว้ บทช่วยสอนนี้เกี่ยวกับพื้นที่หน้าจอย่อย หน้าจอจริงที่สร้างขึ้นผ่านธุรกรรม SE51 เรียกว่าหน้าจอย่อยหากกำหนดไว้ในคุณลักษณะหน้าจอ
  • เมื่อคุณใช้หน้าจอย่อย ลอจิกโฟลว์ของหน้าจอที่ฝังจะถูกฝังอยู่ในโฟลว์ลอจิกของหน้าจอหลักด้วย ดังนั้น การใช้หน้าจอย่อยบนหน้าจอก็เหมือนกับการใช้การรวมใน โปรแกรม ABAP.

หากต้องการใช้หน้าจอย่อย คุณต้องปฏิบัติตามสามขั้นตอนง่ายๆ

  1. กำหนดพื้นที่หน้าจอย่อยบนหน้าจอ
  2. กำหนดหน้าจอย่อยที่เหมาะสม
  3. รวมหน้าจอย่อยไว้ในพื้นที่หน้าจอย่อย

นอกจากนี้ คุณต้องปรับกรอบของหน้าจอย่อยและหน้าจอหลักด้วย คุณต้องตั้งชื่อในช่องชื่อฟิลด์

นอกจากนี้ คุณยังต้องปรับฟิลด์ภายในหน้าจอย่อยเพื่อให้ปรากฏในหน้าจอหลักด้วย ในกรณีที่กำหนดหน้าจอย่อยให้ใหญ่กว่าพื้นที่ที่มีอยู่ในหน้าจอหลัก จะมองเห็นเฉพาะส่วนของหน้าจอย่อยที่เหมาะกับพื้นที่ที่มีอยู่เท่านั้น พื้นที่จะวัดจากมุมซ้ายบนของหน้าจอเสมอ ดังนั้นคุณควรดูแลอย่างเหมาะสมในขณะกำหนดพื้นที่หน้าจอย่อยและสร้างหน้าจอย่อย

ตัวอย่าง

ตัวอย่างเช่น เราได้กำหนดพื้นที่หน้าจอย่อยสองหน้าจอบนหน้าจอหลัก และได้แนบหน้าจอย่อยสองหน้าจอที่แตกต่างกันเข้ากับพื้นที่ที่เกี่ยวข้อง เมื่อใดก็ตามที่มีการเรียกหน้าจอหลัก PBO ของหน้าจอหลักจะถูกเรียก แต่ก่อนการแสดงผล จะเรียก PBO ของแต่ละหน้าจอที่แนบมากับพื้นที่หน้าจอย่อยบนหน้าจอหลักด้วย

โทรหน้าจอย่อยใน SAP

คุณสามารถรวมหน้าจอย่อยได้โดยใช้คำสั่ง CALL SUBSCREEN ในโฟลว์ลอจิกของหน้าจอหลัก

หากต้องการรวมหน้าจอย่อยในพื้นที่หน้าจอย่อยของหน้าจอหลักและเรียกใช้ตรรกะการไหล PBO ให้ใช้คำสั่งต่อไปนี้ในเหตุการณ์ PBO ของหน้าจอหลัก:

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.

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

ชื่อ ของพื้นที่หน้าจอย่อยต้องป้อนโดยตรงโดยไม่มีลูกน้ำกลับหัว คุณสามารถระบุชื่อได้ และ ไม่ว่าจะเป็นตัวอักษรหรือตัวแปร หากคุณใช้ตัวแปร คุณต้องประกาศและเติมตัวแปรที่มีชื่อเหมือนกันในโปรแกรม ABAP หมายเลขหน้าจอ ต้องมีความยาว 4 ตัวอักษร หากคุณไม่ได้กำหนดหน้าจอย่อยให้กับพื้นที่ หน้าจอนั้นจะยังคงว่างเปล่า

ในการเรียกตรรกะการไหลของ PAI ของหน้าจอย่อย ให้ใช้คำสั่งต่อไปนี้ในตรรกะการไหลของ PAI ของหน้าจอหลัก:

PROCESS AFTER INPUT.

CALL SUBSCREEN <area>.

คำสั่งนี้รวมถึงตรรกะการไหลของ PAI ของหน้าจอย่อยที่รวมอยู่ในพื้นที่หน้าจอย่อย ในงาน ป.ป.ช. ซึ่งสามารถเรียกโมดูล PAI ของโปรแกรม ABAP ที่กำหนดหน้าจอย่อยได้ ข้อมูลจะถูกส่งระหว่างฟิลด์ที่มีชื่อเหมือนกันในหน้าจอย่อยและโปรแกรม ABAP เมื่อมีการทริกเกอร์เหตุการณ์ PAI หรือที่คำสั่ง FIELD ที่สอดคล้องกันในลอจิกโฟลว์ PAI ของหน้าจอย่อย

สิ่งที่น่าจดจำ

  • ชื่อขององค์ประกอบของหน้าจอย่อยภายในหน้าจอไม่ควรซ้ำกัน
  • คุณไม่ควรแนบ OK_CODE หรือ FCODE เข้ากับหน้าจอย่อย OK_CODE ของหน้าจอหลักคือ OK_CODE ของหน้าจอย่อย
  • หน้าจอย่อยไม่สามารถมีโมดูลกล่องโต้ตอบใด ๆ ที่มี SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN หรือ LEAVE TO SCREEN ซึ่งจะทำให้เกิดข้อผิดพลาดรันไทม์
  • คุณต้องเรียกมันในโฟลว์ลอจิก (ทั้ง PBO และ PAI) ของหน้าจอหลัก
  • ไม่อนุญาตให้ใช้ CALL SUBSCREEN ในคำสั่ง CHAIN..ENDCHAIN ​​และ LOOP ENDLOOP
  • ไม่สามารถมีโมดูล AT EXIT-COMMAND
  • ฟิลด์ที่คุณใช้คือฟิลด์ส่วนกลาง จะต้องประกาศไว้ด้านบนสุด ได้แก่
  • หากใช้หน้าจอย่อยจากที่อื่น โปรแกรมโต้ตอบ การถ่ายโอนข้อมูลจะไม่เกิดขึ้นเว้นแต่คุณจะเพิ่มรหัสเฉพาะ