טעינת נתונים ופיצול שורות בהזמנות רכש

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

  • Post
    sayo
    משתתף
    היי,

    אשמח להצעה לדרך הכי טובה לבצע את הפיתוח הבא:

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

    1. אם הכמות לא שווה לכמות בהזמנה אז יש לפצל את השורה ואת היתרה לרשום בשורה חדשה

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

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

    תודה

מוצגות 9 תגובות – 1 עד 9 (מתוך 9 סה״כ)
  • Replies
    yitzchok
    משתתף
    IL
    נשמע הכי טוב לעשות מה שאת מציעה כי כך ניתן לראות את מה שנקלט מהקובץ.

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    sayo
    משתתף
    תודה.

    בניתי את הרוב וטעינת הקובץ למשטח עבד בצורה טובה אבל פתאום לא עובד לי והבעיה היא במשטח עצמו כי גם כשאני מקלידה ידני אני מקבלת שגיאה – ניסיתי לצרף לכאן את השגיאה אבל לא נותן לי אז רושמת אותה:
    <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

    אפילו מחקתי את המשטח ובניתי מחדש ולא עוזר

    בבקשההההה עזרה

     

    yitzchok
    משתתף
    IL
    היתה לך עמודת PART??

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

    אם היתה לך עמודת PART הייתי מציע להוסיף עוד פעם (נראה לי שלא משנה אם תקבלי שגיאות אם בגלל שכבר יש) ולהסיר עוד פעם.

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    sayo
    משתתף
    תודה על התשובה

    מחקתי את הטבלה ובניתי אותה שוב וזה פתר את הבעיה.

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

    ניסיתי כל מיני דרכים אבל הבעיה היא שההזמנה לא מתרעננת בין שורה לשורה ולכן השורה שאני מנסה לעדכן כבר "תפוסה".

    הרעיון היחידי שלי הוא לעשות execute אחרי כל שורה אבל נראה לי לא הגיוני (לא יודעת כמה שורות יטעינו למשטח).

    אשמח לרעיון אחר…

    תודה

    NoamN
    משתתף
    none
    כדי "למרפק" את השורה החדשה באמצע, את צריכה קודם להגדיל את מספר השורה של כל השורות "מעל" השורה הרצויה. מוטב דווקא להתחיל מהסוף ולחזור אחורה עד שאת מגיעה למקום הרצוי.

    נניח שיש עשר שורות בהזמנה ואת רוצה להוסיף שורה במקום החמישי. את צריכה קורסור אשר ישלוף את ORDI ואת LINE ממוין לפי LINE בסדר הפוך ועם LINE גדול מ-5. כך קודם תקבלי את השורה עם LINE = 10. את מגדילה את הערך ל-11 ועוברת לשורה הבאה, מגדילה ל-10 וכך הלאה. לאחר סיום הלולאה, את מכניסה את השורה החדשה.

    יתכן שגם ניתן לכתוב ביטוי אחד במקום קורסור –

    UPDATE PORDERITEMS

    SET LINE = LINE + 1

    WHERE ORD = :ORD

    AND LINE > 5

     

     

     

     

     

    sayo
    משתתף
    איך אני יכולה לרשום בביטוי שיתחיל מהסוף?
    NoamN
    משתתף
    none
    order by line desc
    sayo
    משתתף
    אתה בטוח שניתן למיין בביטוי, עדכון?

    ז"א להכניס order by ב-update?

     

    sayo
    משתתף
    לא משנה הסתדרתי בדרך אחרת אבל הבעיה נשארה כי אני לא יכולה לדעת מהי השורה המקסימלית עד שאני לא מריצה את הממשק.

    הרי אני מכניסה בהתחלה הכל לטבלה זמנית ואני לא יכולה לדעת מראש כמה שורות עלי לפנות ואיפה…

    אבל תודה בכל מקרה אמצא דרך…

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