Forum Replies Created
- Replies
-
- ינואר 30, 2020 בשעה 12:11 pm
- in reply to: הפיכת מחרוזת
אני בטוח שהשאלה הזו (איך להפוך) נשאלה לפחות פעם אחת בעבר. בכל אופן, הנה קצת קוד: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
- ינואר 29, 2020 בשעה 1:09 pm
- in reply to: הסבת נתונים – טעינת נתונים מקובץ אקסל
אין צורך (שאני מכיר) להכניס את שמות השדות בתוך הקובץ. זה אף עלול לפגוע.אינני בטוח לגבי רוחב השדות: יתכן שזה מיותר (זאת אומרת, מה שעשית נכון) אם מדובר בקובץ עם טאבים.
האם ניסית לקלוט את הקובץ? מה היו התוצאות?
- ינואר 28, 2020 בשעה 1:22 pm
- in reply to: פונקצית RAND
לפני הרבה מאד זמן היה לי קוד בפסקל ליצירת מספרים כאילו רנדומליים. זה היה קשור לזמן (במקרה שלנו SQL.DATE) MOD מספר ראשוני כלשהו יחד עם עוד כמה דברים. אני משער שזה לא ממש עוזר לך.- ינואר 28, 2020 בשעה 1:15 pm
- in reply to: הסבת נתונים – טעינת נתונים מקובץ אקסל
TSV = TAB SEPARATED VALUES,מה שאני קראתי TAB DELIMITED TEXT, כי כך מופיע באקסל.
יש תוכנית בתיקיית BIN95 בשם EXL2TXT אשר מתימרת להפוך XLSX ל-TXT אבל לא הצלחתי להפעיל אותה נכון (כתבתי תכנית משלי שעושה את אותו הדבר).
- ינואר 28, 2020 בשעה 8:08 am
- in reply to: הסבת נתונים – טעינת נתונים מקובץ אקסל
די מסובך להסביר איך לבצע דרך האתר.לא ציינת כמה נתונים יש בקובץ: האם כל נתונים מתאימים לשדות במסך LOGPART (או PART) או שמא יש נתונים ששייכים למסכים אחרים? דרך ממשק ניתן לקלוט נתונים למסך אב (נניח LOGPART) ומסך בן (נניח עץ מוצר) אך לא ניתן לקלוט למסך "אח", מסך שמופיע בשורת ההפעלות הישירות, כמו הגדרות כספים למוצרים או מאפיינים נוספים למוצר). כל מסך דורש ממשק משלו.
בהנחה שיש רק מק"ט ותאור, אתה צריך להגדיר את הקובץ כך שיכיל שלושה טורים: בראשון תרשום 1, בשני המק"ט ובשלישי שם הפריט. תשמור את הקובץ כ-TAB DELIMITED TEXT.
אתה צריך לבנות ממשק באמצעות מנהל המערכת > ממשקים > ממשקים למסכים > מחולל ממשקים למסכים, אך כאמור מסובך מדי להסביר כאן.
- ינואר 28, 2020 בשעה 8:02 am
- in reply to: סימון רשומה אחת בטבלה בדגל
יש תחביר מקוצר בפריוריטי אשר מאפשר את המשפט הבא
<p style="text-align: left;">ERRMSG X FROM YOURTABLE
WHERE BINARYFIELD = 'Y'
AND ID <> :$.ID</p>
<p style="text-align: right;">או בעברית, הצג הודעת שגיאה אם קיימת רשומה בטבלה עם העמודה הבינארית מסומנת ולא מדובר ברשומה הזו.</p>- ינואר 26, 2020 בשעה 2:39 pm
- in reply to: מקסימום אורך לשדה טקסט
ראיתי שדות באורך 80 תווים אך לא מעבר לכך. מרמז שמצאתי ב-SDK, נראה שהוארך המירבי 127 תווים.מה קורה אם אתה מגדיר אורך 250?
- ינואר 26, 2020 בשעה 10:26 am
- in reply to: מעבר בין מסך בן למסך האב
F8- ינואר 19, 2020 בשעה 2:03 pm
- in reply to: סניף נוסף ללקוח
בעצם את רוצה/צריכה מערכת הרשאות נפרדת. נניח שיש טבלת "רמות הגנה" עם ערכים 1, 2, 3 וכו'. צריך להוסיף לכל מסך שדורש גישה לפי רמת הגנה שדה שיקבע את רמת ההגנה. אחר כך צריך להוסיף מסך בן למשתמשים בו תוגדרנה הרמות שכל משתמש רשאי לראות. השימוש במסך בן מאפשר מתן הרשאה לכמה רמות הגנה. כדוגמא, יכול להיות שלמשתמש מסוים יש הרשאה לרמות הגנה 1, 2 ו-4. הוא יוכל לראות את כל הנתונים שקודדו עם הרמות הללו אך לא יוכל לראות אם רמת ההגנה 3.צריך להוסיף בדיקה לכל מסך ודו"ח (לכן מוטב לכתוב את הקוד פעם אחת ולהתיחס אליו בכל מקום) אשר בודק אם למשתמש יש רמת ההגנה הנדרשת. ניתן לעשות זאת באמצעות משפט המבוסס על טבלת DUMMY.
הרבה מאד התעסקות…..
- ינואר 19, 2020 בשעה 12:54 pm
- in reply to: ממשקים אלקטרונים
חברה א', את יוצרת טבלת GENERALLOAD מלונקקת אשר מכילה את הנתונים הרצויים – מספר ספק, מספרי פריטים, מחירים, כמויות וכד'. אין להכניס אף
"מספר פנימי" – זאת אומרת, אין להתחכם ולשמור ב-GENERALLOAD את SUPPLIERS.SUP אלא SUPPLIERS.SUPNAME.לאחר איסוף הנתונים בשלב הזה, רושמים את הפקודה ENV 'other' אשר משנה אם הסביבה לחברה ב' (כמובן צריך לרשום את שם הסביבה השניה, כפי שמופיע בשדה "חברה" במסך מנהל המערכת > תחזוקת מערכת > טיפול בחברות > חברות.
בשלב הזה מבצעים EXECUTE INTERFACE על מנת לקרוא את הנתונים השמורים ב-GENERALLOAD לתוך המסכים הרצוים (ORDERS, ORDERITEMS).
כל זה כמובן ללא "מודול ממשקים אלקטרוניים" אלא ישירות.
- ינואר 19, 2020 בשעה 9:06 am
- in reply to: שאלה בנושא מסכים/דוחו"ת
יש הבדל מהותי בין דו"ח לבין מסך בנושא הזה.לגבי מסך: כל מסך בנוי במקור על טבלה מחדלית – השם מופיע בכותרת המסך. כתוצאה מכך, כל השדות אשר מופיעים במסך אשר נובעים מאותה טבלה ייכתבו למסד נתונים בעת שמירת נתונים. לדוגמא – מסך הזמנות לקוח מבוסס על טבלת ORDERS. שדה כמו ORDERS.DISPRICE יירשם אוטומטית. מסך בדרך כלל גם מציג שדות מטבלאות אחרות, לדגומא CUSTOMERS.CUSTNAME. במקרה הזה, יש גם שדה ORDERS.CUST אשר יכיל את המספר הפנימי של הלקוח, וכיון שהשדה הזה נמצא בטלבה המחדלית, גם הוא יירשם בעת שמירת נתונים (ORDERS.CUST יירשם, לא CUSTOMERS.CUSTNAME). יש שתי אפשרויות כאשר מופיע שם שדה במסך הבן הרחבות: הראשונה, והקל להבין, מציג ביטוי (תסתכל על השדה "CDES"). האפשרות השניה מסובמכת יותר ואומרת ש*הערך הזה* אמור להישמר אך צריך לרשום קוד אשר ידאג לזה (דוגמא POSITIONDES).
בדו"חות, מה שמופיע בהרחבה כמעט תמיד ביטוי. מקרה שלא ביטוי: אם רושמים בדו"ח שדה כמו PARTEXTFILES.EXTFILENAME, בדו"ח יופיע קיצור לקובץ הזה (זאת אומרת, לחיצה על ה"תמונה" תגרום לקובץ עצמו להיפתח). אם רושמים את אותו הדבר אבל בהרחבה, *שם הקובץ* יופיע.
- ינואר 14, 2020 בשעה 6:41 pm
- in reply to: הוספת הפרויקט לדו"ח העברה בנקאית
נכון לגבי מזהה 5, אבל מוסיפים את הקוד בדו"ח, לא במסך. אינני יודע אם מדובר בדו"ח סטנדרטי ואם החוקים לגבי המזהה חלים גם על דו"חות. אני משער שאין בעיה להעתיק את הדו"ח לדו"ח מותאם ולבצע את התוספות שם.- ינואר 14, 2020 בשעה 10:04 am
- in reply to: הוספת הפרויקט לדו"ח העברה בנקאית
אני משער שאתה כותב על מסך על QINVOICES, מסך בן HFNCITEMS. אין שדה REFER.1 אבל יש שדה FNCIREF1, שהוא מורכב מ-FNCITEMSA.FNCIREF1 (זה מופיע כך מפני שמדובר בשדה כתיב שאינו בטבלה הבסיסית של המסך). למעשה מדובר בשדה שקשור לשורה בתנועת יומן. השדה זה מכיל מספר חשבונית לכן ניתן לחבר אותו עם INVOICES.IVNUM (סביר להניח שתצטרך להשתמש במספר מזהה שונה מ-0) ומשם כמו שכתבתי במקור –FNCITEMSA.FNCIREF1 = INVOICES.IVNUM
INVOICES.IV = INVOICESA.IV
INVOICESA.PROJ = DOCUMENTS.DOCצריך להשתמש בשליפה מותנית (דהיינו, תרשום סימן שאלה בשדה "מזהה" יחד עם המספר, כמו ?1) כיון שלא בטוח שתהיה רשומה מתאימה ל-FNCIREF1.
- ינואר 13, 2020 בשעה 9:37 pm
- in reply to: הדפסת המחאות לפי תבנית Word
בסוף הסתדרתי. היה יותר פשוט ממה שחשבתי.- ינואר 13, 2020 בשעה 7:57 am
- in reply to: הוספת הפרויקט לדו"ח העברה בנקאית
בהנחה שמדובר בדו"ח שמבוסס על טבלת INVOICES, צריך להוסיך:1. INVOICES.IV = INVOICESA.IV
2. INVOICESA.PROJ = DOCUMENTS.DOC
3. להציג את DOCUMENTS.DOCNO
4. מסך היעד של אותו השדה – DOCUMENTS_p
צריך לבדוק אם טבלת DOCUMENTS כבר מופיעה בדו"ח – אם כן, צריך לתת לטבלה בשלב 2 מספר מזהה 1