פרק 13 - הוראות מיוחדות לעריכת הדפסה.

ב. בקרת סוף דף תוך שימוש במונה שורות.

מתוך כוונה להבטיח, שהתכנית שכתבנו לא תדפיס שורות הדפסה בחיתוך  שבין שני דפים, יש לרשום בתכנית קטע קידוד, אשר יטפל בבקרת סוף דף (END-PAGE  CONTROL).

אם ברצוננו לבצע את בקרת סוף הדף בעזרת מונה שורות, אשר נכתב בתוך התכנית, נדרשות הפעולות הבאות:

מונה שורות בתוך תכנית

  1. יש להגדיר את כמות השורות, שברצוננו להדפיס.

  2. לאחר כל הוראת  WRITE יש להוסיף אחד למונה שורות, המוגדר בשטח העבודה של התכנית. בצורה זו מתקדם מונה השורות, עד שנגיע לכמות השורות שברצוננו להדפיס.

  3. לאחר ביצוע כל הוראת WRITE , יש לבדוק את מונה השורות - אם הגיע לכמות שברצוננו להדפיס. אם כן - יש לדלג לדף חדש; אחרת : ניתן להמשיך בתכנית.

  4. אם מובה השורות הגיע לכמות השורות המבוקשת, יש לבצע הוראת PERFORM לקטע תכנית, המטפל בנושא ראש דף; קפיצה לראש  דף והדפסת כותרות המיוחדות לראש דף; ואיפוס מונה שורות, לשם ספירה מחודשת.

בכל תכנית, אשר יש בה משמעות לכמות השורות המודפסות בדף, יש להפעיל את שיטת הספירה של מונה שורות בתכנית. ללא ספירה זו של שורות, יודפסו שורות ההדפסה אחת אחר השניה, ללא כל ביקורת אם ההדפסה מבוצעת על החיתוך שבין שני דפים.

מכאן, שיש לבצע את בקרת סוף הדף על ידי קידום מונה שורות. לאחר ביצוע הדפסה של כמות השורות המבוקשת, יש להורות למחשב לבצע קידום לדף חדש ורישום שורות כותרת.

 דוגמא

WRITE  PRINT-REC  AFTER  ADVANCING  1  LINES.

ADD 1  TO  LINE-COUNT.

IF LINE-COUNT = 60 WRITE HDR-REC AFTER  ADVANCING  PAGE

MOVE  ZEROS  TO  LINE-COUNT

שים לב: המשתנה LINE-COUNT חייב להיות מוגדר בשטח העבודה, ובעל ערך התחלתי אפס. קטע תכנית זה יכול באותה שיטת עבודה לבצע רישום שורות הדפסה, עם שתי שורות רווח בין שורה לשורה.

 דוגמא

WRITE  PRINT-REC  AFTER  ADVANCING  2  LINES.

ADD 1  TO  LINE-COUNT

IF  LINE-COUNT = 30  WRITE  HDR-REC  AFTER  ADVANCING  PAGE

MOVE  ZEROS  TO  LINE-COUNT.

בשני קטעי הקידוד האחרונים מודפסים נתונים עד השורה השישים של הדף. בקטע הקידוד הראשון מודפסות שישים שורות הדפסה מלאות, ובקטע הקידוד השני מודפסות שלושים שורות הדפסה ושלושים שורות של מרווחים.

בקרת סוף עמוד בעזרת הסימן EOP

שיטה נוספת לבקרת סוף עמוד היא בעזרת השימוש בסימן EOP (סימן = סימון). EOP הוא משתנה מיוחד בשפת COBOL, משתנה זה מציין, אם ההדפסה הגיעה לסוף דף. ניתן לכתוב EOP או END-OF-PAGE. לצורך השימוש במשתנה זה לבקרת סוף העמוד שהוא מייצג, חובה תחילה להגדיר את מסגרת השורות, אשר בה מתבצעת ההדפסה.

מסגרת שורות זו נרשמת במשפט LINAGE מיוחד, המתווסף להגדרת FD עבור קובץ ההדפסה. תבנית משפט LINAGE היא כדלקמן:

LINES (קבוע נומרי משתנה)LINAGE IS

(קבוע נומרי משתנה)WITH  FOOTING  AS

(קבוע נומרי משתנה) LINES  AT  TOP

(קבוע נומרי משתנה)LINES  AT  BOTTOM

 

 דוגמא

FD  PRINT-FILE  LABEL  RECORDS  ARE  OMITTED

DATA  RECORD  IS  PRINT-REC

LINAGE  IS  60  LINES

WITH  FOOTING  AT  57  LINES  AT  TOP 3  LINES  AT  BOTTOM  3.

משמעות משפט LINAGE , על פי דוגמא זו, היא כדלקמן:

משמעות משפט

בעמוד ההדפסה 60 שורות

LINES  IS  60  LINES

שורת ההדפסה האחרונה היא 57

WITH  FOOTING  AT  57

3 שורות מרווחים בראש כל עמוד

LINES  AT  TOP  3

3 שורות מרווחים בתחתית כל דף

LINES  AT  BOTTOM  3

 

שים לב:

  1. המשפט WITH FOOTING AT 57   יגרום לסימן EOP (סוף דף) לסמל את סוף הדף, כאשר ההדפסה תגיע לשורה 57 בכל עמוד.

  2. קבוע נומרי שלם וחיובי ( INTEGER ) או משתנה נומרי שלם וחיובי יכולים לציין את מספרי השורות. אם נעשה שימוש במשתנה נומרי, יש להגדיר אותו בחטיבת הנתונים.

להלן תבנית ההוראה WRITE לשם שימוש בצורה זו של בקרת סוף דף:

   { AFTER } ] (שם רשומה)WRITE

[ { LINES - משתנה נומרי} ADVANCING

[(הוראה.הוראות ביצוע)]  [AT { END-OF-PAGE}

 

 דוגמא

WRITE  REC-OUT  AFTER  ADVANCING  2  LINES  AT   END-OF-PAGE

PERFORM  HEADER-RTN

 

שים לב:

  1. ביצוע הוראת WRITE או הוראת דילוג בשורה האחרונה בדף (השורה הוגדרה במסגרת FOOTING ) במסגרת הוראה קיימת, בדיקת  נאי (EOP ) תגרום לכך, ששורת ההדפסה תודפס, ולאחר מכן תתבצענה ההוראה או ההוראות הרשומות לביצוע, במקרה שההדפסה  גיעה לסוף דף (AT EOP ) .

  2. אם מתבצעת הוראת WRITE, המתעלמת מהתנאי EOP, מופיע תנאי חדש : תנאי הגלישה OVERFLOW  CONDITION במקרה  תתבצע שורת ההדפסה; ההדפסה תעבור לדף חדש, מונה השורות הפנימי LINAGE COUNTER מתחיל שוב מאחד ולאחר מכן  הוראה או ההוראות, הקיימות לאחר המשפט AT EOP, מתקיימות.

קודם | תחילת הדף | הבא

  שאלות להערכה עצמית >>

 

נושאים

פרק 3 - חטיבת הזיהוי                               (IDENTIFICATION DIVISION)
פרק 6 - חטיבת הביצוע                               (PROCEDURE DIVISION)
פרק 14 - הוראת DISPLAY ו-ACCEPT

.איתן 2002. כל הזכויות שמורות למערכת המידע איתן ©