NoamN

Forum Replies Created

מוצגות 15 תגובות – 346 עד 360 (מתוך 442 סה״כ)
  • Replies
  • 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).

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

    NoamN
    משתתף
    none
    יש הבדל מהותי בין דו"ח לבין מסך בנושא הזה.

    לגבי מסך: כל מסך בנוי במקור על טבלה מחדלית – השם מופיע בכותרת המסך. כתוצאה מכך, כל השדות אשר מופיעים במסך אשר נובעים מאותה טבלה ייכתבו למסד נתונים בעת שמירת נתונים. לדוגמא – מסך הזמנות לקוח מבוסס על טבלת ORDERS. שדה כמו ORDERS.DISPRICE יירשם אוטומטית. מסך בדרך כלל גם מציג שדות מטבלאות אחרות, לדגומא CUSTOMERS.CUSTNAME. במקרה הזה, יש גם שדה ORDERS.CUST אשר יכיל את המספר הפנימי של הלקוח, וכיון שהשדה הזה נמצא בטלבה המחדלית, גם הוא יירשם בעת שמירת נתונים (ORDERS.CUST יירשם, לא CUSTOMERS.CUSTNAME). יש שתי אפשרויות כאשר מופיע שם שדה במסך הבן הרחבות: הראשונה, והקל להבין, מציג ביטוי (תסתכל על השדה "CDES"). האפשרות השניה מסובמכת יותר ואומרת  ש*הערך הזה* אמור להישמר אך צריך לרשום קוד אשר ידאג לזה (דוגמא POSITIONDES).

    בדו"חות, מה שמופיע בהרחבה כמעט תמיד ביטוי. מקרה שלא ביטוי: אם רושמים בדו"ח שדה כמו PARTEXTFILES.EXTFILENAME, בדו"ח יופיע קיצור לקובץ הזה (זאת אומרת, לחיצה על ה"תמונה" תגרום לקובץ עצמו להיפתח). אם רושמים את אותו הדבר אבל בהרחבה, *שם הקובץ* יופיע.

    NoamN
    משתתף
    none
    נכון לגבי מזהה 5, אבל מוסיפים את הקוד בדו"ח, לא במסך. אינני יודע אם מדובר בדו"ח סטנדרטי ואם החוקים לגבי המזהה חלים גם על דו"חות. אני משער שאין בעיה להעתיק את הדו"ח לדו"ח מותאם ולבצע את התוספות שם.
    NoamN
    משתתף
    none
    אני משער שאתה כותב על מסך על QINVOICES, מסך בן HFNCITEMS. אין שדה REFER.1 אבל יש שדה FNCIREF1, שהוא מורכב מ-FNCITEMSA.FNCIREF1 (זה מופיע כך מפני שמדובר בשדה כתיב שאינו בטבלה הבסיסית של המסך). למעשה מדובר בשדה שקשור לשורה בתנועת יומן. השדה זה מכיל מספר חשבונית לכן ניתן לחבר אותו עם INVOICES.IVNUM (סביר להניח שתצטרך להשתמש במספר מזהה שונה מ-0) ומשם כמו שכתבתי במקור –

    FNCITEMSA.FNCIREF1 = INVOICES.IVNUM
    INVOICES.IV = INVOICESA.IV
    INVOICESA.PROJ = DOCUMENTS.DOC

    צריך להשתמש בשליפה מותנית (דהיינו, תרשום סימן שאלה בשדה "מזהה" יחד עם המספר, כמו ?1) כיון שלא בטוח שתהיה רשומה מתאימה ל-FNCIREF1.

    NoamN
    משתתף
    none
    בסוף הסתדרתי. היה יותר פשוט ממה שחשבתי.
    NoamN
    משתתף
    none
    בהנחה שמדובר בדו"ח שמבוסס על טבלת INVOICES, צריך להוסיך:

    1. INVOICES.IV = INVOICESA.IV

    2. INVOICESA.PROJ = DOCUMENTS.DOC

    3. להציג את DOCUMENTS.DOCNO

    4. מסך היעד של אותו השדה – DOCUMENTS_p

    צריך לבדוק אם טבלת DOCUMENTS כבר מופיעה בדו"ח – אם כן, צריך לתת לטבלה בשלב 2 מספר מזהה 1

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