SubFile แบบง่าย
Subfile-ReferSubFile เป็นการแสดงผลหลาย record ในหนึ่งหน้าจอ
เทียบกับ DotNet ก็คือแสดงผลแบบ GridView ครับ (แต่ GridView ง่ายกว่ามาก)
20 ปีที่แล้ว เป็นเทคนิคที่สุดยอดมาก แต่ ณ.ปัจจุบัน เป็นงานพื้นฐาน (ต้องเขียนได้เร็ว)
แต่เนื่องจาก ยังต้องใช้เครื่องมือ (Tool) พื้นฐาน รุ่นเก่า การสร้างจึ่งต้องมีขั้นตอน
ผู้เขียนโชคดีที่ได้อ่านเอกสารการเขียนโปรแกรมชุดหนึ่ง (เอกสารจากญี่ปุ่น)
ได้อธิบายแนวทางที่ชัดเจน สามารถนำไปประยุกต์ต่อได้ มาลองดูกันครับ
หลักการ Subfile (อีกแล้ว)
A. จะแสดงอะไร (เช่น 3 Field, แสดงครั้งละ 10 row, เริ่มต้นที่ row ที่ 8)B. นำข้อมูลไป ใส่ใน ข้อ A
C. จัดการแสดงผล
เตรียม data ที่จะใช้งานดังนี้
A. จะแสดงอะไรใน subfile (เช่น 3 Field, แสดงครั้งละ 10 row, เริ่มต้นที่ row ที่ 8)
a.1 รายละเอียดข้างต้น เป็นการกำหนดที่ Display-File
อยากออกแบบแล้วแสดงผลแบบนี้ (แสดง 2 field, page ละ 4 rows)ออกแบบหน้าจอ จะได้หน้าตาแบบนี้ (ใน STRSDA)
การ Code ส่วน Sub-File จะระบุดังนี้
เทคนิค - ใช้ Indicator ตัวเดียว คือ *IN55
ในส่วน "รับค่า" และข้อความ ด้านบน จะระบุ ถัดไปตามนี้
การออกแบบ แยกเป็น 2 record format
- ชนิด Subfile-Data ใช้บอกโครงสร้าง File (คล้าย File/Field Description) = SQ0110S1
- ชนิด Subfile-Control ใช้กำหนด การแสดงผล (คล้าย File Description) = SQ0110C1
Subfile อ้างอิงไปยัง Subfile Data อะไร
Subfile Page จำนวนที่แสดงที่หน้าจอ เช่น 4
Subfile Size เลือกให้ค่าเท่ากับ Subfile Page หรือ Subfile Page + 1 ก็ได้ครับ
Subfile End เหมาะกับ ตย.นี้มาก (อ่านข้อมูลจนหมด)
ถ้ายังมีข้อมูลต่อ (next page) ให้แสดงเครื่องหมาย "+" ที่มุมขวาล่างของจอ
Subfile Record Number ต้องระบุ "ตัวแปร" เพื่อติดต่อ
กรณีนี้ เมื่อระบุ ค่า row ใน page จะแสดงที่หน้าจอ page นั้น (เช่น SubFile Page = 4 เมื้อป้อน RRN = 6 Subfile จะแสดงใน page ที่ 2 เป็นต้น)
a.2 กำหนดใน F-spec ต้องประกาศ เพื่อเรียกใช้ Sub-file และระบุ RRN ให้กับมัน
(ในระบบ DB2 ทุก file ต้องมี RRN กำกับ)
สำหรับคนที่อยากเข้าใจ Code
K = Continue Line
SFILE = ประกาศจะใช้ Sub-File กับ Record Format (DSPF) = SQ0110S1
กำหนด RRN ให้กับตัวแปร RRN01 (ยังไม่ได้กำหนดขนาด)
B. นำข้อมูลไป ใส่ใน Subfile (ข้อ A)
b.1 reset ก่อนใช้งานใน DSP-F เราใช้ *IN55 ควบคุม การแสดงผล กับ reset (delete)
RRN01 (อ้างอิงจาก F-Spec) ขนาด 4,0 เริ่มต้นมีค่าเป็น 0 (ไม่มีข้อมูล)
b.2 Loop อ่านข้อมูลใส่ใน A
จุดสำคัญ ต้อง เพิ่ม RRN ให้ทุกครั้งที่ write Subfile-Data
C. คำสั่งแสดงผล Subfile
แต่เนื่องจาก Subfile มีข้อมูลหลาย rowsการดูผล ก็ใช้ page up/down ได้ หรือ เลือกการแสดงผลไปที่ page ใดก็ได้ โดยระบุ บรรทัดที่ (RRN)
เช่น ต้องการให้แสดงที่ page ที่ 2 (RRN= 5 ถึง 8)
หลายคนอาจจะมองว่า จัดแบบนี้ดูแปลกๆ
ในบทต่อๆไป การจัดแบบนี้จะช่วยให้เรา "ปรับ" แต่งได้ง่ายครับ
สรุป
จะเห็นว่า หลักการเข้าใจนาน แต่โปรแกรมเขียน "ไม่มาก"!
ส่วนหนึ่งเกิดจาก การ "ลด" ตัวแปร ทำให้จัดการ "ง่าย"
ถ้าทำบ่อยๆ จะใช้เวลาไม่นาน (ผู้สอน มักจะสร้างใหม่เพื่อสอน แทนการเปิดให้ลอก)
กำลังงงตรงนี้อยู่เลยอ่านแล้วเข้าใจมากขึ้นเลยค่ะ
ตอบลบ