IS301 Programming Concept
Term 2/2541

Control Break Algorithm
  • What is Control Break?

  • Control Break หมายถึงรูปแบบหนึ่งของการพิมพ์รายงานที่เมื่อมีการเปลี่ยนแปลงค่าของตัวแปรใดตัวแปรหนึ่งก็จะมีการพิมพ์บรรทัดสรุป
    ยอดให้ ดังตัวอย่าง เช่น รายงานแสดงการตรวจสอบคุณภาพของผลิตภัณฑ์ในโรงงาน ดังนี้
    Quality Control Report
    Group Item Lot Qty. Samples Failure Pass/Fail
    A A-001 #1 3,000 150 50 Fail
    A-001 #2 2,000 200 5 Pass
    A-001 #3 1,000 100 10 Pass
    A-002 #1 1,500 200 21 Fail
    A-002 #2 2,500 250 10 Pass
    Group A Total 10,000 900 96
    B B-001 #1 500 80 5 Pass
    B-001 #2 750 80 3 Pass
    Group B Total 1,250 160 8
    ...... ......................... ........ ............... ........ ....... ........
    Grand Total xx,xxx xx,xxx xx,xxx
    จะสังเกตได้ว่ารายงานข้างต้นจะทำการพิมพ์สรุปยอดรวมของสินค้าแต่ละกลุ่มเมื่อค่าตัวแปร Group มีค่าเปลี่ยนไป
    เราเรียกรายงานลักษณะ นี้ว่า One-level control break report และเราเรียกตัวแปรที่ใช้ในการควบคุมและกำหนดการ break ว่า Control field
    ในกรณีที่ตัวแปรที่ใช้ในการกำหนดการ break มี 2 ตัว เราก็จะเรียกรายงานนั้นว่า Two-level control break report เช่น
    Quality Control Report
    Group Item Lot Qty. Samples Failure Pass/Fail
    A A-001 #1 3,000 150 50 Fail
    #2 2,000 200 5 Pass
    #3 1,000 100 10 Pass
    Item A-001 Total 6,000 450 65
    A-002 #1 1,500 200 21 Fail
    #2 2,500 250 10 Pass
    Item A-002 Total 4,000 450 31
    Group A Total 10,000 900 96
    B B-001 #1 500 80 5 Pass
    #2 750 80 3 Pass
    Item B-001 Total 1,250 160 8
    Group B Total 1,250 160 8
    ....... .............................. ............ ............. .............. ...........
    Grand Tota xx,xxx xx,xxx xx,xxx
     
  • One-level control break algorithm

  • จากตัวอย่าง Quality control report ข้างต้นที่ Break ตาม Product Group นั้น มี Input data เป็นดังนี้
    Group Item Lot Qty Samples Failure
    A A-001 #1 3000 150 50
    A A-001 #2 2000 200 5
    A A-001 #3 1000 100 10
    A A-002 #1 1500 200 21
    A A-002 #2 2500 250 10
    B B-001 #1 500 80 5
    B B-001 #2 750 80 3
    Input data requirement
    ท่านคิดว่าข้อมูลที่จะใช้ในการพิมพ์ one-level control break report ควรมีคุณสมบัติอย่างไร

    Data requirement (ตัวแปรที่ต้องกำหนด)
    จากตัวอย่างรายงาน Quality control report ข้างต้น จะเห็นได้ว่ามีการพิมพ์บรรทัดยอดรวมอยู่ 2 บรรทัดด้วยกันคือ Group total และ Grand total ดังนั้นเราจึงต้องมีการกำหนดตัวแปรมาใช้ในการสะสมค่า ดังนี้
     

    Group.qty Grand.qty
    Group.sample Grand.sample
    Group.failure Grand.failure
    นอกจากนี้จะสังเกตได้ว่าเมื่อเราอ่านข้อมูลขึ้นมาแล้วค่าของ Group เปลี่ยน เราจะต้องพิมพ์บรรทัด Group total ออกไป ดังนั้นเราจึงต้องมีการกำหนดตัวแปรเพื่อใช้ในการตรวจสอบว่าค่า Group มีการเปลี่ยนแปลงหรือยังอีก 1 ตัว โดยจะใช้ชื่อว่า
    Previous.group
    Program logic
    จะเห็นได้ว่าเมื่อเราอ่านข้อมูลแต่ละ record ขึ้นมา เราจะมีการทำงานแตกต่างกันขึ้นอยู่กับว่า record ที่อ่านขึ้นมามีการ break หรือค่า Control break field มีการเปลี่ยนค่านั่นเอง
    กรณีไม่ Break กรณี Break หรือ End-of-file
  • Two-level control break algorithm

  • Input data requirement
    ท่านคิดว่าข้อมูลที่จะใช้ในการพิมพ์ Two-level control break report ควรมีคุณสมบัติอย่างไร

    Data requirement (ตัวแปรที่ต้องกำหนด)
    จากตัวอย่างรายงาน Quality control report ข้างต้น จะเห็นได้ว่ามีการพิมพ์บรรทัดยอดรวมอยู่ 3 บรรทัดด้วยกันคือ Item total, Group totalและ Grand total โดยจะพิมพ์บรรทัด Item total เมื่อมีการเปลี่ยนค่า Item และจะพิมพ์บรรทัด Group total เมื่อมีการเปลี่ยนค่า Group
    คำถาม: ถ้ามีการเปลี่ยนค่า Group แต่ Item ไม่เปลี่ยน จะพิมพ์บรรทัด Total บรรทัดใด
    เราจึงต้องมีการกำหนดตัวแปรมาใช้ในการสะสมค่า ดังนี้

    Item.qty Group.qty Grand.qty
    Item.sample Group.sample Grand.sample
    Item.failure Group.failure Grand.failure
    นอกจากนี้ยังต้องมีตัวแปรอีก 2 ตัวที่ใช้ในการตรวจสอบการเปลี่ยนค่าของ Item และ Group คือ
    Previous.item                Previous.group
    Program logic
    การทำงานของโปรแกรมจะแบ่งได้เป็น 3 กรณีที่สำคัญคือ
    กรณี ไม่ Break กรณี Break by item กรณี Break by group
  • BASIC programs of One-level control break ตามตัวอย่าง Quality control report ข้างต้น
  • BASIC programs of Two-level control break ตามตัวอย่าง Quality control report ข้างต้น


  • Last update: February 18, 1999
    By  Angsana Achakulwisut