מספר שאלות בנוגע לדוח טבלאי

פורומים אפיון ופיתוח פריוריטי מספר שאלות בנוגע לדוח טבלאי

  • Post
    אלכס
    משתתף
    שלום.

    אני מנסה לבנות דוח טבלאי על בסיס מסך יומן משימות, שהוא מעין השתקפות של לוח שנה. הגדרתי את עמודת ה-CURDATE בציר ה-X, ובציר ה-Y אני עושה מיון לפי CUSTNOTE. העמודות שבתוך הדוח (איפיון "T") הן SUBJECT, STIME, ETIME.

    בעיקרון הדוח מציג נתונים שאני צריך, אם כי בצורה מצ'וקמקת מדי:

    1. ברגע שאין משימות בתאריך מסיום – העמודה לא מוצגת כלל. אני מעדיף שהיום הזה בכל זאת יוצג, אבל בלי ערכים בפנים.
    2. התאריך שבכותרת בציר ה-X מביא איתו אותומטית בכל פעם את השעה 00:00, ואני צריך שיהיה רשום שם אך ורק תאריך.
    3. הייתי מעדיף שעמודת המיון (CUSTNOTE) לא תוצג בדוח, אך המיון לפיה עדיין יתבצע.

    אשמח אם תעזרו לי לפתור את הסוגיות הללו,
    תודה רבה,
    אלכס.

מוצגות 15 תגובות – 1 עד 15 (מתוך 16 סה״כ)
  • Replies
    אלכס
    משתתף
    עם סעיף 2 התמודדתי בהצלחה בסופו של דבר. שמתי תנאי
    DTOA(CUSTNOTESA.TILLDATE,'DD-MM-YY')

    נותרו סעיפים 1 ו-3. נורא אשמח לעזרה.

    תודה רבה,
    אלכס.

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

    זה מצריך כתיבת SQL. אתה יודע לעשות זאת ?

    היי ליאור,
    שאלות הנוגעות להצעה שלך:

    האם כדי לבנות דוח המשלב "שאילתת UNION" (כפי שצריך להעשות במקרה עם התאריכים הריקים), יש תמיד לעבוד לפי הפתרון שהצעת: באמצעות פרוצדורה?
    האם אין אפשרות אחרת לשלב ערכים ריקים בדוח?

    אגב, שילוב הטבלה הזמנית של התאריכים עם הטבלה הראשית יש לבצע עם OUTER JOIN, נכון? לא תהיה בעיה של כפילות ואין צורך להשתמש ב-DISTINCT?

    אלון.

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

    אני לפני כן חשבתי שניתן לכתוב איזשהו תנאי עבור עמודת SUBJECT, משהו כמו: אם הוא ריק, אז תציג nbsp&… או משהוא בסגנון. מה אני מפספס פה?

    תודה רבה,
    אלכס.

    שלום אלכס,

    תוכל ללמוד על שפת ה-SQL של הפריוריטי ממסמך ה-SDK אשר כתוב רק בשפה האנגלית. מסמך זה תוכל להוריד מאתר שירות הלקוחות של אשבל.

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

    אלון.

    אלכס
    משתתף
    שלום אלון, תודה רבה על ההסבר,

    אלכס.

    …ושאלה קטנה נוספת: במצב הקיים (ללא SQL) אני הייתי מעוניין שליד התאריך יוצג גם יום (א', ב' וכדומה). המערכת לא מאפשרת עמודה נוספת בציר ה-X, האם הדבר בכל זאת אפשרי?

    תודה!

    בוודאי.

    ניתן להוסיף לפונקציה שכתבת מקודם את הארגמנט 'day' כך:

    [code:1]DTOA(CUSTNOTESA.TILLDATE,'DD-MM-YY ,day')[/code:1]

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

    בתודה מראש,
    אלכס.

    שלום אלכס,

    הפתרון לא קשור בכתיבת תנאי לעמודות. צריך לבצע "צירוף חיצוני" (OUTER JOIN) על-מנת לקבל גם את המשימות שלא קיימים להם אנשי קשר. לכך אין צורך בכתיבת קוד SQL, אלא בתוספת "סימן שאלה" למזהה החיתוך, הקשור לטבלה של אנשי הקשר הנוספים.

    שלח לי באקסל את מבנה הדו"ח מהמחולל כדי שאדע בדיוק היכן לתקן לך.

    דרך אגב, לאתר הזה ישנם מאמרים טובים לבניית דוחות אשר יסביר לך כמה מושגים בסיסיים בהבנת מסדי נתונים. מומלץ לקריאה.

    אלון.

    אלכס
    משתתף
    תודה רבה אלון, צרפתי את הקובץ בתגובה הבאה, לא מצאתי דרך לשלוח לך הודעה אישית (האם האפשרות הזאת קיימת בפורום)?

    ניסיתי לצרף סימן שאלה לחיתוך שנראה לי רלוונטי, במספר עמודה 107, אבל המסך "קפא" בשלב הפקת הדוח, ונאלצתי להפעיל מנהל משימות במחשב…

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

    שוב תודה רבה על עזרתך, אני מעריך מאוד את הנדיבות שלך.

    אלכס.

    אלכס
    משתתף
    הקובץ. [file name=Book2-e740d9360a3379bf4788c6d20cb347b3.xls size=38912]https://www.priority-forums.com/he/images/fbfiles/files/Book2-e740d9360a3379bf4788c6d20cb347b3.xls[/file]
    אלכס
    משתתף
    אלון, בינתיים תתעלם מה תגובות הקודמות, הסתדרתי לבד עם OUTERJOIN – הבנתי איך עובד סימן הקריאה. אל תתייחס לקובץ שצירפתי, הדוח כרגע כן מציג את המשימות ללא אנשי קשר. אם יהיו לי שאלות אחרות במהלך העבודה על הדוח, אני אשמח לשאול אותך.

    תודה,
    אלכס.

    מצוין!

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

    אלון.

מוצגות 15 תגובות – 1 עד 15 (מתוך 16 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.