תוכנה

3.1k נושאים 32.8k פוסטים
  • 33 הצבעות
    25 פוסטים
    10k צפיות
    פרק כד: עושים סדר: חלק ג: תפריטים ופקדי ניווט, פונקציונאליות ברשימת המשפחות

    שלום לכולם! מקווה שנהנתם מהחופש הגדול...

    היום הגענו לחלק די קל ומהנה (יחסית...) והוא בניית התפריטים.

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

    אני רוצה ליצור משהו כזה:
    929e98e0-7562-4e49-a60f-0a3e19ce26ba-תמונה.png

    למרבה המזל, לאקסס יש מנגנון מובנה לניהול הניווט בין טפסים, בשם פקד הניווט.
    אז בואו ניצור משהו כזה.

    שלב א: יצירת טופס תפריט המשפחות
    נפתח טופס חדש ריק, על ידי יצירה > עיצוב טופס.
    נבחר מתפריט העיצוב את פקד הניווט:
    61ed66c8-6c6a-49f5-8bf9-5a4114bce9a8-תמונה.png

    ואז פשוט נקליק בתוך הטופס קרוב לפינה הימנית העליונה:
    0d5c7b84-09e4-4a24-8d64-f05976996eb5-תמונה.png

    אקסס תיצור עבורנו פקד ניווט:
    779206f3-882f-4bbc-b756-7694ed7498e8-תמונה.png

    לפקד הניווט שני חלקים:

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

    נוסיף לחצן לפקד הניווט על ידי לחיצה על המקום שמסומן [הוסף חדש], ונרשום בתוכו "רשימת משפחות". אקסס יצרה עבורנו לחצן חדש:
    a1142b9b-6195-4492-8f19-eaa454574989-תמונה.png

    נגדיל את הלחצן כך שיציג את כל הכיתוב:
    758a4992-e004-4c80-a6b5-d7411662a887-תמונה.png

    נוסיף עוד לחצן עם הכיתוב "כרטיס משפחה":
    cff8531e-602b-4a9d-bb4e-9efaf52ce9d0-תמונה.png

    כעת נותר לנו להגדיר איזה טופס ייפתח על ידי כל לחצן.
    ניכנס למאפיינים של הלחצן הראשון (רשימת המשפחות), ובלשונית הנתונים נבחר את המאפיין "שם יעד ניווט", ונבחר מתיבת הרשימה המשולבת את טופס רשימת המשפחות frmFamilyList:
    51f0751a-69df-48cc-91c1-d5cde737dad6-תמונה.png

    באופן דומה, גם בלחצן השני, נבחר את שם יעד הניווט להיות טופס כרטיס המשפחה frmFamilyCard:
    4da4aa8a-1182-4f17-af7f-856644ad27da-תמונה.png

    לסיום, נסיר מן הטופס את הפקדים המיותרים: בוררי הרשומות, לחצני ניווט ופסי הגלילה: (להלן: "שלשת המעצבנים")
    50efdb0e-dfef-428f-a7ca-f51e02ffd7c0-תמונה.png

    ונצמצם את השוליים המיותרים מסביב לפקד הניווט (מסומנים בכתום):
    d673cde3-9d38-4c66-85f1-cd7651ad2743-תמונה.png
    נסגור את הטופס ונשמור אותו בשם navFamilies.
    כעת פתחו את הטופס שיצרנו ובידקו את לחצני הניווט:
    33298f0e-8cb3-45a3-9509-2ec6ca431b0a-תמונה.png

    1bc0fe86-ab00-4812-8ef3-d9ce8b3dc785-תמונה.png

    שלב ב: יצירת טופס התפריט הראשי
    בדומה לשלב הקודם, נפתח טופס חדש ריק, על ידי יצירה > עיצוב טופס, ונוסיף אליו פקד ניווט, ונוסיף שלושה לחצנים כפי שמופיע בתמונה הבאה:
    b0fefc87-12a4-45e7-a8f3-ed955d07a0ee-תמונה.png

    כעת נהפוך את הכיוון של התפריט לאנכי.
    לשם כך נבחר את פקד הניווט כולו (זוכרים? החלק העליון) על ידי הקלקה במקום הריק (לא על לחצן):
    c79ac8cc-4754-420f-a1d9-59007a192374-תמונה.png

    שימו לב שכל פקד הניווט מסומן כעת.
    מתוך המאפיינים בלשונית התבנית נגדיר את המאפיין "מרחב" ל-"אנכי". שימו לב לשינוי בפריסת הלחצנים, כעת הם מופיעים מלמעלה למטה:
    cc6ce00b-e005-465f-b735-660af708bd7e-תמונה.png

    אך עדיין פקד הניווט מופיע בצמוד לחלק העליון של טופס המשנה, ולא מצידו הימני כמו בתכנון.
    אל דאגה, נשנה זאת מיד: נגרור את כל פקד הניווט, כך שיופיע בצמוד לדופן הימנית של טופס המשנה.
    שימו לב לגרור אותו אל הדופן הימנית ממש, כך שיוצג קו בצבע ורוד חלש בצד ימין:
    240fd155-ddf3-4577-8221-4ba8e4e3a283-תמונה.png

    כעת נקטין את רוחב פקד הניווט לגודל יותר סביר:
    26b9919a-dd02-40f6-b134-528f7af8257e-תמונה.png

    נגדיר את שם יעד הניווט עבור לחצן המשפחות להיות טופס תפריט המשפחות שיצרנו היום: navFamilies. (בינתיים יש לנו רק את תפריט המשפחות, את שני התפריטים של התורמים והתרומות ניצור בהמשך.)
    לסיום – גם כאן נסיר את הפקדים המיותרים בטופס (שלשת המעצבנים כדלעיל), ואת השוליים המיותרים מסביב לפקד הניווט.
    נשמור את הטופס בשם navMain.

    להלן התוצאה:
    9d35ed40-74d8-4c8e-9561-7f64ac3fe405-תמונה.png

    נהדר, זה לא היה קשה, נכון?

    קחו אויר, כי החלק הבא קצת יותר מורכב.

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

    לחצן תצוגת המשפחה
    פתחו את הטופס בתצוגת עיצוב, ובחרו את לחצן הצגת המשפחה. שנו את שמו ל: cmdViewFamilyCard:
    14cfc6d5-ef64-4b6b-90d5-9bee54fd7eb7-תמונה.png

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

    DoCmd.BrowseTo acBrowseToForm, "frmFamilyCard", "navMain.NavigationSubform>navFamilies.NavigationSubform", "ID=" & Me.ID

    הסבר הקוד:
    אנו משתמשים כאן באובייקט DoCmd שראינו בעבר, המכיל פונקציות שונות באקסס. מתוכו אנו מפעילים את הפונקציה BrowseTo שתפקידה לנווט אל טופס מסויים. הפונקציה מקבלת כמה פרמטרים:
    65ae142a-605d-4230-9469-b47200ef9bbb-תמונה.png

    הפרמטר הראשון acBrowseToForm מציין את סוג האובייקט לתצוגה. במקרה שלנו הוא טופס.

    כדי להציג דוח במקום טופס, יש לציין acBrowseToReport במקום acBrowseToForm.

    הפרמטר השני "frmFamilyCard" מציין את שם הטופס לפתיחה הלא הוא כרטיס המשפחה. הפרמטר השלישי "navMain.NavigationSubform>navFamilies.NavigationSubform" מציין את הנתיב שבו ייפתח הטופס.
    כיוון שבנינו מערכת של תפריטי ניווט מקוננים (תפריט ראשי>תפריט המשפחות) אנו צריכים לציין במפורש את כל המסלול שדרכו נגיע ליעד המבוקש (טופס המשנה של תפריט המשפחות). התחביר הוא כך:
    שם_טופס_הניווט.שם_פקד_טופס_המשנה (כברירת מחדל הוא NavigationSubform)
    אם יש כמה טפסי ניווט אחד בתוך השני (כמו אצלנו), מפרידים ביניהם על ידי הסימן "גדול מ" <.
    כך מתקבלת התוצאה הנ"ל.

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

    הפרמטר הרביעי "ID=" & Me.ID מציין קריטריון לחיפוש רשומה מבוקשת לתצוגה.
    פרמטר זה הוא אופציונאלי, וכאשר מציינים אותו, אקסס תחפש בטופס שנפתח את הרשומה המתאימה לקריטריון, ותקפוץ אליה בפתיחת הטופס.
    לדוגמא, אם אנו רוצים להציג את המשפחה שהמזהה ID שלה הוא 7, עלינו להעביר לפונקציה את הקריטריון: "ID=7".
    הואיל וברצוננו להציג את המשפחה המתאימה לשורה שבה לחצנו על הלחצן, ואנחנו לא יודעים מה יהיה המזהה שלה, נוכל לקבל את המזהה שלה על ידי האובייקט Me.ID וניצור את הקריטריון המתאים על ידי חיבור מחרוזות.

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

    שימרו את הטופס.
    כעת פיתחו את טופס התפריט הראשי navMain, בחרו את תפריט המשפחות, וברשימת המשפחות בידקו שהלחצן "הצג" עובד כראוי.

    טעות בכתובת
    הניווט של אקסס אינו מושלם.
    נסו לפתוח ישירות את הטופס של רשימת המשפחות frmFamilyList, וללחוץ על הלחצן "הצג".
    למרבה התסכול, במקום להציג את הטופס, אקסס תציג הודעת שגיאה:
    ad51c3b1-8ab4-4465-b976-e8857dd3fd0e-תמונה.png

    מה קרה?
    ההודעה הזו מוצגת מפני שאנו מנסים לגשת לנתיב שאינו קיים.
    הרי בקוד צייננו שהנתיב המבוקש הוא "navMain.NavigationSubform>navFamilies.NavigationSubform". אבל הטפסים של הניווט navMain ו-navFamilies לא פתוחים כעת, ולכן הנתיב שגוי.

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

    לחצן יצירת משפחה חדשה
    בואו ניצור גם את הלחצן של יצירת משפחה חדשה. נבחר את הלחצן, וניצור עבורו פונקצית אירוע בעת לחיצה:
    1e7bf761-05a7-43ec-8dff-e66bf5dbd51e-תמונה.png

    לשמחתנו, הקוד הנדרש דומה לקוד הקודם (נוכל להעתיק ולהדביק, ולשנות כנדרש):

    DoCmd.BrowseTo acBrowseToForm, "frmFamilyCard", "navMain.NavigationSubform>navFamilies.NavigationSubform", , , acFormAdd

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

    הפרמטר השישי acFormAdd מורה לאקסס לפתוח את הטופס המבוקש במצב הוספת נתונים, ולהציג רשומה חדשה בטופס.

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

    לחצן מחיקת המשפחה
    מחיקת משפחה היא תהליך מורכב, הואיל ויש לכל משפחה קשרי גומלין שונים. בנוסף, אני לא בטוח שכדאי לאפשר מחיקת משפחה מתצוגת הרשימה. לכן אני אחזור בי ואסיר את לחצן המחיקה מרשימת המשפחות, כדי לאפשר מחיקת משפחה רק מכרטיס המשפחה:
    8cb6114f-a2b9-4c8e-9a41-ad0ffb38f4c0-תמונה.png

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

  • עזרה - איך אפשר להמיר פונט לתמונות?

    18
    0 הצבעות
    18 פוסטים
    193 צפיות
  • C# + MySQL

    3
    0 הצבעות
    3 פוסטים
    146 צפיות

    @junior אני ממליץ בחום להשתמש בDapper שזה ספריית עזר לתשאול מסדי נתונים בדוטנט.
    להלן הדרכה שלי:
    א. להתקין חבילת nuget של MySql.Data
    (אופן ההתקנה: קליק ימני על הפרוייקט בSolution Explorer ואז בחירה בManage Nuget Package
    חיפוש המילים MySql.Data ואז בחירה בראשון ולחיצה על Install ולאשר את הסכם השימוש).
    ב. להתקין חבילת Dapper (כנ"ל)
    ג. להלן קוד דוגמה:

    using (var conn = new MySql.Data.MySqlClient.MySqlConnection("server=localhost;userId=root;database=db_name;password=???")) { var list = conn.Query("SELECT * FROM table_name").ToList(); }

    אם רוצים להעביר פרמטרים, אז ככה:

    using (var conn = new MySql.Data.MySqlClient.MySqlConnection("server=localhost;userId=root;database=db_name;password=???")) { var list = conn.Query("SELECT * FROM table_name WHERE ID = @id", new { id = 40 }).ToList(); }
  • נושא זה נמחק!

    נעול
    4
    0 הצבעות
    4 פוסטים
    39 צפיות
  • וואטספ בענן לצורך בניית בוט

    2
    0 הצבעות
    2 פוסטים
    155 צפיות

    @ivrtikshoret
    יתכן שיתאפשר לי לתת לך שרת אנדרואיד, רק קח בחשבון שזה לא דבר זול..
    אם בכל זאת מעניין אותך - פנה למייל בחתימה

  • תוכנה / אקסל ליועץ משכנתאות

    9
    0 הצבעות
    9 פוסטים
    508 צפיות

    @ua צר לי. לא מסכים. יש יועצים שיש להם תוכנה עוד פחות מהקובץ הנ"ל. הקובץ הזה מסכם לך גם כמה תשלם בסוף כולל הערכת מדד.
    לא מעלה בדעתי אפשרות נוספת ממה שיש בקובץ.
    פתח ותראה כל האופציות שם.

  • איזה תוכנת שחזור קבצים הכי מצליחה

    8
    0 הצבעות
    8 פוסטים
    257 צפיות

    @ivrtikshoret @UA ויש להם כמה תוכנות למחיצות וכו'.

  • 0 הצבעות
    2 פוסטים
    91 צפיות

    @חוות-דעת תוכל לבטל זאת, אך זה יגרום לכיבוי שאר שירותים שתלויים בענן של Office.

    כנס לקובץ > אפשרויות > מרכז יחסי האמון > הגדרות מרכז יחסי האמון > הגדרות פרטיות > ובטל את הסימון מתיבת "הפוך חוויות מחוברות אופציונאליות לזמינות".

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

  • איך עושים חיפוש לפי תאריך ב-Outlook365

    4
    0 הצבעות
    4 פוסטים
    116 צפיות

    @OdedDvir

    נפתרה התעלומה

    יש לרשום כך
    cb51f0de-cea6-4768-a9a1-72d77570658e-image.png

    או כך
    88db4258-736f-4e7f-9642-cea084ed6b35-image.png

    ואם המערכת באנגלית אזה באמת כמו שכתבת

  • 0 הצבעות
    5 פוסטים
    178 צפיות

    @ivrtikshoret
    אני ירחיב טיפה יותר
    בהגדרות של השרת (אפאצ'י למשל) אפשר להגדיר כללים לגישה לקובץ מסוים
    אפשר להגדיר שלאפשר גישה רק לבקשות עם ההאדר Referer: http://jewishmusic.fm/
    וכמובן מישהו טיפה מתוחכם יכול להוסיף את זה לבד.

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

  • איך משלבים כמה קבצי אקסס לאחד?

    14
    0 הצבעות
    14 פוסטים
    291 צפיות

    @odeddvir אתה צודק
    כתבתי שזה מסוכן

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

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

  • להפקיד צ'קים דרך בלוסטאק, אפשרי?

    32
  • הודעה בפתיחת WORD

    4
    0 הצבעות
    4 פוסטים
    199 צפיות

    @ספר-יהלום אמר בהודעה בפתיחת WORD:

    נכון! (איך גילית?)

    זה כתוב לך כחול ע"ג לבן בצילום מסך שצירפת.

  • איך בונים דטה בייס פשוט משותף ברשת

    18
    0 הצבעות
    18 פוסטים
    783 צפיות

    @avi-rz אמר באיך בונים דטה בייס פשוט משותף ברשת:

    @yits
    יצא משהו?
    הסתדרת עם זה?

    עובד מצוין, כל עוד שאתה לא עושה הפצה - דפלוי.
    ויש אפשרות בשלב האב טיפוס לשתף 10 משתמשים.

  • חיבור אתר וורדפרס למערכת טלפונית API

    11
    1 הצבעות
    11 פוסטים
    488 צפיות

    @aaron אמר בחיבור אתר וורדפרס למערכת טלפונית API:

    אם אתה מחפש ספציפי לווקמרס בשילוב ימות - כנראה לא תמצא..

    אין כאלו שכבר עשו את זה וישתפו?

  • 0 הצבעות
    6 פוסטים
    234 צפיות

    @yair-na אמר במה המחיר הממוצע בשוק שלוקחים על הקלדה:

    @ספר-יהלום אמר במה המחיר הממוצע בשוק שלוקחים על הקלדה:

    יש כאלו שלוקחים מחיר הפסד

    שהוא? ולמה מחיר הפסד? מה אדם מפסיד בזה?
    כמובן, יש לקחת בחשבון חוץ מהדייקנות, גם עמידה בזמנים וכו' שאר דברים.

    כוונתו שבחישוב לשעה יוצא סכום נמוך מידי בשביל שיהיה שווה לעבוד בשבילו

  • 0 הצבעות
    5 פוסטים
    303 צפיות

    @shraga אמר בהתקנת אפליקציה חיצונית במדמה אנדרואיד:

    @grafix אמר בהתקנת אפליקציה חיצונית במדמה אנדרואיד:

    אפליקציות שכבר הורדתי אני לא אוכל להשתמש בהן, נכון?

    לא בהכרח, יתכן אפליקציות שכן יעבדו.

    אין לי מילים
    זה עובד
    תודה רבה!

  • נושא זה נמחק!

    8
    0 הצבעות
    8 פוסטים
    69 צפיות
  • עיצוב קבוע בוורד

    24
    0 הצבעות
    24 פוסטים
    782 צפיות

    @שוהם307 אמר בעיצוב קבוע בוורד:

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

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

  • סנכרון בין sheets ליומן גוגל

    3
    0 הצבעות
    3 פוסטים
    298 צפיות

    @nach אתה לא מפרט כלום
    כמובן יש הרבה אפשרויות
    החל מגוגל סקריפט (שזה קוד שצריך לכתוב לבד) - וכלה בכלי אוטומציה כמו זאפייר או אינטגרומט
    תפרט

בא תתחבר לדף היומי!