REPORTS SERVICE, טופס סינון מתקדם..

24sharon

New member
REPORTS SERVICE, טופס סינון מתקדם..

1000 שאלות, יש לי טופס שיש בו הרבה מאוד שדות, אפשרויות לסינון. לדוגמא: מתאריך, עד תאריך. פותח כרטיס. שם משתמש משפחה כתובת טל נייד מייל קטגוריה וכו' וכד', כיד הדמיון הטובה. כמובן שאפשר לחפש: רק את משפחת לוי. וכן לחפש את מתאריך עד תאריך ופותח כרטיס. בקיצור האפשרויות הן מגוונות מאוד. במקרים כאלו בדרך כלל אני עובדת עם שאילתא דינמית שנוצרת תוך כדי ריצה. (אם השדה לא ריק, אזי תסנן לפי ערך השדה.) וכך נוצרת השאילתא. ואז מקשרים אותה כdatasourece, לכל מקור מידע נצרך. הבעיה היא כשהמדובר בדו"חות, האם אפשר שאילתא דינימית בRS? יש כאן מישהו עם נסיון מספיק עם הכלי הזה? הבנתי שהנתונים עוברים לדף בQS, האם אפשר לשנות את מקור המידע, בקיצור קצת סדר בבלגן יעזור לי מאוד
שבוע טוב, ו..... עבר חנוכה
 

J u n k y

New member
אפשר לעשות את הטריק של SP

דהיינו: להגדיר DEFUALT VALUE לפרמטר כ - NULL ואז לשאול:
SELECT * FORM TableName WHERE (@FirstName IS NULL OR FirstName LIKE '%' + @FirstName + '%')​
מה שזה אומר: אם הפרמטר הוא NULL, תחזיר את כל הרשומות, ואם לא - תסנן לפי הפרמטר. אם זכרוני אינו מטעני, אפשר להגדיר לפרמטרים default values ב - RS - תחטטי קצת...
 

24sharon

New member
מכירה את טריק הזה,

אבל אני השתמשתי בו במקרה של שדות בודדים, לא כ"כ נוח לעבוד עם זה כשהמדובר על שאילתא הרבה יותר מורכבת. אבל רק זו הדרך? אם רק זו הדרך, אעשה את המאמץ. לא חושבים על חיפוש מורכב? יש כאן מישהו שחי "RS" (משהו כמו לבנות 2 דוחות ליום
)
 
tricks of the trade

שימו לב, אמר המדריך בקורס למחבלים מתאבדים, למה אני מראה את זה רק פעם אחת... 1. את יוצרת טבלת שאילתות. יש בה קוד, guid, ושדה varchar ארוך בשם query . 2. את בונה חלון יפה במערכת ה web הרגילה שלך, ובו שדות חיפוש, כפתורים, קומבואים, הכל כמו שאת רגילה. התוצאה של החלון הזה היא שאילתת sql . השאילתה הזו נדחפת אחר כבוד לטבלת שאילתות. את מקבלת את קוד השאילתה, ואת ה guid שנוצר. (אם להשתמש בקוד פשוט או ב guid זו החלטה שלך לפי רגישות הנתונים ואם את ממש מוכרחה לחסום אנשים מלהריץ שאילתות קודמות של אחרים או לא) 3. את יוצרת sp שמקבלת קוד שאילת או guid (כאמור לפי החלטתך) , שולפת את השאילתה הנכונה, מריצה אותה, ומחזירה סט ערכים. 4. חוזרת ל RS, ומבססת את הדוח על הפרוצדורה הנ"ל. הפרמטר היחיד של הדוח הוא מספר שאילתה, או guid לפי הטעם. בום.
 

24sharon

New member
אהיי... אתה עדיין כאן../images/Emo35.gif

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

24sharon

New member
בעקבות מה שאתה אומר.

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