מקרו למתקדמים בלוטוס – Meta-Macro ו- Intra-Macro

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

OCR (הסבר)
/ 2 מקרו למתקדמים בלוטוט 1-0 |- 000]|-ג]וחו מוקדש באהבה להורי לאה ולוי אברהמי 3 10008, או לוטוס 123 - הינו מוצר של חברת 1 ם202078+10) 6ת136ק260610 1005 ה 2 מקרו למתקדמים בלוטוס 0 (!- 3670-ב )חן רן אברהמי ערך יצחק עמיהוד ספרי לימוד והכשרה במדעי המחשב הוצאת הוד עמל ה מו 00 000 8860]/-78+ה1 6ח8 6+8-18070 1תהתהזטה תת על בטתותה .1 עס 601666 (ס) כל הזכויות שמורות הוצאת הוד-עמי לספרי מחשבים בע"מ ת.ד. 560, רמת-גן 52105 טל המשרד: 052-541207 אין להעתיק ספר זה או קטעים ממנו בשום צורה ובשום אמצע: אלקטרוני או מכני, לרבות צילום והקלטה, ללא אישור בכתב מאת ההוצאה, אלא לשם ציטוט קטעים קצרים בציגּן שם המקור הודפס בישראל שבט תשנ"א, פברואר 1991 8 65תאנת [1 4 ות-1100 ת08-8104%ת 560 .0.2.ק 1 ש+עתפנס6ע ,157861 מסת"ב 965-361-013-9 158% הקדמה תוכן העניינים פרק 1: ניהול סביבת העבודה 34 2 3 .8 5 . חשיכיב ה 0 ה מיפו: תוכן עניינים בלוטוס במקום ע1/......... מבנה הגיליון עבור 0ע%86-8ע52םך לכה ( | ₪ 5:53 . 0ע886/-%628ת1 לשליפת קבצים...... מבנה בסיס: מיקום תוכן העניינים במפת הזיכרון שלי פה מ 5032 65 2% מיפוי תוך סביבת'י... הר מבנה מורחב.... 0 פרק 2: ניהול תון גיליוני וש הש כת ב 5656 +......... 2 מהשים ראש הניים במודדלר 54 ימיהדיהלריהת. בש וק 0% ₪ 60 3 2 משפט שירות ומשפט מפעיל.... 3 ₪80200-8ע6ם1 לעריכת קובצי 45011... מושגים מתקדמים במודולריות - שילוב 16+/ עם 08286 2858.. 1 שלב א: תפוקות ומבנה הקבצ'ם................ .+5 ..... 2 שלב ב: מיפר עבור 0058-4860 . ל ל 0 0 1 1 0 ]|| 1 - 1 ו 1 1 10: 2 ה 2 2 3 שלב ג: מיפוי עבור 0ע8-886ע152 0 8% שלב ד: כתיבת מקרו.... ו נ ו 8. משפטים מפעילים....... ו ב 5. מושגים ראשונים בארגומנטים...... ו פרק 3: ניהול תוך גיליוני - תפריט פקודות 1. שלבים בהקמת ה*ישום.... סע מ סי 5 2 שכב וא = תפי הקורת. ‏ המבה וק בצ םב 3 שלב בי =מיפה עבור :7008-8060 בב בבש ו שלב וגו ומפת: 168-860 שו 5 שלב ד = כתיבת המקר ה כ 1 הפעלה מיוחדת........ ל 6 2" משפטים מפעלל םשש 0 3 משפטי שירות ב ה . .ב 8 שילוב [ ... ₪6811ם6+ עם 1ע/ ב ב 5 עצ תפריטים... 0 סל כ 0 6 תקשורת די*סק - גיליון םב 0 7 מעצורים ב ו .1 פרק 4: ספריית שירות מסוג פ1ם 1. ספר:יית שירות 0 ו ב כל 2. שירות על *די קוב ס1ם יו ו 2 3. טעינה אוטומטית ל 0 1 טעינה אוטומטית של שירות אוניברסל: .]|| 8 2 טעינה ופריקה אוטומטית של שירות מיוחד ו 0 8. יתרונות יש 0 פרק 5: השליטה בדיסק 1. סוגי נתונים בשליטת לוטוס. 0 ב 2. מטריצות נתונים ב-45011. ב 3. הקמת רשומה מנתונים מעורבים ו כ 4. כתיבה אל הדיסק 1 כתיבת רשומה אחת.... סנ טור וש 2 כתיבת שדה אחד ברשומה אחת הלד 3 כתיבת רצף רשומות 0 1% כתיבת דיווח אוטומט: 0 6 5. שליפה מהדיסק 1 שליפת שדה ברשומה ו ו 0 לפ של*פת הצף ‏ רשהמהת 0:6 5.9556 536 9 6. כתיבה אל הדיסק - שילוב ( ... 05ס+) עם א66םת61 ל פרק 6: ניהול קבצים ואבטחת מידע 1. לוח משולב - נתונים ונוסחאות... 9 1 שמירה במבנה 1;ש ו ל ... 2 שמילרה במבנה 45011 ב 1 2. מידור פונקציונל: ,שכרש 00-87 3 ל 3. מערכת אינטגרטיבית.... מו 0 05 4. מידור מאבטח.. ל ו ם נייך א למשתמשי לוט הס ב הקדמה הספר הזה נולד במחשבתי כהמשך טבעי לסדנאות המומחים למשתמשי לוטוס שפיתחתי. ההוראה בסדנאות הוליכה אותי לפיתוח קורס הכולל את כל חומר הסדנאות והכנת הקורס הובילה אותי לכתיבת ספר זה. לפיכך רק טבעי הוא שדברי המבוא לקנרס יהיו גם דברי המבוא לספר. הספר, כמו סדנאות המומחים והקורס, נועד למשתמשי לוטוס ותיקים ואו: מנסה לתת בו יותר מאשר "פטנטים" בהפעלת הלוטוס. ברצוני להקנות דרכי חשיבה שיעזרו למשתמש הלוטוס לעבור מדרגה, לגלות אפשרויות נוספות בלוטוס ובמיוחד כיצד אפשר בעזרתו לפרו+ אל מעבר לגבולות הגיליון וסרגליו וכמו "לשאוב אל הגיליון" את הדיסק כולו. הקשר השוטף עם משתמשי לוטוס מתקדמים היה הדחף המרכזי לפיתוח הסדנאות הללו. הסתבר לי כי החלפת ידע פתוחה ומלאה בין משתמשים מניבה תועלת הדדית והנאה אישית לכל המשתתפים. מחשבה זו שיחררה אות: מהנטיה הטבעית "לשמור את כל הסודות לעצמי". ומשהגעתי לכתיבת הסדנאות והספר, נמצאתי לומד לא פחות מאשר מלמד. יש מספר מרשים של משתמשי לוטוס ברמת תיחכום גבוהה ונראה לי שכולנו נצא נשכרים, אם תמצא דרך לתקשורת כמעט בין-אישית ברמת המשתמש המתקדם. קריאה מוקדמת: מומל+ שהקורא *כיר היטב את ה-1אטות₪8 של תוכנת לוטוס, גירסה 2.2. ויהיה לו ניסיון מוקדם בכתיבת מקרו. כך :וכל להפיק את מלוא התועלת מן הלימוד בספר זה. כל הדוגמאות המוצגות בספר מבוססות על גירסה 2.2 של לוטוס. הן מתאימות גם לגירסה 2.01 (בשינויים מסוימים) ולגירסאות גבוהות *ותר של לוטוס. רן אברהמי חשיכה אינטגרטיכית בהפעלת גיליון לוטוס הנושאים הנלמדים בקורס זה נבחרו בקפידה. הם מתייחסים לבעיות העומדות בפני משתמשים רבים תוך הצגת פתרונות, שרבים לא היו מודעים להם קודם. הפעלת לוטוס נעשית בדרך כלל במישור ה"תוך גיליוני", כלומר באמצעות קוב עצמאי, יחיד ונפרד. לרבים מתמקדת העבודה בגיליון בעולם ש"בין הסרגלים שעל המסך" תוך התנתקות מהעובדה שתוכנת לוטוס מאפשרת קשר דינמי עם מרחב המידע הענק שבדיסק. שימוש מתקדם בגיליון משמעותו שליטה מלאה של המשתמש בכל סביבת המיחשוב האישי שלו - מרחב המחשב. כדי ליעל את השליטה והבקרה בייצור התפוקות של גיליון לוטוס דרושה חשיבה אינטגרטיבית בשני המישורים הללו ‏ - המישור התוך גיליוני והמישור המרחבי. לחשיבה האינטגרטיבית במישור התוך גיליוני אנחנו קוראים 0ע806/-%28ח1 שכן היא מוליכה לשליטה אוטומטית בגיליון על *די אינטגרציה של כל המרכיבים הקשורים בו. לחשיבה האינטגרטיבית במישור המרחבי אנחנו קוראים 6%8-1143620, משום שהיא מוליכה מתוך הגיליון אל מעבר לו - לשליטה בכל מרחב המחשב. אנו נשלב שני עקרונות אלו, 0ע116%8-806 |ו- סע8-886ע%ת1, בהקמת יישומי לוטוס. כך נקבל יישומים רבי עוצמה במבחר רב של נושאים ובמגוון רחב של תפוקות, תוך ניצול מירבי של כל הטמון בגיליון האלקטרונל. סי1301/-16%8 ו- 8-8620ע%ת1 הם פיתוח של רן אברהמי 1846 14 בסוף הספר תמצא פירוט של נושאי הקורס ושאלון לקורא. פרק 1 ניהול סביבת העבודה 31 חשיבה אינטגרטיבית כשגיליון לוטוס "עולה" אל המסך מופיע לעינינו מבנה הסרגלים שלו, המפגש בין הסרגל העליון לבין הסרגל האנכי בפינה השמאלית העליונה של מטריצת ענק. התמונה הזאת ממקדת את העין ואת המחשבה אל כל הדברים הרבים שאפשר לבצע בגיליון. באותו הזמן אנחנו מודעים לכך שכל מה שנבצע במטריצה הזאת נשמור אחר כך בדיסק בכתובת כל שהיא המזוהה בשם בן שמונה תווים ובסיומת 1אש. יצרנו "עולם סגור". עולם עשיר במיוחד במגוון האופציות שהוא מציע ליצירת :ישומים ולשליטה במחשב. בכדי להפיק את מירב התועלת מאפשרויות אלו אנו נזקקים לדרך חשיבה מיוחדת המקנה ללוטוס משמעות של שפה, להבדיל מאוסף של פקודות ופונקציות. שפה מורכבת מיחידות מודולריות ומחוקיות מסוימת של הקשרים בין היחידות הללו. כל שילוב של *חידות יש לו משמעות משלו, ואותן י*חידות בשילוב שונה תקבלנה משמעות שונה. בלוטוס יש למעלה מ-500 פקודות תפריט (65ת8מםמסס טת6ם), עשרות פונקציות 68 ועשרות פקודות מקרו. כל אחת ממאות היחידות הללו אפשר לשלב כמעט עם כל אחת מהיחידות האחרות ולקבל אין ספור צירופים אשר לכל אחד מהם משמעות שונה. אפשר לומר בצורה מטפורית, שכל *חידה ממאות היחידות הללו היא מלה, וכל צירוף מלים הוא משפט. וכאשר צירופי המלים למשפטים, פיסקאות וחיבורים שלמים שומרים על חוקיות מסוימת - יש לנו שפה. בדרך זו נקבל מערך אינטגרטיבי | של מרכיבים מודולריים. ‏ מערך ‏ זה אני מכנה בשם 0נ80]-28>ת1. משפטים *וצרים תפוקות. תפוקתו של משפט היא המשמעות המועברת באמצעותו מהדובר אל חברו. גם למשפט 0ע86א-628ם1 תפוקה משלו. תפוקה זו היא תגובת המחשב למשפט. לכל משפט מגיב המחשב בצורה שונה, אך שלא כבני אדם, תמיד יגיב המחשב לאותו משפט באותה דרך. כלומר, לכל משפט 80620/-%28ת1 יש תפוקה אחת בלבד. תקשורת בין אנשים כוללת דיבור וכתיבה. תקשורת בין אנשים ומחשבים הינה באמצעות כתיבה בלבד. הכתיבה מאלצת את השפה למסגרות מסוימות - נייר, | עיפרון, שורות, משבצות ואבזרים שונים נוספים. לכתיבה גם חוקים מיוחדים שנועדו לארגן את הנכתב, כך שתהיה לו מירב המשמעות. בלוטוס, שטח העבודה הוא הגיליון וכדי להקנות משמעות מירבית לשפה הנכתבת בו צריך לארגן אותו במבנה כל שהוא. מבנה זה הוא אחד המרכיבים המודולריים של שפת ה-סעס8א-8ע6ת1, שכן זו שפה כתובה ולא שפה מדוברת. שפת ה-0ע8-880ע6ת1 היא מכשיר לתקשורת בין האדם למחשב ומשתמשים בה לכתיבה בגיליון לוטוס. אותו "עולם סגור" בין הסרגלים, עולם שאנ מתייחס אליו במונח "המימד התוך ג'ליוני" בחשיבה על התקשורת ביני לבין המחשב. אלא שבמהות המשפט "תקשורת ביני לבין המחשב" טמונה משמעות רבה - פריצה אל מעבר לעולם הסגור הזה, אל מעבר לגיליון. מעבר לג'ליון נמצא מרחב עבודה ענק המוגבל ‏ רקס על ידי :*כולתו הטכנולוגית של האדם. הדיסק הוא מרחב מסוג מיוחד המשמש לאחסנת נתונים. גודלו של מרחב האחסנה הזה לא מותנה בגודלו הפיסי-מכני של משטח הדיסק, אלא בכמות הנתונים שהטכנולוגיה של אותו הרגע *כולה לשמור בראשה של סיכה, וכמות זו הולכת וגדלה מיום ליום. בהשאלה אפשר לומר, כי כשם שהחלל שמסביב לכדור הארף הוא אינסופי, כך גם החלל שבתוך המחשב ו"מסביב לגיליון" הוא אין סופי והגבול הנראה לעין הוא תוצר הטכנולוגיה של אותו הזמן. כך *כול גיליון הלוטוס להיות בסיס לשליטה בנפח הגדול הזה של הדיסק, אשר אתייחס אליו במונח "המימד המרחבי". את דרך החשיבה המקימה את הגשר בין המימד התוך ג'ליוני לבין המימד המרחבי אכנה בשם 16%8-718620. מיפוי היא דרישה מקדימה לשליטה במרחב ומשיש מפה אפשר לקבוע כתובות. לגבי, שם הקובצ+ הוא כתובתו במפת %8620-6%8. קבצים שכתובתם מקבלת את הסיומת ‏ 1אש נמצאים ב"שכונה" מיוחדת במרחב התפישתי (קונספטואלי) של הדיסק, "שכונת הלוטוס". המייחד את הקבצים הללו מאחרים הוא המבנה שלהם. יש איזורים נרחבים מסביב ה"מאוכלסים" בקבצים בעלי מבנה שונה, כמו למשל מבנה 850611. רוב התוכנות המקובלות בשוק מסוגלות לייבא ולייצא קוב 45611 "נק:". פןו אחד של הלוטוס שנותר חבוי מעיני רבים הוא *כולתו הרבה במחרוזות טקסט ובשליטה בקובצי 45011. יכולת זו נובעת מפונקציות אַת1ע5%6 שלו, מו היכולת לשלוט בקובצי 85011 שלמים באמצעות פקודות התפריט ומשליטתו ברשומות ובתווים בודדים בדיסק באמצעות פקודות המקרו השונות. פן נוסף הוא *כולתו לאפשר אוטומציה מלאה של פעילות מחזורית, אשר ניתן להגדירה בדקות ספורות ואשר חוסכת אחר כך זמן וטעויות. התוצאה ‏ הינה *כולת שליטה כמעט בלתי מוגבלת באמצעות הגיליון בקובצי 45011 שבדיסק. תוצר הלוואי של שליטה זו היא היכולת לניהול תקשורת בין תוכנות "שכנות" על ידי העברת (תונים מאחת לחברתה תוך כדי ביצוע עיבודים, כאשר הנתונים הללו "עוברים" דרך ג'ליון לוטוס. כשמשלבים את שני העקרונות הללו, עיקרון| ה-0ע86/-₪6%8 ועיקרון ה-788020/-%28ת1, | בהקמת יישומי לוטוס, מקבלים יישומים שיהיו להם התכונות הבאות: 1. היישום *היה פשוט ו"חכם". 2. היישום יבצע מספר רב של מטלות במספר קטן ביותר של פקודות מקרו. 10 3 היישום *אפשר שליטה במרחב המחשב שמעבר ללוטוס ‏ - דרך הלוטוס. 4. המבנה המודולרי מאפשר: 1. שימוש חוזר במרכיבים רבים בתוך הג'ליון ובין גיליונות שונים. . מספר רב ביותר של צירופים בין מרכיבי היישום. יעילות רבה בהכנסת שינויים ביישום. . איתור מהיר וקל של טעויות. . שילוב פונקציות בתוך מקרו. א ש = תת ספר זה מבוסס על סדנאות המומחים למשתמשי לוטוס שפיתחתי. הנושאים נבחרו בקפידה והם מקיפים מכלול בעיות העומדות היום בפני משתמשים רבים. חשיבה אינטגרטיבית לטיפול בבעיות אלו עשויה לפתוח אפשרו*ות רבות נוספות לפתרונות שלא היו מודעים להם קודם. 2. מיפוי הזיכרון כל הקמה של מבנה מורכב דורשת תכנון והכנת תשתית. כך בהקמת בית וכך בהקמת יישום לוטוס. לכן, לפני שניגשים לייצר תפוקות בלוטוס רצןי לבצע מיפוי מקדים של הדיסק. אפשר לגשת למיפוי כזה מנקודות מבט שונות. הדרך המומלצת כאן מכינה תשתית נוחה לפעילות אינטגרטיבית של 0 68-186 116 מיפוי זה מתחיל בהכנת רשימת יישומים שלכל אחד מהם תכונות מובהקות המבדילות אותו מאחרים. למשל, . קובצי 05. . קובצי הפעלה של לוטוס (בלי קובצי 1>ש). קובצי 586 להפעלה כ-ם₪6 במסך 205. . קובצי 1אש המספקים שירות לכל יישומי לוטוס. . מערך ראשי ליישומי לוטוס. 1. סביבה ליישום לוטוס להפעלת סדנא 1. 2. סביבה ליישום לוטוס להפעלת סדנא 2. ם סביבה ליישום לוטוס להפעלת סדנא ם. 6. קובצי הפעלה של תוכנת שירות, למשל מ886118. 7 קובצי הפעלה של מעבד התמלילים. 8 קובצי תמליל שנכתב במעבד התמלילים. 9 0 = א ₪ םוש קובצי הפעלה של תקשורת טלפונית. 1. קבצים שנתקבלו בתקשורת טלפונית. לכל אחד מאלה נקצה "זהות" על מפת הזיכרון (ס8א-עעסמסא). ה"מפה" הזאת תהיה התשתית הארגונית של הדיסק. יש לזכור שתשתית זו ני*תנת לשינוי על ידי הוספות וביטול של "הויות" על המפה לפי הצרכים המשתנים של כל משתמש ומשתמש. 1 לפני שאדגים מפה כזאת, נייחד כמה מלים על שת₪6 (תפריט) במסך 05כ. לכל יישום יש נוהל הפעלה משלו. למשל, להפעלת הלוטוס 08נ808;280]... 08123 13 ולהפעלת מעבד התמלילים .... שש6 מש קל מאוד להכין מספר קובצי 586 שכל אחד מהם מכיל נוהל הפעלה של יישום אחד ואשר שמו 8%מ.ת כאשר ם הוא מספר כל שהוא. את כל הקבצים הללו נרכז במחיצה אחת הנקראת טתסא. קובצ אחד מתוכם שנקרא בשם %. טתסא יקרין על המסך תוכן עניינים המראה את רשימת היישומים הראשיים שיש להם זהות מוגדרת במפת הזיכרון ואת מספריהם. מכאן רק צעד אחד מוליך אל אוטומציה נוחה של הכניסה למחשב, שלא דרך תוכנות עזר, אלא "תוצרת עצמית". מוסיפים כך את השורות הבאות בקוב%> 66.28%א2₪6506: במקום כל שהוא בתחילת הקוב ... ; ותס):6:;6:205;6 = םספק % = ססמספס השורה שלפני האחרונה תהיה ...2 6 והשורה האחרונה בקובצ זה תהיה ... גות6א שתי השורות האחרונות האלו תהיינה שתי השורות האחרונות בכל אחד מקובצי 08% של תוכן העניינים. התפוקה של הנוהל הזה: 1. לאחר פתיחת המחשב מופיע מסך תוכן העניינים הפרטי עם: <:6 2. לאחר הקשת מספר מתוכן העניינים מופעל היישום השייך לו. 3 יציאה מכל יישום מחזירה את מסך תוכן הענלנים ואת סימן ה->קמסעס: <:6 עכשיו, הבה נראה מבט כללי של מפת זיכרון לתשתית כזאת. 12 ;טםסא:6:;0:205;6 = תסהק קובצי הפעלה של לוטוס בלבד קובצי 205 בלבד 5 רק קובצי 86 להפעלה מ-209 +'.'י.''...... ברירת המחדל של הלוטוס . .7 מערך י*ישומ* לוטוס ... נתונים ב-45011 בלבד . נתונים ב-45011 בלבד .. (בלי קובצי 1אא) 123227 ו 0 של " סע *.יי.:.:..... תו 1 .5620106 גי % ל תת --ד- 1 95 5 : כ ל 1ה6הת 5 ₪5 -- > - 25:00 08582 סביבה ליישום לוטוס להפעלת סדנא 5 10 מערך ₪1 ו-₪10 להפעלת היישום .... 5 ₪5 > ת8 116611 א 1 2 1 38 3. תוכן עניינים בלוטוס במקום זו/ לפני שנמשיך לבחון את מפת הזיכרון נבנה את הנדבך הראשון בקשר שבין לוטוס לבין הדיסק כולו: תוכן עניינים במקום 99/ כך נראה, לדוגמא, מסך תוכן עניינים בגיליון 1אש. מפת סעס8א-8ע%ת1 (ס) 1990 רן אברהמי 1406 ת.ד. 8305 ירושלים 91042 טלפון 02-631768 צומת הסדגאות סדנאות מומחים 7 למשתמשי לוטוס סדנא 41 ,2 = תאש 7 ארגון קבצים ותפריטים קובצי 45011 וגיליון לוטוס . הפעלת הגיליון ע"י תפריט . שירות מתוך צַע8עס11 סעספא₪ שליטה במקרו על רשומות 45011 רענון - 1: פונקציות, פקודות ומקרו ניהול קבצים ואבטחת מידע שולחן עגול למשתמשי לוטוס יציאה למיפוי הזיכרון למערכת ההפעלה (205) לגיליון לוטוס חדש מלוטוס הסבר: - | הקווים האלכסוניים מסמנים את מיקום הסמן. - הסרגלים מוחבאים על ידי מלת המקרו [08₪60+1?). - בשורת הדו-שיח הראשונה מופיע לוגו (עד 80 תווים) על :די [0981 616806ם1+ - הקוב> במצב של 5א0 שהופעל ע"י מקרו 0 -‏ כדי לבצע פעולה, או לקרוא לקובץ לפי שורה כל שהיא בתפריט, מביאים את הסמן על השורה המבוקשת ומקישים תתדאם. -‏ אין הגבלה על מספר הפריטים להפעלה בתוכן עניינים כזה. 14 המטלות המתבצעות על :די קובצ זה: 1. שליפת קובצ* 1 (במקום 9+/) 2. שינוי מחיצה: 6?/ 8 הפעלת תוכנות "שכנות" במקביל ללוטוס [ ... 500₪ע5] 4. | הפעלת פקודות 205 במקביל ללוטוס ‏ ( ... 550₪ע5) 5. הפעלת קובצי 086 במקביל ללוטוס [ ... 559₪ע8) 6. יציאה ל-005 מגיליון לוטוס: 5/ 7. כל מטלה אחרת שניתן לבצע ע"י כל פקודת מקרו כדי להראות כיצד מכינים קוב "תוכן עניינים" כזה, נסקור תחילה את עיקרון ה-10%28-08020. 4. | מבנה הגיליון עבור 0ז₪906-4זוחו המושג 0ע8-086ע62ת1 מתייחס. לחשיבה המוליכה לשליטה אוטומטית בגיליון על ידי אינטגרציה של מרכיבים מודולריים. כמו במשחק "לגו", גם כאן חשוב לארגן את משטח העבודה לפני שמתחילים להשתמש בו. משטח העבודה שלנו הוא גיליון הלוטוס. נחלק את הג*ליון לארבעה איזורים ראשיים: .| איזור פעילות גלו*ה. . איזור מקרו. איזור ע+ תפריטים. .| איזור פעילות סמויה. = א ₪2 ₪ יש לשמור על מספר כללים בחלוקה זו של הגיליון: 1. כל אזור מתחיל בשורה העליונה הראשונה של הגיליון ונמשך עד לתחתיתו. 2. כל האיזורים מקבילים זה לזה. לא תהיה עמודה משותפת לשנל איזורים. 3 אין מגבלה על מספר העמודות בכל איזור. 15 במהלך הפרקים הבאים *פורטו ו*ודגמו הפעולות המתבצעות בכל איזור ואיזור. בחלוקה סכימתית יראה הדבר כך: סרגל. עליון איזור פעילות סמויה איזור עצ תפריטים איזור מקרו איזור פעילות גלויה 5. סזס8!-8זוח! לשליפת קבצים 31 מכנה כסיסי ט בן פ 0 8 4 086817א2(7 71[/6)05[)5) | 8 תוכן עניינים פץ/ /]])/ = ₪ 6 ת.א > 1 2 1 ₪5 סדנא 1 ו : הסבר: 1. כאשר הקובאצ נטען לזיכרון הסמן מוצב ב-82 והמקרו 0 מכניס אותו מיד תחת כאס. 2. מלת המקרו [?+ מאפשרת להזיז את הסמן בחופשיות תחת המקרו. נציב, למשל, את הסמן בתא 86 (סדנא 2) ונקיש ממצאם. 3 שם הקוב 2 ₪5 :ועתק אל 1ַ4ט8כ2א - תחום מוגדר כמקום ריק בעמודת המקרו (שם המקרו כתוב בעמודה ₪ והמקרו עצמו ב-ת). 4. תתבצע פעולת השליפה. 2 מיקום תוכן העניינים במפת הזיכרון קוב* תוכן העניינים **יקרא תמיד בשם 1אש.טמסא והוא יישמר בתת-מדריך (צע6000ע5-21ט59) בשם 166טע56, פרט למספר חריגים. החשוב שבחריגים הללו קשור בכניסה האוטומטית למערך הלוטוס. נתבונן שוב בחלק של מיפוי הזיכרון המתייחס למערך יישומי לוטוס. 16 מיפוי הדיסק קובצי הפעלה של לוטוס בלבד (בלי קובצי %1א) 2. 123022 --ך.- -:6 ס8ת. 1 טתסו = ברירת המחדל של הלוטוס .. ו 7 9862010664000123.%%1 ן 1. טתסו מערך יישומי לוטוס ב 0 ... --ך- תת --ד- 1 ₪5 2 ב : נתונים ב-85011 בלבד 61 5 95 - | < נתונים ב-85011 בלבד 88, 2408293 סביבה ליישום לוטוס להפעלת סדנא 5 שירות ......‏ . . 61>ש.טת6א166ש562 מערך ₪%1 ו-₪10 להפעלת היישום 5 ₪5 > במחיצה 6:123222 מאוחסנות כל תוכנות ההפעלה של לוטוס גירסה 2.2, ואך ורק קבצים אלה. לא נאחסן כאן קובצי נתונים, קובצי 1אש, או כל קוב+ שאיננו שייך ישירות ללוטוס. בעת התקנת תוכנת לוטוס בפעם הראשונה נבצע 7 5920106 : ₪8666/ ונעדכן. בכך נקבעה המחיצה 01086ע6:58 כברירת המחדל של תוכנת לוטוס הנמצאת במחיצה 6:123222 במחיצה זו (106ט6:562) נשמור את קוב תוכן העניינים הראשי של כל מערכת ‏ :ישומי הלוטוס | תחת שני שמות: קובצ 1;ש.טשת86 וקוב 1 (הסיבה תתברר בהמשך). במחיצה גת6:/₪6 המכילה, כזכור, קובצי 886.ם [ם = כל מספר] נכץ קובצ בשס 1.28% ובו נכתוב: + 600 018 2 13 6 018 גוסו בכל סביבה של *ישום לוטוס נכללת מחיצה בשם 106טע562. למשל המחיצה 6 5 05תת:6 מיועדת לסביבה של סדנא 5, וכך בכל סביבת *ישום לוטוס אחרת. סדר הפעולות האוטומטי שנוצר במבנה הזה: 1. מפעילים את המחשב. 2. רואים על המסך את תוכן העניינים שהוקם ב-205. 3 מקישים 1 ואחר כך אמ7אם. 4. תוכנת לוטוס נטענת אוטומטית לזיכרון. 5. מופיע - מסך ‏ תוכן| הענלנים | הראש' (נכנה | אותו | "צומת המערכת"). 6. מצומת המערכת שולפים את תוכן העניינים של :ישום הלוטוס המבוקש. 7. עתה שולפים את הקוב% המבוקש, או חוזרים לצומת המערכת. 3 שליפה מורככת ראינו למעלה מבנה בסיסי של "המקרו השולף". על המבנה הזה נרכיב עכשיו תוספות. רצוי להיכנס לסביבת *ישום הלוטוס המבוקש על ידי שאוי המחיצה של ברירת המחדל ואחר כך שליפת תוכן העניינים של אותה סביבה. למשל, כדי לעבור מצומת המערכת אל סדנא 5 נבצע ‏ "106ט5562 5תַת966:3/ ורק אחר כך נשלוף את תוכן העניינים של סדנא זו. לביצוע מטלה זו :יראה "המקרו השולף" כך: סּ 8 פ 0 8 4 17 ת)[6)089/[?) | 0 תוכן עניינים 9?/ 7 9% 1 סדנא 1 טת20?/ 7 106ש5562 5תפת:6[/266 650+ 5 = ₪ = ת\ 1 סס כך גם *יראה המקרו שיחזיר אותנו מסדנא 5 אל צומת המערכת. 18 4 מופוי תוך סביכתי תוכן | הענ**נים של סביבת היישום הספציפי מקשר ביננו לבין מפת הזיכרון באותו איזור. נבחן מקרוב את המיפוי התוך סביבתי של סדנא 5 לדוגמא. מבגה הסביבה להפעלת סדנא 5 - מבט מקרוב נתונים בקובצי 45011 ... מסטרלצה לינואר 1990... ת90.38 286811 5 8 - לפברואר ... ת8ת.90 02 לאוקטובר ... ת8ת.90 10 092 קובצי ₪%1 ו-ס₪1 המספקים שירות למערך כולו .. . 41. ות6א5620166 קובצי גיליון במערך מודולרי, כאשר כל קוב מבצע 1 1תפת5 ₪5 תת מטלה של היישום כולו 1). כ2תפו 1 6תפת את המיפוי המקדים ליישומי לוטוס ‏ יש להכין ‏ עד רמת תת-מדריך (צע21260%0-סטש5) בלבד. את הקבצים עצמם *וצרים תוךך כדי עבודה בלוטוס. במפת סדנא 5 רואים שלושה סוג* מחיצות: 41 6 5 8ש מחיצה זו נועדה לאחסון 1אש.טם6א ספציפי לסדנא 5 והיא תהיה ברירת המחדל כל זמן שסביבה זו תהיה פעילה. עם החזרה לצומת המערכת תחזור מחיצת ברירת המחדל ותהיה 106טע6:56 כפי שתואר קודם. 8ו5 0) ') מחיצה זו מאחסנת את כל קובצי 1אש המבצעים מטלות שונות במהלך הסדנא. כל אחד מהקבצים הללו מבצע סדרת פעולות שיש קשר מהות* ביניהן, כמו קטעים שונים בפרק אחד בספר. הכותרת המאפיינת את ה"פרק" הזה תופיע ב-1אש. טתסא של הסדנא ומימינה כמתואר למעלה, השם "המחשבי" של הקובף (למשל 1>ש. פתפת). כל אחד מהקבצים הללו יכיל מקרו שמחזיר את תוכן העניינים של הסדנא: [16גוף) ‏ גום2%9?/ - ם 3 א52858 ₪5 [כל מספר = א] במחיצות אלו ימוקמו רק קובצי 89011 עם נתונים במבנה של מטריצות מספרים, תמליל ותמליל משולב עם מספרים בכל מבנה שנרצה. אין צורךד להקים את הקבצים הללו מראש. בהמשך נלמד כיצד להקים קבצים כאלה באופן אוטומטי דרך הלוטוס, כיצד הם נסגרים וכיצד הם מתעדכנים. 5 הגדרות לפני שנמשיך, הבה נגדיר מספר מונחים שישמשו אותנו בהמשך. 1. סביבה. איזור בדיסק המכיל מקב של מחיצות וקבצים שהפעלתם נותנת תפוקה *יחודית. למשל, עיבוד תמלילים לוטוס 123 גירסה 2.2 2. סביבת :ישום לוטוס. סביבה המופעלת באמצעות 1אש.ותסא, למשל סדנא 5. 3 *ישום לוטוס - כל קוב% 1אא. 4. צומת - 1אש.טם6א לשליפת קובא תוכן 1אש.טתסא אחר. 5. תוכן עניינים 1אש. טם%6 להפעלת סביבת :ישום לוטוס מסוים. 6 מגבנה מורחב עתה נוכל לפתח 8-080620ע52ם1 עד שיהיה מוכן להפעלה שוטפת וללא תקלות. לשם כך נוסיף מרכיבים לכל שעשינו עד כה. נגדיר תחילה 8₪65 6שתפת. פַּ : מּ פ 0 : 4 6817התא(2 2+(6)08/[?) | 0 2 תוכן עניינים 1 פץ/ // 2 "7 ₪0 1 5 | סדנא 1 1 פ 5 1 2 ₪5 2 6 20 הסבר: - למקרו 0 נקרא שם נוסף: 2 - נוסיף עוד שני מקרו: פ ו-8 - נוסיף הודעה בשם 5₪1 - על כל אלה נגדיר עוד שני תחומים: פס 7027 1אאסתע/ 2%]- לבסוף נגדיר טע/ את התחומים הבאים: 1 2.00 1 00 נציג עכשיו את כל המקרו ללא הסברים. המקרו השולף [?)[6מסת)[581 6168%66ת1)[+282601+) [61682 6105%תפק) (תספשטס60ת1ש)[6ע26598+ ‏ א [2 עסעעסת086817)0א2[7 ע)[0005041[/6)05ת₪1) [2 תסתפפס) ("ס"=(6881בכא, "6קע06011)"6 19) פ?/ ביצנ (2 תסתפס)- הערה: אני נוטה לכתוב מקרו עד 210 תווים בתא. כאן פיצלתי את פיסקת המקרו על פני מספר שורות לנוחות הקריאה. אפשר לכתוב את כל שלוש השורות הראשונות של המקרו השולף בתא אחד. כניסה לעמדת מוצא לפני ביצוע %8/ [16גו)סשש/ 17אא ( ₪060 ) [ ססם )₪66/ 06שש/ 210816617/ [610866ת1+ פ כדי ל"פתות" את ה-0ע%88602-8ע%ת1 הזה להכנסת שינויים מבצעים תחילה %הסעת-1ת00 ואחר כך, [1%גו) 2221116617 / סספש/ ססש/ [616866ת1+ 8 ולבסוף, ₪561 הוא השם המגדיר את התא עם הלוגו. כותבים את התמליל של הלוגו בתא שהוגדר 5₪1/. המשפט (5₪1א8 61068%66ת1) מציב את התמליל הזה בטורה העליונה ביותר של המסך. 21 קבוצה נוספת של פיסקאות נועדה לאפשר יציאה מתוכן העניינים אל יעדים שונים. ק | פ 0 8 4 86817תא[2 ע)[6)08/[?) | 0 2 תוכן עניינים 1 פ?/ ו 2 [ פא ריפ ן---> 1 3 5+ -₪א 1 ₪5 סדנא 1 8 ס 5 1 2 ₪5 2 6 7 8 טח%0ע?]/ "960:9620106/ (6 656) צא ל צומת הסדנאות ‏ 9 ["" הוא קוב 086 להפעלת תוכנת שירות] ("8" 560₪ע5) מיפוי הזיכרון 10 8 6850+ מערכת ההפעלה ‏ 11 [1%טף)עֶסט/ [6 680+ גיליון חדש 12 [טנטף)ְעְעַ/(6 686+ צא מ לוטוס 13 "לב" המערכת סם פרק 2 ניהול תוך גיליוני 1 שרשור כתובות הסמן נמצא בתא כל שהוא. בתא אחר שנקרא 881 כתוב 67. רוצים להציב את הסמן בכתובת ]6 בעזרת משפט מקרו ש"יאמר" לסמן: "לך והתייצב בכתובת 7, הרשומה במקום שנקרא 1תִת." למעשה, מתואר כן מצב של שרשור כתובות, כמו במשחקים ששיחקנו בצופים: "לך לכתובת א ושם יש פתק. על הפתק רשומה כתובת ב. תגיד לדודו שילך לכתובת ב ויחכה שם". רבים שואלים את השאלה הזאת. בעזרת תרגיל המציג פתרון אפשרי נדגים את החשיבה האינטגרטיבית של %628-86020ת1. נאמר שביצענו | 68817057םע/ וכתבנו ‏ ]67 בתא 1חת. נכתוב עכשיו את משפט המקרו 8 "(6016) 18"7תת8050["8)"+ 8 התפוקה של 8 היא הצבת הסמן בתא 87, או בכל כתובת שתהיה רשומה ב-1ַת. הבה ונאמר כ* רוצים: אם א אז יוצב הסמן ב-68 אבל אם לא א אזי יוצב הסמן ב-95. ונאמר עוד שביצענו 165%17067סת2/ וקבענו כי אם א אז 16561=1, אחרת - 168%61=0. עכשיו נכתוב את פיסקת המקרו הבאה, ונקרא לה 8: 25"([7", "1,612)165%1=1,"68תת 166+ 8 "(0016) 18"7תת₪0%60["3)"+ זו הפיסקה שתניב את התפוקה המבוקשת. |33 פיסקת %8620-8ע62ת1 שנכתוב לביצוע הפעולה: 25"((7", "1,612)16561-1,"68חת 166) 8 9% [016ף+060[:57+ - 5 1תת 0 76561 +")8060[" 6% בתרגיל זה גלומים עקרונות רבים. מודולריות, ארגומנטים במקרו, תשתית לאוטומציה, משפטים ופיסקאות במקרו ועוד. בהמשך אדגים דרכי חשיבה שבעזרתם *כול כל משתמש "להמציא פטנטים" רבים שיעזרו לו לקבל את מירב התפוקות מהלוטוס. 2 מושגים ראשונים במודולריות את המושגים הראשונים במודולריות ב-0ע8-886ע6ת1 נבחן ביישום לוטוס שהתפוקה שלו היא קובצי 8%ע. במלים אחרות, נלמד להפעיל את הלוטוס כתוכנת עורך (ע0ף₪61) לכתיבת קובצי 58% שיאוחסנו במחיצה טמסא:6 וישמשו לטעינת תוכנות לזיכרון ממערכת ההפעלה. 1 מודולריות כשם הקובצ 6 ט טּ פ " (תתגוס סע ) "/%18א221061801218711618+ > (םתט60ע)1.286טת6:%6 8061א116ק :6 21061 טתסא 2121 1 118912166 1616 > 1 161צק 6. 1סאם הסבר: - לפנינו משפט מקרו מסוג מיוחד: משפט שירות במבנה מודולרי. מודולריות, בצורות שונות, תחזור ותופיע פעמים רבות בהמשך. 24 במשפט הזה מגדירים חמישה שמות איזורים - 865 6שֶתפת (השמות המודגשים בעמודה 5) ע"י 15תץ/. שים לב לכך שהשמות צריכים להיות מיושרים לימין (108%61+1066 6מ18ע) בתוך התא. בעמודה 5 בתא שמול 8₪61א116ע2 כותבים את המשוואה שבמסגרת. בעמודה זו מכניסים מול כל אחד מהשמות האחרים (ביישור לשמאל) את מרכיבי הנתיב (סמפת ב8%) של הקוב% שמעוניינים בו. כתוצאה מכך, תחזיר המשוואה בכתובת 8₪61א2116 את שם הקוב%א במלואו. נשנה את תפוקת המשפט הזה ע"י שינוי במרכיביו, למשל: אם נכתוב :8 בכתובת 61ש21כ, במקום :6 שבדוגמה, אזי נקבל מיד ב-116%8861ע את התוצאה (תעס6 )א. 1 גוס :8 אם נכתוב ' (גרש עבור %מ018) בכתובת ‏ 2121 וב-1161ע נכתוב 2 (יישור לשמאל - 18061 108612106 1696), נקבל (תע0:2.88%)2600 תרגיל: הפעל את המחשב ונסה את כל האפשרויות ללא היסוס. ככל שתחוש יותר את אפקט המודולריות בשלב מוקדם ופשוט זה, *היו הדברים בהמשך קלים ומובנים *ותר. 2 משפט שירות ומשפט מפעיל ומה פשר המלה [תעט266) שבשורה הראשונה שבמשפט המקרו? מילת מקרו זו הופכת את שם התחום הרגיל למשפט שירות במקרו. בשיחה רגילה בין בגל אדם משלבים לעתים ביטוי או משפט שלם (מאמר מוסגר) שחורג מהקשר הדברים במשפט הנוכחי. בסיומו חוזרים בדיוק לאותו המקום שבו היינו ממשיכים ללא החריגה אל המשפט המוסגר. ב-628-8620ת1 נכנה את המשפט הנוכחי בשס משפט מפעיל ואת המשפט המוסגר נכנה בשם משפט שירות. באנגלית קוראים לפעולת סגירת הסוגריים| באמצע משפט המקרו ‏ - 1 סשתנסטסעסט5 ולמשפט המקרו שבתוך הסוגריים - ש6תנסוסעסטפ. נבחן למשל את המשפט הבא [ש, 61ת116%8/ מ6סס) 1 1 [61056+ [601%+ משפט זה הוא "משפט מפעיל", שכן הוא מתחיל בציון 6מ8א 6שת8ת ומסתיים ב-(6₪01%). באמצעות משפט זה מבצע המחשב את הפעולות הבאות: 1. פותח קובף ששמו מופיע בכתובת 8₪61א116ק. 2. לא כותב דבר (גודל הקוב יהיה 0 בתים). 25 3 סוגר את הקובף. 4. אם הקוב קיים, הוא מבטל את תוכנו ומשאירו כקובצ ריק. משפט המקרו הזה תמיד מצליח, והוא *חזור ויופיע פעמים רבות בספר זה. המלה 8₪61א116%ע בתוך קטע המשפט (ש,8₪61א116ת תססס) היא קריאה למשפט שירות (כמו פתיחת סוגריים לקראת מאמר מוסגר בשפת דיבור) מכיון שהיא 6מפא סשתפת. בתא 8₪61א2116 כתוב [םע600ע)1.28%גותס%:6 ומהמאמר המוסגר הזה המחשב "יודע" את שמו המלא של הקוב המיועד לפתיחה. בסוף המאמר המוסגר הזה כתוב [תעטס6ע+ - זאת פעולה של סגירת הסוגריים. המלה [תעטס6ע)+ "מודיעה" למחשב לחזור ולהמשיך לקרוא את המשפט המפעיל במקום שיצאנו ממנו. יוצא מכאן, כאילו כתבנו | [ש,"1.886טם6:/6" ם0ס0ס+. אלא שהמבנה המודולרי מאפשר לשנות מרכיבים שוניס בשם הקוב ולשנות על ידי כך את תפוקת המשפט המפעיל בלי לכותבו מחדש כל פעם. שינוי קטן במשפט המפעיל *הפוך אותו ממשפט מפעיל פשוט למשפט שירות: [ש, 711688861 מסקס) 1 1 [61088+ [תע6%)+ כלומר, סיומת המשפט היא [(םעט260) במקום [16ש4). נחזור עכשיו למשפט המפעיל הראשי: 7 [061ת8א116ע) [656)א21%/ (1 1+ ס המשפט הראשי הזה מפיק תת-מטלה בתוך פיסקת מקרו ששמה םש. קבוצת מלים זו היא משפט שלם: היא מסתיימת בסימן 7 (תפזאם), כמו נקודה בסוף משפט, ומכילה את כל המרכיבים של משפט בשפה רגילה (כגון נושא, נשוא, פועל וכו'). משפט זה הוא חלק ממערך מטלות שלם, שתפוקתו היא קובצ ה-49011 המבוקש. מערך משפטי מקרו אלה הוא פיסקת המקרו: (80)6016ףטסתמס 7 1טת16 7 ( 861 א7116) (1%)686 /[1 1) ס המלה 1גומ6! מציינת שם-תחום של האיזור אשר בו ייכתב התמליל הנדרש לקוב>. 26 תרגיל: כתוב את המקרו הזה בגיליון ונסה כל שעולה על דעתך. %הירות !!! המקרו הזה חזק ביותר ועלול למחוק קבצים קיימים. רצוי להקים מחיצה מ*וחדת לניסיונות ולהגדיר שמות קבצים שעדין לא קיימים. 3 סוסה!-8זוח! לעריכת קוכצי |ו250 כשמחברים את המרכיבים הללו וכותבים אותם באיזור המקרו (ראה פרק 1) של 1628-8620 זה, מקבלים: (16) 7ום2%6?/ מ (16ט) 080גוסמםס 7 1טת6תי " ( 1168861) [656)א29/ [1 1+ פ (ש, 211608861 תסקס+ 1 1 [61056+ [ם20%02+ "] תעס6ת ) "%16א21061801218711618כ+ 861א116ע וו <<>ה=?<====---- :6 61ע1עע ות%6 2121 1 1856121600 16%6 % 1 161נת %. 61אם 27 מבנה הג*ליון יהיה כך: ב טּ פ 0 8 4 [16ט6) "טת2%6+?/ | ם ..... 17טת%6עע"(6586[)2116%8861)א1ק/(1 1+ פ [ש, 61ת8א7116 מסקס) 1 1 רוחב עמודה ‏ 4 = 2%0 [מעטס20) (01096+ %. 1טם6:6 116%8₪61ק 0:‏ 61ט1עע טת ₪6‏ 2101 1 161נק 6%. 1סאם 9 סה90 0158 02 = הפעלת סש תיצור 2116 ם8060ם בשם 1.286 \ום6:6 שיכלול את כל הטקסט הכתוב בתחום 1טת6א. כתוצאה מכך, כאשר ממסך 205 נקיש 1 ואחר-כך עססתם - יעלה הלוטוס. אס קובצ זה קיים, *וחלף תוכנו בתמליל שב-1טת86. אין הגבלה לקובצי 9% בלבד. אפשר ליצור בדרך זו כל קוב 45011 שהוא. השימוש בגיליוןו לוטוס לכתיבת התמליל מאפשר הפעלת מבחר גדול של פקודות לעריכה. ראינו עד כה כי 0ע862א-8ע6ת1 זו מערכת כללים לדו-שיח עם המחשב הדומה מאוד לכללי היסוד של כל שפת דיבור אנושית רגילה. דו-שיח עם המחשב מתנהל במבנה של אותיות ומלים המתחברות יחד למשפטים ולפיסקאות. פיסקאות מקרו אלו, כשהן שזורות זו בזו ובמרכיבי הג*ליון האחרים, גורמות למחשב ליצור את התפוקות המבוקשות. במערכת כללים זאת למדנו: מודולריות בשם הקוב>, משפט שירות, משפט מפעיל פשוט, משפט מפעיל מורכב, פיסקה. 28 3 מושגים מתקדמים במודולריות - שילוב ווו/ עם 86ז8ק וס המודולריות ב-%8620-%28ת1 באה לידי ביטוי מוגבר כשמשלבים במשפטי המקרו פונקציות והודעות. כך מקבלים תפוקת יישום מגוונת ובו-זמנית נוחות הפעלה מירבית למפעיל. הדוגמא הנדושה ביותר, מן הסתם, בהוראת מחשבים היא דוגמת הקמה של ספר טלפונים. גם אנו נציג את מהלך העבודה להקמת ספר טלפונים. הפיתוח בהמשך פרק זה *תמקד במרכיבים להבנת עקרונות. לפיכך לא יהיה זה "היישום הטוב ביותר האפשרי". דברים רבים **שארו "פתוחים". חלקם יסגרו בפרקים הבאים וייתרם *פתור התלמיד היצירתי בעצמו. בפרקים הבאים יוצגו דוגמאות רבות ומגוונות. 211 שלכ א: תפוקות ומכנה הקכצים שם היישום: ספר טלפונים הגדרת תפוקות 1. קליטת שמות ומספרי טלפון בשלושה איזורים: א. ישראל. ב. (יו-יורק. ג. וושינגטון. 2. שליפת כל השמות מאיזור נתון. הגדרת מבנה התפעול הנתונים :ישמרו בקובצ* 1 והפעלת היישום| תתבצע באמצעות 0ע86/-%28ת1 המוגדר בקובף 1אש. למבנה זה *תרונות רבים על פני שמירת (תונים בקובצי ‏ 1אש. חלק מהיתרונות הללו *תגלו בהמשך וחלק אציין עכשיו. 1. חיסכון במקום בדיסק. 2. מהירות שליפה גבוהה. 3. התפעול מתבצע באמצעות קובצי 1אש קטנים במהירות גבוהה. 4. גמישות רבה במיקום מאגר הנתונים בשלמותו, או פסזורו בחלקים במרחבי הדיסק. 5. גישה קלה ונוחה לנתונים מקובצי 1אש שונים. |29 2 שלב ב: מיפוי עכור סזספוא-8ו6ו₪ (הקמת סביבת היישום) ;טתס):6:;6:205;6 = תסהק קובצי הפעלה של לוטוס בלבד (בלי קובצי 1>ש) 1222 6% קובצי 205 בלבד ''י'ווווייוייייייייייייייי.....007111111..5 05 רק קובצי 286 להפעלה מ-205 'ייייייייייייי..........5... 0 ות ברירת המחדל של לוטוס > 50123.0%1ט16064עע50 תוכן העניינים של הסביבה --> 1א;ש.טם6א 9620106 7 2 5 = 7 ישראל 41 ה 1761 52אעס סביבת יישום לוטוס ניו-יורק 2-1 2 סדגנא 2 וושינגטון וכוע כו : ספר טלפונים 628-8600ח1 לספר הטלפונים : 1. תת . ל בעת מיפוי הזיכרון עבור 668-6806020 מחליטים על מיקום סביבת העבודה ומרכיביה. כאן ממוקם ספר הטלפונים במערך סדנא מספר 2. בתוך המחיצה 2 ₪5 נפתחות שתי מחיצות (500-61260%502168): 6 במחיצה *היה קובצ 1אש.טמסא המותאם לסביבה זו. קובצ זה קשור אל צומת המערכת מצד אחד ומקשר בין מרכיבי סדנא מספר 2 מצד שנל. 2פאעסטא: במחיצה זו יהיו שני מרכיבים: 1 קוב* %1ש.ת38 שהוא גיליון 1628-8020 בלוטוס. 2. מחיצה בשם 161 ובתוכה שלושה קובצי 48011: 1 -- נתונים בישראל. 41 -- נתונים בנלו-יורק. 1 -|-- נתונים בוושינגטון. 20 באוטומציה של הפעלת המערכת. לשמות קובצי הנתונים הללו חשיבות רבה הצורה כל שם קוב% המחזיק נתונים מורכב משם (161) וממספר. כלומר, הכללית של שם קובא הנתונים תהיה: 1דך [ת = כל מספר]. לאמיתו של דבר, אני נוהג להשתמש בצורה הכללית הבאה: תפת.ת אאא כאשר, אותיות באנגלית = אאא [כל מספר מ-1 ועד 9999] 9 <>ת הסיומת הינה זיהוי אישי של מי שאליו צריך לפנות לבירורים. שילוב מספרים בשס הקובף *וצר מערך סימול לאוטומציה של שמירת ושליפת נתונים. | בתרגיל הנוכחי למשל, הערך 1 תמיד *היה ספר הטלפונים בישראל, 2 - בניו-יורק, ‏ 3 - בוושינגטון. השימוש בסמלים הללו והקשר שהם מאפשרים בין המשתמש והנתונים *ודגם בהמשך הדברים. מיפוי הסביבה זו מטלה שמתבצעת תוך דקות ספורות. ואחרי שהדבר נעשה אין יותר צורך להיכנס לתוכה. הסביבה מוקמת עד רמת המחיצות בלבד. את קוב תוכן העניינים מעתיקים ממקום אחר ומכניסים ‏ בו את השנויים הדרושים. את קובף ה-0ע%86-8ע52ת1 בלוטוס מסימים כפי שיוסבר להלן. קובצי הנתוניס לצורך תרגיל זה הוכנו *דנית, אך במהלך הפרקים הבאים נלמד כיצד לגרום לפתיחה (או ביטול) אוטומטי של קבצים, מבלי שהמפעיל יהיה בכלל מודע לכך. ועתה נעלה למסך ג:ליון לוטוס חדש ונבצע: 17ת58/ 7 2ת5ס/ן 2 5/ת8ת :2 ובסיום יהיה השטח מוכן להקמת ה-10%28-88620. 11 3 שלב ג: מיכוי עכור סזספו-8זוחו איזור הפעילות הגלויה בפרק ‏ 1 התייחסתי לארבעה איזורי פעילות בגיליון בהם מארגנים את ה-0ע0806/-%28ת1. הראשון שבהם הוא איזור הפעילות הגלויה. גודלו של אזור זה איננו מותנה בגודל המסך מכיוון שאפשר "לגלול" את המסך על פני שורות רבות ואפשר ל"הקפיצו" למקומות שונים בג:ליון. רצוי למקם את האזור הזה בפינה השמאלית העליונה של הגיליון. כאן הוא המסך שדרכו מתבצעת האינטראקציה בין האדם והמחשב ולכן חשיבותו המרובה. איזור האינטראקציה הזאת (הפעילות הגלויה) מכיל מספר "משטחים": 1. מקרא. 2. הודעות מהמחשב. 83 כותרות. 4. קלט/פלט. אין אלה "כללי ברזל" שאין לעבור עליהם אבל הם קיימים במרבית, אם לא בכל, יישומי לוטוס מתקדמים. והרי דוגמה: כ פ 0 8ּ 4 (6) 1990 רן אברהמי 16 גא מחק הכל = ם 41% לתוכן ‏ > ₪ 41% מדריך טלפונים מס6שת1ת035 = ש 41% אעסצ שסא = םח 416 ישראל ‏ > 1 41% 6160006 . 2 = ₪ ט%ת. תס [-0ס פא 6 = ג ו הסבר: בשורה הראשונה: לוגו. בשורה מספר 2: חלק ממקרא. שורה מספר 8: כותרת ראשית. שורה 4: ריקה (לכאורה). שורה 5: שאר חלקי המקרא. שורה 6: ריקה. שורות 7..10: כותרות וכותרות משנה. שורה 11: ריקה. שורה 12: ריקה, סמן בעמודה 4. 9 בנוסף לכל אלה הוגדרו שני תחומים נוספים כדלקמן, .תי 1177אאסתע/ משמעות כל אלה תתברר תוך כדי בחינת המקרו. איזור הפעילות הסמויה איזור זה הוא "משטח" עבודה המשתרע על פני עמודה אחת או יותר שבו מתבצעת ה"עבודה" בעת הפעלת היישום. אחרי שהיישום נכתב סופית רצוי להקפיא את המסך על איזור הפעילות הגלויה (60650+1ם101 [ע6168 61020ת28) בעת ביצוע משפטי המקרו. הקפאה זו מונעת התרוצצות על פני המסך ומגבירה את מהירות הביצוע. בדוגמה הנוכחית נקבעה עמודה א לאסור הפעילות הסמויה ובה הוגדרו שני תחומים, "הס 7 פס איזור המקרו עמודות 6 ו-8 נבחרו למיקום משפטי המקרו: עמודה 6 לשמות ועמודה 8 לפיסקאות. מפת 0ע8-7860ע%2ת1 כך נראית מפה של גיליוו 0ע806א-628ת1 זה: <> 2 7ות%0פ?/ ם 0 סוגר | 1פפל מקרא כ : כותרת ראשית ל : שורת רוותח ן ו[ | | | ב | | | ו איזור איזור פעילות מקרו סמויה איזור פעילות גלויה ו | | | | | | | | | | | | | | | ו 4 שלב ד: כתיכת מקרו נוהלי שליפה ושמירה נאמר שסיים קוב+ נתונים מעורב - טקסט ומספרים - במבנה 5011. ועוד נאמר שהקובצ ערוך במבנה של 88586 2868 כלומר, שדות ורשומות כאשר כל שדה מכיל את הנתונים של עמודה אחת תחת כותרות המשנה באיזור הפעילות הגלויה. התפוקה הנדרשת: 1 לייבא את הנתונים ולהציב כל שדה בעמודתו כאשר טקסט מופיע כ-18061 ומספר כ-106אץ. סדר הפעולות: א. לייבא את הקוב אל תא 1++. ב לבצע 6 280%8 כאשר 80008%6817/ 2. לשמור נתונים איזוריים במבנה 45011. 3 להקים תשתית משפטי שירות. מתי מקימים משפט שירות? כל אימת שמשפט מקרו מופיע יותר מפעם אחת בפיסקה אחת או *ותר, רצוי להופכו למשפט שירות. הניסיון מראה, שאם משתמשים ב"מודול" אחד פעמיים, יש סיכוי רב שנשתמש בו לפחות פעם אחת נוספת. יש רמות שונות של משפטי שירות, החל ממשפט שירות שישתלב כמעט בכל משפט מקרו אחר וכמעט בכל יישום לוטוס, וכלה במשפט שלירות *יחודי לפיסקה אחת ביישום אחד. הבה נקים שני משפטי שירות אוניברסלים. משפטים אלה לא *וסברו, אך משמעותם תתבהר תוך כדי שילובם במשפטים ברמה גבוהה יותר. [ת2ו260)(ט) (6מ2[)6 8+[06ם )6‏ 31 (ם26002)(ט)(6ת2[)6 6[)8ם6+. 32 תרגיל: מה הבעיה ששני המקרו הללו פותרים ומה ההבדל ביניהם? כיצד כל אחד מהם פותר את הבעיה? האם יש פתרון י*ותר אלגנטי? נכתוב עתה משפט* שירות נוספים בדרגות שונות של אוניברסליות: [ 6 )תל ש/ 286917 [8060) (סמסת) 60ש/ 7 [11אא %ת18ס) [28%81 %ת18ס) ס [ש, 1688₪61צק ת6קס) 1 1 [61096+ [תע0ס6+ (הפ טספ ) 17 (8060) ₪90/ [6065075ת1ש) (61069תמס + 31(7). [ט) (55) 62825617חע/ 2170817 1/ ( שג 6ע) (ה10סתפק) 18050 )טש / 98817 800 ) [סמסת) = (31) 5 / ( הגע )0 תס 6817 מ (61ם8א9116) (650) 7/9 (31), ה 1 סממ 18 " (תץטס6ם)101. "₪18טא01"8116 2101 סא 2 .5 תפות 0 1 אק > )א נש נגדיר מספר תחומים אשר כולם *היו באיזור המקרו: 1 = טמור 2 = שלוף ----6 1אא 1 = ישראל 2 5 (נה- יורק 3 = וושינגטון -----6 1טא1נק * * %. בישראל * * . 1 *** בניו-יורק * א %* 2 * * * בוושינגטון * | * 4 3 לא אירע כלום כי לא הקשת 1 אן 2 %שפו נותר לנו רק להגדיר 6ם11 6 בתא 1צ+1, כך שיתאים למבנה השדות והגדרתם (טקסט או מספר) בהתאמה להגדרות בכותרות המשנה: =- מסבר םל --א'זור ---- עם ברםי ---------- שש מטנחה ל ללללללל ללכל כגללללככדכ ללכל לכ כב רלכרכ ול בככל לכלכ ללכ ו תרגיל: הגדר במלים את מטרתו של כל אחד ממשפטי השירות שלמעלה. 4. משפטים מפעילים התיאור שניתן עד כאן הוא למעשה תולדה של תהליך קיברנטי של תנודות עולות ויורדות, תוך כדי התקדמות לסיום הפיתוח. בראשית היה המשפט המפעיל וממנו "צמחו" במהלך הכתיבה משפס: השירות. היום, כשמשפט: השירות נמצאים וכאשר יש מספר רב של משפטים מפעילים במבנה מודולרי, איו צורך להמציא את "קוביות הלגו". עלינו רק ללמוד להכיר אותן ולהרכיב מהן כל שברצוננו לעשות. פעולות על נתונים בישראל ז(1אא, " ... ( 1 או 2 ) ... שמור או שלוף ‏ " 1) "7 (1, 11אא %) 1 (3[)009 .141 /1"[)1"=נאא ",1161 160) פ) (5 01" [0001א116) (0)650 3 / (2 .1 ) "ל" נא 12 (19ף) " ( הש5א, 11אא 5% פעולות על נתונים בניו-יורק -[ן1אא," ... ( 1 אר2 ) ... שמור או שלוף ‏ " 561ל6618ש)-582[7א,11אא 16%+ ת (3()0010 1()1 1"()1"-1אא 19)-("1,"2שטא116ת 166) (ס1טף)(3 8261(7)1א650()7116)א2(/21%6 1="2"()1אא 18) [588(7+6016א, 11אא 165) פעולות על נתונים בוושינגטון -(1אא," ... ( 1 או 2 ) ... שמור או שלוף |" 11,8563(7)20018081אא< 166) ש (010ף)(8 1()1 1="1"()1אא 19)-("1,"3משא116ת 106) (19טף)(3 8₪61(7)1א636[)7116%)א2[/216 2"()1"-1אא 17+ (6016) 7 [528, 2%11 4165 במפת ה-0ע%8806-8ע%ת1 :יראה אי*זור המקרו כך: (6016) 7ום2%0/. ם ( פטס 26 )ם6/ 286817 (060ש) (6מסת)66ש/ 7 [11אא %ת08581()018 %ת018+ ל -(1אא,"...(1 או 2) ... טמור או שלוף " 26%18061)-11,8581(7אא 165+ 1 (16ט6) [1()1/8 1="1"()1אא 16)-["1,"1שטא16גת 166) (8061(7)1-3()00:0א116ת)(2[/910%)050 2"()1"-1אא 1+ (16ט6) 7 (58%א, 11א< 166+ -[1אא,"...(1 או 2) ... שמור או שלוף " 11,8582[7)26618061אא 16%6) ת (19טף)(1()1/8 1="1"()1אא 12)-("1,"2מטא116ת 16%6) (1/3()6010)-(8061א116ת)(650)א2(/91%5 2"()1"-1אא 19+ (6016) 7 [158%, 211 16%6) -[(1אא,"...(1 או 2) ... שמור אוה שלוף " 86618061)-[11,8583אא 166+ א (8()6019 1()1 1"()1"-1אא 17)-("1,"3משא116ת 168) (3()0016 8061(7)1א686()2116)א2(/910 2"()1"-1אא 1% (568(7)061%א, 811 166) [ש, 2116888061 תסקס) 1 1 +01096( [תע2060) (מט60) 17 (060ש )₪66/ (+609901ת₪1] [1029ס6תפ+ ד[31). (ט) [00825617)58תע/ /010825617008%817₪ (ת 6 ) ( ה610ת8כ) (מ60050ת1ש)תש/ 285817 (2050) (6מסת) 7 [26+31 / ( 6 )80סטסתמס 72086817 (8261א2116) (650)א22/ 31(7). 0086817ת2/ 1-8 [תתו60ע) [(ט) [8ת2[)6 6[)6מ68+ 31 "(ת2ט761+266, "₪18טא161"82116 [216קם%5פסט2 95תהת:6"+ 8₪61א16צת 2 בי 1 = שמור 2 = שלוף -------6 1אא 1 = ישראל 2 = ניו-יורק | 3 = וושינגטון -----6> 1טא10נע * א * בישראל * א * 1 * 8% בניו-יורק * * * 2 * * */ בוושינגטון * א %* 3 לא אירע כלום כי לה הקשת 1 או 2 השפ 2 תרגילים: 1 הסבר במלים את מטרתו של כל אחד מהמשפטים המפעילים ואת סדר הפעולות שלו. 2. האם נראית סיבה לסידור המשפטים מלמעלה למטה? אם כן - מה היא? 3 שלוף משפטי שירות נוספים מהמשפטים המפעילים וכתוב אותם. 4. בפרק הבא נלמד כיצד לכתוב את כל שלושת המשפטים המרפעילים שלמעלה במשפט מפעיל אחד. נסה לבצע זאת בעצמך כבר עכשיו. 5 מושגים ראשונים בארגומנטים הולכת הסמן ממקום למקום על פנ* הגיליון היא תפוקה מבוקשת בפיסקאות מקרו רבות ומסיבות שונות. הבה נבחן את המצב הבא. נתון תחום בשם %1ת1עע המשתרע על פני שטח כל שהוא המכיל נתונים ונוסחאות. הפינה השמאלית העליונה של שטח זה היא 812. נאמר עוד, שיש במקום כל שהוא בגיליון שורה של נוסחאות בשם 61ת101 כדלקמן, הּ 0 סּ טּ (61.₪1)₪ט 09‏ 0 0 0 התפוקה המבוקשת היא להעתיק את 61ת01 לעמודה 8, שורה אחת אחר* השורה האחרונה של %1ת21ע, כאשר השורה האחרונה של %1ת1עק אינה קבועה מראש, אלא משתנה מפעם לפעם. פ 0 8 4 1 3 ָ 5 6 / 9 2 10 11 12 1תצפק 133 - 15 % 16 7 פיסקת ה-%8620-8ע%6ת1 לביצוע המטלה הזאת היא: [617)4621(7)0019ת2[/601 1+ 8/ (ת26002)"[תע12,0(8")2600+(%1ת1ע0698)2ע6)שת8"865%01"+,4421 16%6) 2 1 1 פיסקה זו מאפשרת להוסיף שורה חדשה לבסיס הנתונים, להגדיר מחדש את התחום שכולל את הבסיס הזה ולהוסיף אחר כך שורה אחת, או מספר שורות. בפיסקה זו מודגמים מספר עקרונות מתקדמים בכתיבת 0ע8-886ע%2ת1. פירוק הנוסחה: "[תעט60ע)"8 (12,0+(61ת21ק) 62095 ) 8ת8"8.65621"+ 1. מספר השורות של %1ת1עק בדוגמה זו 4 <-- (%1ת0₪5)221ע6 2. מספר השורה שאחרי השורה האחרונה של 61ת1עע | 16 <-- 12+(%1ת620₪5)221 3. כתובת התא המבוקש 6 <-- (12,0+(%61ת1ע22) 008ע62)₪ת8"865621"+ 8. 4601 = [תעט60ע)816 <-- "[םתעט60ע)"12,0(8+(61ת1ע5)22ש0ע6)שת1ע0 8"865"+ את הנוסחה המורכבת הזאת כותבים כארגומנט במקרו [ ... ,8621 166). ההפעלה מפיקה משפט שירות בכתובת 8621 המופעל על ידי המשפט הראשי להעתקת 61ת11. כאן רואים בבירור כיצד שילוב של פונקציות כארגומנטים במקרו מאפשר אוטומציה בהפעלת הגיליון. מה שמתרחש למעשה, הוא כתיבת מקרו על יד: המקרו, תוך' כדי ביצוע, אחד ממקורות כוחו של הלוטוס כשפה לדו-שיח עם המחשב הוא המבחר הרב של אפשרויות של כתיבת התניות מהסוג "אם .. אז .לע אחרת 4" בהמשך נלמד להשתמש בהתניות הללו. בדוגמא זו רואים סוג מיוחד של התניה: כתיבת המקרו תוך כדי הפעלתו היא נדבך ראשון בהקמת *ישום "לומד". :ישוס שכותב את עצמו כפונקציה של תנאים משתנים, תוך כדי הפעלתו. לכן, חשיבותה של דוגמא זו חורגת הרבה מעבר למקרה הספציפי של העתקת שורה לכתובת כל שהיא. המקרו החכם - שכותב את עצמו יופיע מפעם לפעם בספר זה, אולם התיאוריה והטכניקות יתוארו במלואן במקום אחר, לאחר שנלמד דברים נוספים. 8 פרק 3 ניהול תוך גיליוני - תפריט פקודות 1 שלבים בהקמת יישום בפרק ‏ 1 הקמנו את התשתית הארגונית לניהול הדיסק ויישומי הלוטוס כהכנה ל-16%8-178620. במיוחד התמקדנו בתוכן העניינים המקשר אותנו עם הדיסק. הקו המנחה הוא אוטומציה מירבית מרגע פתיחת המחשב ועד לסגירתו. בפרק 2 הכרנו מעט את ה-סע%186-8ע%ת1 ולמדנו לארגן את הגיליון ולכתוב במבנה מודולרי אינטגרטיבי. בפרק הנוכחי נסגור את מעגל האוטומציה ונלמד כיצד לנהל את הפעילות התוך גיליונית באמצעות תפריט פקודות. סדר הפעולות יהיה כדלקמן: 1. מפעיל את המחשב. 2. --= רואה על המסך את תוכן העניינים ואת ה-%6קמספס <:6 3 מקיש 1 ו-המדאם. 4. --> רואה את מסך צומת המערכת ליישומי לוטוס. 5 מציב את הסמן על "סדנא ‏ 3 - ניהול היישום ע"י תפריט פקודות". 6. מקיש תמדאם. 7 -= בתשובה מקבל את תוכן העניינים של סדנא 3. 8 מציב את הסמן על "ספר טלפונים" והקש תמזאם. 9 --> מקבל מסך 0ע8602א-8ע%ת1 לספר טלפונים, עם תפריט פקודות בראש המסך. 0. מפעיל את היישום באמצעות תפריט הפקודות. 1 מסיים ועובר לאפשרות "צא". 2. -= בתשובה מקבל את תוכן העניינים של סדנא 3. 3. מציב את הסמן על "צומת המערכת" ומקיש תמדאם. 4. --= בתשובה מקבל שוב את צומת המערכת. בפרק זה נלמד כיצד להקים את היישום בשלבים. .9 2. שלב א: תפוקות ומבנה הקבצים שם היישום: ספר טלפונים הגדרת תפוקות 1. קליטת שמות ומספרי טלפון בשלושה איזורים. 1. ישראל 2.| ניו-יורק 3 ווש*נגטון 2. שליפת כל השמות מאזור נתון. 3 פקודות למחשב. 1 שלוף - 2 חפשא = 3. מיין - 4. שורה - 5. הדפס - 6. מסך - 7 א = 8 שמור - 4. נוהל תפעול שלוף ספר הטלפונים של אזור מסוים מהדיסק אל המסך. חפש מספר טלפון לפי שם משפחה ושם פרטי. מיין את הנתונים לפי סדר הא"ב. פתח שורה נוספת לקליטת שם נוסף. הדפס את הנתונים שנשלפו. מסך חדש ללא כל פעולה נוספת. יציאה' לתוכן העניינים ללא כל פעולה נוספת. שמירת ספר הטלפונים של איזור מהמסך אל הדיסק. מעגל סגור - [ ... 6811ות₪0) <--> בע/ הגדרת מבנה היישום - הנתונים יישמרו במבנה 45011. - ההפעלה תתבצע ע"י ס0עס8/-8ע%ת1 בקוב% 1>ש. כל הפעילות התוך ג*ליונית תתבצע באמצעות תפריט פקודות. 3 שלב ב: מיפוי עבור סזס₪618-3 (הקמת סביבת היישום) תרגיל: | בחן את ה-08020/-%28ת1 שבהמשך פרק זה ושחזר ממנו את המיפוי ל-8620/-6%58 לפי הדוגמא שבפרק 2. 20 4. שלב ג: 1ת 2טחסון 3טתסו תסו אל זוה תפריט: פקודות 87ת2%6?/ ם איזור מקרו מפת סזספּו-גזוהח! רטימת פקודות --% הסברים לפקודות --> לתפריט...₪56 : כותרת ראשית 7 1 | כותרות משנה שורת רוות איזור פעילות סמויה איזור פעילות גלויה מפת ה-%8020-%28ת1 בפרק זה זהה לזו שבפרק 2, פרט לכך שהלוגו מוצג בשורת הדו-שיח הראשונה (מלמעלה), ובמקום. מקרא ל"אלטים" (816'8) יש תפריט פקודות בשתי שורות הדו-שיח הנותרות. כמו כן, במפה זו המקרו. נוסף אזור תפריטי פקודות הממוקם מימין לאטור 251 5. שלב ד: כתיבת המקרו נראה תחילה את חיבור המקרו במלואו, כפי שהוא כתוב באסור המקרו בגיליון: [1טת716 6811טת₪0) [528 616866ת61682()1 10%%סת8ק)(6011מ108) (205%5825+ (א תסתהפס)"(תס61ת8ק)108%581ע/ [ מ60₪50ת1ש) (1טת16? 06811ת26) (60%95054ת1א) (61029תפק) [2098%826+ (% ת6תהעפ)"(תס61ת8ק)108%81ע/ (06/60)001%שש/ (816860ת1) 8817קסתע/ 8060[286817) (6מסת)₪66/ %11(7א< >ת018) (28%681 %ת18ס)(61+ (תעטס6ע) (ת160950ש) (םס61ת8ק)ת6ש/ 3[7 ע+.(650+ [16ט0) "גותס 9 / 861(7א116ת) (216%)656/ (6) 17 (060ש)06ש/ 7 (אשפא, 11אא< 61()16%+[ן91+ (81 בסתפעס) (ת60₪50ת1>)-(2 1+ (8 (סת8עס)460טסתם0ס22085817 8261(7א650()7116)א1(/29 61()2+[91+ [81 הס6תםעס) [ ת50ש60ת1ש) (תס61ת8ק) [56601) 7 [855, 11א< 61[)166+(91+ [81 ת6תהפס) ( ת80050ת85208%817208%817876)91/ [61+[91+ [41 ה6תפעס) (תס1סתפק) 8>817סטם/ 7 (6) 8+817ס6ת2/ [61+(91+ [81 הסתעס) ‏ מספשס6ת1ש) (םס1סתק) (1ק266) 7 (565, 11אא< 61[)166+)(91+ 6517008%8178/26)31(7ע5617)05()0(.)31(7/601282פקס0ת2/ (תע0ט26%)ת6ש/ 31[7) 008%817ת2/ 060285817 ) (6מסת) (ש, 61ת2116%8 תסקס) )61096( [תע060ת) (תפט26%)(ט)(86ח2()6 86()6ת6) (6 ת6תהעס) (ת610ת8ק)0128%81/ (מספשס6ת1א) [61000ת8ק) (208%680%) חפ 650ת) (/609501ם1ש) [61012תפק) (תפט6%6ס)(11א1,8% מ עסעססמס+ [86601) (ם60₪50ת1ש) [(תס61תפק )6ש/ 286817 (8060) (6פסם) ₪60/ [61+ (81 הסתהעס) (תעטס1()"6 ק2()566 600ס)(1 660ס)[2 660ס) :0 3 אםסט3 9תפת 1 1 ניו-יורק 3 = וושינגטון > 1 "(תעג66ס)"%18א182אא001218711618ט618012185ט1מס+ (1אא8"ש5א"+)66 בישראל בניו-יורק בוושינגטון (6) 1990 רן אברהמי נסה לכתוב בעצמך את המקרו הזה 212 01 1 1אא 1 111ע אפפ 1 2 3 ב 5פון חיבור זה מתחיל בשורה הראשונה מלמעלה באיזור המקרו ונמשך ברצף וללא שורות רווח. שמות הפיסקאות נמצאים בעמודה אחת והפיסקאות עצמן נמצאות בעמודה הימנית הסמוכה. מומלף למלא כל תא כמעט בכל 240 התווים שאפשר לכתוב בו. פיסקאות המקרו מתחלקות למספר סוגים עיקריים לפי סדר כתיבתם: 1. הפעלה מיוחדת. 2. משפט מפעיל. 3 משפט שירות. 1. משפט רגיל. 2. שם קובף. 3 הודעה. 1 הכפעלה מיוחדת בקבוצה זו נכללות פיסקאות מקרו שנועדו לתת למשתמש אופציה להפעלה ידנית בנוסף להפעלה אוטומטית באמצעות תפריט הפקודות. ביניהן נמצאות הפיסקאות הבאות: 0 הפעלה אוטומטית של הקוב מיד עם עליתו למסך. 8 שיחרור הקוב+ במטרה לאפשר הכנסת שינויים בכל מקום בגיליון. ס סגירת הקוב למצב שבו הוא מוכן להפעלה לפני 6 (בדרך כלל מופעל לפני שמבצעים 8?/). ₪ם שליפת תוכן הענייניס של סביבת היישום הנוכחי. ברוב המקרים *קרא המקרו 0 בשם נוסף - 2 - כדי להקל על הפעלתו הידנית. ביישום הנוכחי יש מקרו נפרד לשם כך - % [1טח16? 06811ח6ם) (588 616886ת61680[)1 10+8סתהק) (8₪6011ע])(6ע20508+ 0 (8 תסת8עס)"(מ610ת8ק)108%81ע/ (ח60950ת1ש) (1טח16? 00811ת6ם) (+50אס6ת1ש) (61051ת8ק) (268%82%) א (א תסת8עס)"(ת610ת8ק]0108%81/ [66+0010ש/6קפש/ [010806ת1+ 8 6086817ת2/ 286817 (2060) (6שסת)66/ 11(7אא %ת18ס) (08681. %ת18ס)(61+ ס (תעטס26) (ת60₪50ת1ש) (תס61תפכ)תסא/3[7 ש).[690+ (016ף) "טת2%6?/ ם 2 משפטים מכפעילים משפטים (פיסקאות) מפעילים מבצעים את המטלות שהוגדרו בתפריט הפקודות. משפט מפעיל תמיד מתחיל ב- 6ש8א 6שַתת ומסתיים ב-[140810 1]+ או ב-[תסת8עס). בקובצ הנוכחי מבצעות הפיסקאות האלו את הפעולות הבאות: 1. שלוף - ישלפו הנתונים מאיזור כל שהוא. 2. שמור - שמירת הנתונים על הדיסק במבנה 45011. 3 חפש - חפש ומצא רשומה לפי שם משפחה ושם פרטי. 4. מיין ‏ - מיון הנתונים שנשלפו לפי סדר הא"ב. 5. שורה -- פתיחת שורה חדשה לקליטת רשומה נוספת. 6. הדפס - הדפסת הנתונים. שתי פיסקאות המוגדרות "מיוחדות" משמשות גם בהפעלה השוטפת באמצעות תפריט הפקודות: ₪ם= צא - יציאה לתוכן העניינים ללא כל פעולה נוספת. מפ מסך - קבלת מסך חדש ללא כל פעולה נוספת. המקר הבאים, המהווים את עיקר היישום, עונים על הגדרות התפוקות שלמעלה. 7 (116%8₪61ת) [216%)656/ [6) 17צצ (060ש)06/ 5%(7א, 11אא 91()61()16%) 1 (81 מסתהעס) [מ50ש60ת1ש)2[7 1+ [8 בסתעס +0שטסתמס 17 7 (861א116ע) [656)א22/ [1 | 91()61(12+ 2 (41 בסתפעט) [מ60₪50ת1ש) (מ610ת8כ) (86621) 7 [525א, 11אא 91[)61[)166+ 3 (41 הסת8עס) [(מ60050ת8)91 45228%817228%81787/ (61+[91+ ₪ (41 תסתפעס) (םס61ת8ק) 228%6817/ 628%6817)8(7תע/ [61+[91+ 5 [41 תסתפעם) (מספשס6ת1ש) (מס61ת8ק) [86601) 7 (5₪5א, 11אא 166) (61+(91+ 6 3 משפטי שירות משפט שירות הוא משפט מקרו המשמש "מאמר מוסגר" למספר משפטים מפעילים. פרט למשפטי שירות מסוג שַָ5 יסתיים כל משפט שירות במלה [תעט26%6+. בנוסף להבדלים בין סוגי משפטי השירות לפי המטלות שהם מבצעים נבדלים המשפטים הללו לפי רמת האוניברסליות שלהם. 1. מקרו שירות לקובצ הנוכחי משפט מקרו המיועד לתת שירות למקרו בקובץ זה בלבד - רמת האוניברסליות נמוכה ביותר. משפט 2 1 ביצוע 6פע8ק 6868. משפט 1 2 הכנה לשמירת נתונים ב-45011. 31[7+)31[7/621282651700808178/26).[ט)(67825617)05תע2/ 2 1 [ תל 6 ) ת6ש/ 208%817/ 7 [31) 7 608%81ת2/ 28%817 060 ) [6מסג+ (ש, 2116%8₪61 מת6קס) 1 2 [61056+ [מ20%02) 2% מקרו שירות אוניברסליים ככל שגדל מספר המשפטים "המקבלים שירות" ממשפט מקרו מסולם, עולה רמת האוניברסליות של אותו משפט. למשל, המשפט [31+ הוא ברמת אוניברסליות גבוהה ביותר. מכיון שהוא מופיע כ"מאמר מוסגר" במספר רב מאוד של משפטים אחרים. מהמשפטים הללו רצוי להקים ספריית מקרו. ספרייה זו יכולה להיות בקוב%* ₪%1 שממנו יישלפו המשפטים על *ד* 966/ אל %86%0-1%528 שנמצא בעריכה. בשלבים מתקדמים *ותר, שמים את המקרו האלה בקובף ס1ם וטועניס אותו אוטומטית בכל פעם (הסברים נוספים בהמשך). 26 ) (ט) [6מ6) [2 8( 31 (ש חפט - [ה10סתמק) 128681 / (חספאוסנת1ש) [000 תק מס 05 [ 1 3 1 בת ::נרות ::התהמה |-----6 ₪ 1. 1סאם ( תגוס סע) (₪186005099) (61009ת8) 1 (תע%11()2600א,1 ס פספעפתס) 91 [86601) [ ת60₪50ת1ש+ (הס1סת8פ) הפש/ 08%817 (8060) (6מסת+ %6 1 ספ [41 בסתהעס) [תפגוס6פ+(1 2()660 1[)0660 2()0660 660ס) 6601 שמות קבצים שם הקוב הוא הקשר בין הגיליון לבין הדיסק. הוא הכתובת בה מוחסנים נתונים והוראות וממנה הם נשלפים. האינטגרציה במערכות 658-8620 ו- 0ע10%528-0806 מבוססת במידה רבה על שמות קבצים במבנה ובאופן המאפשרים אוטומציה מירבית של ניהול הקבצים. שם הקובף ב-628-88020ת1 הוא סוג מיוחד של משפט שירות. משפט זה הוא פונקציה מורכבת המסתיימת ב-[תפטט26). באמצעותה ניתן להפיק ממשפט מפעיל קצר אחד מספר תפוקות אשר בדרך כלל נדרשים עבורן משפטי מקרו רבים ומורכבים. : 61ט1עע 33 05תפת 1נתם 1 1מנפסטפ "[תעוס6תע) "618א18אא618012185000121811618ט1עם+ 1 ץע 255 4. הודעות הפעלת קובצ יוצרת מצב של דו-שיח (אינטראקציה אקטיבית) בין האדס לבין המחשב. על :די הקרנת הודעות לפי הצורך במקום בולט שיועד לכך מראש מקבל המפעיל מידע מהמחשב בתגובה על פעולותיו. | הודעות אלו *כולות לשמש למטרות שונות,| החל מהקרנת לוגו וכלה בהודעה המשולבת ביישום לומדה. (1אא56"8"+)66 אשפא בישראל 1 בניו-יורק 2 בוושינגטון 3 (6) 1990 רן אברהמ: הו נסה לכתוב בעצמך את המקרו הזה 5 שלב הפעילות הבא שלנו יהיה כתיבת תפריטי פקודות. תרגיל: | בחן את שלוש פיסקאות המקרו 841 % 0. מהי התפוקה של כל אחת מהן, מה המשותף לכולן ומה שונה בכל אחת מהן. החשיבה במהלך חיפוש התשובות לתרגיל זה תתרום להבנת הנושאים אשר נדון בהם בהמשך. 4 שילוכ ( ... |ופסטחסח) עם ז/ 8681 .1 במפת ה-0ע8-0862ע62ת1 ישנו איזור לפעילות גלויה. אזור זה מחולק לשנ? משטחים עיקריים: משטח לכותרות והודעות ומשטח לקליטת. נתונים, עדכונים ועיבודים גלויים. בין שני המשטחים הללו יש הפרדה כפולה. 1. שורת רווח לשורת הרווח המפרידה בין משטח הכותרות לבין משטח הקלט שתי מטרות: וזואלית ואופרטיבית. כדי להקל על המשתמש בעת גלגול המסך כאשר משטח הכותרות "מוקפא" מעליו, יש צורך בשורת רווח. ‏ אם לא יעשה כן, "מתגלגלות" שורות הנתונים בצמוד לשורת הכותרת התחתונה והמשתמש מאבד מנוחות קריאת החומר. שורה זו משמשת גם לכתיבת שמות שדות להפעלת משטח הקלט במערך פונקציות או פקודות תפריט של בסיס הנתונים. אחרי כתיבת שמות השדות בעמודות שבשורה זו, למשל ...,2א ,1א *וסתרו השמות על ידי ם+2/. 46 השורה הראשונה של משטח הקלט נמצאת מיד מתחת לשורת הרווח. את משטח הקלט כולו נגדיר כך: 6086817ת2/. 2. הקפאת משטח הכותרות בין שני המשטחים הללו, כותרות וקלט, נבצע הפרדה על *די %. הקפאה זו מתבצעת כאשר הסמן מוצב בפענה השמאלית העליונה של 28%81 בעזרת משפט המקרו ...8060[28%817/₪%6]. אם משטח הקלט כולל את עמודה 4 נבצע את הפקודה גטש/. אחרת - נבצע ₪65/. בפרק זה נתייחס למשטח הקלט כולו כאל *חידה הומוגנית אחת שנועדה לקליטת נתונים בכל שורה ובכל עמודה. בפרקים הבאים נראה כיצד מחלקים משטח זה לביצוע מטלות שונות המשלבות קליטת נתונים, עיבודים גלויים ועיבודים סמויים. משטח קלט שנועד לקליטת נתונים בכל שורה ועמודה מגדיר למעשה את תחום הנתונים בבסיס נתונים (5856 6868) אשר בו כותרות העמודות בלוח הם מגדירי השדות וכל שורה היא רשומה. הצורה ה"ממסדית" שראיתי ברוב היישומים שבחנתי מבוססת על מבנה לוח סגור. מבנה לוח סגור מספר תיאור |מנהלה סך הכל 10 1. 0 89 9.908 מבנה זה מחייב הערכה מראש של אורך הלוח, מחזיק עמודות מיוחדות עבור הקווים האנכיים, תופס מקום מיותר בזיכרון לשורות ריקות, מקשה על הוספת וביטול שורות ומקשה על מיונים ועל גישה לנתונים. המגבלות הללו לא קיימות במבנה לוח פתוח. מבנה לוח פתוח פריט עלות בש"ח ג וי תאריך מספר תיאור מנהלה ייצור שיווק סך הכל עדכון סך הכל 8 25762 2000 0 1 א 25 75 10 200 19 2 יּ 15 5 2000 2-00 0 .1 3 ג 08. 112 50 200 19 8 ד 100 2000 00 200 9. 9 במבנה הפתוח, שורת "סך הכל" נכללת במשטח הכותרות ובה פונקצויות מהסוג מט65. בפונקציות אלו מגדירים את הארגומנט עד תחתית הגיליון פחות מספר שורות. הגדרה זו איננה תופסת מקום בזיכרון יותר מאשר ארגומנט על פני שורה אחת. כתוצאה מכך מתקבלים סיכומים אוטומטיים בעת קליטת הנתונים. סיכומים אלה נראים תמיד לעיני המשתמש מכיון שהם כלולים במשטח הכותרת המוקפא על ידי ₪6/. המשטח 28%81 מגדיר בדיוק את מטריצת הנתונים על כל עמודותיה. פריט מספר 1 יהיה בשורה הראשונה של משטח זה ופריט מספר 4 יהיה בשורה האחרונה של המשטח. עכשיו נותר רק לקבוע נוהל להגדרה דינמית של 1 כדי לענות על מצבים של הוספת רשומות (שורות). לשם כך *וכן השטח מראש ויכתב משפט מקרו אחד. בעת הקמת ה-8-088620ע6>תד מגדירים | 628%817תע2/ את כל העמודות בשורה אחת שנועדה מראש להיות השורה הראשונה של מטריצת הנתונים. כדי להגדיר את התחום 28681 תוך כדי ביצוע המשפט 2 1 נכתוב את משפט השירות: ]תס א/ 86817 / 7 (31) . 086817 חי / 286817 00 ) (6מסת) , -- 2 1 [תעטס6) [גו) [6ם6+[2 6 [6ת9) 31 2 דע הפקודה 1ע5/ מאפשרת הקלדת נתונים בתחום מוגדר, למשל 28%681. עם הפעלת הפקודה מוגבלת תנועת הסמן ואפשר להציבו רק בתחום שהוגדר (בהמשך אתייחס ל-28%81). גם בתוך תחום זה מוגבלת תנועת הסמן לתאים שקיבלו ג/. פקודה זו מאפשרת להקליד (נתונים תחת מקרו פעיל (66ס₪ פאס). המקרו הבסיסי הוא 7 כדי לצאת מהמצב הזה, מבצעים [680). 18 הבה נפתח את משפט המקרו הזה עד שיהיה פיסקת מקרו שתייצר מגוון תפוקות להקלדת נתונים תחת מקרו פעיל. כדי שהיישום :היה נוח להפעלה ונעים לעין, נקדים בכל מקום שאפשר את המלים (2820012?) (61682 82610%9) [021פשס6ת1ש+ המלה [+%+1260050ש) מקפיאה את המסך. בעת הקלדת הנתונים צריך לאפשר תנועה ידנית של הסמן ולכן יש לכתוב 21085817/ (תספשס6ת1ש+ המלים במשפט (ע6108 +1+610%ם8כ+ מבצעות שתי מטלות: 1. +8102ת8ק - הסתרה של רשימת פקודות התפריט באיזור הדו-שיח (מעל לסרגל העליון) בעת הפעלת המקרו. 2. 61088 - ארגומנט זה מסתיר את כל 0₪1680029ם1 66ס₪. כתוצאה, אפשר אמנם להקליד נתונים ולקלוט אותם בגיליון, אבל הם לא *יראו בעת ההקלדה מעל לסרגל, אלא רק אחרי המנאם. לפיכך יש לכתוב, 7[ת610ת2128%81)08/ (מספשסבת1שט) אין צורך, וגם לא רצוי, לבקש (תססש8??). 3 ... 6811טת6 המלה 00811ות₪6 מפעילה נוהל תפריט "עשה זאת בעצמך". *ציאה מהתפריט על ידי (886+ מחזירה להמשך קריאת המקרו. כלומר, 110811מ₪6 היא משפט שירות לכל ענין ודבר. נוהל הקמת תפריטים יתואר אחר כך. בשלב זה נוכל לכתוב [ 6080 1) [ ₪01ת116 060811ת₪0) [++60₪50ת1ש) (61019מ8כ) [208%826+ א [8 בסת8עס)"[(מס61מ8ס)108%81ס/ המלה (2658%80%6) מנקה את המחסנית ומונעת 8ת65%61ת. הלולאה ב- % 1. (1טת%6 6811טמ₪6+ - באיזור הדו-שיח רואים את תפריט הפקודות שלנו ששמו 01ח6. אפשר לבצע את פקודות התפריט על ידי הצבת הסמן על הפקודה והקשת המדאם, או על ידי הקשת האות השמאלית הראשונה של הפקודה. |19 2. אם מקישים (686+ מקבלים "(מ610ת8ק)128081ע2/ ואפשר להקיש נתונים ולערוך אותם כאילו לא נמצאים במצב פא0. 3 אם מקישים (656+ מקבלים שוב (1טת6 6811טת₪0). הלולאה הזאת "מתעלת" את המשתמש למצבים מוגדרים מראש: הקלדת נתונים במשטח מוגדר ללא אפשרות של "טיולים" על פני הגיליון ומתן פקודות במערך תפריטים להפעלת הגיליון. הדרך היחידה לצאת מהלולאה היא בהקשת 8% (גם זאת ניתן לחסום ע"י [%+0268%0)). 5 צצ תפריטים הקורא כבר *ודע להפעיל את נוהל [ ... גום6ש) ולכן נוכל לעבור עתה לפיתוח "ע תפריטים" ב-%8620-8ע62ת1 הזה. 1. 1טתס תפריט זה מכיל ‏ את מילות ההפעלה לביצוע המטלות הראשיות של ה-88620/-8ע%2ת1 כפי שהן מופיעות ברשימת התפוקות. לוח הקמת 1טח6!ו תיאור הפעולה פיסקה מפעילה שליפת ספר הטלפונים של איזור (1 הסתפעס) (2טח716 6811טת6ם) (פ+ שלוף 1 חפש ומצא מספר טלפון לפי שם משפחה ופרטי (3 םסתפעס) חפש 2 מיין את הנתונים לפי סדר הא"ב (4 מסתמעס) מיייך:3 שורה 4 | פתח שורה נוספת לקליטת שם נוסף (5 מסתפעס) הדפס 5 | הדפס את הנתונים שנשלפו [6 תסתמעט) מסך 6 מסך חדש ללא כל פעולה נוספת (א תסתפעס)[פ) יציאה לתוכן העניינים ללא כל פעולה נוספת (ם גסתאסס) צא 7 שמור 8 | שמירת ספר הטלפונים של איזור [= הסתהעם) [3טת16? 6811טת₪6+ 0 את מלות ההפעלה, כפי שהן כתובות בעמודה הראשונה בלוח ההקמה שלע'ל, יש לכתוב בשורה הראשונה של 1טתסא. בעת הפעלת [1טת%6 0811ג1ומ₪0) יעלו המלים האלו אל שורת הדו-שיח האמצעית. הצבת הסמן על מלת ההפעלה תעלה את תיאור הפעולה (שייכתב בשורה השניה של 1טת6א) אל שורת הדו-שיח התחתונה. הקשת המ1אם תגרום להפעלת הפיסקה המבוקשת. אפשר להפעיל פקודת תפריט גם על ידי הקשת סמל הפקודה. למיקום מלות ההפעלה בתפריט יש חשיבות. מאחר שברירת המחדל של לוטוס היא "סמן על הפקודה הראשונה משמאל", נכתוב שם את הפקודה השכיחה ביותר. את הפקודה השניה בשכיחותה נכתוב בקצה הימני של התפריט מכיון שדי בהקשה אחת (ח> שמאלה) כדי להציב שם את הסמן. את שאר הפקודות נסדר בשורה זו לפי סדר שנראה לנו הגיוני בעת הקמת היישום. מלוח הקמה זה נראה בבירור שיש צורך בהסתעפויות לתפריטים נוספים. בעזרת 2שת86 נענה על השאלה המתבקשת "אשה איזור לשלוף" כשמבקשים שליפת נתונים. 3טות16 % 1]יענה על האפשרויות בעת שמירת נתונים: א. בטל - לא לשמור. ב. שמירה בפעם הראשונה. ג. | שמור. נוכל עתה לערוך את 2גות6!. לוח הקמת 2טח6ו מלת הפעלה תיאור הפעולה ישראל פיסקה מפעילה [1 הסתהסס)-["1,"1אא 166+ ישלפו מספרי טלפון בישראל ניו-יורק ישלפו מספרי טלפון בניו-יורק (1 תסת8פס)1,"2"[7אא 166+ וושינגטון ישלפו מספרי טלפון בוושינגטון [1 הסתהמס)1,"3"[7אא 166 אם יש יותר משמונה איזורים, הפקודה ה-8 בתפריט תהיה "אחר" וממנה תהיה התפצלות לתפריט נוסף. ₪1 6 תתקשורת דיסק - ביליון פיסקת המקרו ששולפת את הנתונים היא אותה פיסקה לכל אחד ואחד מהאיזורים. אלא שלפני שדורשים את הפעלתה "שותלים" את סמל האזזור בתא 1אא וכתוצאה מכך מקבלים 8₪61א116ע בהתאמה. הבה נראה את השתלשלות הענ**נים: 1. מיפוי 668-8020 בעת המיפוי הוחלט ששם קוב% ה-45011 עם מטריצת הנתונים לאיזור א יהיה: 1 [א = כל מספר] הוחלט גם שנסמן, א > 1 ---> ישראל 2 ----> ניו-יורק 3 ----> וושינגטון 2. משפט שירות לשם הקובצ משפט השירות 8₪61א116ע כתוב במבנה מודולרי. כאשר 1אא מקבל ערך כל שהוא (למשל "3"), *ופיע הערך הזה אוטומטית בשם הקוב>. : 61ט1עת 33 פשתאת 1ש1כע 1 502121 1 1161ק ישראל 2 = גניו-יורק | 3 = וושינגטון % 1אא 1. 1טסאם " (תעגס6ע) ".%618א%8188א22106182121850001218011618+ 8201א116ק 3. משפט שירות להודעות הפונקציה 06 מחזירה את תוכן התא שכתובתו רשומה בארגומנט שלה. נשמע מסובך, אבל הדבר פשוט ואלגנטי והנה ההסבר;: בכתובת 8561 כתוב "בישראל", בכתובת 8582 כתוב "בנלו-יורק" ובכתובת 8563 - "בוושינגטון". (1אא5="8א"+)60 אשפא בישראל 1 בניו-יורק 2 בוושינגטון 3 2 1אא הארגומנט 1אא16>"8" בתוך הפונקציה 06 מחזיר ₪563 כאשר הערך בתא 0)')שווה 3, וכך הלאה. כתוצאה, תחזיר הפונקציה 06 הנמצאת בכתובת 56% את המלה "בוושינגטון". ואם נכתוב 1 בתא 1אא נקבל בכתובת א%5₪% את המלה "ישראל" (יש לזכור תמיד שהערכים ב-1אא חייבים להיות מיושרים לשמאל - 180618 108019106 16%%6). 4. תפריטי הפקודות כשמבקשים "שלוף" מקבלים רשימת איזורים. כשמבקשים "וושינגטון", מתרחשת הפעולה הבאה: 1אא מקבל את הערך "3" ע"י -["3" ,1אא 166+ 1161 מחזיר: | 1613.161 61 53ת5א2ס₪3 ₪5תה6:38 אשפון מחזיר: בוושינגטון ואחר כך [1 מסתעס) 5. המשפט המפעיל עתה נציג ונסביר את המשפט המפעיל: 116%8061[7ת) (656)א910/ [6) 17צצ(060ש)006/ 7 (אשפו, 11את % 1 (41 ם6ת8עס)(מ60950ם2[7)>1 1+ ואלה הם משפטי השירות שלו: 31[7/6012826817008%8178/20)31[7).[ט)[5617)05עהקסת2/ 2 1 (תעטס6ע)(ט) (6ם6+[2 6+)[6ת6) 31 (1 תסתפעס) (מ610ת2128%81)08/ (תספשס6ת1ש) [61099ת8ק) (2055826+ 1 ( םע 6ע) (6008012ת1ש) [610%2ת8כ) ‏ 61 (ת2ע1,8%11()2600 ל עסעעסתס) 91 (86601) (ת50ש60ת1ש) ( מס61תפכ)ת6ש/ 286817 [060ש) (סמסת)60ש/ (61+ 1 םס (41 בסתפעס) (תע1()2600 ק2[)066 660ס)(1 662ס)(2 ק66מ) 86601 המשפט המפעיל מציב את הערך ""וושינגטון" (אם בקשנו ערך זה) בכתובת 11אא8. כתובת זו הענה המקום הממיועד באזור הכותרות כדי להציג | לעינינו| הודעות שונות. המשפט ממשיך ושולף ‏ את הנתונים לאיזור "וושינגטון" ומעביר אותם לאזור הפעילות הגלויה. | מכאן הוא מעביר את הגיליון למצב הקלדה בפיקוח מקרו עם הלולאה: [... [681טת₪0) <--> בע/ 3 תרגיל: השווה בין 0ע8-0806עפת1 זה לבין המקביל לו בפרק 2. 7 מצצורים לתפעול האוטומטי מתלווים סיכונים. | האוטומציה, | מטבעה, מכניסה את המפעיל להלך רוח "אוטומטי" ואין הוא שם לב לעתים למתרחש. כוחה של האוטומציה כה רב, עד כי בלחיצת כפתור אפשר לגרום נזק בלתי הפיך. לפיכך, חובה על המתכנן להכין "מעצורים" רגע לפנ שסק כזה עשוי לקרות. למשל, בעת שמירת הנתונים - פעולה המבטלת את הקיים וכותבת במקומו את החדש. כאן רצוי להכניס "מעצור" כזה. השימוש בהסתעפויות תפריטים הוא רק אחד האמצעים שלוטוס מעמידה לרשות המשתמש לצורך זה, ולדוגמא: 3 מסתעף מ-1טמ16 כאשר מבקשים "שמור". מלת הפעלה לבטל לוח הקמת 3טחסו תיאור הפעולה הפעולה לא תתבצע פיסקה מפעילה (5 מסתעס) התקנה ראשונה באיזור (א ת6ת8תפ)[3טת6? 6811טת6ם) (4טח116 6811טת6) יישמרו הנתונים החדשים במקום הקודמים [2 םסתפעס+ תרגיל:| בתרגיל זה שלושה חלקים: 41 התקנת נתונים באיזור בפעם הראשונה איננה מחייבת בדוגמא זו פיסקת מקרו נפרדת. הסבר זאת. 2. מלוח הקמת 3טת86 רואים שלהתקנה "חדש" יש הסתעפות לתפריט נוסף. ברירת המחדל של תפריט זה צריכה להיות "לבטל". הסבר זאת. 3 מה הם שאר הפריטים בתפריט זה? כיצד :יראה לוח הקמת הטתסץ ? תרגיל: | שליפת נתונים מאיזור מחייבת הסתעפות לרשימת איזורים. כך גם שמירתם בפעם הראשונה. האם גם שמירתם שלא בפעם הראשונה מחייבת הסתעפות כזאת? הסבר. 4 פרק 4 ספר:ית שירות מסוג !וח .| ספריית שירות מעגל האוטומציה נסגר כשמשלבים ספריית שירות מסוג ₪15 בכתיבת 0ע8-86עסת1. כשם שמשפט מקרו אחד עשוי לשרת מספר משפטי מקרו אחרים בקובצ 1א%ש מסוים כך הוא יכול לשרת מספר משפטי מקרו שנמצאים בקובצי 1 שונים. אפשר לשמור קובף ₪%1 עם מספר משפטי שירות אוניברסליים ולייבא אותם בפקודה 66+/ לפי הצורך אל הקוב הנוכחי בעת כתיבת 1628-8620 אבל אין כתיבה חוזרת של אותו משפט דומה כלל וכלל להפעלתו במבנה מודולרל. קיימת אפשרות לכתוב משפט מקרו אוניברסלי. נוכל לכתוב, למשל (םעטס6ת) [גו) (6ם2[)6 68+(6ם )6‏ 31 משפט זה נשמור בקוב> מסוג מיוחד, עם הסיומת ₪18 (קיצור של 8600 ץע8ע110). את הקוב% הזה ניתן לטעון לזיכרון ללא תלות בטעינתו או אי טעינתו של קובצ 1אש כל שהוא. כלומר, נוצר מצב שבו ניתן לשלוף או למחוק קוב 1>ש ובאותה עת הקוב>, או קבצים, מהסוג ₪15 ישארו טעונים בזיכרון. גיליון העבודה 1א%ש :וצר תקשורת אוטומטית עם כל קובצי מ₪1 שנמצאים במקביל אליו בזיכרון. במגבלות מסוימות מופעלים קובצי ₪15 הללו כחלק אינטגרלי לכל דבר של הגיליון הנוכחי. משהוחלף הגיליון באחר, נשאר קובצ ה-₪15 בזיכרון ונותן לו שירות בדיוק כשם שנתן לקודמו. כשמקפידים על כתיבה מודולרית יהיו קובצי ה-₪15 קטנים *חסית, ולא יחזיקו מקום רב בזיכרון. את השירות הניתן על ידי קובצ ₪15 מסוים אפשר לסווג לפי רמת השירות: 1. שירות לכל קובצי 1>ש. 2. שירות לקוב 1<ש שחוזר ו"עולה" למסך לעתים מזומנות כמו, למשל, קוב תוכן העניינים של היישום. 3 שירות למספר קובצי 1א₪. 4. שירות לקובאצ 1>ש בודד. 5 2 שירות על ידי קובץ פווח את פיסקאות המקרו האוניברסליות שומרים בקובף מ1א.9620411, אשר טוענים אותו לזיכרון באופן אוטומטי עם הפעלת היישום. הנה הלק מהתכולה של קוב זה: [1 הסת8שפ) " (מ610ת8ק)2128%81/ [ת50ש60ת1ש) (1טת16 6811טח26) (711) (20508506+[99+ 1 (תעט0ס6ם) [ט) [8ת6) (2 6[)8ת6) 31 [תעטס6ע) (ט) [8ת2[)6 8[)6ת6). 32 [תעט0ס6ע)[656)א ‏ 35 (1 תסת8עס) (מ0ס61ת28ק)2108%81/ [(הספשס8ת1ש) (71) (6ע99[)26568+ 41 [16טף) "ות5%0פ+?/ [99+ 51 [תעט8581()260 616866מ1+ 61 (תפט60ע)(8582 616866ת1+ 62 [תעט60ע) (%583 610856ת1+ 63 (תעס6ע) [8588 6168%56ת4) 6% [תפט60ע) [58901 610866ה1) 69 (תפטס6) (58901/ 616866ת1) (106095011ש)(ע0168 610/6ת826011()28ע?) 71 ( תעגוס6 ) ( ה60950ת1ש) [חס61תה8כ) 72 (תעטס6ע)-11[7א%א את018) 81 [ה9מ60ע) (1,8%11 91 פסעפסתס) 91 (81 הסתהפס) (86602) (60)72ש/ 28%817 [2060) (6פסם)6פש/ [71) 1 91 [תעטס6ע) 99 [תעטס6ע)(2 0600)(ק566) 86601 (תעט2[)26%6 2()5660()0600 0660()0660) 6602 ה מ תן 1 לכ א ג קל ט פקן .את 5 ג 3 ₪ 2פון ת ק לה ב מ ד פ סת תקןו והקצ גתאצא25 3 הי (0) רן אברהמי 1 משפטי מקרו ‏ אלה מוכרים מהפרקים הקודמים. מקרוּ 99 "מחזיק מקום" (ע10166 018066) למשפט שאנו עשויים לרצות לכתוב בתחילתו של כל מקרו, כמו למשל [0268%0%29). לשמירת המקרו של הקוב% 1א₪. גום₪6 בקוב> 1₪. םס נבחן שוב את "המקרו השולף" מפרק 1. [158901 616806מ1) (28₪60+4) (ע6168 610%%ת8כ) [תס5ש60ת1ט) (268%826+ 0 2 (2 עסעע6ת0ס)086817א2[7 ם) (6)05/ (6009019ם1ש) (7) [(סמסת+ [2 תסתפעס) ["ס"= (6881ה08א, "06ע60611)"6 17+ מ 11 [2 תסת8פם)- [16טף) 21116617 / 6סקש/ ס6ש/ (616866ם1+ 8 [1%ט)ססש/ 17אא (8060) (6פסת) ₪66/ ססקש/ 210116617/ (816866ת3+ ספ הסבר: 1 כותבים מקרו 0 2 חדש שנשאר בגיליון ₪1 שמכיל את מסך תוכן הענלינים: (₪2 ת6ת8עס+ 0 2 2. משנים את שמות שאר פיסקאות המקרו כדלקמן, ממ ל--- ס ₪8 ל-- 8 2 ל-- ‏ 2 אי אפשר לבצע פקודת העתקה 6/ בין ג'ליון 1אש לבין קוב סום, אבל אפשר לבצע העברת נתונים בין שני סוגי הקבצים הללו באמצעות פקודות מקרו. בתוכן העניינים ישנו המשפט הבא: 17 2 ת+[6+08/ תפוקתו היא העתקת תוכן התא הנמצא שתי עמודות ימינה ממיקומו של הסמן ובאותה שורה, אל כתובת 28%81א. פעולה זו תגרור הודעת שגיאה (הּסַתתת), אם 61כא נמצא בקובף 18ש. לפיכך עלינו לפעול פך: א. נוותר על המלים 5+/ בפיסקת המקרו המקורית. ב. נחליף את המשפט 217 ם)[60+05/ במשפט הבא: ד( ((0, ("אסע")ת66ת8)66011001ת6"805%021"+)22"806/"+,81>הסא 166+ נפרק את המשפט הזה למרכיביו ונבחן אותם זה אחר זה. הפונקציה ( "שסע" ) ע66ת001 60611 מחזירה את מספר השורה, למשל - 8. הפונקציה (0, ("שסע")662ת8)66611001ת08%21 מחזירה את מספר השורה כתווית (18061). תוכן העניינים נמצא בעמודה םס ועליה מציבים את הסמן כדי לבחור את הקוב לשליפה. שתי עמודות ימינה, בעמודה 6, כתוב המקרו שמיועד לבצע את הפעולה המבוקשת. לפיכך, השילוב הבא מחזיר את הכתובת המדויקת של התא הנמצא שתי עמודות ימינה מהמקום שבו נמצא הסמן: 8 <--- (0, ("שסע")ע60ת01ק66611)שת1ע8"8686"+ התוספת הבאה מחזירה את תוכן התא. למשל, אם בכתובת 68 כתוב פתהת אזי נקבל: ו ( (0, ("שסע")ע66ת01ק66611)שת8"865%21"+)66 עכשיו נותר רק להוסיף 5+/ כדי לקבל 85ת?/ <--- ((0, ("שסע")ע6ס6ת1סק2)60611ם1ע6"868%"+)22"866/"+ התוצר הזה של הארגומנט השני במקרו [ ... 186+ ייכתב בכתובת 1 הנמצאת בקוב% 15ם, ולא בגיליון עצמו. 4. את המקרו הבא נשמור בקוב% ₪15 (בספריית מקרו), כולל שמות תחום. הערה: את כל ארבע השורות הראשונות של ₪2 רצוי לכתוב בתא אחד. (858901 0616866ת28₪6021()1?) (ע6168 6101%ת8) (מספשס4ת1ש) [20655826+ 2ם (6005029ת1ש) (7) (6מסת) 0(([7, ("שסע")66%מ606611201)שת8"865%621"+)22"866/"+,1ה6ה08א 166) [2ם בסתהעס)("ם"=(581הכא, "6ע60611)"6 1%)(עם פסעעסתס) 1 [עם תסתהעס)- (10ף) 2921116617 /800/ 60ש/ [610866ת1) 8ם [0)0016סש/ 17אא (060 ) [6מסת)6טש/ סספש/ 22114617/ [6168066ת1+ סם עכשיו נחזור להסביר את השמות שנתנו לפיסקאות המקרו השונות. אם אותו שם של מקרו כתוב במספר קובצי ₪10 וכולם נטענו לזיכרון, יש קדימות לשם שבקוב% ₪15 שנטען ראשון. נאמר ששם תחום כל שהוא מוגדר גם ב-1אש וגם ב-פ₪1 ונאמר, שהוא משולב במשפט מקרו, למשל עם [...166). אזי ל-1א%₪ יש קדימות וה-16% יפעל על הגיליון ולא על ה-₪10. כדי לאפשר שימוש נרחב בספריות מקרו יש להקפיד על **חודיות שמות המקרו בקבצים השונים. אני נוהג לתת לקובצי ה-1<>ש שמות שהם מספרים ולמקרו שבתוכם - שמות שהם מספרים. כשמכינים מערך להפעלה בספריות מקרו, נותנים למקרו שמות משולבים. למשל, המקרו ששמו 1 1 נמצא בקוב% 1. 1תפת, ואילו המקרו 1 3 נמצא בקוב 1>ש.3תפַת. פרט לקוב%> תוכן העניינים, כאן הקידומת היא ₪ (בשביל טמסא) ולפיכך 2 הופך ₪2 וכך הלאה. קיימת אפשרות של הפעלה משולבת עם מספר קובצי ₪18 שנטענו לזיכרון. בדוגמאות שלפנינו נטענו לזיכרון שני קבצים: 1. ם411.₪1טע56 המכיל את ספריית המקרו האוניברסלית. 2. ס[ם.גותסא% המכיל את ספריית המקרו עבור קוב תוכן העניינים 1אש. תס בקוב פןם.טת6/ ישנו המקרו (%56901 616806ת1). 858901 עצמו נמצא ב-15ם. 411ש562, וכתוצאה מכך נותן הקובף 0411.₪15ע56 שירות לקוב 10ם. ומס שנותן שירות לקוב% 1>ש. ותסא. למעשה, כאשר טוענים מספר קובצי ₪15 לזיכרון, הם פועלים במשולב כאילו היו כולם קובצ ₪15 אחד. 3 טעינה אוטומטית 14 טעינה אוטומטית של שירות. אוניברסלי יישומי לוטוס שונים מוקמים בנוהלים שונים ועל ‏ כן :יתכן שיהיו יישומים בנוהל ₪15 וישומים שלא בנוהל זה. כדי לשמור על עיקרון האוטומציה בכניסה אל תוכן העניינים של סביבת לוטוס תחת מ1ם, צריך לבצע טעינה אוטומטית שני קובצי השירות האוניברסליים - מ411.₪1טע562 ו-10ם. טתסוא, לפני ששולפים את תוכן העניינים %1ש.טמסא אל המסך. לשם כך נקים קובף בשם 1>ש.טמסאא, אשר יישלף לפני 1אש.טת₪6 ואשר יכיל רק את המקרו הבא: (51 ב6ת0)028 (1)2116%8(62 7[ 8861א116ע) 01ש11086 0%87ע868186/ ( ("ששספ80") 615800 5) ס [51 ה6ת8פפ)861(71)21168₪62(70א2116) 0%₪071ע11886 881180087 / 1 1 (תעט5600411)266 1161ק 2 22 (תעש66ע)טת6/ 1162ע 1 680)א"+ 82061א116ע 2 6890)א"+ 62ש116%88ק כדי לאפשר המשך עבודה בצורה נכונה יש לבדוק אם נטענו לזיכרון ספריות מקרו כלשהן ולהסירן. אחר כך יש לטעון את שני הקבצים שישרתו בהמשך העבודה את כל מרכיבי היישום שיוקם. במהלך טעינת ה-₪8620%₪5 מצמידים אחד ממקשי ע כדי לאפשר אחר כך את הפעלתו האוטומטית דרך מקרו. במשפט המקרו שלמעלה אנחנו מצמידים ל-18862000 את המקש 10ע. כתוצאה מכך אפשר *היה במשפטי מקרו אחרים להפעיל את ה-8620%2 ע"י המלה [43פס8). + כתוב משפט מקרו לטעינה אוטומטית של קוב מ₪1 המשרת תרגיל: ‏ 1. קובצ+ 1>ש מסוים. 2. כתוב פיסקת מקרו שתבטיח הפעלת כל קובצי ה-%1ש ביישום הנוכחי באמצעות המקרו 6. מדוע הכרחי לכלול מקרו זה בקוב% ‏ 1>ש.טמ%6א? אסו פיסקה תופעל ראשונה: טעינת סי 86 או ביקורת ההפעלה תחת 0? 2 טעינה ופריקה אוטומטית של שירות מיוחד ספריית מקרו לגיליון ₪%1 אחד בלבד, או לקבוצה של גיליונות (אך לא לכלי הגיליונות בסביבת היישום הנוכחית) היא בחזקת שירות מיוחד. יש לטעון אותה אל הזיכרון כל אימת שידרשו שירותיה ויש לפרוק אותה מהזיכרון כשאין בה צורך. פעולות אלו מתבצעות על ידי פיסקאות המקרו הבאות. הטעינה האוטומטית מתרחשת אחרי שליפת הג'ליון (נאמר ‏ 1אט.5תהת) באמצעות המקרו 0. בדוגמא זו נטען קובף פ5.₪1תפ3 ומכיון שהוא נמצא בדיסק, צריך לקרוא בשמו המלא. לפריקה אוטומטית מהזיכרון די בשם הקובף ללא ציון הנתיב השלם. [41 ת0ת0)028 [8₪61א2116) [8001[1%)680+ 0 2 [51 בסתהעס) "(8001(2)2116%8₪62+ ם 1 סכ 1 [תע6%0ע)5ת38 1161קע 1 --:---: 61מ8א116ק 1+ 602מ8א116ק 4. יתרונות שימוש בספריית מקרו במבנה ₪18 כולל יתרונות חשובים. בראש ובראשונה מורחב כאן עיקרון המודולריות אל מימד מרחבי חשוב נוסף. מקרו משותפים למספר קובצי 1אש כותבים פעם אחת בלבד ושומרים בספריית שירות אוניברסלית. עושים זאת על פי העיקרון שמנחה אותנו לכתוב בגיליון משפט אחד בלבד לשירותם של משפטים רבים אחרים באותו גיליון. בנוסף לכך, מעניק נוהל זה, בשילוב עם נוהל שיוסבר בפרק האחרון, 2 פגיעה מקרית של משתמש במקרו, מפני "מציצנים" וגם מפני פרק 5 השליטה בדיסק 1 סוגי נתונים בשליטת לוטוס תוכנת לוטוס יכולה לנהל שלושה סוגי קבצים: מ1ם, 29011 ו-1אש. קובצי הגיליון (1אש) וקובצי ספריית המקרו (פ₪1) הם חלק ממערך לוטוס וניתן לייצרם ולהפעילם באמצעותו בלבד. התוכנה גם מאפשרת תקשורת בין קבצים אלה. קיימים נוהלים בלוטוס לעדכון הקובצ הנוכחי מנתונים הנמצאים בקוב שנמצא בדיסק. תא מסוים על המסך "קורא" את הנתון מתא מסוים בקוב 1 אחר על הדיסק. אפשר גם לעדכן את הקובא שנמצא על המסך מקובף 1אש אחר על הדיסק בנוהל %6/. עדכון בכיוון ההפוך איננו אפשרי. כלומר, אי אפשר "לשלוח" נתון מתא כלשהו בקוב> 1אש שעל המסך אל תא מסוים בקוב 1 אחר על הדיסק. קיים "עולם" נוסף על הדיסק - עולם קובצי 85011. כל *ישום מקצוע: מסוגל לייבא ולייצא קובצ 85011 'נקי" (ללא תווי ההוראות המיוחדים ליישום). יישומים אלה מקיפים מגוון של מטלות ‏ - עיבוד תמלילים, הנהלת חשבונות, ניהול מאגרי נתונים, גיליונות חישוב, תקשורת מחשבים ועוד כהנה וכהנה. ללוטוס נוהלים פשוטים ונוחים המקנים למשתמש שליטה כמעט בלתי מוגבלת בקובצי 45011. שליטת הלוטוס בדיסק, בקבצים שנוצרו בלוטוס ובקבצים שנוצרו על ידי תוכנות אחרות, באה לידי ביטוי מלא כאשר משלבים נוהלי לוטוס לשליטה בקובצי 45011 עם סעסב86058-88 ועם סע%628-886ת1. לא פעם הפעלתי לוטוס כתוכנת-על לגישור בין שתי תוכנות אחרות. למשל, יש יישומים לניהול בסיסי נתונים השומרים תאריך במבנה מסוים, השונה מזה של יישומים אחרים. בעזרת לוטוס אפשר לשלוף את התאריך שנוצר על :די תוכנה א, לשנות אותו למבנה תואס לתוכנה ב ולשתול את התוצאה במקום המתאים בתוכנה ב. בנוסף לכך, הניסיון | מראה ששמירת (תונים במבנה 88011 והפעלתם בגיליון 0ע%80-628ת1 נותנת חיסכון רב במקום על הדיסק ומשיגה מהירות גבוהה לשמירה, שליפה ועיבוד נתונים. החשיבה המרחבית, המשוחררת מהחזות של סרגלי הלוטוס, או של מבנה סגור של תוכנה כל שהיא, פותחת אפשרויות רבות. דומה, כאילו נשלף הדיסק 1 כולו אל בין סרגלי הלוטוס על המסך. את מירב אפשרויות ההפעלה משיגים כאשר פועלים על פי העקרונות הבאים: 1. שומרים נתונים, מספרים ו/או טקסט, אך ורק במבנה 45011. 2. עיבודים מבצעים ב-סעס8א-8ע5ת1 ושומרים אותם רק במקרים מיוחדים. 83 היישום כולו מופעל על :די קובצי 1אש קטנים מאוד ומהירים 4. מבצעים מיפוי הדיסק ל-%8620-668. 5. מבצעים אוטומציה מירבית של: - הכניסה למחשב - ניהול הדיסק - ניהול מטלות תוך ג*ליוני ב-80620ת-1%28 2 מטריצות נתונים ב-וו450 במרבית היישומים ‏ יש לוחות עם נתונים. הלוח מורכב משני חלקים עיקריים: כותרות ונתונים. המשטח המלבני בלוח שמכיל את הנתונים הוא המטריצה שתישמר במבנה 85011. כותרות הלוח, בדרך כלל, *ישמרו בקוב 1א, כשהן משולבות ב-8-08620ע10%62. את משטח הנתונים אפשר לחלק למשטחי משנה בכל צורה שהיא ולשמור כל תת-משטח כזה בקובף 85011 אחר. במטריצות הללו אפשר לשלוט באופנים הבאים: פקודות התפריט 1?/ +ם/. פקודות אלו מחייבות שליטה במטריצות שלמות מכיון שהן מייבאות או מייצאות משטח של נתונים בשלמותו. שיטה זו מוגבלת בגודל הגיליון או בגודל הזיכרון, מי שקודם. משפטי מקרו מהסוג [ ... מ6קס). משפטי מקרו אלה מאפשרים שליטה בדיסק עד רמת התו הבודד לפעולות שמירה ולשליפה. שיטה זו מאפשרת ייבוא וייצוא סלקטיבי של תווים, רשומות, או חלקי מטריצות אל הגיליון וממנו. כתוצאה מכך נוצרת יכולת שליטה בקובצי 45011 בגודל אין סופי, משוחררת ממגבלות גודל הגלליון והזיכרון. השליטה במטריצות הנתונים מתבצעת בשני מישורים: תקשורת עם הדיסק ועיבודים בגיליון. לשם כך מעמיד לוטוס לרשות המשתמש את הכלים הבאים: 1. פקודת התפריט ם1?/ לשליפת הנתונים שנשמרו ב-845011 אל תוך הגיליון במבנה של 8106ט, המציבה כל שדה מספרי מוצב בעמודה נפרדת. 02 2. שילוב בין 91%6/ לבין 65/ לפיצול אוטומטי של שדות טקסט ו/או מספרים לעמודות בגיליון. 3. סידרה של פונקציות 8 לטיפול במחרוזות טקסט. נתונים נוצרים בצורות שונות וממקורות שונים. המבנה המשמש להצגתם - הלוח - זהה בכולם. הבה נבחן מערך נתונים לדוגמא. לוח מספר 1 תקציבי הרשויות לפי סעיף תקציבי - תכנון לעומת ביצוע + % : תכנון פחות ביצוע ב-% מתכנון ... - הריגה | + עודף * חריגה מתקציב תקציבי הרשויות באלפי ש"ח הרשות " ₪ .שש א( ער ופארמים 8 * בני גד ממ 771 3 2- 578 3 8 - 193 200 5- גנים מא 1635 84 6.1 1 1123 9.0 1 1 8- + תמר ממ 17 55 0- 35 5 6- 12 10 17 * אבן פינה מא 7719 8962 1- 5789 6789 3 -ָ 1930 2173 12.6- דור ממ 1039 2 7.42 779 750 3.7 260 212 18.5 בלוח זה התווים המודגשים הם נתוני קלט, השאר הם עיבודים וחישובים. ברמת הפירוט הגבוהה ביותר *ש כאן שישה וקטורים (טורים) עם נתונל קלט לשמירה, לעדכון ולשליפה: 1 שם הרשות 2. סוג הרשות 3 סעיף תקציבי א - תכון 4. ביצוע 5. סעיף תקציבי ב - תכנון 6. ביצוע לצורך הדוגמא הנוכחית נאחד את הוקטורים האלה לשלושה "משטחים" (או מטריצות) ונקרא לכל משטח בשם כלשהו: 1. סעיף תקציבי א - תכנון וביצוע | = %61ת1עק 2. סעיף תקציבי ב - תכנון וביצוע | = %62ת1עק 3. פרטי הרשות = 651תהא 03 עד כאן מבנה תוך גיליוני. עתה נקים את התקשורת עם הדיסק. מיפוי ל-0עס6%8-18 סביבה ליישום לוטוט - סדנא 6 נתונים ב - 45011 בלבד -........... | תהת.1 מ166הסהכ 6‏ 6₪5ת6:8 ת8ת.2 160 תפת.1 65תהא שירות דויוווייוייייייייייייייייייי. 00 9600108 מערך 1>ש זודייוייויייייייייייייייי 600000 פע כתובת הדיסק עבור המטריצה %1ת1עק: ת8ת. 1 ה62868166 ₪5 ת8 :6 עבור המטריצה %62ת21ק: 2.08 628681668 ₪05 תה:6 עבור משטח הנתונים 1ַפפַההּא: 1.8 8₪65א628%68 ₪5 תפת :6 עכשיו נקים מבנה רב מימדי בתוך הדיסק עבור הנתונים שבלוח 1. נגדיר תחילה וקטורים (מימדים) המאפיינים את הנתונים. לדוגמא: 1. רשות 2. סעיף תקציבי 3 סטטוס 4. חודש בשנה 5. שנה נאמר, שהמטריצה הקטנה ביותר היא אסתנתק [כל מספר = א > 0]. 4 הרשות 1 - סה"כ 7 סעיף א סעיף ב ששפטבשששפטפטטטפטם אכעפפטטטפצפפטפטטםם שצבבבפפבשבששבבסבבם תכנון ביצוע + % תכנון ביצוע =שפטש 55שבם בששפם בשממם מפבםם >62תצעק > 651תהא 6% ח2.8 ₪ש6סך > 1.38 פסתגא % ת1.38 מ28%58166 2 2-ו אפשר לקבל מטריצה כזאת לכל סעיף לכל חודש לכל שנה. אם כל מטריצה שמורה בקוב+ 45011, נוכל לתאר לעצמנו שהכתובת של קוב זה בנויה מספרות, למשל: ת8ת.11 90 01 כאשר, - שתי הספרות הראשונות משמאל מסמלות את הסעיף התקציבי. - שתי הספרות במרכז השם מסמלות את השנה. - שתי הספרות בימין השם מסמלות את החודש בשנה. אין צורך להקים בפועל את מערך הקבצים. במבנה 0ע806/-8ע6ת1 קוב נפתח אוטומטית ברגע שמופיעים הנתונים הראשונים המאופיינים ע"י ההגדרות > שלמעלה. וזאת מכיון ששם הקוב הוא משוואה במבנה של משפט שירות המשרת בו-זמנית את המשפט ה"שומר" ואת המשפט ה"שולף" את הנתונים. התרשים הבא ממחיש את הדברים. במהלך הפעלה שוטף של המערכת :היו בתרשים זה "חורים", שמשמעותם מטריצה ריקה (אין נתונים במשבצת זו או קוב לא קיים עדין). לנו אין זה מפריע כלל. להיפך, ה"חורים" הללו חוסכים במקום מבלי שהמבנה התפישתי יושפע מכך. 5 סעיף תקציבי מספר 2 סעיף תקציבי מספר 1 מ == 02 88 2 01 88 2 01 88 .. 02 88 .. 62 88 2 01 88 2 108 1 88 01 1 88 02 1 2 89 01 2 89 02 7-ו .. 89 02 2 89 01 2 89 02 2 1 89 01 2 4 2 90 01 2 90 02 .. 90 01 .. 90 02 2 90 01 2 90 02 1 6 1 90 01 1 90 02 בדרך זו אפשר להגדיר מספר רב של מאפיינים ולהשתמש לשם כך בכל 11 התווים של שם הקובף. אפשר ולפעמים אף רצוי, לאפיין משתנים ע"י שם המחיצה. למשל, 1 2808 2 28%58 הקשר בין הגיליון לבין הדיסק מותנה, אם כך, בקיומם של שנ* מרכיבים: 1 מיפו* 0ע8658-086. 2. הגדרת מאפיני מטריצת הנתונים במבנה המאפשר פתיחת קבצים (מתן כתובת) אוטומטית ב-028-8620ם1. 6 השליטה על רשומות בודדות ועל תווים בודדים בקובצי 85011 פותרת בעיות של גודל בשנ* תחומים: 1. גודל הקובצ 2. גודל הרשומה נאמר שיש מטריצת נתונים בת 10,000 רשומות שכל אחת מהן בת 720 תווים. לוטוס פועל על רשומות שאורכן עד 240 תווים, אך אפשר להקים רשומה באורך אין סופי על *די "משיכתה" על פני מספר קבצים. למשל, בדוגמא הזו אפשר לחשוב על רשומה באורך 240א3, כשכל קטע שלה מאוחסן בקוב 25011 אחר. נחזור לבחון את אורך המטריצה. לביצוע עיבודים על המטריצה כולה אפשר לייבא אותה בחלקים. לעיתים קרובות נדרשים עיבודים על תווים בודדים או על רשומות המוגדרות בקבוצת איפיון אחת. לצורך זה "מייבאים" תו אחד, קבוצה של תווים, רשומה אחת, או קבוצה של רשומות, מבצעים את העיבודים ו"שותלים" את התוצאות בכל מקום שרוצים על הדיסק. כך שאפשר לחשוב על גודל קובצ אין סופי. 7 3 הקמת רשומה מנתונים מעורבים אפשר לראות כל מטריצה כבסיס (תונים המורכב משדות ורשומות. בתכנון מבנה הקוב והרשומה רצוי לשמור על המבנה הקלסי של שדות ורשומות בבסיס נתונים. אין צורך בתו מפריד ("8611₪168) בין השדות ברשומה והם יכולים להיות צמודים. אבל חייבים לשמור על מספר תווים שווה בשדה נתון בכל רשומה. לשם כך נבצע הקמת רשומה מנתונים מעורבים. הקמת רשומח מנתונים מעורבים ד 1 הּ 6 ש ט | 5% 0 8 4 תקציב לחודש ינואר 1990 1 2 5םםםםםםםםםםבםםבםםבםםםבבםבטבםםבבםב 3 מחלקה סעיף תקציבי 4 שכפמטפטטטטפפשפצשאם ששטפשאטש=פמטשפמטם 5 מספר שם א ב 6 ששאש שפשששמטטשםם ש=מטששםשפש שששטשם 7 8 1 ייצור 1108 15 9 110 120 0 6105 0נק 2 שיווק 33| 206 10 3 מינהלה 1, 25 205 11 לפנינו לוח עם נתונים מעורבים (טקסט ומספרים) ועם דרישה למספר תווים שונה בכל טור. למספר המחלקה דרושים 4 תווים, לטקסט בעמודה "שם" דרושים 11 תווים, למספרים ב"סעיף תקציבי א" דרושים 9 תווים ולמספרים ב"סעיף תקציבי ב" דרושים 6 תוו*ם. רוצים להקים רשומת 1 לכל אחת מהשורות בלוח הזה במבנה הבא. אורך הרשומה = 30 = 4 + 11 + 9 + 6 מבנה הרשומה *היה: מספר סידור* של השדה 8 3 2 1 מספר תו ראשון בשדה 26 15 6 0 גודל השדה (מספר תווים) | % | 11 | 7 מ 68 משוואה פשוטה מייצרת את הרשומה הזאת. נפיק תחילה מחרוזת תווים לשדה מספר 1 (סעלף תקציבי א) עבור רשומה מספר 2 (מחלקת שיווק). הנתון המקורי למשבצת זו נמצא בכתובת 810 במבנה של 6ט1פט עם שלוש הספרות "206". התפוקה המבוקשת היא מחרוזת (אַת1ע56) תווים בת שישה תווים: "206 | ". כדי לקבל מחרוזת זו נכתוב בכתובת 210 את המשוואה הבאה: (0, 810)₪ם₪05021 (((0, 080 )ם6-610066 ," ")0200085 למשוואה זו נקרא משוואת השדה. כדי לקבל את המחרוזת לשדה הזה עבור רשומה מספר 1, נכתוב בכתובת 9ע את המשוואה הבאה: (0, 6)89ם1ש₪05%( ( (0, 8)89ם68%21) ם80ת6-616 " ")0200686 כדי לקבל את המחרוזת לשדה הזה עבור רשומה מספר 3, נכתוב בכתובת 11ע את המשוואה הבאה: (0, 8)811ת0(((805%21, 1 680)ם86מ6-610, " ")6260086 תרגיל:| העתק את הלות שבדוגמא אל גיליון לוטוס, כתוב בו את שלושת המשוואות הללו ובחן את תפוקת המשוואות כאשר מבצעים את הדברים הבאים, 1. משנים את הנתונים בלוח. 2. במקום תו הרווח " " בפונקציה 260686 כותבים "0" או כל תו אחר. 3 במקום המספר 6 בפונקציה 260686 כותבים מספרים אחרים. 4. במקום המספר 6 בפונקציה 6068%5ע2 כותבים כתובת של תא כל שהוא בגיליון. כתוב בתא זה את המספר 6, את המספר 11, כל מספר. כתוב בכתובות המתאימות את משוואות השדה לשלושת השדות האחרים. נותר לנו עכשיו לחבר את התפוקות של ארבע משוואות השדה הללו לרשומה אחת. כדי לחבר את המחרוזת לרשומה כולה, נכתוב בכתובת 110 את המשוואה הבאה: +0 למשוואה הזאת נקרא משוואת הרשומה. 9 תרגיל: 1 כתהב את משוואת הרשומה לכל שלוש הרשומות בלוח. 2. הגדר חמישה תחומים, אחד לכל אחת מחמשת העמודות עם משוואות המחרוזות וכתוב משפט מפעיל אחד בלבד (עם +2/), משפט שירות אחד (עם [ש,... ת6קס+) ומשפט שירות אחד מסוג 8₪61א116ע כך שנקבל: אחרי הקלדת מספר (1, 2, 3, 4, או 5) בכתובת כל שהיא בגיליון ואחרי הפעלת המקר ישמרו הנתונים | מהתחום שביקשת, בקובצ שנועד להם בדיסק. משנתקבלו כל ההחלטות, מן הראוי לרשום אותן בצורה מסודרת. רישום זה יהיה מרכיב מרכזי בתיעוד של היישום ויעזור הרבה בהמשך הפיתוח. את מבנה הרשומה נרשום בטופס מיוחד, כמו בדוגמא שלפנינו: טופס מבנה רשומה תקציבי מחלקות לחודש ינואר 1990 לפי סעיף תקציבי. שם הקוב ... ת8ת.90 528%6811 5תאת6:3 גודל הרשומה = 32 > 2 + 30 השדה מספר תיאור (צַ א)0₪16 1 סעיף תקציבי: א 6 0 2 ב 9 6 3 מחלקה: שם 11 5 8 מספר 8 26 את הטופס הזה מכינים בגיליון לוטוס, כשכל מרכיב נמצא בעמודה משלו ואפשר לשלב בו נוסחאות כדי להקל על הכנתו. כפי שכבר ציינתי, יש בלוטוס קבוצת פונקציות לטיפול במחרוזות תמליל. (ץצ,א 6שַת8ת)6₪10 היא אחת הפונקציות החשובות בקבוצה זו. היא שולפת ץ תווים מתוך מחרוזת תמליל (רשומת 45011 שנשלפה אל הגיליון, למשל) הנמצאת בכתובת 6שַתא8ת החל בתו מספר א (כולל תו זה). בטופס מבנה רשומה, צץ הוא מספר התווים בשדה (גודל השדה) ו-א הוא מספר התו הראשון בשדה. מכאן רואים בנקל, שאם 1 הוא מספר השדה אזי, [1-1]צץ+[1-1]א = [1]א חל גודל הרשומה הוא סכום מספר התווים בכל השדות (6+9+11+4=30). לעיתים נוסיף עוד שני תווים לרשומה, שמשמעותם היא סוף רשומה (6ם1.1 ?0 6תם) וחזרה (מעטססת 6ספף) ומכאן שני התווים הנוספים. הסיבה היא, ששתי פקודות לוטוס מוסיפות את התוו*ם הללו: הפקודה 2%/ (אפשר לשנות זאת בברירת המחדל של הגיליון) והפקודה [ ... ת1661ש). תוספת שגל תווים אלה מאפשרת ליצור קובצ 45011 השומר על חזותה של המטריצה שנכתבה אליו. 4 כתיבה אל הדיסק 1 כתיבת רשומה אחת כדי להדגים כתיבה של רשומה אחת אל הדיסק, נניח שביצענו שת פעולות: - שלפנו לגיליון את נתוני התקציב לחודש ינואר. - הגדרנו את העמודה המכילה את משוואות הרשומות: 17 2ת1עק סח / נניח עתה כי רוצים לעדכן על הדיסק נתונים של רשומה אחת בלבד: לשנות במחלקת השיווק את הסכום בסעיף תקציבי מספר 2 לסכום גדול *ותר. אנו נשנה את הנתון על ידי הקלדה רגילה בלוח ואחר כך תעודכן בדיסק הרשומה השניה בלבד על :די פ. -[2אא, 561 ע6סמטםס86) ס [ש, 116087061 ת6כס) (ם, 61ת8א116/ מספס+ ([1ת%שַת2-1(*16אא) 80%005+ ( (2-1אא, 0, %2ת66%)221מ61 מ1061עש1 [61086+ [016 % 2אא 4 2 8621ַת10 1-1 80601א116ק :6 61ט10עכ 528%681 05תפת 151כע 010 161נק [תעט26%+תהת. 61אם <-- הקש את מספר המחלקה (1..3) 1 מספר המחלקה גודל רשומה ב 116%88861ע 1 הסבר: במשפט הראשון מבקשים מהמשתמש להקיש את מספר המחלקה שברצונו לעדכן על הדיסק. מספר זה נקלט בכתובת 2אא. לאחר מכן יש שורה עם שנ* משפטים: המשפט (₪,8₪61א2116 תססס) פותח את הקוב ששמו רשום בכתובת 1 )ץע כדי לכתוב בו או כדי לקרוא ממנו (הארגומט ‏ ₪ - צ+₪061). אבל, אפשר לכתוב אל קובצ או לקרוא ממנו אך ורק אם הוא קיים. ברגע זה מקבל המשפט משמעות של התניה. אם הקובף קיים, *ופעל המשפט בשורה מתחתיו (... 565005). אך אם הקוב איננו קיים (ואד ורק אם אנו קיים) *ופעל המשפט שבהמשך של אותה שורה: [ש, 2116888061 מסקס), שכולל את הארגומנט ₪ (106עש) - כתוב. אופצית ש איננה מתחשבת אם הקוב קיים או לא - היא פותחת אותו (ולכן תמיד מצליחה). אחרי הפתיחה *היה גודל הקובף = 0 בתים. משמעות הדבר היא, שאם היו בו נתונים הם נמחקו. לסוג זה של התני*ה חשיבות מרובה ביותר. במקרה שלפנינו נוהל התניה זה מאפשר פתיחה אוטומטית של קבצים. במקרים אחרים אפשר להשתמש בנוהל התניה זה בנוסף על נוהלי ההתניה הרבים הקיימים בלוטוס והמקנים לו את כוחו הרב. המשפט הבא מציב את הסמן [ ... 566005) בקובף שנפתח בדיסק במקום בו נרצה לכתוב את הרשומה המעודכנת. הנוהל איננו מסובך. אדגים אותו בתרשים הבא: 11נע 1 30 29 28 27 ...0 0-12 <--- מספר התו ברשומה 0 <-- מספר הרשומה בקוב%א 1+(2-1)-(2-1אא) 2 אורך הרשומה הוא 32 תווים ומספר הרשומות הוא 3. שים לב לכך שהספירה בשני המקרים מתחילה ב-0. במשפט [ ... 560005) שלמעלה כתוב הארגומט ‏ 1ת8%ת2-1(*16אא). התא 2אא מכיל את מספר המחלקה שברצוננו לעדכן, מחלקה מספר 2. לכן החישוב 1 2-1אא) מפיק את מספר הרשומה בקובצ בדיסק. 1=32ת8%ת16 הוא 72 גודל הרשומה. המכפלה של מספר הרשומה בקוב בגודל הרשומה, נותנת את מספר התו הראשון של רשומת המחלקה (מסומן א בציור). זה הוא תו מספר 12 *+*(2-1). משפט המקרו הזה מציב בדיסק את הסמן. כלומר, כמו שמשפט המקרו [80%50+ מציב סמן, כך גם המשפט [...56%6005) מציב "סמן", אלא שהראשון מציב סמן נראה לעין בגיליוןו והשני מציב סמן בלתי נראה בדיסק. עתה נפתח קובף לקריאה או לכתיבה והסמן הוצב על התו הראשון של הרשומה המבוקשת. עכשיו צריך להורות מה לעשות. נעשה זאת באמצעות המשפט הבא [ ... מ1661עש]. משפט זה יכתוב בקובצ שבדיסק, החל מהתו בו מוצב הסמן, את התמליל הכתוב בארגומנט שלו או בכתובת הרשומה בארגומט. אל הטקסט יתוספו בדיסק שני התווים .₪01 (8ם1.] 0% 6ַמם) ו-08 (מע600ת 08021880). הארגומנט הכתוב במשפט (2-1אא,%2,0ת221)א60ת61 הוא כתובת "אקטיבית". פונקציה, שנותנת את התפוקה הבאה: תוכן התא הנמצא ב-6אַתת3 ואשר הקואורדינטות שלו ב-פאַת38 הזה הן עמודה א ושורה ץ וכאשר, - מספר העמודה הראשונה משמאל ב-6שתבת הוא 0=< - מספר השורה הראשונה ב-6שתהת הוא 0 התבנית הכללית של הפונקציה: (ץ, א, ס6שַתּת) א66ת61 סיימת הקבלה מעניינת בין מבנה הפונקציה הזאת לבין מבנה מטריצת נתונים בקובצ 45011. לדוגמא, נגדיר ‏ 3.057ת028%8417ת2/ 0 מ הי ) ב ₪ פ 0 8 4 בו 8 <--- עמודה בגיליון 1 8 7 6 5 4 3 2 1 0 --- מספר העמודה ב 28681 1 0 <-- מספר השורה ב 28681 3 2-1(=)2-1(>1אא) 4 2 שורה בגיליון ---> 5 6 7 3 מכאן קל לראות, שהארגומנט הזה מחזיר את המחרוזת של רשומת מחלקה מספר 2, וכתוצאה מכך נכתבת הרשומה בדיסק. במלים אחרות, פונקציה זו מכתיבה את הפעולות הבאות: 1. גש למטריצה בשם 6שתּת המוגדרת בגיליון. 2. חפש בתוך המטריצה את העמודה הנמצאת א עמודות מימין לעמודה הראשונה בצד שמאל. 3. בעמודה הזו חפש את השורה הנמצאת ץ שורות מתחת לשורה הראשונה של המטריצה. 4. החזר את תוכנו של התא שמצאת, יהיה אשר יהיה (6ט1אט או. 1).. הפונקציה א66םת61 חשובה ביותר להפעלת תקשורת יעילה בין מטריצת נתונים בגיליון הנמצא על המסך, לבין מטריצת נתונים הנמצאת במבנה 1 על הדיסק. הזהות במבנה הקואורדינטות תומכת במודולריות בכתיבת 8600/-8ע>%ת1, מכיון ש-2אא (למשל) מופיע כארגומנט בשני מקומות ‏ - בשליפת הנתון מהמטריצה בגיליון ובכתיבתו בדיסק. עתה עלינו לסגור את הקובף. המשפט [61058+ הוא משפט חובה כשמסיימים פעילות בקוב. תרגיל: זהו המשך לתרגיל הקודם. הגדר את כל חמשת עמודות המחרוזות בתחום אחד. הפעל את א66ם61 על התחום הזה, לא בתוך מקרו. נסה לבחון את התפוקות כשמשנים את מספר העמודה והשורה. חזור על הניסוי כאשר א ו-ץ הם פונקציות. תרגיל זה חשוב להמשך. /ח 2 כתיבת שדה אחד ברשומה אחת בסעיף הקודם כתבנו רשומה שלמה אל הדיסק. פעמים רבות יש צורך לעדכן נתון אחד בלבד ברשומה אחת. כגון, סעיף תקציבי מספר 2 במחלקת השיווק. לשם כך יש צורך בנוהל כתיבה אל הדיסק של שדה אחד ברשומה אחת. ה-%28-8620ת1 הבא מבצע את הפעולה הזאת. תקציב לחודט ינואר 1990 צאצצצפכצצכצפצאצשכצצפכטשכטשבבטפמבבם מחלקה סעיף תקציבי רשומות 45011 מספר שם 2 1 ייצור ייצור 8 1,125 שיווק שיווק 3 206 מינהלה מינהלה 1 225 7 (3אא, 582 פסספטת66) 7 (2אא, 1581? פססמטתל₪9+ 6 (ש, 11688861 תסקס)(ם, 8₪61א116ע מ6קס+ (8אא+2%01ת2-1(*16אא) 56%205+ [ (2-1אא, 3-1אא, 61מ221)א66ת61 166עש+ +61056[ 1 (6019) מספר המחלקה > 2אא מספר סעיף תקציב' --> 3אא תו ראשון בשדה 3אא ברשטומה ---> (161851,1ע, 3אא)פט00ס1ט6 מאא גודל רשומה ב 8861א116%ק % 2 1תסשת10 %1ץ+-++:+: 601מ8א116ק :6 61ט1פת 528581 9תפת 2121 10 161נע (תעט266)תפת. 61א <-- הקש את מספר המחלקה (1..3) 1 <-- הקש את מספר סעיף התקציב (1..2) 2 הבה נבחן את פיסקת המקרו 6 אשר רשומה בשורה הראשונה. עד כה הת*יחסנו במפורש לשני מרכיבים ראשיים של מערך המידע: 1. המקומות בהם שומרים את המידע והמקומות בהם מבצעים פעולות על המידע. דהי:נו, בלשון פשוטה, הדיסק והמסך. 2. נוהלים ושיטות. כלומר, 0ע806/-668 (-8-88620ע6ת1. ישנו מרכיב שלישי וחשוב לא פחות מהשניים האחרים. מרכיב שעד כה ההתייחסות אליו לא היתה מפורשת: 3 האדם שיושב אל מול המסך. שני משפטי המקרו הראשונים בפיסקה זו *וצרים קשר נוח וזמין בין המפעיל לבין המחשב. הבה נראה את סדר הפעולות שיתן את התפוקה המבוקשת - העתקת נתון מתא בגיליון (שהוא שדה אחד ברשומה אחת) אל קובץ 45011 בדיסק. המפעיל: 1. עדכן את הסכום בסעיף התקציבי של המחלקה. 2. רשום את מספר המחלקה לעדכון בכתובת (תא) כל שהוא בגיליון. 83 רשום את מספר הסעיף התקציבי לעדכון בכתובת (תא) אחר כל שהוא בגיליון. כאן מתבקש המפעיל לעדכן את הנתון בגיליון ולרשום אחר כך את מספר המחלקה והסעיף בשתי כתובות בגיליון. כדי לחסוך ממנו את החיפוש אחר הכתובות הללו וכדי להפיק תקשורת אדם-מחשב במירב הנוחיות נפעיל את המקרו הבא: 7 (3אא, ₪562 ע6סתטם86%) - (2אא, 5₪1 עסספטםל9ש+ ס עם הפעלתו של משפט זה יתבצעו הדברים הבאים: 1. משפט המקרו הראשון בשורה זו... 1. שולף את ההודעה הכתובה בכתובת 8561 וכותב אותה בשורת הדו-שיח השנייה (השורה האמצעית מבין שלושת השורות שמעל הסרגל העליון) 2. ממתין שנסליד את התשובה להודעה (מספר המחלקה) ונקיש חמ דאע. 3 אחרי שהקשנו המזאם, כותב את התשובה שהקלדנו בכתובת 2אא. 2 2. משפט המקרו השנל... 1. שולף את ההודעה הכתובה בכתובת 8582 וכותב אותה בשורת הדו-שיח השניה. 2. ממתין שנקליד את התשובה להודעה (מספר הסעיף) ונקיש המעאם. 3. אחר* שהקשנו המדאם, כותב את התשובה שהקלדנו בכתובת 3א. כאן הסתיימה האינטראקציה בין האדם והמחשב והפעולות הבאות מתבצעות ע"י המחשב בלבד. המחשב: 1. פתח קוב מסקס) 2. אשר שמו רשום בכתובת 8₪61א116ע 3. לקריאה או לכתיבה [ם, 4. ואם הקובא איננו קיים, אזּי הקם אותו לכתיבה [ש, 8₪61א116ת תססס+ 5. הצב את הסמן בדיסק 8)]) על התו הראשון של שדה הסעיף התקציבי המבוקש ברשומת המחלקה המבוקשת 1אא+1ת6קת1.6* (2-1אא) סעיף זה דורש הסבר: המחלקות ממוספרות מ-1 ואילך. הרשומות בקובף 85011 ממוספרות מ-0 ואילך. לכן, מספר הרשומה בקוב 85011 הנו מספר המחלקה פחות אחד. כאשר כופלים את התוצאה בגודל הרשומה, מקבלים בדיוק את התו הראשון משמאל בשדה הראשון של רשומת המחלקה המבוקשת בדיסק. מספר התו הזה מתקבל על ידי המכפלה 1ת%שת16* (2-1אא), שהרי בכתובת 2אא רשום מספר המחלקה ובכתובת 1ת8%ח16 - מספר התווים ברשומה. 7 68 לאחר שחושב מספר התו הראשון של הרשומה, צריך למצוא את מספר התו הראשון של השדה המבוקש. לשם כך אפשר לבצע נוהלים שונים. כאן נשתמש בפונקציה קט00%ס1ט6. נדגים את מהלך העבודה: נדגים את מהלך הוכבורווב מבצעים 26071616517/ כך שיכיל שתי עמודות וארבע שורות. בעמודה הראשונה בכל שורה כתוב המספר הסידורי של השדה (בדוגמא זו - מ-1 ועד 4). בעמודה השנייה של כל שורה כתוב מספר התו הראשון של השדה (נקח זאת מטופס מבנה רשומה שהוכן מראש). עכשיו, בכתובת 4אא כותבים את הפונקציה הבאה: ( 161651,1ע, 3אא) פטואסס נש 1 0 2-6 3 5 5 6 1 מכיון שבכתובת 3אא מופיע מספר הסעיף התקציבי, מחזירה הפונקציה הזאת את מספר התו הראשון של שדה הסעיף התקציבי המבוקש. כל שנותר לעשות הוא להוסיף את המספר הזה למספר התו הראשון ברשומה: 4אא+1ת6את16* (2-1אא) 7. סיים משפט מקרו זה כראןול. 8. במקום הזה בדיסק עליך לכתוב 6 תש) 9. את.. (2-1אא, 3-1אא, %1ת21ק) א66ם61 אנחנו - 6 יודעים, שהפונקציה הזאת מפיקה את תוכן התא בגיליון שכתובתו: "השטח - 1צעת, עמודה מספר 3-1אא משמאל, שורה מספר 2-1אא מלמעלה". התא הזה הרי מכיל את משוואת השדה של הנתון שעודכן. ולפיכך, כל שנותר הוא ... 0. סיים משפט מקרו זה כראן? עדכון הדיסק יתבצע כפי שבקשנו. לשם המחשה נתבונן בתרשים הבא. תקציב לחודש ינואר 1990 ששםבבפםבםטםםםבבבםבםבםםםבבםםבםבםבםבם מחלקה סעיף תקציבי הצצ צצפצצצצאאאשטם צבפבבבצטטבבטטםםם רשומות 45011 *יצור 8 1,125 שיווק 3 206 מי נהלה מי נהלה 1, 25 205 2 = 3אא >|6333 <---- (2-1אא, 3-1אא, 161עת) א86ת61 (ם, 116%8261ע2 מ6קס) (4אא+2%01ה2-1(*16אא) 560205+ ( (2-1אא, 3-1אא, 61ח221)א66ה61 106עש) | [תע0ל6ע)ת8ת. 90 5286811 5אתפת:6 < 1נעת > ת90.38 28%811 5 ₪5ת8ת:6 26נ:ץ 95 5 1. סיים פיסקת מקרו זו כראוי [61096+ [16טס+ כאן הסתיימה תגובת המחשב. 9 ך ו-,ל7ל7ן 2 ז | ! ל 3 כתיכבת רצף רשומות בדרך כלל כותבים את כל הרשומות ברצף אל הדיסק. בחלק מהמקרים הללו אפשר להשתמש בפקודת התפריט +/, אך בהזדמנויות רבות נרצה להפעיל את המקרו [ ... מסקס) בלולאה. לולאה כזאת ניתן ליצור בשני אופנים: 1. על ידי [ ... 1166 2. על ידי [ ... עס?+ בפרק זה נבחן את שני האופנים הללו: תחילה את הלולאה ‏ [ ... 165+ שהיא פשוטה ללימוד, ואחר כך (ציג את הלולאה ‏ [ ... ע0ס?)+ אשר יעילה ומהירה יותר ממנה. תקציב לחודש ינואר 1990 מחלקה סעיף תקציב: רשומות 45011 מספר שם 2 1 ייצור 120008 1 ייצור 8 1,125 שיווק 3 2 שיווק 3 206 מי נהלה 21 3 מי נהלה 1 225 6 [ט, 2116861 תססס)(ם, 116%8₪61ע תספס+-[1,0אא 166+ א [0 566005 [(1אא,0, 61ת221)א66ת61 ם1061עש) 1 [3 םת6ת8עם)1+1[7אא, 1אא 166+ (61098) 2 [0+ט1 [1 תסתהעס)[(61ת1>620₪5)221אא 1+ 3 [2 תסתהעס) מוגנה פעימות --> 1אא 1+ 01מ8א116קת :6 221061 528%681 ₪5תפת 121 0 01 161גע [תעט260)תפת. 61אם לוח זה וחלקים רבים ממקרו 8 שלמעלה כבר מוכרים לנו מדוגמאות ותרגילים קודמים. 1 תחום 1 הוגדר על עמודה אחת ומכיל את שלוש משוואות הרשומה של הנתונים בלוח שמשמאלו. באיזור המקרו מגדירים -1אאסתע/ שישמש מונה פעימות. הבה נעבור על פיסקת המקרו 8 לפי סדר הפעולות: איפוס מונה הפעימות --> 1=0אא פתיחת 116%8₪61ע עם אופצית ם הצבת הסמן בדיסק בתחילת הקוב% העתקת' הרשומה הראשונה מ-%1ת21ת2 אל 8₪61א116%ע (1אא,0, 1עת)א66ת61 --> (61,0,0ה221)א66ת61 מגדילים את המונה -[1+1אא, 1אא 166) באחד מתפצלים אל פיסקת ההתניה 3: אם 1אא קטן ממספר הרשומות ב-%1ת1עע מתפצלים למשפט 1 שיעתיק את הרשומה השנייה מ-%1ת1פת אל 116%8₪61ץע.. המשפט [...ם1061עש) כותב את הרשומה בדיסק ומציב מיד את הסמן בדיסק על התו הראשון של הרשומה הבאה בתור.. אחרת, מתפצלים ל-2, סוגרים את הקוב ומסיימים את הפיסקה. תרגיל משולב: 2 למדנו לכתוב מהג*ליון אל הדיסק: רשומה אחת פ שדה אחד ברשומה אחת | 6 רצף של רשומות 8 כתוב והפעל 0ע%628-080ת1 שיכלול את כל שלוש המטלות הללו במערך מודולרי אחד, המופעל אוטומטית ע"י תפריט פקודות במבנה [...טתסם). 4 כתיבת דיווח אוטומטי בניהול ‏ תק יש חשיבות רבה לדיווח אוטומטי של מועדי ביצוע של פעולות שונות למעקב החלטות. במיוחד נודעת חשיבות למועדי עדכון נתונים. ניתן לדמות מסד נתונים המכיל גם שדה ובו תאריך עדכון אחרון של נתונים הנמצאים בשדה שכן. שדה תאריך העדכון סמוי עבור מי שקולט את הנתונים. כלומר, בעת הקשת' הנתונים המפעיל יראה את כותרות העמודות לנתונים המוקלדים בלבד כגון, "סעיף תקציבי 1 - ביצוע". אבל בקוב ה-49011 בדיסק שיועד לשמור את הנתונים *ש משבצת מוכנה לקלוט את תאריך ההקלדה. תאריך זה ניתן לשלב כפונקציה בתוך משוואת השדה של הנתון הגלוי (למשל, ביצוע בש"ח - סעיף תקציבי 1). התוצאה תהיה: הרשומה שתיכתב בדיסק תכלול שילוב של נתונים גלויים עם נתונים סמויים. נתונים סמויים אינם מוגבלים לשדה התאריך, אלא *כולים לייצג כל ערך רצוי. הבוחן הוא שיש לשמור את הערך הזה, אך הוא אינו נדרש בעת הקלדת הנתונים. לעתים גם רוצים לשמור אותו חסוי מהמשתמש, כמו למשל, ההפרש בין התקציב המתוכנן לבין הביצוע. הדוגמא הבאה מתארת ארגון בן שני מפעלים, א ו-ב, וארבע מחלקות מרכזיות - שיווק, תובלה, הדרכה, ומינהלה. לכל אחת מהיחידות הללו יש תקציב מתוכנן ונוהל מעקב אחרי ביצוע. ברגע מסוים (ראים הנתונים הללו כפי שהם מוצגים בלוח הבא. לוח זה מאפשר עדכון כל נתון ושמירתו בדיסק. עד כאן המרכיבים הגלו*ים. נאמר שכל פעם שמעדכנים נתון בדיסק רוצים לעדכן בו-זמנית גם את תאריך העדכון לשם מעקב וביקורת. הדרך הטובה ביותר לקלוט נתון זה תהיה, אם הוא *ירשם באופן אוטומטי לגמרי ללא מעורבות המשתמש. סעיף תקציבי שם תכנון ביצוע תכנון ביצוע תכנ. ביצ. תכנ. ביצ. תכנ. ביצ. תכנון ביצוע 1 מפעל א 55000 89500 27500 28750 5 6188 3138 309% 32380 30940 2 מפעל ב 23500 25850 11750 12925 32328 1869 1616 14690 16160 3 שיווק| 15250 16775 7625 8388 8 1089 4 תובלה | 12000 10800 6000 5800 3000 2700 1500 1350 750 675 7500 6750 5 הדרכה| 8000 3600 2000 1800 1000 900 500 450 0 2250 6 מינהלה 7000 6300 3500 3150 1750 1575 875 788 808 39840 3 תחילה מכינים את מבנה הרשומה כך, כל נתון תקציבי, הערות לכל סעיף תקציבי כפי שמודגם בטופס מבנה הרשומה הבא. יש 2 תווים ב 4 שדות: ביצוע: תאריך עדכון תקציב בש"ח תכנון: תאריך עדכון תקציב בש"ח לשדה תאריך - 9 תווים לשדה ש"ת 7 - טופס מבנה רשומה תקציבי היחידות - תכנון שס הקובצא: > ו סעיף 1 ביצוע תכנון 1 2 3 8 5 סעיף 2 ביצוע 6 / תכנון 8 9 סעיף 3 ביצוע 10 11 תכנון 12 3 סעיף 84 ביצוע 148 15 תכנון 16 17 סעיף 5 ביצוע 8 39 תכנון 20 1 סעיף 6 ביצוע 22 3 תכנון 28 5 יחידה ומספרה וביצוע שתכלול שדה לקליטה של התאריך עבור תפת. 1 '5286827 8/תפת:0 אורך רשומה = 213 = 2 + 211 שדה תיאור תאריך עדכון ש"ח תאריך עדכון ש"ח תאריך עדכון ש"ח תאריך עדכון ש"ח תאריך עדכון ש"ח תאריך עדכון ש"ח תאריך עדכון ש"ח תאריך עדכון ש"ח תאריך עדכון ש"ח תאריך עדכון ש"ח תאריך עדכון ש"ת תאריך עדכון ש"ח אחרון אחרון אחרוון אחרון אחרון אחרון אחרון אחרון אחרון אחרון אחרון אחרון כ נ- סא 1 0 0 1.0 0 1- פא נ- פאז פא סא 419 פא 1 סא 1 פא ₪ עכשיו צריך להחליט באיזו צורה לשמור את התאריך. אפשר לשמור את חמש הספרות של לוח התאריכים בלוטוס, או בכל מבנה אחר. בחרתי להדגים כאן ביצוע טרנספורמציה של התאריך לתון* אפשר כמובן לבחור כל מבנה אחר רצןל. 1 במבנה של "עעץ.םם.43". ". "8 (0, (שסח6) 8)088ת3 8086( ( (0, (שסח6) ע8)088ת65601) 80ת2-616, " ")8020008%" "+ ". "8 (0, (אסה6) תסמ 6 )86561 ( ( (0, (אסה6) תש ת0מ6)א8ַת6561) מס 8ת2-619, " ")8 (0, (א0ת085)6ע8)6ת80501( ( (0, (אסת085)6ע8)6ה65%621)ה80ת2-616," ")8 11 תתס11 עָה+ 1 1.0 5% | 90 6801ץ > > .1 1תסחמסא % 0% 1 התאריך שיישמר מופק מהמשוואה ב-28661 שהיא למעשה, רשומת שדה. אבל גם משוואה זו מורכבת מרשומות שדה משלה, כאשר 1ע8כ2, 1ת%חסא, 6821צ מכילים משוואות שדה בהתאמה. עכשיו מכינים את נוהל השמירה. תכנון ביצוע 1תצעק (0, 8)87ח885%1 ( ( (0, 8)87ת65%21) ת86חה7-616, " ")046618620008%+ | 32380 30930 8 16160 58 1099 90 6750 10 0 2259 11 80 39540 12 = ₪ = תוש נ-ס פא ! 'קיבלנו משוואת שדה משולבת. חלקה הראשון הוא התאריך והחלק השנל הנתון בש"ח, כששניהם כבר במבנה תואם לשמירה ברשומה בדיסק. המשוואח המשולבת הזאת בשלמותה כתובה (בדוגמא שלפנינו) בתא השמאלי העליון של 1מצעק. המשוואה הזו מחזירה: 1תצפק 3095450 98 כעת, המשפט [(עץ,א,%1ת221)א060ם61 166צעש) *עתיק אל הדיסק את הנתון בש"ח ואת התאריך הנוכחי, שהוא תאריך הקלדת העדכון. סוקוקה הההטההחקחקהוטההטהק הט ה הה טטר ו ידה "ה = == 00000" ה כ 5 שליפה מהדיסק 1 שליפת שדה כרשומה הבה נתאר לעצמנו מנהל בכיר בעת דיון תקציבי. לידו מחשב והוא מבקש לקבל מיד את התקציב המתוכנן ליחידה 2 בסעיף תקציבי 2, את דוח הביצוע, את ההפרש בנעיהם, החריגה מהתקציב והזמן שעבר (בימים ובשבועות) מהרגע שבו עודכנו נתוני התכנון והביצוע לאחרונה. השלב הראשון בכתיבת 0ע628-886ת1 לביצוע מטלה זו דורש חשיבה על המשתמש. לפיכך נתכנן תחילה את המסך כפי שיראה סופית לאחר שיישלפו הנתונים המבוקשים. הרי דוגמא של מסך כזה: תפריט ... 2 41% יחידה ... מפעל ב מספר... 2 סעיף תקציבי מספר... 2 תאריך נוכחי ... 7.12.90 תאריך זמן שעבר עדכון שששששפשששפששם ש"ח אחרון שבועות ימים תכנון ... 1,469 0 .12 3% 239 בש 2 1016 0 8 3 תכנון פחות ביצוע ... (147) ש"ח 1 - % חריגה הדבר הראשון שבולט לעין הוא שחלף זמן רב (8 שבועות) מאז שעודכנו נתוני הביצוע לאחרונה. המנהל *כול מיד לדרוש עדכון, ומשיודיעו לו שהעדכון בוצע ישלוף מחדש את הנתונים. אפשר כמובן גם לבצע עדכון נתונים אוטומטי שוטף, וזאת גם כאשר מקור הנתונים בתוכנת הנהלת חשבונות או מסד נתונים כל שהוא. נלמד את המסך הזה בשלבים. תחילה נלמד כיצד לשלוף נתונים מקובף 1 אל המסך. נמשיך בהצבה של כל אחד במקום המיועד לו על המסך. ולבסוף - נציג את המשוואות להפקת החישובים. 6 נגדיר על מסך הקלט מספר תחומים: יחידה תאריך נוכח* ... 1 תכנון ... ביצוע ... (ציג את מבנה התחומים בצורה סכימתית: עמודות ב-28081 יחידה ... 0 <-- שורות ב-28%81 1 2 3 4 5 ש"ח אחרון | 6 א<אאאאצא מאכממבם 7 8 תפר 26 9 10 ביצוע 4% 11 המקרו לפתרון בעיה זו: (, 61מ11688ע מ6פס)"(1:2ת₪18 %ה18ט) (%1ת818 את18ס)(2 9806)1/ 1 1 (86(2ת1.6* (2-1אא) +1ת6שת6/* (1-1אא) 8%8) +2686 32,786861( (1+192ת8%ַת16>+ (1-1אא) 5 12088 15 ,36862( +61056[ 36862[7 6 )91 ס260810+ 7 (886862" "+,28%681,0,0 פס+ ((1,0,9,6₪18)86881,16,8בפ %טס) ( ( (7, 25, 36841) 6₪16) 6ו81ש6, 9, 1, 41+הע 6טס+ ((8681,0,11,6₪186)36861,0,8ע טטס) (16טס) (6סת)6סשט/ 7 ( ( (7, 9, 36841) 6₪10) סט81ט0, 11, 1, 681 6טפ+ [תענו60ע) 7 [2אא, 582 ע6סמעטת26%) 7 [1אא, 581 עסספטתל0ש) 2 1 1 2 168601 3 16802 12 1ץץץ1+-+ ‏ 61ש8א116עת :6 61טצספע 528682 5תפת 2101 1 161גע (תפט6ס6ע)תהת. 1סא <- מספר המחלקה 1-06 1 <- מספר הסעיף התקציבי - 1..6 2 סדר הפעולות: 1. קריאת נתונים מהדיסק והצבתם בגיליון: 1. הסרת ההגנה מכתיבה בגלליון. 2. קליטת מספר מחלקה ב-1אא. 3 קליטת מספר הסעיף התקציב: ב-2אא. 4. (יקוי האיזורים שיקבלו את הנתונים. 5. פתיחת הקוב לקריאה בלבד: [(ת,8₪61א2116 תססס). 6. הצבת הסמן בדיסק לשליפת ארבעת השדות של הסעיף התקציבי. 3 = 61שת16 הוא אורך הרשומה. 2 = 8%22ת16 הוא מספר התווים בארבעת השדות של כל סעיף תקציבי. ומכאן, (8%22ת6* (2-1אא) +1ת8%ת1-1(*16אא) 05ק56%+ 88 מציב את הסמן בדיסק על התו הראשון של השדה הראשון של הסעיף התקציבי המבוקש ברשומת היחידה המבוקשת. 7. קריאת 2 התוו*ם הבאים מהדיסק והצבתם ב-₪6841 על ידי: [6861ת, 32 2086+ 8. הצבת הסמן בדיסק על התו הראשון בשדה עם שם היחידה: 801+2ח1-1(*16אא) 8) 9. קריאת שם היחידה מהדיסק והצבתו ב-86842 בגיליון: +2086 15 ,%6862( 0. סגירת הקוב>. 1. ביצוע (260816) כדי שהקריאה מהדיסק תראה בגיליון. הצבת כל נתון במקום המיועד לו על המסך: המקרו ‏ [ ... סטשס) הוא ההופכי של הפונקציה 66%מ61. בעוד שהפונקציה הזאת שולפת נתון מתוך תא במטריצה לפי הקואורדינטות שלו | במטריצה,| המקר הזה כותב נתון בתא במטריצה ‏ לפי הקואורדינטות. הצורה הכללית של מקרו זה: [2,ץ, א סשתפת 6טק1 הסבר: כתוב במטריצה ששמה פאַתַּת, בתא הנמצא בקואורדינטות צָ,א (כלומר, ‏ א עמודות *מינה מהעמודה הראשונה משמאל ו-ץ שורות מלמעלה) את הערך של 2. הערך של 2 *כול להיות מחרוזת (בגרשיים כפולים), שם תחום, פונקציה, או שילוב של כל אלה. לפיכך, משנשלפו הנתונים מהדיסק ונכתבו בגיליון, נשתמש במספר משפטי [ ... סטס+ כדי להציב כל נתון למקום המיועד לו על המסך. בעת כתיבת המקרו כותבים את משפט ה-[ ... סגוס+ הראשון, מבצעים עליו 6260686 ומשנים אחר כך רק את ערכי א ו-ץ. בסיום מחזירים את ההגנה על הגיליון: 06שש/ תרגיל: ‏ 1. כתוב מקרו בשם 2 שיפעיל תפריט פקודות למטלות הבאות: 1. שליפת נתון - הפעלת הפיסקה 1 1. 2. כתוב פיסקת מקרו 3 1 שתבצע את המטלה הבאה: נאמר ששלפנו ערכים, שנינו אותם ואנו רוצים לשמור את השינו*ים בדיסק. רמז: הערכים של 1אא ו-2אא כבר *דועים. 3 *ציאה לתוכן העניינים - ₪ 2. כתוב את כל המשוואות שישלימו את המידע המבוקש להקרנה במסך זה. 2 שליפת רצף רשומות במקרים רבים יש צורך לשלוף רשומות ברצף. הבה נבחן את הדוגמא הבאה. הקמנו בלוטוס *שום ששומר נתונים בקובץ ‏ 88011 בגודל אכסופ'. כלומר, | במהלך הפעלת | היישום | מתוספות רשומות | לקוב> בנוהל [8, 061ת711688 תסקס) מבלי שיהיה צורך לייבא את הקוב לשם כך אל הגיליון. הקוב הלך וגדל ואיננו יודעים כמה רשומות *ש בו. עכשיו רוצים לשלוף מתוכו מספר רשומות ברצף, דה*עו, לשלוף אל הגיליון רשומות זו אחר זו, החל מרשומה מסוימת שמספרה *דוע לנו וסיום לאחר מספר מוגדר של רשומות. את הרשומות הנשלפות רוצים להציב במקום כל שהוא בגיליון ולבצע עליהן עבודה כל שהיא. פעולה כזאת נדרשת למשל, כשרוצים ‏ לעבד (תונים מקבוצת רשומות כדי להכין ולהדפיס דוח, או כשרוצים להדפיס מדבקות לחלק מהאוכלוסיה שבקוב% כתובות. לצורך ההסבר נשתמש בדוגמת המדבקות. נתון קוב+ 45011 שברשומותיו שמות וכתובות וזה הוא המבנה שלו: אבן-טובישראל | משרד התיירות ג'ורג' 28 ירושלים 91708 בן-דודמיכל מפעלי ים המלח בע"מ 15 באר שבע 88100 גוגנהייםדניאל ציון חברה לביטוח בע"מ | (שרים 3 ירושלים 95861 המבנה הסכימתי של הרשומה: גוגנהייםדניאל ציון חברה לביטוח בע"מ נשרים 3 ירושלים 1 8 | 7 גודל השדה * 25 תווים 9+ | 12 | 5 | 88 1 מספר תו ראשון > 36 17 5 9 נציג זאת בצורה מסודרת *ותר: טופס מבנה רשומה רשימת כתובות למדבקות שם הקובא: תה8ת.1 528%821 פאתפת:0 אורך רשומה = 78 > 2 + 76 שדה ו ו ו 0 הערות מספר תיאור (צ ,א)6218 ב 0 1 מיקוד 0-5 2 ישוב 2 5 3 רחוב ומספר 9 17 4 שם הארגון 5 36 5 שם: פרטי 7 עס 6 משפחה 8 68 הדבר הבא לעשות הוא להקים את פורמט הפלט. בדוגמא שלנו יהיה זה מבנה הכתובת, בדיוק כפי שתודפס על המדבקה. במדבקה בגודל סטנדרטי של 35א70 מ"מ אפשר להדפיס 8 שורות ב-קט56% של 4 עם שורת רווח בין מדבקה למדבקה. את ההדפסה נבצע כך: (קים %1ת3עע בגיליון על עמודה אחת שרוחבה יהיה כמספר התווים שאפשר להדפיס בשורה אחת במדבקה + 1, נאמר 27+1=28. נפרוס את התחום הזה על פני 8 שורות. 1 0 2 3 0 4 1 5 2 6 1מצעק 3 7 8 8 5 9 6 19 7 11 12 33 פיסקאות המקרו שיבצעו את הדפסת המדבקות: [ע, 8₪61א116ת תסקס) 1 2 [01ק5%0 1168126?+ (621,5532%1,5%6001,1,2(7)3תט00 08ס+)1(7ת8%ח1/16ק56001,5%0 166) [36861 ת26861+ 2 שם הנמען ((8618)36861,68,8" "%1,0,0,6₪18)06881,61,7(8ת1ת2ק סטס+ שם הארגון ((36,25, %1,0,2,62168)36861ת1עתק פטס רחוב ומספר ((%61,0,8,6₪186)36881,17,19ת1עק סטק) יישוב ((%1,0,5,6₪18)86861,5,12ת21ק סטפ) מיקוד ((%1,0,6,6216)86881,0,5ת21ק 6טפ) (תע4()26%0)- [01096) 3 [19טף) (מעטס26ע)%1(7ה1ע22 %ת0₪10)518ט0ת%170₪ה21קפקק/617ת1עקע1ס/ ₪ 1 תוס 0 01" 11 1 8 11 1 --%> (תפטס56)תה1.38 528%5821 ₪5תהת:6. 8₪61א116ע :6 61ט10עע 528%82 ₪5תפת 121 1 1 61נגנק (תע0ס26)תפת. 1סאק חיבור 8020/-8עסת1 זה מפיק ימספר אין סופי של מדבקות בנוהל הבא: שליפת רשומה, הצבתה ב-%1ת1עע במבנה תואם למדבקה, הדפסת המדבקה, דילוג על שורת הרווח בין המדבקות, שליפת הרשומה הבאה וחוזר חלילה. העבודה מסתיימת אוטומטית אחרי הדפסת הכתובת האחרונה. מהירות השליפה והחישוב גבוהה ביותר. ההדפסה מתחילה מיד עם הפעלת המקרו ונמשכת בשטף וללא כל המתנה בין המדבקות. פח הווהה 0 בדוגמא זו נוצר רצף מדבקות שאורכו, במספר מדבקות רצופות, כמספר הכתובות. אפשר לקבל מדבקות בדפים, אשר בכל אחד מהם מספר שורות ומספר עמודות. איך נדפיס מדבקות אלו? את הפתרון נשאיר לתרגיל, אך תחילה לסדר הפעולות של 2: 1. סדר הפעולות עד להפעלת [ ... 02+): 1. פתח את הקוב לקריאה בלבד: [ץע, 21168861 תססס+ 2. חשב את גודל הקוב וכתוב אותו ב-5%001: [01קס5% 1168126?) 3 חשב את מספר הרשומות בקוב> וכתוב את התוצאה ב-50001 1(7ת%ת1/16ק0ס5%001,56 16%) לצורך הדוגמא, נאמר שקיבלנו את המספר 12. 4. בצע את הלולאה: [5%682%1,5%001,1,2[7+3, 1ע662תט00 08ס++ המקר [...902+ שולט במשפט של מקרו שירות, ששמו הוא הארגומנט החמישי של [...ע0ס%?+. משפט שירות זה מופעל פעם אחר פעם, וכל הפעלה נרשמת במונה הפעימות ששמו הוא הארגומנט הראשון של [...עס)). הפעימות נפסקות כאשר מונה הפעימות מראה מספר גדול *ותר מהמספר הרשום בכתובת, שהיא הארגומנט השלישי של [...פס)). בשלב קודם בפרק זה הקמנו לולאה כזאת על :די שימוש ב-[...166). העיקרון דומה, אם כי ב-[...202+ יש *ותר אופציות לשליטה בלולאה, העבודה *ותר אוטומטית והביצוע הרבה *ותר מהיר. כדי "לדעת" מתי לעצור, צריך לעקוב אחרי הביצוע וכאשר דבר מה במהלך הביצוע עונה על קריטריון נתון נפסק הביצוע. לשם כך מגדירים מונה "פעימות". כל אימת שמשפט השירות שהופעל תחת [ ... ע0?+) מסיים ביצוע פעם אחת, משתנה המספר במונה. אפשר לגרום שהמספר במונה יגדל כל פעם ב-1, ב-2, ב-10, או בכל מדרגה שרוצים. בדוגמא שלנו נמצא מונה הפעימות ב-621>תטס6. כותבים את כתובתו של מונה הפעימות כארגומנט הראשון [ ... ,1ע6סתט00 02ס++. את המדרגה בספירת הפעימות כותבים בארגומנט הרביעי. כאן בחרתי לא לכתוב שם תחום בארגומנט, אלא את המדרגה עצמה: .‏ שש כס1). הארגומנט השני מתחיל את מונה הפעימות ממספר כל שהוא. נוכל להתחיל את המונה באפס, ב-1, או במספר אחר כל שהוא. למספר הזה חשיבות רבה. 93 ניתן לכתוב %621תטס60 גם כארגומנט ב-א66םת61, ב-[ ... 6טס+, או בכל מקום אחר. כך אפשר לפתור ללא קושי את הבעיה שהצגנו להדפסת דף המדבקות (עוד נדון בכך בהמשך). בדוגמא הנוכחית נכתוב 0. הארגומנט השלישי מורה מתי* להפסיק. כל זמן שהמספר במונה הפעימות שווה או קטן מהמספר הכתוב בכתובת 56001, מופעל משפט השירות שוב ושוב. כאשר המספר במונה הפעימות גדול *ותר מהמספר ב-5%6001 נפסק הביצוע והמחשב "ממשיך לקרוא" את מלות המקרו שכתובות מימין ל-[ ... ע0ס?) ובאותה שורה 7[1, 508201, %6621תט0ס0 00פ+ לבסוף צריך לכתוב בארגומנט החמישי את הכתובת שבה נמצא משפט השירות: -(%61,50001,1,2ע6621,5%82תט00 ע0ת+ המצב ההתחלתי להפעלת הלולאה הוא, אם כן, מונה הפעימות מאופס, הפסקת ביצוע כאשר המונה יראה 12, המונה :גדל כל פעם ב-1 ומשפט השירות הוא 2. 2. סדר הפעולות של משפט השירות תחת [ ... ע10): 1 קריאת הרשומה הראשונה מהדיסק [36861 ם20801) עם פתיחת הקוב לקריאה מוצב הסמן בדיסק על התו הראשון, תו מספר 0. המלה ם26861 מורה למחשב לשלוף מהדיסק את כל התווים מהתו הנוכחי שעליו מוצב הסמן ועד לסוף הרשומה (המסתיימת שם בתווים ‏ 80 (6םת 11‏ +00 6ם6) ו-028 (םעטס6ע 1886עע08). הארגומנט במשפט זה מורה למחשב להציב את הרשומה שנשפלפה בכתובת 36861 בגלליון. 2. כתיבת שם הנמען בשורה הראשונה של %1ת1עק ((68,8, 80₪18)86861" "%1,0,0,0₪16)36861,61,7(8ת1עק סטק) הפונקציה 6₪184 שולפת מתוך מחרוזת תווים השוכנת בכתובת 1 מספר תווים. הארגומנט הראשון בפונקציה היא הכתובת עם המחרוזת ממנה ישלפו התווים. הארגומנט השני הוא מיקום במחרוזת (0 = התו הראשון משמאל במחרוזת כולה) של התו הראשון בתת-המחרוסת לשליפה - תואם למה שקראנו "מספר התו הראשון בשדה" בטופס מבנה הרשומה. והארגומנט השלישי הוא מספר התוים בתת-המחרוסזת לשליפה - תואם למה שקראנו "גודל השדה". 94 התפוקה של הפונקציה הזאת בדוגמא שלנו, כשהיא משולבת ב [ ... ש6טס) היא ... 1. שליפת השם הפרטי מ-86841. 2. הוספת תו רווח מימין לשם הפרטי. 3 הוספת שם המשפחה מימין לתו הרווח. 4. כתיבת המחרוזת המשולבת הזאת בשורה מספר 0 בעמודה מספר 0 של %61ת1פק. 3. כתיבת שם הארגון בשורה השלישית של 61ת1עת (כדי לקבל במדבקה שורת רווח בין שם הנמען לשם הארגון). ( (36,25, 2,6₪16)86861, 0, %1תדיק שטסץ 4. כתיבת שלוש שורות הכתובת: ((%1,0,4,6₪10)86861,17,19מ21תע סטפ] ((618)86861,5,12, 1,0,5+ת1עע סטק) [(%1,0,6,6₪16)36861,0,5ת1תע2 6+ 5. הקרנת התפוקות ב-%1ת21ע (ע"י *) והפעלת משפט שירות להדפסה [מעטס26) [5) 7 [תע%1[7)2600ת1עק 18% 10)0טס0תמ6170ת1עקתסק/210%17קע1ע/ 4 כאן מסתיימת הדפסת המדבקה והלוטוס חוזר ומבצע אותן פעולות על רשומת הנמען השני. הקוב בדיסק עדיין פתוח. הפעולה הקודמת של ת6801ע2 הציבה את הסמן בדיסק על התו הראשון של הרשומה הבאה ולכן *כולה השליפה להמשך ברצף, רשומה אחר רשומה עד ה"מעצור". כשמונה הפעימות יראה 11, תהיה זו המדבקה האחרונה להדפסה מכיון שהתחלנו מאפס. ב-56001, כזכור, כתוב 12 (מספר הרשומות בקובא) ולכן כשהמונה יראה 12 תיפסק ההדפסה והקוב> יסגר. תרגיל: | כתוב 8-08020עפת1 להדפסת מדבקות בדפים בני 8 שורות ושלושה טורים של מדבקות. רמז: | (6621-1(/8םט6))00ם61 (8, (6621-1תט00) ) 6₪068 ואפשר גם לשלב [ ... ע0?+ ב-[ ... ע0ס?+ 55 6. כתיבה אל הדיסק - שילוב [ ... זסו) עם 666% את הקטע הבא בחרתי לצרף בסוף פרק זה, מכיון שיש כאן המשכיות של דרך חשיבה וסגירת מעגל מסוים של שילובי פונקציות, מקרו, עבודה בגיליוו ותקשורת 45011 עם הדיסק. לפני זמן מה כתבתי יישום לוטוס עבור האוניברסיטה העברית בירושלים - המרכז ללימודי חוצ. בזמןו הרשמת תלמידים לתכנית "שישי באוניברסיטה" נקלטו הפרטים שלהם באמצעות מסך קלט שהוקם בגיליון לוטוס ונשמרו בקובצי 85011. אחרי שנקלטו פרטי התלמידים, וגם במהלך הקליטה, צריך להנפיק דוח מודפס המראה את שיבו% התלמידים לקורטים השונים. במהלך ביצוע הצבת התלמידים לקורסים השונים נפתח לכל קורס, באופן אוטומטי, קובף 85011 ובו שני נתונים לכל תלמיד ששובף אליו: מספר ת"ז ומספר רשומה בקוב+ התלמידים לאותו קורס. בעת הכנת הדוח לקורס נשלפת תחילה רשימת התלמידים ששובצו בו. רשימה זו משמשת לשליפת שאר נתוני התלמיד מכתובות שונות בדיסק לשם עיבודס והדפסת הדוח המלא. מערך היישום כולו נבנה בצורה מודולרית, כמו "לגו", המאפשרת להוטיף בקלות יחסית "משבצות" תוכנה. משבצת אחת כזאת היא מסך לדרישת דיווח על רשימה של קורסים. דהיינו, מקוסם להקלדת מספרי קורסים שרוצים לקבל שיבוצ עבורם בלבד והדפסתם. הדוגמא הבאה היא חלק ממשבצת התוכנה הזאת הקשורה לנושאים שעסקנו בהם עד עתה. הקמת היישום מתחילה מהשאלה: "מה רוצה המשתמש לקבל?". ובכן, המשתמש רוצה להקיש מספר של קורס בודד, או מספר קורסים, ללחוץ על כפתור ו"שידפיס לי את השיבו לקורסים שביקשתי". נתחיל בהכנה של אזור להקלדת מספרי הקורסים: 66 ו 3 כ 16 ב א להקשת מספרי הקורסים להדפסה = ₪ = תש [נ-סס ס 7. 07 608%827ת2/ -----4 - ו = ₪ = תאו 0-1 פ 9 סש פ פס ס טס סט פס ספ 9 פ ס ספ ספ ס ס יס םס 9 ספ ס ס יס סט ס פס םס פ ס פס ס ספ םס 0 0 0 0 0 0 0 0 9 0 סש פ פס ס ס פס פס 0 םס = בתחום המיועד להקשת מספרי הקורסים נכין שישה טורים של 0, עשר שורות בכל טור. כלומר, אפשר לבקש הדפסת שיבוצ לקורס אחד ועד רשימה של שישים קורסים. כדי שתכנית ההדפסה.: תדע אחר כך איזה קורסים להדפיס, נרשום בקוב% 1 את מספרי הקורסים שהוקשו אל הלוח שלמעלה. אבל איננו רוצים לרשום אפסים בקוב הזה. דהיינו, יש צורך לסרוק את כל 60 התאים ב-28%82 ולכתוב אל הקובצ רק אם המספר איננו אפס. אפשר לבצע מטלה זו במספר דרכים. נדגים כאן אחת מהן: (₪,211608₪62 תסקס) 1 [61096+ [8, 21168262 תסקס) (3 תסת8עס)"(6622,5%82%2,56002,5%622,2ת008 ע0ס?+ (מעטס82="0"()26א46ה1 %2(7)18ת1עת 060816) 2 (%2ת221 ת1061עש) (תעטט6ע) (01096+ 3 [טצטף1 / (0, ( (10, (622-1>תטס0) )6₪08, (10/ (6622-1>תטסס) )6ת61, 28%82) א66ת61)₪ת1ע656 4 6%2ד 2( (2א86ת1)ת26ת5-616," ")060686 ----------------67 2מנפק 2210618001210011622+ 62שהא116ק :6 61ט10עע 528581 פ₪תפת 1פנכ 2 718061 1162ע (תעטס6ע)תאת. 2סאם 02 1 608062 0 55002 1 2 תרגיל: | כתוב 0ע%8062-8ע%5ם1 זה בגיליון לוטוס והפעל אותו ב-5080. ראה כיצד מספרי הקורסים משתנים ב-%2ת1עק. פרק 6 ניהול קבצים ואבטחת מידע בפרקים הקודמים למדנו שיטות ודרכי חשיבה לשימוש מתקדם בלוטוס. בפרק הנוכחי ניישם את השיטות הללו בנושאים הקשורים בניהול קבצים ובאבטחת מידע. כפי שנעשה בפרקים הקודמים, היישומים שיודגמו כאן פותחו רק עד לשלב הדרוש לצורך הסברת הנושא. הקורא וכל להכניס שיפורים רבים בדוגמאות הללו תוך הפעלת העקרונות שנלמדו. חלק מהשיפורים *וצעו לקורא בתרגילים במהלך ההסברים. 41 לוח משולב - נתונים ונוסחאות ביישומים רבים נשתמש בגיליון לוטוס המכיל: כותרות לעמודות. כותרות לשורות. נתונים הנקלטים ו/או מעודכנים על ידי הקלדה ישירה. נוסחאות שונות כגון סכומים, ממוצעים, תאריכים והתניות. ₪ ₪ ₪ = את הגיליון הזה שומר בדרך כלל המשתמש בשלמותו ע"י 8?/ ושולף אותו ע"י 5?/. לעתים קרובות "מעמיסות" הנוסחאות את הגיליון עד למצבים שמניבים את ההודעה 11ג+ עעסמפם. כבר התייחסנו בפרקים הקודמים להבדלים בין מבנה לוח פתוח לבין מבנה לוח סגור. כל הדוגמאות בפרק זה יהיו במבנה לוח פתוח, כמו בלוח מספר 1: לוח מספר 1 תקציבי הרשויות לפי סעיף תקציבי - תכנון לעומת ביצוע + % : תכנון פחות ביצוע ב-% מתכנון ... - חריגה ‏ + עודף * חריגה מתקציב תקציבי הרשויות באלפי ש"ח סה"כ סעיף א סעיף ב מפם ששבבצבבפאאטמבפבםם 5םםםםב5פפפבבבבטבבם בבבבבםםםבבבבבבבבב שם סוג תכנון ביצוע + ל תכנון ביצוע 5 % תכנון ביצוע ‏ + % שפפפשששששששם ששפם בסמבטבש עפשםם בפשפשם ששםשם שפפםם שמסמש שששאם =פשששותפפפשם * בני גד ממ 771 873 | 13.2- 578 623 8. 5 גנים מא 1635 15484 6.1 18 1123 -0. 2.1 + תמר ממ 47 55 0- 35 55 6- 12 10 0-7 * אבן פינה | מא 7719 8962 16.1- 5789 6789 3. 2.6 דור ממ 1039 962 7.%‏ 779 750 7. 5 41 שמירה במכנה ואש בדוגמא שבלוח מספר 1 מודגשים התווים שניתנים לשינוי על ידי הקלדה, כל השאר מופקים על :די משוואות. מבט חטוף בלוח מגלה שלמעשה המשוואות בכל השורות בעמודה נתונה זהות לגמרי. אין צורך לשמור את הקובצ עם כל הנוסחאות, מכיון ששמירה כזו מעמיסה את הדיסק בנתונים וערכים מיותרים. היא גם גורמת להאטה משמעותית בזמן שליפת הקוב ומקטינה את כמות הנתונים שאפשר לנהל בקובצ 1>ש אחד. מספר דרכים להתגבר על בעיה זו: 1 שמור רק את הנוסחה הראשונה בכל עמודה. 2. שמור רק את הנוסחה הראשונה בכל עמודה - מחוצ ללוח. 3 שמור רק את הנוסחה הראשונה בכל עמודה - בתוך משפט מקרו. עם שליפת הג*ליון, יועתקו הנוסחאות על ידי פיסקת מקרו 0. נדגים את השיטה השנייה. בשיטה זו נוסיף ללוח שלמעלה הגדרות תחומים כפי שנראה בתרשים הבא. לוח מספר 1 תקציבי הרשויות לפי סעיף תקציבי - תכנון לעומת ביצוע + 4 : תכנון פחות ביצוע ב-% מתכנון ... - חריגה | + עודף * הריגה מתקציב תקציבי הרשויות באלפי ש"ח רשות סה"כ סעיף א סעיף ב שם סוג תכנון ביצוע + % תכנון ביצוע + % תכנון ביצוע ‏ + א בני גד ממ 8 623 3 250 גנים מא 1 1123 1 4821 תמר ממ 35 5 12 10 אבן פינה | מא 9 6789 0 2173 דור ממ 9 7509 0 212 2% 3 2 211 התחום הראשון, 8%81כ2, נמצא בדוגמא זו בעמודה 8 ומפיק את ההפרש באחוזים בין התכנון לבין הביצוע לכל רשות לגבי סעיף תקציבי ב. נבצע את הפעולות הבאות: 1. נציב את הסמן בתא ריק כלשהו בשורה הראשונה של איזור תפריטי הפקודות ונבצע 6177ת101סת2/ 2. נציב את הסמן בשורה הראשונה של 8%81כ 3 נכתוב את המשוואה במלואה: ההבדל באחוזים בין התכנון והביצוע, סעיף ב ---> 0 (510-610) 4. (בצע 617ם6711/ 5 (בצע 67ע/ התחום השני, 28682, נמצא בעמודה 2 ומפיק את ההפרש באחוזים בין התכנון לבין הביצוע לכל רשות לגבי סעיף תקציבי א. 11 נבצע לשם כך את הפעולות הבאות: 1 .5 נציב את הסמן בתא ריק בשורה השניה של איזור תפריטי הפקודות מיד מתחת ל 161 ונבצע 6277ת1סת2/ נציב את הסמן בשורה הראשונה של 8682 נכתוב את המשוואה במלואה: ההבדל באחוזים בין התכנון והביצוע, סעיף א ---> 0 (610-210) נבצע 0711₪627/ נבצע 67ע/ התחום השלישי, 28%83, משתרע על פני שלוש עמודות: 1, 41, 6. בעמודה 1 כתובה משוואה המפיקה את סה"כ התכנון בש"ח לכל הסעיפים התקציביים; בעמודה 8 - ישנו סה"כ ביצוע לכל הסעיפים ובעמודה ₪6 - ההפרש בניהם באחוזים. כלומר, יש שלוש משוואות בכל שורה ב-בּףּ6ַכ. נבצע את הפעולות הבאות: 15 1 נציב את הסמן בתא ריק בשורה השלישית של יזור תפרלטי הפקודות, מתחת ל-162, ונבצע 7 637ם11סתע/ נציב את הסמן בשורה הראשונה של 28%83, בעמודה 6 נכתוב את המשוואה במלואה: ההפרש באחוזים בין התכנון והביצוע, סה"כ 2 0 (10-110ת) נזיז את הסמן עמודה אחת ימינה, אל 8 ונכתוב את המשוואה עבור סה"כ בש"ח, ביצוע לכל הסעיפים: 6 (610. 010) 05 נזיז את הסמן עמודה אחת ימינה, אל 1 ונכתוב את המשוואה סה"כ בש"ח, תכנון לכל הסעיפים: כ -> (610.210) םגו5 נחזיר את הסמן לפינה השמאלית העליונה של 28%83 ונבצע: 7+ [2 0+0/ נבצע 2[7 ע+6/ ולבסוף, נבצע 6()2[7ת6+ 163 1סתע/ התחום הרביעי, 28%8%, מפיק י*" לציון חריגה מתקציב הרשות. המשוואה מחזירה * כשיש חריגה מהתקציב: ---> ("", "%",817)810%0 המשוואה מופעלת ב-א4טס. נבצע נוהל 8684ת11 כפי שביצענו עבור שלושת המשוואות הקודמות. הסיבה לשמירת משוואות אלו בשורות הראשונות של הגיליון היא הגנה עליהן. כך אפשר למנוע שיבושים במשוואות עקב הזזת משטחים בגיליון ו/או שינויים מבניים אחרים. עכשיו נכלול בפיסקת המקרו 0 את המשפט הבא: מש -28684-61306%/ 6138637286837/ 62786827ה614/ 086817 61ה013 /4ש / הערה: בלוחות מעורבים, המכילים נתונים ונוסחאות, ‏ יש לכלול כנוהל תיקני את 6סשש/ כדי להגן על הנוסחאות מפני מחיקה על :די הקלדה עליהן. פיסקת המקרו לשמירת הלוח במבנה 1>ש תכיל את המשפט הבא: 7 (28688 %מ518) [28683 %ת28%82()0[8 %ת8%81()018ע 01% ) סש / הנוהל שהוסבר מקטין בצורה משמעותית את גודל הקוב שנשמר ומאפשר הגדלה משמעותית במספר הרשומות ו/או משוואות שאפשר לכלול בו לפנל התרעת 11ש? עמסמסם. תפוקת המשוואות נדרשת ממש לפני הדפסת הדוח, או כשרוצים לראות את התוצאה הסופית על המסך. לכן, ‏ את משפט המקרו שמייצר את תפוקת המשוואות (פעיל רק כאשר זקוקים לה, ובתוספת נוהל טע/. -8682708682פט2/ 01.1862708%827/ 6817285817 העט / 7286817 011061 / סמו / 7/6 הטע / 7286807 61064/ 286837 8>837פטע/ "1106378683 / הפעלת נוהל טע/ בהפקת תוצר משוואות מגדילה באופן משמעותי את מסבפר המשוואות שאפשר להפעיל בגיליון במסגרת מגבלת זיכרון. למדנו עתה נוהל להפקת משוואות תחום אחר תחום. אפשר לבצע את הנוהל הזה בתוך תחום נתון, מלמעלה למטה. בעיקרון, נחלק את התחום לשגל חלקים, חלקו העליון וכל השאר. נעתיק תחילה את המשוואות אל החלק העליון ונבצע טש/. אחר כך נעתיק אותן אל החלק השנל ונבצע טע/. יש דרכים רבות לבצע פעולה זו. נדגים אחת מהן. 13 (ניח שיש לוח ובו רצף שורות של נתונים מוקלדים שהגדרנו על :די 12, גם נניח שמול כל שורת נתונים כזאת צריכה להיות שורה שנמשכת על פני חמש עמודות, משוואה בכל עמודה. את תחום המשוואות הגדרנו בשם 1 וביצענו, כפי שלמדנו קודם, נוהל 61ת11. פיסקת המקרו שתניב את התפוקה המבוקשת תהיה: (2 6[)6ם28%681728%0817+6טע2(7/2/ (065)288582פ6 617.)6ת0[245817/6001ט0ש+ 17 6()2([)31[)1ת617.)6ת001/ כאשר 31 הוא משפט השירות האוניברסלי: (םעט60ת) (ט) [6ם2[)6 8+[6מ6+ גם אם ננהג בנוהל זה, ייתכן שגם הוא לא *ספיק ו"הזיכרון *יגמר" לפנ שכל הפעולות התבצעו. במקרים רבים ניסוי קצר פותר את הבעיה: בודקים בכמה שלבים צריך לבצע טע/ כדי שאפשר :היה להפעיל את המשוואות כולן במסגרת הזיכרון הנתון. אחר כך מבצעים זאת במספר שלבים. בדרך כלל (אך לא תמיד) מספיק לבצע זאת בשלושה שלבים: על החצי הראשון של השורות, על החצי הראשון מתוך החצי שנותר ועל כל מה שנשאר. אולם, גם נוהל זה מוגבל, בסופו של דבר, בגודל הג*ליון ובגודל הזיכרון. כדי לבצע ע'בודים על כמות אין סופית של נתונים, יש להקים את היישום על פי הנוהלים והעקרונות שבפרק 5. 2 שמירה כמכנה !501 לשמירת קבצים במבנה 45011 מספר יתרונות. במובן מסוים אפשר להתייחס אל גיליון לוטוס כאל קובף המחזיק תוכנה. לצורך המשך הדיון נגדיר תוכנה: "כל מה שיש בגיליון ₪%1 פרט לנתונים". תוכנה במבנה של סעס8א-8עטם1 היא מערך פיסקאות מקרו קומפקטי ויעיל והקובצ שמחזיק אותה *היה בדרך כלל קטן מאוד (אפשר לבצע מספר רב ביותר של מטלות ב סעס8א-8ע%5ת1 שמחזיק ט% 10-15). ביישומים רבים אפשר לחלק מטלות בין מספר קובצי 8620/-628ת1 ולהפעילם אוטומטית. דהיינו, כשקוב> ‏ 1א%ש.1 מסיים את ביצועיו מתבצע ‏ 22.0%17?/ הקוב שנשלף מכיל מקרו 6 ולפיכך מתחיל לפעול מיד עם טעינתו. כך נוצרת שרשרת של קובצי לוטוס. בשרשרת כזאת אפשר לשלב מערכת קובצי תוכן ענינים (ראה פרק מספר 1) לאינטראקציה בין האדם והמחשב. כאשר במערךך כזה נשמרים הנתונים במבנה 25011 היישום כולו מהיר ויעיל. לכל 0ע%28-080ת1 יש גישה אל כל הנתונים לשליפה, לעיבוד ולשמירה וקובצי התוכנה קטנים ומהירים. חלוקת המטלות להפעלה בשרשרת 14 מאפשרת ביצוע שינויים בתוכנה בלי לשבש חלקי תוכנה אחרים. בתוך הקובצ עצמו נותן השילוב במקרו של פקודות התפריט ופונקציות המחרוזת הפעלה מהירה במבחר מגוון של מטלות. בפרק זה נתייחס לניהול התוך גיליוני בלבד של שילוב 45011 בגיליון - ובעיקר בנוהל +2/ ו-1?/. נוהלי השמירה והשליפה מקובצי 459011 פשוטים למדי. כל הדרוש הוא הגדרת שלושה משטחים (מטריצות) נוספים בלוח מספר 1, שיראה עכשיו (בטרס שליפה) כך: לוח מספר 1 תקציבי הרשויות לפי סעיף תקציבי - תכנון לעומת ביצוע = % : תכנון פחות ביצוע ב-% מתכנון ... - הריגה + עודף * חריגה מתקציב תקציבי הרשויות באלפי ש"ח -₪ פששם הרשות 8 סעיף א סעיף ב בבפבפפבבפמבבבםבם 5ב222םםבםםם 2ב 22ב שם סוג תכנון ביצוע + % תכנון ביצוע > % תכנון ביצוע ‏ + % בפשפשטפשטפםם בשש שפבמם פפצשם בבםםם בפבבםם פבשבם פםם 181 לשמירת הנתוניסם נכתוב את פיסקת המקרו הבאה;: [ש, 7116861 מ806+006/ +61086[ טס 61ת1ת תת 2116%8261) [29%1686/ [ש, 211688862 מססס+ +61056[ שסטסתתס 62ת1עקעת (2116%8₪62) [22%)686/ [₪, 7116/8863 תססס+ +61056[ %1[7ת818 %ת0)018שסנוסתשס ל 7 [116%8₪63ע) (656)א9/ [016ם+ בפיסקה זו בולטת העובדה שהנתונים לא גשמרים בקובף אחד. נוהל זה מכין אותנו לקראת הדיון במידור פונקציונלי בהמשכו של פרק זה. 15 כדי לשלוף את הנתונים נכתוב את פיסקת המקרו: בש 7 [8₪61א116%ת) (656)א%ם91/ %617ת1עק (₪060+ 7 [116%862ת) (686)את1?/ %27ת1עק (060ש+ / . ּ 7 [8₪63א116ת) [215%)686/ %37ת1עק (060ש+ "28683 637ת61.1/ 286827 015627 / 18085817 ] 0.1617 / סש [1%ו9800)0/ וכפי שלמדנו בפרק 3, נפעיל את הגיליון ע"י תפריט פקודות. 2. מידור פונקציונלי אפשר לאמר שכל משתמש לוטוס הוא, בו-זמנית, מערכת אוטונומית שמבצעת מטלות שונות ותת-מערכת של מערכת-על. נתייחס כאן אל המשתמש כמערכת אוטונומית. ובדוגמא שלנו הוא נדרש לבצע פעולות שונות על מכלולים מתוך מערך נתונים עם מבנה פשוט יחסית: 1. סעיף תקציבי מספר א [א,...,1,2] 2. סטטוס תקציבי 1 תפנון 2. ביצוע 3. רשו*ות מקומיות לפי רשימה נתונה את כל המידע הזה אפשר לארגן במדורים בהתאמה לצרכי המשתמש. שמירת נתונים בקוב 1 נותנת מידור מינימלי, כי כאשר צריך לפעול על נתון כל שהוא, או על מכלול מתוך כלל הנתונים, הכל נמצא בכתובת אחת והנגישות הינה דרך קוב 1 אחד בלבד. שמירת הנתונים במבנה 45011 היא תחילתו של תהליך המידור הפונקציונלי. במידור (תונים פונקציונלי תתבצע שמירת (תונים במבנה מודולרי. מטריצות נתונ*ם *וגדרו על פי צורכי המשתמש בזמן הנוכחי ולפי תחזית הצרכים בעתיד אם *חידת המידע הקטנה ביותר היא עמודת נתונים אחת וכל שורה בעמודה זו מתייחסת לרשות מקומית אחרת, ‏ אזי מידור. מינימלי מקבלים כאשר כל הנתונים בלוח נשמרים בכתובת אחת. מידור מקסימלי יהיה כאשר נשמור כל עמודה בכתובת נפרדת (קוב+ 45011). מידור אופטימלי מקבלים כאשר מחלקים את המידע בכתובות לפי צורכי השימוש בו. לשם הדגמה נניח מערך מטריצות נתונים שמור בקובצי 45011. 106 מבנה הלוח בגיליון לוטוס סעיף א בששכשפבשטשבטבאשצבשפםםםבם תכנון ביצוע 5 ל שפפפפפפטם מששששצםבם הלוח מאורגן כך שאפשר להוסיף בו סעיפים תקציביים כפי הצורך. כל עמודת נתונים מוגדרת בשם תחום משלה, כאשר שם התחום מורכב מהמלה %>מנעץ ומשני אינדקסים. האינדקס הראשון משמאל מסמל את הסטטוס התקציבי (1=תכנון, 2=ביצוע) והאינדקס השני מסמל את הסעיף התקציבי (החל ב-1 ועד א). הנתונים הללו מאוחסנים בקובצי 450611 בדיסק במבנה תואם את המבנה בגיליון. מיפוי ל-0ע6%8-786 שם הקובף: תפת. א1 72858 פותפת:6 1 ות 5020106 7 5תפת:0 ₪5 7 פ נתונים ב-45011 . 1 858 7-7 6% נתונים ב-45011 ... % 2 858 17 כתובת ב-0ע%28-1362ת1 :6 61ט1עע 7 ₪5תפת 191 | 2858 11פסט5 1אאא""+ 1161ק מספר הסעיף התקציב: 1 811806 1610 ---> 1אא סטטוס הנתונים (1 או 2) 18061 66ת8118 1626 ---> בא [תעמ266)תהת. 1סאם 1------ ץנ 22106100121+ 8₪61א116ק כאשר ‏ 1=2אא ‏ ו- ‏ ₪₪1=1א עבור "נתוני תכנון| בסעיף ב'" נקבל ב-116%8(61ע: [תעטס26)ת12.38 72868 פ₪מהת:0 תרגיל:| כתוב פיסקת מקרו לשמירת הנתונים של א סעיפים תקציביים המופעל על ידי [ ... 0ס?+ ואשר בו 1אא ו-%1* הם פונקציות של 6621תט0ס6 (מונה הפעימות של [ ... ש0ס*+)). כתוב פיסקת מקרו כנ"ל לשליפת הנתונים ושלב בה נוהל 1161. 3. מערכת אינטגרטיבית מידור נתונים פונקציונלי מאפשר חלוקת מטלות אופטימלית בין משתמשי לוטוס שונים במערכת, ובאותו זמן גם הקבצת מטלות אל משתמש אחד. ותוך כדי כך אפשר להעניק למשתמשים שונים הרשאות שונות בקבצים שונים. למשל, ניתן להעניק הרשאה לקריאה בלבד, הרשאה לעדכון בלבד, או הרשאה לקריאה וכתיבה. כך מתאפשרת זרימה קבועה של נתונים במאגר וחלוקת עבודה יעילה בקליטת הנתונים ועדכונם על ידי העובדים במערכת. כתוצאה מכך מקבל ההחלטות איננו חייב להיות גם זה שקולט את הנתונים, אלא אם רצונו בכך. מכיון שיש לו זכויות קריאה בכל המערכת כאשר הוא יבקש נתונים, ‏ הם *הי*ו מעודכנים בזמן אמיתי ויופיעו על המסך, או המדפסת, במהירות רבה ביותר. לכאורה נראה, כי המידור הפונקציונלי של נתונים שולל את האוטונומיה של המשתמש ואת אי תלותו באחרים, אך לא כך הוא הדבר. התרשים הבא מדגים כיצד, בסביבה הנשלטת על :די לוטוס, אפשר ליהנות מיתרונות המערכת יחד עם שמירה על אוטונומיה מירבית. או, במלים אחרות, מה שנכנה בהמשך - מערכת אינטגרטיבית. 18 מערכת אינטגרטיבית נתונ* תכנון סעיפים א,..,1 השוואות תכנון. לעומת ביצוע מאגר כללי סעיפים א,..,1 נתוני ביצוע סעיפים א,..,1 מאגר פרטי עיבודים מיוחדים ה-1₪%28-08620 הבא מתייחס למבנה של לוח 1 ומדגים את הטכניקה לשימוש במערכת אינטגרטיבית באופן אוטומטי. פיסקאות המקרו כולן מבוססות על חומר שנלמד בפרקים הקודמים. תפריט פקודות המסתעף אל תפריט נוסף נותן למפעיל בחירה בין המאגר הפרטי לבין המאגר הכללי, ובאותה עת, שליטה אוטומטית בשליפת ושמירת נתונים. שלוף 7 מסך. 5 צא 3 שמור 1 1טם0 (2 תסתהעס) [2טת6 6811טת₪0) (ם הסתהעפ) (ם₪ הסתהתס) (1 2 הסתהעט) עיבודים מיוחדים 2 מהמאגר הכללי 1 2טת6 (3 2 תסתעס) [2 2 בסתפעס) (1[)0016טת%6 6811טמ₪6) 2 (16ט6) "ות5%6?/ [73) ם 17 17אא [2060) [6מסת) 7 (%1ת818 את018) (%11א %ת00)018שש/ [73+ ס [טצטף) (78+ [60)0016ש/9806/ 8 7 "086817א617ת011/ 7 ("683פ", 191 6 92א)6ספט/ (73) 1 2 [ש, 21168861 חסקס) [61096+ 0 61ת1תתעע (2116%8261) (6506)א29/ [ש, 711688862 תסכס) [01086) (016ף) [7)78 (28%681א %ת62700000080)018ת1עקתת. (8₪62א116ת) (656)א2/ (680)א216/ 617ה1ע [8060) " ["4+82", ₪121 166) (1ת818 %ת18ס)8פשי/ (73)/ 2/2 [656)א216/ 37 [060ש) 7 (8862א2116) (650)א210%/ 627ה1עת (060ש )7 (8₪61א2116) 27 17/2008%81 1728681 8681כטע2/ 280817 627ה8263(7/0806/601א116ק) "[2את818 את11()018אא את12086817)018ע37/2 3728681 1ַס288ט27/2 ב86 (10טף) (606)78ש/ 9991058117/ [1 1 8050[28581) [6מסת+ (7/215%)686+%ה1עת (060ש)"("683ה2", 151 %)]) (%1ה818 %ת06)018שש/ (73) 3 2 (216%)680/ 806037 ) 7 (8862א2116) (215%)656/ 627ח1עת (050ש) 7 (2+16%8861) 7 נגסְגְתטע/17 1728681 08681ט2/ 285817 627ת806/011ש/ 8₪63(7א2116) 7 [2אַת818 -את18ם) [3%11 %ת18) 21228%5817/ 37 1 28081ט27/20 2868 (601%) (806)78ש/ 2291068117/ (37)1/0 050(28681ש) (סמסם) [6גוף) (56601) (6)784ספש/ 101[7ש5, 11אא 1) 1 2א (םע2600+ [ תע 6 ) ( 2286011 ) (6005011מ1ש) (61682 %/610ת28) 73 [תפטס 6 ) (ח8260+) (ת60₪50ת1ש) (מס61ת )8‏ 784 [תעטל1[)56 ק66מ)(2 660כ)(1 2()0660 860 86601 תכנון - סעיפים א, ב "(תע00ס26)ת1.38 7"801218"100₪ 05תה6:3"+ 8261א116ק תכנון - סעיפים א, ב "(תע600ע)ת2.38 18"106₪ע7"821 05תהת6:3"+ 8262א116ק שמות הרשויות [תענס6ע)ת1.38 65מ8א728681 05מפת:6 863א116ק 1גנסם מה לשמור ? 56101 בהמשך יוסבר המיפוי של 8600/-8ע%ת1 זה. אבל תחילה מומל לפתור את התרגילים הבאים. תרגיל: | 1. בין פיסקה 2 2 לבין פיסקה 3 2 יש הבדל אחד בלבד. - מהו ההבדל? - מהי הסיבה להבדל? - צמצם את שתי הפיסקאות הללו לפיסקה אחת. 2. שחזר את המיפו* ל-6%68-88620. 3 התרשים הבא מראה את מבנה הלוח ואת הגדרת התחומים בו. כתוב את שתי משוואות הרשומה. 4. השלם את המשוואות בלוח וב-61ת1.1 ו-1.162. 5. הכן את רשימת סדר הפעולות. 6. הכן לוח הקמת 61 ו-2גותסו. 7. הכן טופס מבנה רשומה לכל אחד משלושת הקבצים. לוח מספר 1 תקציבי הרשויות לפי סעיף תקציבי - תכנון לעומת ביצוע 1אא + % : תכנון פחות ביצוע ב-% מתכנון ... - חריגה + עודף * חריגה מתקציב תקציבי הרשויות באלפי ש"ח ששפטבפפבפבשבפבבבבבבבבבבבבבבטבטבבבבבבבבבבבבטבבבבבבבםבםב הרשות סה"כ סעיף א סעיף ב שבבבפטבבבבבבבבבם בבבפבפבבבבבבבבטכם בבבשבבבבבבטבבבבבם כבבבבטבבבבבבפבבםם שם סוג תכנון ביצוע ‏ + % תכנון ביצוע > % תכנון ביצוע ‏ > א בפבבפבפבבבבבם כפם בשפבב בבפבם בבבבם בפבבם בפבבם בבבבם שפבבבם בבבבם בבבםב 1אא נצ ב ב מימין ללוח מוגדרים התחומים הבאים: 4. מידור מאבטת לנתונים, כמו למשאבים אחרים של הארגון, יש ערך. כשניגשים לאבטח דבר ערך מקימים מערך אבטחה בהתאם למחיר של אובדן אותו דבר ערך. אפשר להחביא נתונים "מתחת למזרון", | אפשר לשמרם מאחרי מנעול ובריח (מלת מפתח - 6ע0ש889ק) ואפשר להציב שומרים ומערכות אזעקה סביבם. דרך נוספת לאבטחת (תונים היא על *די מידור. למעשה, המידור הפונקציונלי המירבי הוא שלב ראשון באבטחת מידע. את הקבצים אפשר לפזר במקומות שונים בדיסק ועל דיסקטים. מכיון שכל עמודה נמצאת בקובצ נפרד ללא כותרות אין משמעות לנתונים, אלא עד שמקבצים אותם אל הגיליון המפעיל. כך הופך הגיליון המפעיל למפתח לפענוח מאגר המידע. בעבודה עם מלת המפתח יכולה לחול תקלה, כי אפשר לשכוח אותה. נחפש על כן דרכים נוספות ופשוטות לאבטחה מפני הפעלה לא חוקית של הגלליון. נאמר שיש זכויות קריאת נתונים ל"מורשי הפעלה" מסוימים. נקים קוב% 011 שבו :היו מספרי תעודות הזהות של המורשים הללו. את משפט: המקרו של הגיליון המפעיל נשמור בקובץ ₪15 תחת מלת מפתה עם הרשאת כניסה למתכנת בלבד. סדר הפעולות של הכניסה לגיליון המפעיל יהיה כדלקמן: במקרו 0: 1. כתוב לקוב 1 את התאריך והשעה של הפעלת הגיליון. 2. דרוש מספר תעודת זהות. 5 בדוק שהמספר קיים ברשימת מורשי הפעלה. 4. רשום את המספר ליד התאריך והשעה של הפעלת הגלליון. 5 אם מורשה הפעלה - תן זכויות לפי המוגדר לאותו מורשה. 6. אם איננו מורשה - בצע פעולות אזעקה. 7 כתוב תאריך ושעת *ציאה מהקוב. המקרו הבא מציג נוהל לאבטחת מידע על ידי רשימת מורשי הפעלה. המקרו ייכתב ללא כל הסברים, מכיון שכל מרכיביו הוסברו כבר והקורא :כול, כתרגיל, להקים 1608-8620 ו-0ע628-8062מ1 ללא קושי. ניתן לבצע במקרו זה שיפורים רבים. הקורא המעוניין יפיק תועלת מניתוח אפשרויות השיפור ומביצוען. שלוף 7 מסך 5 צא 3 שמור 1 | 1טתסא [2 2 הסתהעס) (פ בתסתהעס) [₪ הסתהעס) (1 2 מסתהעס) [001%) [1טת116 0811טת₪6+ 2 (16ש6) "נות95%6/ [73+ ם (0₪6ת)28,0708%817/ 28%81(7 %ת018) (11אא %ת6)018סשא/ (73+ ס (016ף) [74) 110%8117ע/ סש/ 286817 [8050+ [16גו)60/ 06שש/ 8 "["8683כ", 121 1% 3(/20 1()2 2א)73[/9806+ 2.1 [ש, 116861 תסס0ס+ [61096+ ומס 61ת1עעקת (261מ2116%8) [656+א29/ (, 8₪62א116%ע תסקס+ [01086) תס %27ת1עקעע (116%862ת) (686)א22%/ (, 63מ116%8ע תסקס+ [61096+ וס 63ת+כעת " (63ת8א2116) (656+א9/ [ט, 67הםא116/ הסקס+"("1,"08600ת1ת 166+ [61086+ תטמס 64ת1עקת (2116%88268) (686+א1/ [ט, 65מ116%8ע תסקס+ [61086+ שטסמס ל6ת1פתתעת [ ל6מ8א116ת) (686)א29/ [ש, 11688066 מ0ק0ס+ [61086+ 17, 5 /ףָשַסטסחמס 667ת1מ קת " ( 11688₪66) (680)%+/ (6016) [06)78ש/ - ("28693", 0121 166) (2011 6ת9806)018/ (%/173[)2/3[)2 2/2 [650)אה1?/ 218%27ק [2060) 7 (2116%8₪61) (656)את1?/ 17שת1עק [000+ 7 [116%863ת) [050)את91/ 637ת1עק (₪0%0) 7 (116%8₪62ת) 7 [2110%8(08) (680)א%ם21/ 647ת1עק (0ססם) " (" ה8>8פ", 1פצס 6% 657ח1 [20%0] (6מסת) " ( 2116%8₪69) [656)אה1?/ "פשת1עק [₪0%0+ (2150)680/ 77 [8060) 077058117, 26/ 286817 07, פע / 068117 טפט / 21080867 / 6867285867 טע / 286867 0110667 / 7 [ 116867 ) [016ף) (%17)78ת221 [0ט0ש) (6מסת) ססש/ 7 [7תה ד את18ט) 133 (ש, 11608868 ה6קס)[ם,8268א116? תסקס) 3 2 (0 560005) (86868 ת20861) (0 56%5005) [(06,84ת8)6ת65%21 166תש) [61056) 6)86868((7ט60810, 36868 16%) [תע5660] (6%)656+/ %97ת818 (0%60ש) 7 (229א, 51שפו 1 2 60108%6897622977/ 7 (2116%869) (תפוס6) ( 78 9808/ לס / 086817 (8060) (סמסת) (%9ת18מ %ת0)018 (656) (229א= ("68ח56ה665)"60ה01ק66611 /1) (ש,8₪610א7116 ה6קס)(8610,8א7116 חסקס)ף ((4, שסח8)6ת1ע885%" =16ך "2298א8" =16"+ ת1861ת9) (01056) 6 "28681 (060ש) ( שמסת) (%9ת818 את18ם) [(66186)0,0,5+שסח6 1%)] (86602) (78) 7 (229א581028, 11אא 1166 (מ תהסתמעפ) (16טף) (86601) (806)78/ 7 [101ש8ו, 11אא 3% :1) 1 2א (חפ660ע) (ת טס 6ת) (/1 8260 ) (/006501ת1ש) (01080 ץ]10סתהס) 73 ( חפט 66 ) ( הססמפת" ) (ח40₪50ח1י) ( תס1סתפק) 78 1א 229 9 8 (חעט6%פ)(1 ק66ס)(2 660פ)(1 660ם)(2 0660) 86601 "(תעט60ע)"12(8, (1,16ק620068%)01615)866 86002 סעיף א "(תפט260)ת8ת1.3 7"221218"1 09תהת:6"+ 801א116ת סעיף ב "(מעטפ56)ת8ת.2 7"801218"1 פאתב6:3"+ 8201א110ק סעיף ג "(תפט26%6)תפת.3 7"821218"1 פאתהת:6"+ 63ה8א16גע סעיף ד "(תפט66ם)תהה.0 7"801218"1 5אתבת:6"+ 0%שהא116ק סעיף ה "(תפטט6ע)תהת.5 7"821218"1 פאתהה:6"+ 5 סה"כם (תפט66ע)ת6.88 7286801 ₪5ת8ה:0 8₪66א116ע שמות הרשויות [תעט66ע)תהה.1 65מ8א728581 5אתהת:0 117 דיווח כניסה אחרונה (העטס6ע)תפת. 1 א728681 פאתםת:0 18 רשימת מורשי הפעלה (תעט266)ת2.08 א728681 פאת8ה:6 11688269 דיווח נסיון כניסת נפל (תעט60ע]ת8ה.3 א728681 ₪5ת6:38 116%882010ק 1 <- מספר תעודת הזהות שלך 1 מה לשמור ? 56101 ...לא מורשה הפעלה, נשלחה הודעה למרכ:ז הבקרה 56102 14 115 ₪ 3 פנייה למשתמשי לוטוס המחבר מציע לקוראים להשתתף בסדנאות המומחים בלוטוס, ולהשיב עי השאלון המצורף. סדנת חשיכה אינטגרטיכית בהפעלת גיליון לוטוס 0 1836- 16%8 (- %8020-8ע%2ת1 מנחה: רן אברהמי 146 במ ספר לימוד: מקרו למתקדמים בלוטוס - 0ע16%68-86 ו-8-8802%0ע%ת1 מאת: רן אברהמי, הוצאת הוד-עמי. משך הקורס: | 24 שעות לימוד בארבע פגישות שבועיות בנות 6 שעות כל אחת. ערכה לתלמיד: בסיום הקורס יקבל כל תלמיד דיסקטים עם כל המקרו שנלמדו. הנושאים הנלמדים בקורס 1. ניהול סביבות עבודה ושילוב 1אש <--> 45011 הקמת תוכן עניינים במקום ‏ 5+/ והסתעפויות; הפעלת תוכנות שכנות; הלוטוס כ-₪61%602; מיפוי הדיסק לפני הפעלת :ישומי לוטוס; אוטומציה של הכניסה ללוטוס; מודולריות וארגומנטים ב-%628-8020ת1; פקודות %פ/ ו-1?/ לשליטה בקובא 45011; 28256 2808; פונקציות ₪ם1עס5. 2. שליטה אוטומטית בפעילות "תוך גיליונית" גיליון במבנה 0ע8-86עס6ת1; שליטה אוטומטית ע"י מקרו [...טת6ש+ בשילוב 1ע/ תחת מקרו; עף תפריטים; נתונים ב-25011; משפט מפעיל ומשפט שירות,| מודולריות| וארגומנטים מורכבים, פונקציות במקרו, טקסט במקרו ע"י 5₪; ספריית מקרו וטעינה אוטומטית. 3 שליטה אוטומטית בתווים בודדים וברשומות בודדות בדיסק שליטה בתו, ברשומה, ברשומות בדיסק; הפעלה בדיסק ע"י המקרו [...ת6קס+ בשילוב המקרו [...ע0+); הפ הפקת רשומת 85011 במבנה 2868 6 מנתונים מעורבים (טקסט ומספרים); שילוב [...6טם) עם א66ת61; עבודה עם קובף 25011 אין סופי מבלי לייבא אותו אל הגיליון; 2868 6 רב ממדי ב-45011 על הדיסק ושליטה אוטומטית מהגיליון: 4. ניהול קבצים, אבטחת מידע ונושאים נבחרים פתרונות לתפעול קבצים גדולים מאוד: הגנה על נוסחאות בעת הקשת נתונים; 1ע/ עם שש/ להקלדה מבוקרת; ("*", "",א)619 לסימון נתון קריטי; 6260686 לבניית גרף דינמי; סטאסס1ט6 לשליפת ערכים מהדיסק; עס 8:; רגרסיות; לוח גאנט; מידור פונקציונלי; מידור מאבטח; דיווח אוטומטי למרכז בקרה; רשימת מורשי הפעלה; הגנה מהעתקת :ישום לוטוס. שאלון למשתמשי לוטוס ותיקים לכבוד רן אברהמי 180 ת.ד. 4305 ירושלים 91042 ת.ד. 4000 ירוש2ים שבטו+צ טלפון: 02-6317686 אני מעונין במידע נוסף בנושאים הבאים: 1. נושאים הנלמדים בקורס לחשיבה אינטגרטיבית: נושא מספר 1 נושא מספר 2 נושא מספר 3 נושא מספר 4 כל הקורס 2. שולחן עגול: מפגש עם עמיתים בהנחייתך לדיון פתוח בנושאים שוטפים שמעסיקים את המשתתפים 3 מטלוג: פרסום תקופת לדו-שיח בין| משתמשי גיליון| מתוחכמים ברמה גבוהה 4. קו-חם למקרו: שאלות בטלפון בנושאים מתקדמים בהפעלת. הגיליון האלקטרוני ובכתיבת מקרו 5. נושאים אחרים, אנא ציין: ו ו בר ריוור -=ה-ררר: פרטים אישיים שם: משפחה פרט: מקום עבודה תפקיד: אגף/מחלקה כתובת בעבודה: רחוב ומספר ישוב מיקוד טלפון פקס בבלת: רחוב ומספר ישוב מיקוד טלפון פקס איזה תוכנות מכיר? איזה גירסאות לוטוס מכיר? כמה זמן כבר משתמש בלוטוס? באיזו גירסה משתמש עכשיו? ררע י בל ר רצ