שלב 2/3 - הגדרת תנאי המסנן


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

על מנת לצלוח את השלב הנוכחי נדרש ממך:
א. להכיר באופן בסיסי את מבנה הטבלה/אות הנדרשות ליצירת המסנן (לא נדרש לדעת אותם בע"פ).
ב. לדעת באילו מאגרים מאוחסנים הנתונים N=Normal / A=Archive / D=Deleted
ג. להכיר את מפתחות הטבלאות במידה ובמסנן משולבים מספר טבלאות.

דוגמאות:
  1. על מנת לאתר לקוחות לפי מועד ביצוע ההזמנה שלהם, יש לקשר בין הטבלאות: Clients ו- Orders,
    ולהצליב את המידע מהטבלאות הנ"ל באמצעות שדה המפתח: "מספר לקוח" אשר מתקיים בשני הטבלאות.
  2. כאשר ברצונך לאתר לקוחות לפי מועדי פגישה (מהיומן), עליך לשלב בין הטבלאות Clients + Meeting Invitations + Meetings כאשר
    הנך בטבלת ה- Meetings תבצע חיפוש גם במאגר ה- ARCHIVE (A) כי בו ימצאו כלל רשומות היומן ש"מועד הפגישה" עבר ב- 6 חודשים ומעלה.


ממשק החלון

בשלב זה החלון מחולק לשלושה אזורים:
  1. לחצני פעולה - מכיל סט לחצני הוראה, הזמינים בהתאם למיקום הסמן בעץ ההתניות.
  2. עץ ההתניות - מכיל את התניות השאילתה, כאשר כל ענף בעץ מהווה התניה לאיתור נתונים מטבלה ספציפית אחת.
  3. מבנה ההתניה - מכיל את השדות למילוי התנאים / הלוגיקה שתשמש את אותה ההתניה.

הגדרות תנאי המסנן - שלב 2/3

לחצני הפעולה

לחצני הפעולה הנמצאים בצדו השמאלי של החלון משמשים כלחצני הוראות המשפיעים על עץ ההתניות.
הלחצנים נפתחים ונסגרים ללחיצה בהתאם להתניה / לענף שנבחר בעץ ההתניות.

להלן טבלת הסבר אודות תפקיד ומשמעות כל לחצן:
Add Table Query לחצן זה מאפשר הוספת טבלה נוספת למסנן מתוך רשימת הטבלאות הקיימות במסד הנתונים.
* הלחצן פעיל רק כאשר לוחצים ומסמנים בראש עץ ההתניות את הכותרת "Tables by Algorithm Order".
* לא מומלץ להוסיף לעץ ההתניות את אותה הטבלה יותר מפעם אחת.
* לאחר שהוספה הטבלה הרצויה לעץ, וודא שהוגדר לה המאגרים הנדרשים לחיפוש בשדה "From Storage Folders (N/A/D)".

Add Where Condition לחצן זה מוסיף תנאי חדש למסנן, והוא מתווסף כענף בתחתית עץ ההתניות.
Link to Prev Table Field לחצן זה מוסיף קישור בין הטבלה המסומנת בעץ לטבלה נבחרת מעליה.
פעולה זו נדרשת כאשר יוצרים מסנן עם יותר מטבלה אחת!
כל טבלה ניתנת לקישור רק אל טבלה אחת הנמצאת מעליה בעץ ההתניות.

בדוגמה הבאה ניתן לראות כיצד מקושרת טבלת Clients (הלקוחות) אל טבלת Orders (ההזמנות) באמצעות השדה מספר לקוח הקיים בשניהם.
() Close Group And Start A New One הפרדה בין מקבצי התניות.
כאשר לא מיישמים את הפונקציה הנוכחית, שרת הנתונים מפענח את תנאי המסנן למקבץ התניות אחד ארוך.
לחצן זה מורה לשרת לפצל ולהפריד את ההתניות לכדי מקבצים שונים, עם האפשרות לקשר בין המקבצים על ידי אחד משערי התנאים: AND / OR / AND NOT / OR NOT.
לדוגמה, נניח שבעץ ההתניות היו התנאים הבאים:
תאריך יצירה = X     וגם הליד הגיע דרך = Y     וגם טלפון =! ריק
במידה ויוסף הסימן () עם הלוגיקה OR מעל התנאי האחרון בעץ, השרת יפענח את התניות המסנן באופן הבא:
(תאריך יצירה = X   וגם הליד הגיע דרך = Y) או (טלפון =! ריק)
Duplicate Condition שכפול התנאי המסומן והוספה שלו אל סוף עץ ההתניות.
Move Up / Down מאפשר הזזת התניה מקום אחד במעלה או מורד עץ ההתניות.
סמן את ההתניה הרצויה בלחיצת עכבר ולחץ על הלחצן להזזתה. ההזזה מותרת רק בתוך אותה הטבלה.
Remove Node מחיקת התניה / טבלה מסומנים.
מאפשר מחיקה יחידה בכל פעם. סמן את ההתניה או את שם טבלה למחיקה ולחץ על הלחצן.


אזור הגדרת ההתניה

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

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

שדה הסבר
* Table Name שם הטבלה לחיפוש.
מאפשר את בחירת שם הטבלה הנדרשת להתווסף לשאילתה. שדה זה נדרש למילוי רק פעם אחת - במעמד הוספת הטבלה (לחצן "Add Table Query").
* From Storage Folders הגדרת עבודה מול טבלה בלבד.
הגדרת מקום החיפוש - מורה לשרת הנתונים באיזה מאגר של אותה הטבלה לבצע את החיפוש.
שרת הנתונים מחזיק 3 מאגרים לכל טבלה והם:
  • N = Normal - מכיל את כלל הנתונים שבשגרה (מאגר ברירת המחדל, רוב השאילתות יבוצעו מול מאגר זה).
  • A = Archive - מאגר הארכיון מכיל נתונים שהועברו אליו מתוך בחירה של מנהל המערכת או ע"י מערכת האוטומציה.
    לדוגמה: בטבלת היומן פגישות שמועדם עבר מעל 6 חודשים עוברים למאגר הארכיון אוטומטית ע"י המערכת (לטובת אופטימיזציה של הנתונים).
  • D = Deleted - מאגר המחוקים מכיל רשומות שנמחקו ע"י המשתמש במסגרת השימוש בתוכנה.
Logic Gate הגדרת חיבור ההתניה הנוכחית להתניה הקודם. בחירת אופן החיבור בין התנאים הבאים:
  • AND - חיבור בהתניית "וגם".
  • OR - חיבור בהתניית "או".
  • AND NOT - חיבור בהתניית "ולא".
  • OR NOT - חיבור בהתניית "או לא".
* Field Name בשדה זה חובה לבחור את שם השדה שעליו יבוצע החיפוש (שדה המטרה).
* Where Function בשדה זה חובה לבחור את התנאי הלוגי שיופעל בחיפוש הערכים:
  • Above Value - גדול ושווה מהערך המבוקש (הסימן: <= ).
  • Below Value - קטן ושווה מהערך המבוקש (הסימן: >= ).
  • Same Value - שווה בדיוק לערך המבוקש (הסימן: = ).
  • Contain String - מחפש את הערך בדיוק כפי שהוזן לשדה החיפוש (לרבות רווחים וסימני פיסוק), כחלק מטקסט בשדה המטרה.
    לוגיקה זו תופעל כאשר מחפשים בשדה טקסט/STRING.
    לדוגמה: חיפוש אחר המחרוזת "מסמכים פני" ימצא בתוך הערך "תיוק מסמכים פנימי שלנו".
  • String Search - חיפוש כל מילה בנפרד, כחלק כל שהוא מהערך בשדה המטרה.
    דוגמה 1: בחיפוש המחרוזת "אלי" אפשרי שיתקבלו התוצאות הבאות: "אלי הגדול" , "אלינור היפה".
    דוגמה 2: בחיפוש המחרוזת "מטב זיו" אפשרי שתתקבל התוצאה "זיו מטבחי איכות לכולם"
  • Phonetic String Search - מבצע את הלוגיקה של String Search בתוספת חיפוש ערכם דומים (ניקוי אותיות אהו"י ודמיון שמע).
    דוגמה 1: בחיפוש המחרוזת "אלי" אפשרי שיתקבלו התוצאות הבאות:
  • Date in Period - חיפוש בתוך שדה תאריך כטווח ערכי תאריכים (ימים קלנדאריים).
  • Contain Group Items - מציאת ערך/ים מתוך קבוצת ערכים. מיועד עבור שדות מסוג GROUP המכילים תיבות בחירה מרובות.
  • Compare Between Fields - מאפשר השוואה בין שדות הנמצאים באותה הטבלה. אפשרות זו תפתח לבחירה את השדות הבאים:
    Equation - בחירת תנאי ההשוואה בין השדות.
    Compare to Field Name - בחירת השדה השני מהטבלה לביצוע ההשוואה.
* לידיעתך, כאשר בוחרים באחד משלושת התנאים: "Contain String" או "String Search" או "Phonetic String Search", חובה למלא ערך בשדה "Value" או לחשוף את השדה למילוי ע"י המשתמש, אחרת המסנן יציג תקלה או שלא יציג נתונים כלל.
Value שדה זה מאפשר להזין מראש את ערך הפילוח הנדרש עבור אותו התנאי ובכך ליצור פילטר קבוע.
לדוגמה: בפילטר איתור לקוחות, בביצוע חיפוש בשדה "הליד הגיע דרך", אם ב- Value יוגדר הערך "אתר האינטרנט", הדבר יגרום לפילטר לאתר את רשומות הלקוחות שהגיעו מאתר האינטרנט.

שימוש נוסף לשדה Value מתבצע כאשר נבחר ערך מייצג בשדה "Default Value By Function" בתוספת של אחד מסימני החישוב: "+ | -". במקרה כזה, שדה ה- Value ישפיע על תוצאת הערך המייצג.
לדוגמה: נניח שרוצים ליצור התניה המפלחת נתונים על לקוחות שתאריך יצירתם היה לפני יומיים, אזי שבשדה "Default Value By Function" יש לבחור בערך "Today" ובשדה Value נזין את הערך 2-.

ברוב המקרים לא נדרש למלא מראש בשדה ה- "Value" כל ערך. מלבד כאשר רוצים לייצר פילטר עם ערכים קבועים.
Default Value By Function שדה זה מאפשר לבחור "ערך מייצג" המיושם אוטומטית לאותו השדה בזמן הפעלת המסנן.
"הערך המייצג" קובע לאותה ההתניה את ערכה. בנוסף לכך, במידה ונקבע ערך בשדה Value הוא יחושב אל מול הערך המייצג.

דוגמה: עבור התניה על שדה תאריך, כאשר תשתמש בערך המייצג "Today" יקבע לאותו השדה התאריך של יום הפעלת המסנן.
ובמידה ונקבע הערך "-2" בשדה Value יפחית המסנן מהתאריך של "Today" יומיים.

להלן רשימת ערכים אפשריים לבחירה ומשמעותם:
  • NOW - מחזיר ערך הבנוי מהתאריך והשעה הנוכחית ברזולוציית השניה (נכון למועד הרצת המסנן).
    ערכים שיתווספו לשדה Value יחושבו כדקות. לדוגמה, נניח שכרגע הערך של Now הוא 22/11/2021 15:00.... אם בשדה Value נקבע הערך "-15" אזי הפילטר
    יחשב מחדש את הערך Now והוא יהיה כעת 22/11/2021 14:45.
  • Today - מחזיר ערך של התאריך הנוכחי (נכון למועד הרצת המסנן).
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כיום שלם.
  • StartOfaYear - מחזיר ערך תאריך של ה- 01/01 של שנת הרצת המסנן.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כשנה שלמה.
  • EndOfaYear - מחזיר ערך תאריך של ה- 31/12 של שנת הרצת המסנן.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כשנה שלמה.
  • StartOfaMonth - מחזיר ערך תאריך של ה- 01/01 של חודש הרצת המסנן.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כחודש שלם.
  • EndOfaMonth - מחזיר ערך תאריך של היום האחרון באותו החודש בו הופעל המסנן.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כחודש שלם.
  • StartOfaWeek - מחזיר ערך תאריך של היום הראשון (א') לאותו השבוע למועד הרצת המסנן.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כשבוע שלם.
  • EndOfaWeek - מחזיר ערך תאריך של היום האחרון (ש') לאותו השבוע בו הופעל המסנן.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כשבוע שלם.
  • StartOfDualMonth - מחזיר ערך תאריך של היום הראשון של זוג החודשים הנוכחי שהחל ביחס למועד הרצת המסנן.
    כאשר: ינואר, פברואר = זוג חודשים | מרץ, אפריל = זוג חודשים | מאי, יוני = זוג חודשים... וכך הלאה.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כזוג חודשים.
  • EndOfDualMonth - מחזיר ערך תאריך של היום האחרון של זוג החודשים הנוכחי שהחל ביחס למועד הרצת המסנן.
    כאשר: ינואר, פברואר = זוג חודשים | מרץ, אפריל = זוג חודשים | מאי, יוני = זוג חודשים... וכך הלאה.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כזוג חודשים.
  • StartOfaQuarter - מחזיר ערך תאריך של היום הראשון של הרבעון הנוכחי ביחס למועד הרצת המסנן.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כרבעון.
  • EndOfaQuarter - מחזיר ערך תאריך של היום האחרון של הרבעון הנוכחי ביחס למועד הרצת המסנן.
    ערך יחידה אחת שתקבע בשדה Value (כלומר Value=1) יחושב כרבעון.
  • Curr_User_Name - מחזיר את שם המשתמש הנוכחי שהריץ את המסנן.
    לא מושפע מהשדה Value.
  • User_Agency - מחזיר את שם הסניף אליו משויך המשתמש הנוכחי שהריץ את המסנן.
    לא מושפע מהשדה Value.
  • User_Country - מחזיר את שם המדינה אליה משויך המשתמש הנוכחי שהריץ את המסנן.
    לא מושפע מהשדה Value.
  • User_Authorization - מחזיר את שם קבוצת ההרשאה של המשתמש הנוכחי שהריץ את המסנן.
    לא מושפע מהשדה Value.
  • Bookkeeping_Currency - מחזיר את שם מטבע ברירת המחדל המוגדר לתוכנה.
    לא מושפע מהשדה Value.
  • Treasury_Station_ID - מחזיר את מספר הקופה הנוכחי שבה המשתמש הריץ את המסנן.
    לא מושפע מהשדה Value.
  • User_Department - מחזיר את שם המחלקה של המשתמש הנוכחי שהריץ את המסנן.
    לא מושפע מהשדה Value.
Expose this field with the Caption שם השדה כפי שיופיע למשתמש בחלון הפילטר.
ניתן לקבוע כל שם, אך מומלץ להזין שם המתאר את משמעות השדה למילוי.
שים לב, במידה ולא הוזן שם תצוגה בשדה זה, לא יהיה באפשרותך לחשוף את השדה והוא לא יופיע בחלון הפילטר.
כל שדה ללא שם תצוגה (Expose...) המתקיים בשאילתה, חייב להיות בעל ערך ברירת מחדל כל שהוא באחד מהשדות: "Value" או "Default Value By Function". אחרת, המסנן יציג הודעת שגיאה או שלא יציג תוצאות בכלל.
Special Editor Function באמצעות שדה זה, יוצר המסנן יכול לקבוע כיצד ומה יוכל המשתמש לבחור או להזין לשדה המטרה בזמן הרצת המסנן.
להלן פירוט הערכים האפשריים לבחירה:
  • Just Edit UI - מאפשר למשתמש לבצעה הזנה/הקלדה ידנית בלבד.
  • Just Select UI - מאפשר למשתמש לבחור ערך אחד מרשימת הערכים הקיימת בשדה המטרה.
  • Select Single Hyper User - מאפשר למשתמש לבחור משתמש יחיד מתוך עץ המשתמשים.
  • Select Multiple Hyper Users - מאפשר למשתמש לבחור מספר משתמשים מתוך עץ המשתמשים.
  • Select Single Employee - מאפשר למשתמש לבחור עובד יחיד מתוך עץ המשתמשים.
  • Select Multiple Employees - מאפשר למשתמש לבחור מספר עובדים מתוך עץ המשתמשים.
  • String Select & Edit UI - מאפשר למשתמש לבחור ערך טקסטואלי יחיד מתוך רשימת ערכים או להזין ערך בהקלדה ידנית אל שדה המטרה.
  • Select Client - מאפשר למשתמש לחפש ולבחור כרטיס לקוח.
  • Select Supplier - מאפשר למשתמש לחפש ולבחור כרטיס ספק.
  • Select Middleman - מאפשר למשתמש לחפש ולבחור כרטיס מתווך ממערכת הספקים.
  • Select Accounting Entity - מאפשר למשתמש לחפש ולבחור בישות אחת המוכרת לתוכנה כישות הרשומה במערכת הנהלת החשבונות.
    לדוגמה: כרטיס לקוח, כרטיס ספק, כרטיס הנהלת חשבונות ופרויקט.
  • Select Product - מאפשר למשתמש לחפש ולבחור מוצר/מ"קט מתוך טבלת המוצרים של הייפר.
Get Status Index לחצן המציג ליוצר המסנן את שמות הערכים האפשריים לבחירה עבור שדות מסוג Status.
רק אם בתחתית החלון האשף יצוין כי שדה המטרה הנו מסוג Status וגם הוזנו לו ערכים לבחירה, אזי בעת לחיצה על הלחצן המדובר יפתח חלון המסביר את הערכים האפשריים לבחירה.


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


דוגמה ליצירת התניה

הדוגמה הבאה ממחישה כיצד לייצר התניה המאתרת בטבלת הלקוחות את כל רשומות הלקוחות שנוצרו בטווח תאריכים.
  1. בעץ ההתניות לחץ/בחר את טבלת Clients והוסף התניה חדשה לעץ על ידי לחיצה על לחצן "Add Where Condition".
  2. בשדה "Field Name" בחר בערך "מועד יצירה"
  3. בשדה "Where Function" בחר בערך "Above Value".
    * מכיוון שההתניה תהה על שדה תאריך, באפשרותך (לא חובה) להיעזר ולבחור ערך ברירת מחדל בשדה "Default Value by Function".
  4. בשדה "Expose this Field..." תן שם ידידותי למשתמש כגון "החל ממועד יצירה"
  5. ==== כאן סיימת לבנות את ההתניה הראשונה המאתרת לקוחות שנוצרו החל מתאריך כל שהוא. כעת נשכפל את ההתניה שהגדרנו: =====

  6. בעץ ההתניות סמן בלחיצה את ההתניה שזה עתה יצרת, ולחץ על לחצן "Duplicate Condition"
    * שים לב שהסמן בעץ ההתניות קפץ להתניה המשוכפלת (חדשה).
  7. בשדה "Where Function" בחר בערך "Below Value"
    * גם כאן באפשרותך להיעזר בערכי השדה "Default Value by Function".
  8. בשדה "Expose this Field..." שנה את תיאור השדה ותן שם ידידותי כגון "ועד למועד יצירה"
  9. לחץ המשך למעבר לשלב האחרון של האשף