› פורומים › אפיון ופיתוח פריוריטי › טעינת נתונים ופיצול שורות בהזמנות רכש
- This topic has 9 תגובות, 3 משתתפים, and was last updated לפני 5 שנים, 5 חודשים by sayo.
- Post
-
- אוגוסט 6, 2019 בשעה 12:23 pm
היי,אשמח להצעה לדרך הכי טובה לבצע את הפיתוח הבא:
אני רוצה לטעון אקסל למערכת שמעדכנת את הזמנת הרכש הנכונה בפרטים מסוימים במסך הבן וגם את הכמויות
1. אם הכמות לא שווה לכמות בהזמנה אז יש לפצל את השורה ואת היתרה לרשום בשורה חדשה
2. ולהפך, יתכן שאותו מק"ט יופיע במספר שורות באותה הזמנה ולכן יתכן שיש לפצל את השורות מהאקסל
חשבתי לבצע טעינה למשטח ואז פרוצ' שמעדכנת את הזמנות הרכש אבל נתקלתי בהרבה קשיים אז לפני שאני שוברת את הראש אולי יש הצעה טובה יותר…
תודה
- Replies
-
- אוגוסט 6, 2019 בשעה 2:51 pm
נשמע הכי טוב לעשות מה שאת מציעה כי כך ניתן לראות את מה שנקלט מהקובץ.בסופו של דבר הפעולה שאת רוצה לעשות היא קצת מסובכת אבל בוודאי אפשרית.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 7, 2019 בשעה 12:40 pm
תודה.בניתי את הרוב וטעינת הקובץ למשטח עבד בצורה טובה אבל פתאום לא עובד לי והבעיה היא במשטח עצמו כי גם כשאני מקלידה ידני אני מקבלת שגיאה – ניסיתי לצרף לכאן את השגיאה אבל לא נותן לי אז רושמת אותה:
<p style="text-align: left;">SQL Server Error (80040e2f)</p>
<p style="direction: ltr;">Cannot insert the value Null into column 'PART', table '……'; Column does not allow nulls. INSERT fails. (Error 515)</p>
מה שמוזר זה שאין לי עמודת PART בטבלהעשיתי את LINE עמודת UNIQUE
אפילו מחקתי את המשטח ובניתי מחדש ולא עוזר
בבקשההההה עזרה
- אוגוסט 7, 2019 בשעה 7:15 pm
היתה לך עמודת PART??שגיאה כזאת לא אופיינית לפריוריטי ונראה לי שהיתה לך עמודה כזאת וניסית להוריד אותה והיתה שגיאה ופרירויטי כבר לא יודעת על עמודה שקיימת ברמת הדטהבייס ב-SQL Server ולכן לא מנסה לשים ערך. אבל בטבלה האמיתית (ש-SQL Server רואה) יש את העמודה והיא צריכה ערך…
אם היתה לך עמודת PART הייתי מציע להוסיף עוד פעם (נראה לי שלא משנה אם תקבלי שגיאות אם בגלל שכבר יש) ולהסיר עוד פעם.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 15, 2019 בשעה 2:50 pm
תודה על התשובהמחקתי את הטבלה ובניתי אותה שוב וזה פתר את הבעיה.
שאלה נוספת, כאשר אני מפצלת שורה בהזמנת רכש, אני רוצה שהשורה המפוצלת תהיה תחת השורה המקורית.
ניסיתי כל מיני דרכים אבל הבעיה היא שההזמנה לא מתרעננת בין שורה לשורה ולכן השורה שאני מנסה לעדכן כבר "תפוסה".
הרעיון היחידי שלי הוא לעשות execute אחרי כל שורה אבל נראה לי לא הגיוני (לא יודעת כמה שורות יטעינו למשטח).
אשמח לרעיון אחר…
תודה
- אוגוסט 15, 2019 בשעה 8:26 pm
כדי "למרפק" את השורה החדשה באמצע, את צריכה קודם להגדיל את מספר השורה של כל השורות "מעל" השורה הרצויה. מוטב דווקא להתחיל מהסוף ולחזור אחורה עד שאת מגיעה למקום הרצוי.נניח שיש עשר שורות בהזמנה ואת רוצה להוסיף שורה במקום החמישי. את צריכה קורסור אשר ישלוף את ORDI ואת LINE ממוין לפי LINE בסדר הפוך ועם LINE גדול מ-5. כך קודם תקבלי את השורה עם LINE = 10. את מגדילה את הערך ל-11 ועוברת לשורה הבאה, מגדילה ל-10 וכך הלאה. לאחר סיום הלולאה, את מכניסה את השורה החדשה.
יתכן שגם ניתן לכתוב ביטוי אחד במקום קורסור –
UPDATE PORDERITEMS
SET LINE = LINE + 1
WHERE ORD = :ORD
AND LINE > 5
- אוגוסט 21, 2019 בשעה 12:07 pm
אתה בטוח שניתן למיין בביטוי, עדכון?ז"א להכניס order by ב-update?
- יש להתחבר למערכת על מנת להגיב.