פרק
13 - הוראות מיוחדות לעריכת הדפסה. |
ב.
בקרת סוף דף תוך שימוש במונה שורות.
|
מתוך
כוונה להבטיח, שהתכנית שכתבנו לא תדפיס שורות הדפסה בחיתוך שבין שני
דפים, יש לרשום בתכנית קטע קידוד, אשר יטפל בבקרת סוף דף (END-PAGE CONTROL).
אם
ברצוננו לבצע
את בקרת סוף הדף בעזרת מונה שורות, אשר נכתב בתוך
התכנית, נדרשות הפעולות הבאות:
-
יש להגדיר את כמות השורות, שברצוננו להדפיס. -
לאחר כל הוראת
WRITE
יש להוסיף אחד למונה שורות, המוגדר בשטח העבודה של התכנית. בצורה
זו מתקדם מונה השורות, עד שנגיע לכמות השורות שברצוננו
להדפיס. -
לאחר ביצוע כל הוראת
WRITE
, יש לבדוק את מונה השורות - אם הגיע לכמות שברצוננו להדפיס.
אם כן - יש לדלג לדף חדש; אחרת : ניתן להמשיך בתכנית. -
אם מובה השורות הגיע לכמות השורות המבוקשת, יש לבצע הוראת
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 |
|
-
המשפט
WITH FOOTING AT 57
יגרום לסימן
EOP
(סוף דף) לסמל את סוף הדף, כאשר ההדפסה תגיע לשורה 57 בכל עמוד. -
קבוע נומרי שלם וחיובי (
INTEGER
) או משתנה נומרי שלם וחיובי יכולים לציין
את מספרי השורות. אם נעשה
שימוש במשתנה נומרי, יש להגדיר אותו בחטיבת הנתונים.
|
להלן תבנית ההוראה
WRITE
לשם שימוש בצורה זו של בקרת סוף דף:
{ AFTER } ] (שם
רשומה)WRITE
[ { LINES -
משתנה נומרי}
ADVANCING
[(הוראה.הוראות ביצוע)]
[AT { END-OF-PAGE}
|
WRITE
REC-OUT AFTER ADVANCING 2 LINES AT END-OF-PAGE
PERFORM HEADER-RTN
|
-
ביצוע הוראת
WRITE
או הוראת דילוג בשורה האחרונה בדף (השורה הוגדרה במסגרת
FOOTING
)
במסגרת הוראה קיימת, בדיקת נאי (EOP
) תגרום לכך, ששורת ההדפסה תודפס,
ולאחר מכן תתבצענה ההוראה או
ההוראות הרשומות לביצוע, במקרה שההדפסה גיעה
לסוף דף (AT EOP
) .
-
אם מתבצעת הוראת
WRITE, המתעלמת מהתנאי
EOP,
מופיע תנאי חדש : תנאי הגלישה
OVERFLOW CONDITION
במקרה
תתבצע שורת ההדפסה; ההדפסה תעבור לדף חדש, מונה
השורות הפנימי LINAGE
COUNTER מתחיל שוב מאחד ולאחר מכן
הוראה
או ההוראות, הקיימות
לאחר המשפט AT
EOP, מתקיימות.
|
קודם | תחילת הדף | הבא
שאלות להערכה עצמית >> |