NoamN

Forum Replies Created

מוצגות 15 תגובות – 361 עד 375 (מתוך 442 סה״כ)
  • Replies
  • NoamN
    משתתף
    none
    למיטב זכרוני, דו"ח רווח והפסד מהווה את הדוגמא היחידה בפריוריטי סטנדרטית לסוג דו"ח שאני קורא לו ZOOM – מציגים דו"ח מרוכז, לוחצים על נתון ונפתח דו"ח מפורט לגבי אותו נתון. הדו"חות הללו קוראים לעצמם עם פרמטרים שונים כאשר השלב הראשון בפרוצדורה מחליט אם מדובר בדו"ח מרוכז או מפורט. כותב הפרוצדורה שולט בכמה פרמטרים מעוברים: מחברים מחרוזת עם הנתונים הנדרשים, מופרדים בפסיק או משהו אחר, והפרוצדורה אשר מקבלת את המחרוזת צריכה לחלק את המחרוזת בחזרה לנתונים נפרדים. לפני שכולם מתלהבים מהרעיון, עלי להזהיר שפרוצודרות/דו"חות כאלה קשים מאד לכתיבה.

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

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

    אני חושב שאתה מסתכל על הבעיה בצורה הפוכה: מוטב לכתוב פרוצדורה אשר תשלוף את הרשומות שהיו אמורות להיות מוצגות בדו"ח ולבצע את העדכון הנדרש בתוך הפרוצדורה עצמה.

    NoamN
    משתתף
    none
    כמובן תלוי מה אתה רוצה לשנות. תמיד רצוי לנסות קודם במסך "שינויים בתעודות משלוח סופית" (או המסך המקביל עבור שורות) לפני שמסתבכים.
    NoamN
    משתתף
    none
    אלו הקשות כלולות במקרו? אי אפשר להקליט את הפעלת ההפעלה הישירה לביטול סגירת התעודה באמצעות לחיצת עכבר, אלא צריך ללחוץ על CTRL+F5 כדי להעלות את רשימת ההפעלות ולבחור את ההפעלה הרצויה באמצעות המקלדת בלבד.
    NoamN
    משתתף
    none
    בהחלט אפשרי. יש כל מיני אפשרויות בהתאם לדרישות הספציפיות שלך.

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

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

    בהנחה שהכל בסדר, צריך לפעול בהתאם להוראות בפרק 15 של ה-SDK בקטע Creating an E-Document using Procedure Code

    NoamN
    משתתף
    none
    בהנחה שיש לך שדה תאריך אחד שמוצג כפרמטר (שיכיל את התאריך שווה או פחות מ-), תוסיף את השדה הזה פעם נוספת, מוסתר, אם ביטוי גדול מ-01/01/88. כך תמנע הופעת רשומות ללא תאריך.
    NoamN
    משתתף
    none
    משתמע שלסביבות יש אותה קידומת לחשבוניות – לא רעיון טוב מכל מיני סיבות. אני ממליץ להגדיר קידומות שונות לכל סוג תעודה לכל חברה כך ניתן לדעת מיד לאיזו סביבה שייך מסמך.

    לגופו של ענין, אני מציע שתוסיפי לטבלת COMPDATA שדה CHAR שיכיל את המזהה 211 וכו' – נקרא לשדה הזה TEST_ID. תוכן הברקוד יהיה

    STRCAT('*I' , COMPDATA.TEST_ID, INVOICES.IVNUM,'*').

    השימוש בשדה בטבלה חוסך את הצורך לבנות את המזהה בעת הפקת הדו"ח בהתאם לערכו של SQL.ENV, שידרוש משפט קצת מסובך. כמובן צריך לחבר את COMPDATA לדו"ח שמציג את הברקוד. ניתן לשמור את הערך בשלב SQLI של הפרוצדורה בתוך פרמטר ואחר כך להשתמש בפרמטר בביטוי.

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

    לא צריך להסתבך עם פרוצדורה. כך היינו צריכים לעבוד פעם, עד בגרסה 15 בערך, אבל היום יותר פשוט להעביר טווח ערכים לדו"ח פשוט.

    NoamN
    משתתף
    none
    אפשר לעצב את המסך כדי שהשדות השימושיים ביותר נמצאים ביחד באותה לשונית.

     

    NoamN
    משתתף
    none
    ממה שאני יודע, שלב HTMLCURSOR צריך לבוא לפני שלב SQLI, לא אחרי, כאשר הוא בדרך כלל פשוט, ללא חיתוכים (בדומה להפעלה CHOOSE-FIELD). חיתוכים נוספים והתחכמויות מתבצעים בשלב ה-SQLI.
    NoamN
    משתתף
    none
    שינוי רוחב שדה מתבצע באמצעות מנהל המערכת > מחוללים > טבלאות > מחולל עמודות > שנוי רוחב עמודה. אני משער שרק טבולה יכולה להפעיל את התכנית בהצלה.

    יש רק טבלת FAMILY אחת שמכילה גם משפחות מוצרים ומשפחות הנה"ח.

    כנראה מדובר בשדה FAMILYNAME שהוא באורך 8 תווים. צריך לבצע הכנת מסכים כללית לאחר השינוי.

    NoamN
    משתתף
    none
    במקרה כזה, נדרש מונה פשוט – שדה שמופיע בכל שורה עם ערך 1. לשדה הזה יש חישוב קבוצתי T.

    יותר מורכב אם את רוצה מונה רץ בדו"ח (1, 2, 3 …) . במקרה כזה צריך לקבוע שדה נסתר עם ערך 0 (נניח #300) ושדה אחר, מוצג, עם ערך #300 + 1 כאשר החישוב הקבוצתי A.

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

    אם הסכום לתשלום 100, ניכוי מס אומר שצריך להכין תשלום בסך 100 אבל מתוך הסכום הזה צריך להעביר 5 לרשויות המס לכן משלמים לספק 95. אם הסכום לתשלום 105 (ולא משנה איך הגעתם אל הסכום), אזי 5% ניכוי יהיה 5.25 כפי רשמת.

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

    NoamN
    משתתף
    none
    האם את מתכוונת שיש טור בדו"ח עם חישוב קבוצתי S? תשני את ה-S ל-B אשר גורם לסיכום בסוף כל קבוצה וגם בסוף הדו"ח.
מוצגות 15 תגובות – 361 עד 375 (מתוך 442 סה״כ)