› פורומים › אפיון ופיתוח פריוריטי › מספר שאלות בנוגע לדוח טבלאי
- This topic has 16 תגובות, 3 משתתפים, and was last updated לפני 14 שנים, 6 חודשים by אלכס.
- Post
-
- מאי 16, 2010 בשעה 6:37 pm
שלום.אני מנסה לבנות דוח טבלאי על בסיס מסך יומן משימות, שהוא מעין השתקפות של לוח שנה. הגדרתי את עמודת ה-CURDATE בציר ה-X, ובציר ה-Y אני עושה מיון לפי CUSTNOTE. העמודות שבתוך הדוח (איפיון "T") הן SUBJECT, STIME, ETIME.
בעיקרון הדוח מציג נתונים שאני צריך, אם כי בצורה מצ'וקמקת מדי:
1. ברגע שאין משימות בתאריך מסיום – העמודה לא מוצגת כלל. אני מעדיף שהיום הזה בכל זאת יוצג, אבל בלי ערכים בפנים.
2. התאריך שבכותרת בציר ה-X מביא איתו אותומטית בכל פעם את השעה 00:00, ואני צריך שיהיה רשום שם אך ורק תאריך.
3. הייתי מעדיף שעמודת המיון (CUSTNOTE) לא תוצג בדוח, אך המיון לפיה עדיין יתבצע.אשמח אם תעזרו לי לפתור את הסוגיות הללו,
תודה רבה,
אלכס.
- Replies
-
- מאי 17, 2010 בשעה 4:14 pm
עם סעיף 2 התמודדתי בהצלחה בסופו של דבר. שמתי תנאי
DTOA(CUSTNOTESA.TILLDATE,'DD-MM-YY')נותרו סעיפים 1 ו-3. נורא אשמח לעזרה.
תודה רבה,
אלכס.- מאי 17, 2010 בשעה 8:22 pm
פתרתי גם את הסעיף השלישי. נשאר רק הראשון… אני לא יודע כיצד אני כותב את התנאי הזה. תודה.- מאי 18, 2010 בשעה 1:46 pm
אתה צריך לשם כך שהדוח יופעל מפרוצדורה
לפני הדוח צריך שלב מקדים שממלא טבלה זמנית עם תאריכים.
את הטבלה להעביר לדוח, לחתוך עם המשימות לפי תאריך (חיתוך מותנה) ולהציג בציר X את התאריך מהטבלה הזמנית.זה מצריך כתיבת SQL. אתה יודע לעשות זאת ?
- מאי 18, 2010 בשעה 6:35 pm
היי ליאור,
שאלות הנוגעות להצעה שלך:האם כדי לבנות דוח המשלב "שאילתת UNION" (כפי שצריך להעשות במקרה עם התאריכים הריקים), יש תמיד לעבוד לפי הפתרון שהצעת: באמצעות פרוצדורה?
האם אין אפשרות אחרת לשלב ערכים ריקים בדוח?אגב, שילוב הטבלה הזמנית של התאריכים עם הטבלה הראשית יש לבצע עם OUTER JOIN, נכון? לא תהיה בעיה של כפילות ואין צורך להשתמש ב-DISTINCT?
אלון.
- מאי 18, 2010 בשעה 7:49 pm
ליאור, תודה על התגובה. כתיבת SQL אני לא ממש מכיר, אבל אם אפשרי מבחינתך לתת לי הסבר כלשהו בנושא, או לכוון אותי לאיזשהו דיון שכבר קיים בפורום – אשמח ללמוד.אני לפני כן חשבתי שניתן לכתוב איזשהו תנאי עבור עמודת SUBJECT, משהו כמו: אם הוא ריק, אז תציג nbsp&… או משהוא בסגנון. מה אני מפספס פה?
תודה רבה,
אלכס.- מאי 19, 2010 בשעה 10:45 pm
שלום אלכס,תוכל ללמוד על שפת ה-SQL של הפריוריטי ממסמך ה-SDK אשר כתוב רק בשפה האנגלית. מסמך זה תוכל להוריד מאתר שירות הלקוחות של אשבל.
הרעיון שלך אינו פתרון נכון. כשאתה מבקש שעמודה SUBJECT תציג לך כאשר היא ריקה, אינך מתייחס בכלל לתאריכים. הרי רצית גם להציג ימים קלנדריים בהם אין כל משימה. דוח יכול להציג רק את הנתונים הקיימים בטבלאות לפי הפורמט הרצוי ולפי הקישורים הרצויים. אם ביום מסוים אין משימה, הרי היא לא תופיע בטבלה וכמובן גם לא "התאריך הריק". לכן, על-מנת שתוכל גם לראות תאריכים אלה, צריך ליצור טבלת עזר המכילה את כל התאריכים שעליהם תרצה שיוצגו בדוח ולבצע קישור בצורה של OUTER JOIN אל עמודת התאריך של טבלת המשימות. במצב זה יוצג בדוח כל הרשומות מטבלת העזר וכן כל הרשומות מהטבלה הראשית אשר להם יש ערך שווה בטבלת העזר.
אלון.
- מאי 20, 2010 בשעה 9:20 am
שלום אלון, תודה רבה על ההסבר,אלכס.
…ושאלה קטנה נוספת: במצב הקיים (ללא SQL) אני הייתי מעוניין שליד התאריך יוצג גם יום (א', ב' וכדומה). המערכת לא מאפשרת עמודה נוספת בציר ה-X, האם הדבר בכל זאת אפשרי?
תודה!
- מאי 20, 2010 בשעה 10:43 pm
בוודאי.ניתן להוסיף לפונקציה שכתבת מקודם את הארגמנט 'day' כך:
[code:1]DTOA(CUSTNOTESA.TILLDATE,'DD-MM-YY ,day')[/code:1]
- מאי 25, 2010 בשעה 7:35 pm
אלון, עוד שאלה קטנה. החלטתי להוסיף לתוך הדוח עמודה "איש קשר" ו-"טלפון נייד" ממסך "אנשי קשר נוספים למשימה". הדוח מציג לי רק משימות, שבהם קיים איש קשר במסך "אנשי קשר נוספים למשימה", בזמן שאני צריך שיציג לי גם את אלה שלא סומן בהם איש קשר במסך המדובר. אם הבנתי את ההסבר שלך נכון, במקרה הנוכחי מספיק לכתוב תנאי לעמודות, מבלי להיכנס לכתיבת SQL. אודה לך מאוד אם תוכל לעזור לי עם כתיבת התנאי הזה.בתודה מראש,
אלכס.- מאי 25, 2010 בשעה 7:59 pm
שלום אלכס,הפתרון לא קשור בכתיבת תנאי לעמודות. צריך לבצע "צירוף חיצוני" (OUTER JOIN) על-מנת לקבל גם את המשימות שלא קיימים להם אנשי קשר. לכך אין צורך בכתיבת קוד SQL, אלא בתוספת "סימן שאלה" למזהה החיתוך, הקשור לטבלה של אנשי הקשר הנוספים.
שלח לי באקסל את מבנה הדו"ח מהמחולל כדי שאדע בדיוק היכן לתקן לך.
דרך אגב, לאתר הזה ישנם מאמרים טובים לבניית דוחות אשר יסביר לך כמה מושגים בסיסיים בהבנת מסדי נתונים. מומלץ לקריאה.
אלון.
- מאי 26, 2010 בשעה 11:29 am
תודה רבה אלון, צרפתי את הקובץ בתגובה הבאה, לא מצאתי דרך לשלוח לך הודעה אישית (האם האפשרות הזאת קיימת בפורום)?ניסיתי לצרף סימן שאלה לחיתוך שנראה לי רלוונטי, במספר עמודה 107, אבל המסך "קפא" בשלב הפקת הדוח, ונאלצתי להפעיל מנהל משימות במחשב…
כמו כן, שמתי לב שכאשר מופיעים יותר מאיש קשר אחד במסך "אנשי קשר נוספים למשימה", הדוח מציג רק אחד מהם. האם זה קשור לאותו נושא, או שהסיבה היא אחרת?
שוב תודה רבה על עזרתך, אני מעריך מאוד את הנדיבות שלך.
אלכס.
- מאי 26, 2010 בשעה 11:44 am
הקובץ. [file name=Book2-e740d9360a3379bf4788c6d20cb347b3.xls size=38912]https://www.priority-forums.com/he/images/fbfiles/files/Book2-e740d9360a3379bf4788c6d20cb347b3.xls[/file]- מאי 26, 2010 בשעה 1:08 pm
אלון, בינתיים תתעלם מה תגובות הקודמות, הסתדרתי לבד עם OUTERJOIN – הבנתי איך עובד סימן הקריאה. אל תתייחס לקובץ שצירפתי, הדוח כרגע כן מציג את המשימות ללא אנשי קשר. אם יהיו לי שאלות אחרות במהלך העבודה על הדוח, אני אשמח לשאול אותך.תודה,
אלכס.- מאי 26, 2010 בשעה 3:53 pm
מצוין!הזכרת במקרה את סימן "הקריאה" (!). אני הזכרתי את "סימן השאלה"(?). בפועל שניהם עושים את אותו הדבר מבחינת חיתוך לפי צירוף חיצוני, אבל סימן הקריאה הוא אופרטור מיוחד שפועל כמו סימן השאלה, אבל גם קשור ל"אופטמיזציה" של השאילתא (שלא תעיז לשאול אותי מה הכוונה 😛 . זה נושא ברמה מתקדמת בתחזוקת מסדי נתונים הקשור לעדיפות גישה לטבלאות).
בכל מקרה, לא קרה אסון אם הזנת סימן קריאה.אלון.
- יש להתחבר למערכת על מנת להגיב.