לכל עיסקה יש שורה אחת לכל אורך חיי העיסקה
וכל פעם שנוצרת גביה נוספת שורה לטבלת התרומות כלומר שנתקבלה תרומה של 100 ש"ח נוספים
פורסם במקור בפורום CODE613 ב03/02/2014 21:01 (+02:00)
לכל עיסקה יש שורה אחת לכל אורך חיי העיסקה
וכל פעם שנוצרת גביה נוספת שורה לטבלת התרומות כלומר שנתקבלה תרומה של 100 ש"ח נוספים
פורסם במקור בפורום CODE613 ב03/02/2014 21:01 (+02:00)
אם כבר העלו את הנושא הרבה עסקתי בזה וחשוב לי גם לשתף את הציבור לתועלת כולנו
אני אפיינתי כך ויתכן שזה יפתור חלק מהשאלות של רחמים
יש טבלת עיסקאות (קרי: עיסקת תשלומים)
בטבלה זו מעודכנים כל פרטי ההוראת קבע תאריך התחלה מספר תשלומים תאריך סיום [u:iaoasqqq]משוער[/u:iaoasqqq]
בטבלה זו יש גם שדה סכום לגביה קרובה זאת אומרת שאם יהיה שינוי לחודש ספציפי במחיר נעדכן שם את הגביה לחודש הקרוב
ועוד פרטים כפי שתראה בקובץ המצורף
בכל חודש כאשר מגיע ה- 20 לחודש התוכנה בודקת מי הם האנשים שלהם יש הוראת קבע מעודכנת לתאריך זה
והיא לוקחת מטבלת ההוראות קבע את פרטי הבנק ומבצעת חיוב (שהינו בעצם שורה בטבלת תרומות בפועל)
שים לב: תחשוב על מצב שבו הלקוח (-התורם) התקשר לשנות את הוראת הקבע
לכן עשיתי שלכל עיסקה יכול להיות כמה שורות הוראת קבע
רק כמובן שבUI לא תיתן להוסיף שורה של הוראת קבע אם קיימת כבר הוראת קבע פעילה
וגם תחשוב על מצב שהלקוח שינה מהוראת קבע לשיקים או לכרטיסי אשראי
כעת צירפתי את המסד נתונים שבניתי ובינתיים מקושרת לטבלת העיסקאות רק טבלת הוראות קבע
עיינו גם בקשרי גומלין
קשה לי קצת להסביר את כל המניעים שלי אבל אשמח עם כל מי שיעבור ע"ז ויעיר לי את הערותיו
פורסם במקור בפורום CODE613 ב03/02/2014 19:07 (+02:00)
לא כ"כ הבנתי מה רצית בקוד הזה הלכת לשורה האחרונה
אבל לא הוספת שורה חדשה
כך היא הדרך להוסיף שורה ב C#
var newTableRow = dts.table.NewTableRow();
dts.table.AddTableRow(newTableRow);ואחר שהוספת שורה תוכל להתייחס אליה בטופס
כעת אם תלך לשורה האחרונה תוכל לראות שורה זו
תוכל גם להוסיף את המילה (חדש) לשם המשפחה כמקובל בטופס חדש
פורסם במקור בפורום CODE613 ב30/01/2014 22:55 (+02:00)
חשבתי האם מתאים שבמקום לכתוב בכל פעם שאני מציג MessageBox את הסטרינג של ההודעה
במקום זאת לשלוח לטבלה ששם יהיה את כל סוגי ההודעות
ולחפש ע"י הID את השורה המתאימה
כנ"ל גם לגבי הודעות שגיאה
אני צודק בגישה?
פורסם במקור בפורום CODE613 ב28/01/2014 23:17 (+02:00)
צודק!
להלן השאלה שוב:
יש לי דטה גריד שמחובר לitemSource
(-ליסט מתוך הDataContext של הטופס כאשר הטופס הוא אנשי קשר והגריד הוא התרומות של האיש קשר)
אני רוצה באירוע של לחיצה כפולה של העכבר על שורה לקבל בקוד את פרטי השורה הנוכחית
משום מה אין לי מאפיין DataGrid.SelectedItem
פורסם במקור בפורום CODE613 ב23/01/2014 19:45 (+02:00)
יש לי דטה גריד שמחובר לitemSource ולא לקולקשין
אני רוצה באירוע של לחיצה כפולה של העכבר יביא לי את פרטי השורה הנוכחית
ה- DataContext מביא משהוא אחר ואין לי מאפיין Selected
ועוד כל מיני נסיונות שניסיתי ללא הצלחה
פורסם במקור בפורום CODE613 ב23/01/2014 18:46 (+02:00)
יש לי מספר שאילתות באקסס
ואני רוצה להריץ אותם בקוד C#
מישהוא יודע על כזו אפשרות?
לחילופין יכול לעזור לי משהוא שימיר לי שאילתת SQL של אקסס לשאילתת SQL של DataSet (אבל זו עדיפות שניה)
תודה
פורסם במקור בפורום CODE613 ב22/01/2014 17:11 (+02:00)
@דוד ל.ט.
אולי, אולי ואולי... מממ... מוסד.
אבל זה כמובן לא יהיה חינמי, ואולי נפתח פורום סגור עבור כך.
צריך גם לעשות חוזון קטן בין משתתפי הפורום ובינך לגבי המניות...
מאוד מגרה אותי.
אני בהחלט בעד וכבר מחכה הרבה זמן לרעיון כזה (מוסד או כל רעיון אחר לא על חשבון אנשים מהפורום...)
במילים אחרות מעין 'סרטאפ' עם ראש צוות ושכל אחד יהיה מופקד על חלק אחר בתכנית
זו תהיה בהחלט למידה טובה לכולנו כשכל אחד הוא חלק בפאזל
וכשיצא בעתיד משהוא מושלם כבר יהיה קל יותר לחשוב על הפיתרון של הטמעה שארכיטקט העלה
אני עצמי עובד כעת על תוכנה לגביה
הוראות קבע כרטיסי אשראי שיקים
שבעצם מטרתה היא גביה עבור מוסד תורני
ומתכנן ב"ה לכלול בה אנשי קשר משימות מערכת תורמים וכו' וכו' (בינתיים כיד הדמיון הטובה....)
פורסם במקור בפורום CODE613 ב26/01/2014 23:14 (+02:00)
אני מצרף קוד שכתבתי לעצמי כדי לפתור את הבעיה של שגיאות Null בדטה סט
אשמח אם יתקנו אותי (אולי אפשר לכתוב יותר בקיצור)
לאחר שאני טוען את הטבלאות של הדטה סט
אני שולח למתודה שתרוץ על כל העמודות ותתקן את הערך הDefult בהתאם לענין
להלן הקוד
public startAp()
{
dta_Contacts.Fill(dts.contacts);//מילוי הדטה סט טבלה 1
dta_Deals.Fill(dts.deals);//כנ"ל, טבלה 2
testDbNull(dts.contacts.Columns);//קריאה לפונקציה עבור טבלה 1
testDbNull(dts.deals.Columns);//כנ"ל, טבלה 2
}
public void testDbNull(DataColumnCollection colums)//פונקציה מקבלת בפרמטר ליסט של עמודות
{
for (int i = 0; i < colums.Count; i++)
{
if (colums[i].DataType == new DateTime().GetType())
{
colums[i].DefaultValue = DateTime.Now;
}
if (colums[i].DataType == new int().GetType())
{
if (!colums[i].AutoIncrement)
{
colums[i].DefaultValue = 0;
}
}
string s = "";
if (colums[i].DataType == s.GetType())
{
colums[i].DefaultValue = "";
}
}
}
פורסם במקור בפורום CODE613 ב21/01/2014 23:20 (+02:00)
אם כבר דברו עלי...
אני מאוד נהנה משיטת עבודה עם הדטה סט כשהוא מחובר לקלסים
הכל עובד מצוין וזה גם מתחבר לאקסס (למי שקשה לו להפרד ...)
ותודה לארכיטקט שהדריך אותי בצורת העבודה
אבל אם לא הצורך להתחבר לאקסס לכאורה כבר עדיף דרך entity fremwork
ואני כבר באמת מחכה שמישהוא יעלה כאן דוגמא בסיסית לאנטיטי ...
פורסם במקור בפורום CODE613 ב22/01/2014 13:56 (+02:00)
לדעתי צריך לעשות כמו הקוד הבא בלא להשתמש ב NEW כי כדי לבדוק טיפוס לא צריך ליצור מופע של האובייקט בזיכרון:
public void testDbNull(DataColumnCollection colums) { //פונקציה מקבלת בפרמטר ליסט של עמודות foreach (DataColumn col in colums) { switch (col.DataType) { case typeof(DateTime): col.DefaultValue = DateTime.Now; break; case typeof(int): if (!col.AutoIncrement) { col.DefaultValue = 0; } break; case typeof(string): col.DefaultValue = ""; break; } } }
אני מנסה לעשות את הקוד הזה והוא נותן לי שגיאה בswich, להלן השגיאה
A switch expression or case label must be a bool, char, string, integral, enum, or corresponding nullable type
לא הצלחתי להתמודד עם זה
פורסם במקור בפורום CODE613 ב23/01/2014 15:20 (+02:00)
עובד מצוין
מה היתה הבעיה?
פורסם במקור בפורום CODE613 ב23/01/2014 15:46 (+02:00)
תודה
פורסם במקור בפורום CODE613 ב22/01/2014 00:07 (+02:00)
אני באמת לא מייבא בגרירה
איך הגעת למצב שהMDF כבר מיובא לפרוייקט אבל לא כדטה סט?
חוץ מזה אני מחובר לבסיס נתונים של אקסס
פורסם במקור בפורום CODE613 ב20/01/2014 19:28 (+02:00)
כידוע דטה סט לא מקבל ערכי NULL לכן יש צורך לעדכן ערך ברירת מחדל לכל שדה כדי שהוא לא יתקל בשגיאה זו
מישהוא יודע איך ניתן לקבוע ערך ברירת מחדל לתאריך [u:572hjv5a]נוכחי[/u:572hjv5a] דרך הדיזיינר של הדטה סט (לא בקוד)
חיפשתי ע"ז ולא מצאתי אולי מכאן תגיע הישועה
פורסם במקור בפורום CODE613 ב20/01/2014 19:04 (+02:00)
אולי אפשר שהתוכנה פשוט תעתיק את הקובץ כל ערב
ובמקרה הצורך הוא יוחלף
פורסם במקור בפורום CODE613 ב20/01/2014 11:25 (+02:00)
שגיאות של ביינדינג אני מסתכל ב-Output
פורסם במקור בפורום CODE613 ב16/01/2014 23:51 (+02:00)
@דוד ל.ט.
דבר נוסף הרי כל הפקדים האלו מופיעים רק בזמן ריצה לפי הפרמטר שאתה מעביר ל userContol ובזמן עיצוב לא תראה כלום וגם לא תוכל לדבג את זה בזמן ריצה כיון שהכל ב XAML אבל בקוד אפשר כל דבר לדבג ולתפוס מה קורה בדיוק ואיפה השגיאות ואי הדיוקים.
אני מבין שלא ידוע לך ואולי לעוד כמה אנשים שXAML הוא מדובג כל הזמן גם בזמן כתיבת הXAML עצמו
(לדוגמא אם תיצור ליסט בוקס שמחובר לאוסף של 3 איברים תראה 3 איברים בעיצוב)
מה שעושים בשביל באמת לראות את העיצובים כל הזמן תוך כדי כתיבת הXAML
אתה כותב מחלקה שממלא את הנתונים בנתוני דמו
עושים מתודה שבודקת האם אתה כעת אתה בזמן עיצוב או שאתה מחובר לנתוני אמת
ואז אתה רואה את הנתונים תוך כדי עיצוב בלי צורך להריץ את התוכנית
מה שאני זוכר זה שיש בדיקה IsInDesignMode ובהתאם לכך ממלאים את הנתונים
ניסיתי לחפש אבל לא הצלחתי ליישם לכן לא העליתי קוד
אולי מישהוא מכיר או אם יהיה לי אשתדל בעז"ה להעלות דוגמא
פורסם במקור בפורום CODE613 ב16/01/2014 22:31 (+02:00)
@דוד ל.ט.
ב. יש כבר פקד מובנה לכך http://wpftoolkit.codeplex.com/wikipage?title=PropertyGrid.
עברתי על הקישור ולא כ"כ הבנתי את מה שהולך שם
האם באמת אתה יכול ליצור טופס וכל פעם הא יזהה את האובייקטים של המחלקה ויצור פקדים רק בשבילהם?
פורסם במקור בפורום CODE613 ב16/01/2014 21:42 (+02:00)
יש איזה דרך לעשות טמפלט לuserContol שהוא בעצם יהיה הטופס וכל פעם יחברו לו בביינדיג מאפיינים מתאימים לטופס הנוכחי
זאת אומרת שיהיה לי userContol מעוצב כטופס עם שדות וכו' וכל פעם אני רק ישנה לו את הביינדינג
במקרה כזה זה יוכל להתקרב לאקסס כמובן אחרי ההשקעה הראשונה של יצירת הטמפלט הראשון
פורסם במקור בפורום CODE613 ב16/01/2014 16:17 (+02:00)