› פורומים › אפיון ופיתוח פריוריטי › הוספת שדה מתוך רשימה
- This topic has 13 תגובות, 3 משתתפים, and was last updated לפני 9 שנים, חודש 1 by
שיר.
- Post
-
- אוגוסט 11, 2016 בשעה 9:59 am
היי חברים,
אני רוצה להוסיף לדוח נתון ממסך מסויים.
הבעיה שלי היא כזו:
במסך יש מספר עמודות, לכל עמודה ישנם ערכים רבים שאנו ממלאים.
אני רוצה להציג רק ערך אחד (מעמודה מוגדרת מראש) מתוך כל הרשימה, הצלחתי לעשות זאת ברגע שאני רושמת במסך -עמודות מסך-הרחבה את שם הפרמטר.
כלומר, יש לי מספר שורות ואני רוצה להציג ערך של שורה ספציפית (שהגדרת השורה לא משתנה – תמיד יהיה אותו פרמטר )
הבעיה היא שברגע שלא מוגדר לי פרמטר הוא לא שולף לי שום נתון..
מקווה שהסברתי טוב את הבעיהאודה לעזרתכם.
- Replies
-
- אוגוסט 11, 2016 בשעה 11:15 am
לא כ"כ הבנתי את הבעיה.. אני לא בטוח אם הפיתרון שלך הוא DISTINCT או תנאי של שונה מריק או שאולי בכלל אני לא הבנתי את הצורך.אשמח אם תחדד באמצעות איזו דוגמה קטנה
- אוגוסט 11, 2016 בשעה 11:33 am
היי , תודה על התגובה
הכוונה שלי היא כזו:
מסבירה ביחד לדוגמא שצירפתי.
אני מעוניינית להציג לכל מק"ט את הערך שיש בכותרת בשדה פרמטר 2 בלבד.
כלומר לכל מקט יוצג רק הערך שנמצא בתוך פרמטר 2.
ישנם מקטים שלא מוגדר להם ערכים במסך זה(וככלל גם לא פרמטר 2 ) לכן אם אני רושמת את התנאי ב-בעמודות מסך הרחבה : שיציג את פרמטר 2 זה לא תקין, שכן המקטים בהם לא מוגדר פרמטר יפלו.מקווה שיותר מובן. אשמח להסביר שוב במידה ולא.
[file name=Doc1-20160811.docx size=443571]https://www.priority-forums.com/he/images/fbfiles/files/Doc1-20160811.docx[/file]
- אוגוסט 11, 2016 בשעה 12:28 pm
את רוצה רק פריטים שיש להם במסך הבן "כותרים קשורים" ספר "פרמטר 2"?
אם כך, את צריכה להציג את השדות
PART.PARTNAME
PART.PARTDES
BOOKS.TITLEלחבר בין השדות
PART.PART = LIBRARY.IV
LIBRARY.BOOK = BOOKS.BOOKותנאים
LIBRARY.TYPE = 'p'
BOOKS.BOOKNUM = 'פרמטר 2'—
אני חייב להודות שלפי התאור שלך, רצית להציג את הערך שנמצא ב"פרמטר 2" בכותרת כרטיס הפריט, אך צילום המסך מראה משהו אחר. אני ממליץ לך בעתיד להסביר הרבה יותר טוב את הבעיה, תוך כדי ציון מסכים ושדות, ולא לכתוב "אני רוצה להוסיף לדוח נתון ממסך מסויים" כי מזה אי אפשר להבין כלום.- אוגוסט 11, 2016 בשעה 12:46 pm
טוב קודם כל סליחה על קודם, לא ידעתי שאת לא בן.
אני רואה שהחיבור בין המסכים הוא
PART.PART = LIBRARY.IV
AND
LIBRARY.TYPE = 'p'את צריכה למשוך את עמודת TITLE מטבלת BOOKS
הג'וין הוא:
LIBRARY.BOOK = BOOKS.BOOKוכשאת עושה FROM
ליד הטבלה LIBRARY את מוסיפה סימן שאלה ?
from library ?
(הסימן שאלה בהמשך ישיר, פה זה מעביר אותו לצד השני של הטקסט).מקווה שהבנתי, אם לא ננסה שוב :dry:
- אוגוסט 11, 2016 בשעה 12:55 pm
היי חברים תודה לכולם על העזרה,
נועם- אני הבאתי דוגאמא. זה לא המסך שעליו אני רוצה לעבוד..
השאלה שלי היא בכלליות מה אני רושמת בביטוי ואז אשייך את זה למסך שאני בניתי (בפיתוח פרטי ).
ברגע שאני רושמת כמו שרשמת את הפרמטר כפרמטר 2 הוא לא מציג לי דוח עבור מקטים בהם לא מוגדר פרמטר 2…
מקווה שההסבר טוב יותר.
פעם הבאה אדגים על המסך הספציפי שאני רוצה ומעוניינת.- אוגוסט 11, 2016 בשעה 1:17 pm
למה להביא דוגמא לא טובה? אי אפשר לענות על שאלות כאלה באופן כללי כי לפעמים פתרון אחד נדרש ולפעמים פתרון אחר נדרש. למשל – אם ההדפסה מותנית בשדה שמוגדר בטבלת המסך (לדוגמא, להדפיס רק פריטים שהם פריטים מרכזים), אז את צריכה להדפיס את השדה STATUS שנמצא בטבלת PART. הדו"ח יכיל את השדות PARTNAME, PARTDES ו-STATUS, כולם מטבלת PART.אך אם השדה מבוסס על טבלה שאינה טבלת הבסיס של המסך – למשל פרמטר 2, אז צריך להוסיף חיבור בין טבלת הבסיס (PART.PART) למה שנקרא "המפתח הזר" של הטבלה השניה – PARTSPEC.PART ואז את יכולה להשתמש בכל השדות הנמצאים בטבלת PARTSPEC.
בדוגמא השגויה שלך, הצגת נתונים אשר מופיעים במסך בן – זה דורש המשך של השימוש במפתח זר. אך יתרה מזה, בחרת בטבלה (LIBRARY) שמוצאת שימוש במקומות רבים, לפי השדה TYPE. לכן הפתרון לטבלה הזו מורכב יותר ממקורות אחרים.
אני – וגם אחרים – מנסים לעזור. אך כדי לעזור, אנחנו צריכים לקבל את מלוא המידע הנדרש כדי לעזור. האם את מכירה מושגים ב-SQL כמו חיבור, חיתוך, מפתחות זרים וכד'? כי קשה לפתח – אפילו להוסיף שדה לדו"ח – בלי זה.
- אוגוסט 11, 2016 בשעה 1:22 pm
היי נועם,
אני מכירה את המושגים שציינת, מלבד זאת כבר עשיתי זאת.
לא הבאתי את הדוגמא הספציפית כי זה לא רלוונטי לשאלה שלי, ביצעתי את כל החיתוכים כנדרש.
נתקלת רק בבעיה איך לרשום תנאי שיציג לי פרטים של שורה מסויימת..
כלומר :
אני צריכה את הקוד להצגת שורה מסויימת מכרטיס עבור כל פריט , ושלא יפיל לי ערכים בפריטים אשר לא מוגדר בהם הערך הנ"ל..את כל שאר הדברים כבר ביצעתי, לכן חשבתי שאין זה משנה הדוגמא…הדוגמא ניתנה רק בכדי להסביר את הרעיון והבקשה שלי למה כוונתי.
מקבלת את הערתך.
אשמח אם תהיה לך תשובה לנושא הנ"ל.- אוגוסט 11, 2016 בשעה 1:59 pm
- אוגוסט 11, 2016 בשעה 3:12 pm
זה גם מה שאני הבנתי, צריך לעשות "?" ליד שם הטבלה כשאת מבצעת FROM או בJOINID- אוגוסט 11, 2016 בשעה 6:24 pm
אני חושב שאני מבין את הבעיה.את מנסה להתמודד עם אחת הבעיות שיש ביישום של פריוריטי של outer join.
המגיבים הקודמים הזכירו בצדק את הסימן שאלה כפתרון ל-outer join אבל כאן זה לא מקרה קלאסי.
outer join משמש במצב בו יכול להיות, עבור רשומה בטבלה א', רשומה מתאימה בטבלה ב' – או לא, וכשאין רשומה מתאים שיביא את הרשומה מטבלה א' בכל זאת.
את רוצה להביא כל מק"ט מכרטיס הפריט (אני מתייחס לצילום מסך שהיה בקובץ וורד) ורשומה מתאימה מטבלת הפרמטרים, כאשר רשומה מתאימה היא רק זאת של פרמטר 2.
זאת אומרת, עבור כל שורה של כרטיס פריט לראות אם יש שורה בין הפרמטרים שהיא פרמטר 2 להביא אותה, ואם לא להביא מק"ט לבד.
outer join של SQL מודרני יכול לעשות את זה. outer join של פריוריטי לא מסוגל לעשות את זה.
בפריוריטי מה שקורה זה שקודם כל זה עושה את החיתוך בין הטבלאות, כאשר אם אין שום רשומה זה יביא רשומה ריקה, ורק אחר כך זה מסנן עבור התנאי השני שזה פרמטר 2.
יוצא שבדוגמה שלך אם יש למוצר פרמטר 2 תראי אותו בדו"ח הנוכחי שלך (בהנחה ששמת כבר סימן שאלה). בכל מצב אחר המוצר יעלם.
תנסי קודם כל לסדר את זה על ידי שינוי התנאי – או פרמטר 2 או ריק. זאת התקדמות כי אם אין פרמטרים כלל למוצר (ורק כשאין פרמטרים) תקבלי ערך ריק בפרמטר, אז תקבלי את המוצר כשיש לך פרמטר 2 או כשאין פרמטרים.
אבל כשיש לך פרמטרים אבל לא 2 עדיין לא תקבלי תוצאה…….כך עובד outer join של פריוריטי וזה מאוד מעצבן.
קודם כל מנסים לא להכנס למצבים האלה 🙂
אני פותר בעיות כאלה באחת מ-2 דרכים שהם די שווים כי יש בסיס משותף:
1. מכינים עותק של הטבלה של הפרמטרים (טבלת לינק – לפעמים עדיף להשתמש בטבלה אחרת לפי המקרה)
2א. או ממלאים פרמטר 2 כאשר חסר – ואז עושים join רגיל
2ב. או משאירים (=שופכים רק) פרמטר 2 ועושים outer joinוכך מקבלים את התוצאה הרצויה
אני מקווה שהסברתי את העצמי מספיק טוב
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
- יש להתחבר למערכת על מנת להגיב.