NoamN

Forum Replies Created

מוצגות 15 תגובות – 346 עד 360 (מתוך 447 סה״כ)
  • Replies
  • NoamN
    משתתף
    none
    את יודעת שיש שתי "מערכות" ליחידות כמות – יחידות מפעל ויחידות ספק כאשר מחבר ביניהם שיעור המרה. לכן את יכולה להזמין משהו בק"ג ולהתיחס לזה בתוך המפעל כמשהו אחר.

    לגבי קניה מספק אחד ב-15 ק"ג ומספר שני ב-10 '"ג, הייתי מציע לנהל את הפריט בק"ג (או 5 ק"ג), כאשר מאחד את מזמינה בכפולות של 15 והשני בפכילות של 10. אחרת את צריכה שני פריטים שונים וצריך להמיר מאחד לשני בעת כל רכישה.

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

    משתמע שכל הקשור לברקודים אינו רלוונטי לשאלה האמיתית.

    NoamN
    משתתף
    none
    תני לי להציע משהו אחר לגמרי: תכניסי את כל הערכים פעם אחת לתוך STACK8, לא באמצעות CURSOR. אחר כך תשלפי את הערך המזערי של כל פריט.

    LINK STACK8 TO $.STK;
    ERRMSG 1 WHERE :RETVAL <= 0;
    INSERT INTO STACK8 (KEY1, KEY2, REALDATA)
    SELECT PART, 1, PRICE
    FROM TABLE1
    WHERE …;
    INSERT INTO STACK8 (KEY1, KEY2, REALDATA)
    SELECT PART, 2, PRICE
    FROM TABLE2
    WHERE …;
    INSERT INTO STACK8 (KEY1, KEY2, REALDATA)
    SELECT PART, 3, PRICE
    FROM TABLE3
    WHERE …;
    INSERT INTO STACK8 (KEY1, KEY2, REALDATA)
    SELECT PART, 3, PRICE
    FROM TABLE4
    WHERE …;

    SELECT MIN (REALDATA)

    FROM STACK8
    WHERE KEY1 = :PART

    NoamN
    משתתף
    none
    כתבת "אני לא רוצה להוסיף עוד cursor שירוץ על כל המקטים". לא ברור לי מאין זה הגיע, אבל דווקא משפט. אם יש כמה ערכים בטבלה לגבי כל לקוח, ניתן לשלוף את הערך המזערי באמצעות פונקציית MIN
    <p style="text-align: left;">SELECT MIN (SOMETHING) INTO :A</p>
    <p style="text-align: left;">FROM TABLE</p>
    <p style="text-align: left;">WHERE CUST = :CUST</p>
    או משהו דומה
    NoamN
    משתתף
    none
    מקבול לרשום קליטות למלאי על סמך הזמנות רכש – לא הזכרת אם יש הזמנות.

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

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

    :ORIG = 'ABC';
    :REV = '';
    :I = 0;
    :LEN = STRLEN (:ORIG);
    LABEL 1;
    :I = :I + 1;
    :REV = STRCAT (SUBSTR (:ORIG, :I, 1), :REV);
    LOOP 1 WHERE :I < :LEN;
    SELECT :REV FROM DUMMY FORMAT;

    בסוף מודפס CBA

    NoamN
    משתתף
    none
    אין צורך (שאני מכיר) להכניס את שמות השדות בתוך הקובץ. זה אף עלול לפגוע.

    אינני בטוח לגבי רוחב השדות: יתכן שזה מיותר (זאת אומרת, מה שעשית נכון) אם מדובר בקובץ עם טאבים.

    האם ניסית לקלוט את הקובץ? מה היו התוצאות?

    NoamN
    משתתף
    none
    לפני הרבה מאד זמן היה לי קוד בפסקל ליצירת מספרים כאילו רנדומליים. זה היה קשור לזמן (במקרה שלנו SQL.DATE) MOD מספר ראשוני כלשהו יחד עם עוד כמה דברים. אני משער שזה לא ממש עוזר לך.
    NoamN
    משתתף
    none
    TSV = TAB SEPARATED VALUES

    ,מה שאני קראתי TAB DELIMITED TEXT, כי כך מופיע באקסל.

    יש תוכנית בתיקיית BIN95 בשם EXL2TXT אשר מתימרת להפוך XLSX ל-TXT אבל לא הצלחתי להפעיל אותה נכון (כתבתי תכנית משלי שעושה את אותו הדבר).

    NoamN
    משתתף
    none
    די מסובך להסביר איך לבצע דרך האתר.

    לא ציינת כמה נתונים יש בקובץ: האם כל נתונים מתאימים לשדות במסך LOGPART (או PART) או שמא יש נתונים ששייכים למסכים אחרים? דרך ממשק ניתן לקלוט נתונים למסך אב (נניח LOGPART) ומסך בן (נניח עץ מוצר) אך לא ניתן לקלוט למסך "אח", מסך שמופיע בשורת ההפעלות הישירות, כמו הגדרות כספים למוצרים או מאפיינים נוספים למוצר). כל מסך דורש ממשק משלו.

    בהנחה שיש רק מק"ט ותאור, אתה צריך להגדיר את הקובץ כך שיכיל שלושה טורים: בראשון תרשום 1, בשני המק"ט ובשלישי שם הפריט. תשמור את הקובץ כ-TAB DELIMITED TEXT.

    אתה צריך לבנות ממשק באמצעות מנהל המערכת > ממשקים > ממשקים למסכים > מחולל ממשקים למסכים, אך כאמור מסובך מדי להסביר כאן.

    NoamN
    משתתף
    none
    יש תחביר מקוצר בפריוריטי אשר מאפשר את המשפט הבא
    <p style="text-align: left;">ERRMSG X FROM YOURTABLE
    WHERE BINARYFIELD = 'Y'
    AND ID <> :$.ID</p>
    <p style="text-align: right;">או בעברית, הצג הודעת שגיאה אם קיימת רשומה בטבלה עם העמודה הבינארית מסומנת ולא מדובר ברשומה הזו.</p>
    NoamN
    משתתף
    none
    ראיתי שדות באורך 80 תווים אך לא מעבר לכך. מרמז שמצאתי ב-SDK, נראה שהוארך המירבי 127 תווים.

    מה קורה אם אתה מגדיר אורך 250?

    NoamN
    משתתף
    none
    F8
    NoamN
    משתתף
    none
    בעצם את רוצה/צריכה מערכת הרשאות נפרדת. נניח שיש טבלת "רמות הגנה" עם ערכים 1, 2, 3 וכו'. צריך להוסיף לכל מסך שדורש גישה לפי רמת הגנה שדה שיקבע את רמת ההגנה. אחר כך צריך להוסיף מסך בן למשתמשים בו תוגדרנה הרמות שכל משתמש רשאי לראות. השימוש במסך בן מאפשר מתן הרשאה לכמה רמות הגנה. כדוגמא, יכול להיות שלמשתמש מסוים יש הרשאה לרמות הגנה 1, 2 ו-4. הוא יוכל לראות את כל הנתונים שקודדו עם הרמות הללו אך לא יוכל לראות אם רמת ההגנה 3.

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

    הרבה מאד התעסקות…..

    NoamN
    משתתף
    none
    חברה א', את יוצרת טבלת GENERALLOAD מלונקקת אשר מכילה את הנתונים הרצויים – מספר ספק, מספרי פריטים, מחירים, כמויות וכד'. אין להכניס אף
    "מספר פנימי" – זאת אומרת, אין להתחכם ולשמור ב-GENERALLOAD את SUPPLIERS.SUP אלא SUPPLIERS.SUPNAME.

    לאחר איסוף הנתונים בשלב הזה, רושמים את הפקודה ENV 'other' אשר משנה אם הסביבה לחברה ב' (כמובן צריך לרשום את שם הסביבה השניה, כפי שמופיע בשדה "חברה" במסך מנהל המערכת > תחזוקת מערכת > טיפול בחברות > חברות.

    בשלב הזה מבצעים EXECUTE INTERFACE על מנת לקרוא את הנתונים השמורים ב-GENERALLOAD לתוך המסכים הרצוים (ORDERS, ORDERITEMS).

    כל זה כמובן ללא "מודול ממשקים אלקטרוניים" אלא ישירות.

מוצגות 15 תגובות – 346 עד 360 (מתוך 447 סה״כ)