כל הסטייל פה? ניסית אותו בסביבה נקייה (פרוייקט נקי)?
פורסם במקור בפורום CODE613 ב02/02/2014 11:07 (+02:00)
כל הסטייל פה? ניסית אותו בסביבה נקייה (פרוייקט נקי)?
פורסם במקור בפורום CODE613 ב02/02/2014 11:07 (+02:00)
בקוד זה הולך ככה:
Validation.GetErrors(DataGridRow)
במקום DataGridRow יכול לבוא כל פקד WPF, שיש בו או בצאצאיו קלט עם בינדינג כמדומני.
בXAML, עם בינדינג לאלמנט, הנה דוגמא לבינדינג לאלמנט הנוכחי:
"{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"
זה יכול להיות גם בטקסט בוקס וכו', זה התנהגות שישנה בכל פקדי קלט.
כפי שאתה רואה הXAML ניגש לאינדקס מס' אחד, כי יכולים להיות כמה שגיאות, של כמה תאים למשל (אם תחבר את זה לתא ולא לשורה, אז תמיד תהיה רק שגיאה אחת).
אז אם אתה רוצה להציג הכל תצטרך להשתמש בItemsControl.
תוכל להשתמש עם טריגר על Validation.HasError.
בשביל לשנות את התנהגות התצוגה בWPF במקרה של שגיאה יש מאפיינים מוכנים כמו ValidationErrorTemplate שמקבלים ContrleTemplate.
ברמת השורה תוכל גם לשנות את הסימן קריאה וכיוצא בזה.
פורסם במקור בפורום CODE613 ב30/01/2014 18:09 (+02:00)
לרוב רובם של הפונקציות, לא מדובר במשהו שמצריך שפה טובה יותר מאשר TSQL.
כך לדעתי.
פורסם במקור בפורום CODE613 ב30/01/2014 18:11 (+02:00)
תודה רבה על הפירוט וההשקעה!
@דוד ל.ט.
דבר שלישי תלמד איך עושים בSQL SERVER כלל אימות, כלומר "אילוץ" - Constraint, מסוג בדיקה שזה CHECK.http://technet.microsoft.com/en-us/libr ... (v=sql.105).aspx
הקישור לא נפתח.
תוקן.
פורסם במקור בפורום CODE613 ב02/02/2014 11:05 (+02:00)
[size=150:39a3bi3s]דבר ראשון[/size:39a3bi3s], חשוב לך לדעת שזה לא יחסוך ממך את הבדיקה בצד לקוח, כלומר בקוד התוכנה.
אם לא תעשה זאת, תקבל שגיאה. גם אם תטפל בשגיאה, התגובה תהיה לא יעילה ואף איטית בהתאם לתקשורת עם המסד.
אני אבין אם מידע זה יגרום לך לשקול שוב האם לעשות את הבדיקה גם ברמת המסד.
[size=150:39a3bi3s]דבר שני[/size:39a3bi3s], תלמד איך עושים פונקציה בSQL, זו פעולה חד פעמית לכל סוג פונקציה:
http://msdn.microsoft.com/en-us/library/ms186755.aspx
דוגמה בסיסית ופשוטה: http://stackoverflow.com/a/14550528/1271037
כמובן שזה כולל הכרת השפה TSQL, שנחשבת פשוטה וקלה. עם יש לך שאלה ספציפית (לולאה, משתנים, תנאים) פתח אשכול לכל שאלה.
[size=150:39a3bi3s]דבר שלישי [/size:39a3bi3s] תלמד איך עושים בSQL SERVER כלל אימות, כלומר "אילוץ" - Constraint, מסוג בדיקה שזה CHECK.
קישור מתוקן
תמצות שתי הדברים האחרונים:
http://connectsql.blogspot.co.il/2011/01/sql-server-function-based-check.html
פורסם במקור בפורום CODE613 ב30/01/2014 13:58 (+02:00)
אצטרף להמיר את המאפיין למאפיין תלות.
כדאי לך לחשוב שוב לפני שאתה עושה זאת.
אתה רוצה קישור בזמן עיצוב בין קומבובוקס לרשימת עמודות.
אפשרות ראשונה: רשימת העמודות הרי לא נוצרה מאיליהם, יש להם מקור, אולי תוכל לחלוק את אותו המקור עם שניהם?
אפשרות שניה: אם זה דפוס פעולה אוטומטי, שהיוזר קונטרול מתממשק לכל רשימת הטבלאות והעמודות, תוכל לעשות מאפיין בודד של רשימת טבלאות במערך, והקומבו הראשון יפנה למיקום וממנו הID השני ייקח. את רשימת הטבלאות תוכל לקחת בקוד ע"י חיפוש בParent בו הוא נמצא אחרי כל הDataGrid (אפשרות גרועה מבחינתי), או שוב ישירות למקור המידע של הדטה גרידים.
הצלחה.
פורסם במקור בפורום CODE613 ב30/01/2014 13:26 (+02:00)
נראה לי שאם הוא עושה.
Wpf.TargetDataGrid = MyDataGrid;והVS אומר לו שזה תחביר שגוי.
אז זהו שלא...
בקוד לא ניסית להגדיר את המאפיין של טבלת היעד אלא בחלונית המאפיינים של הסרגל, כאשר אני בא להגדיר את המאפיין הזה נפתח קומבו עם שורה אחת שאם בוחרים אותה נוצר דטה גריד חדש ואין בקומבו הזה את הדטה גריד שכבר קיים בטופס,
לאומת זאת בWIN FORMS בקומבו הנ''ל יש את כל הדטה גרידים שיש בטופס.
"לא בקוד, אלא בחלון המאפיינים" = לא בקוד אלא בXAML.
אם תחשוב תבין למה אי אפשר. XAML הוא לא קוד רקע, אלא צורה הצהרתית ליצירת אובייקטים בלבד!
בXAML אפשר להעביר מידע או בצורת סטרינג, או בצורת Markup Extension שזה הסוגריים המסולסלות, בהם יש כמה דרכים נוספים לתת מידע (אפשר ליצור כאלה נוספים).
אז איך אתה רוצה לתת את הגריד הפציפי בתור מאפיין? אם כסטרינג של שמו, בשמחה, אבל אתה חייב לטפל במחלקה שלך בתרחיש של בנאי סטרינג ולא פקד גריד.
ואם כבינדינג לאלמנט אתה אכן יכול רק שמאפיין רגיל לא תומך בבינדינג כך שתצטרך לכתוב Dependency Property.
פורסם במקור בפורום CODE613 ב30/01/2014 12:21 (+02:00)
חבל שבחרת לסתום ולא לענות בפירוש מה אתה רוצה באשכול זה מבין האפשרויות שנשאלת.
אני עונה בהנחה שבחרת את האפשרות השנייה: למה הקוד שכתבת לא עובד.
אבל כאשר אני בא להגדיר את המאפיין הנ''ל שיפנה לדטה גריד שקיים בטופס זה לא אפשרי.
איפה אתה "בא להגדיר" ומה הכוונה "לא אפשרי" המסך מתפוצץ?
פורסם במקור בפורום CODE613 ב29/01/2014 19:34 (+02:00)
דבר ראשון יש לך צורך בסרגל ניווט ואתה מנסה לעשות זאת בWPF. לא לגמרי הבנתי מה הכוונה בסרגל ניווט.
דבר שני עשית קוד וזה לא עבד וזה בעיה נוספת. לשם פיתרון שלה, מוכרחים לראות את הקוד לבעיה זו (מאפיין יעד? סוג מה מי, ואז מה קורה?).
והבעיה השלישית, שצורת עבודה זהה לקוד זה עובד בWinForms כלומר גם אם נפתור את שתי הבעיות הקודמות, תישאר שאלה למה זה שונה.
ובכן לאיזה שאלה הכי חשוב לך שאתייחס כעת?
בשביל שאלה א' אני צריך הרחבה של מה את רוצה שיהיה ובשביל שתי השאלות האחרות אני צריך קוד WPF, בשביל השלישית אני צריך קוד WinForms.
ואנא בחר שאלה אחת בלבד, אחרי שנגמור איתה נעבור לאחרת.
פורסם במקור בפורום CODE613 ב29/01/2014 19:00 (+02:00)
ImageList זה לא פקד. זה כמו Timer, זה קומפוננטה (=רכיב), מין קלאס שיכול להיות גם בזמן עיצוב.
לא זוכר מה הImageList עושה וממילא לא יודע להגיד לך איך עושים בWPF.
אם תגיד בדיוק מה אתה רוצה לעשות בWPF, אולי אדע איך לעשות.
עריכה:
מדפדוף קצר באינטרנט אני רואה שזו דרך להקצות לפקדים רבים תמונות לפי אינדקס כאשר כולם חולקים את אותה רשימה.
בעצם היתרונות של זה זה ריכוזיות, וחיסכון בכפילויות.
אפשר ליישם את זה בWPF אבל הייתי שמח שתרחיב מה הצורך המדוייק.
פורסם במקור בפורום CODE613 ב29/01/2014 18:20 (+02:00)
אני חושב שצריך ללכת על המרת המסמך לFixedDocument, זה אמור להיות קל (אם זה קל אז מה זה קשה :)) כי התחביר שלהם ממש זהה בהרבה.
תכלס, אם מה שניצב בפנינו זה הפיכת DOCX לXPS/FixedDocument אז הנה כמה מחלקות חופשיות שעושות זאת:
http://www.codeproject.com/Articles/649064/Show-Word-file-in-WPF
http://www.codeproject.com/Articles/25071/OpenXML-FlowDocument-OpenFlowDocument
http://www.codeproject.com/Articles/24220/Generate-XPS-from-Word-documents-with-VB-2008-and
http://www.c-sharpcorner.com/uploadfile/mahesh/viewing-word-documents-in-wpf/
בהצלחה, ואנא דווח על תבונות ו/או אכזבות ו/או הצלחות...
פורסם במקור בפורום CODE613 ב30/01/2014 12:42 (+02:00)
סליחה, לא קראתי טוב את שאלתך.
בל"נ מחר אתן לך פתרונות.
פורסם במקור בפורום CODE613 ב29/01/2014 19:54 (+02:00)
צריך להשתמש עם OpenXml זה ספריית לקריאה ועריכה של קבצי אופיס הכתובים בתקן Open Xml Format.
זה לא כ"כ קל ללמוד להשתמש בזה אבל זה מאוד יעיל (מהיר ועושה הכל).
איך מתחילים? מורידים מפה את שני הקבצים.
הנצרך זה הקטן של השלוש מגה, אבל הגדול זה כלי שימושי מאוד למפתח.
מוסיפים בפרוייקט רפרנס לDLL שנמצא (בערך) בתיקייה הזו: X:\Program Files (x86)\Open XML SDK\V2.0\lib.
הנה דוגמה בסיסית של פתיחת קובץ וורד קיים ועריכתו:
http://msdn.microsoft.com/en-us/library/office/ff478255.aspx
אשמח לעזור בדוגמאות קונקרטיות.
פורסם במקור בפורום CODE613 ב29/01/2014 14:09 (+02:00)
בjs יש מושג שלא הכרתי בשפות אחרות Infinity שזה אומר אין סופי יש גם הפוך Infinity- למשל אם עושים 1/0 זה לא יוצר שגיאה זה מחזיר Infinity.
Infinity-1 זה תמיד Infinity.לא יודע אם זה קיים בC# לפי מה שאני זוכר חילוק ב0 היה עושה שגיאה אם יש אשמח להחכים.
חילוק של Double באפס מחזיר NaN, שזה אומר כלום. לא נוצרת שגיאה.
ומספר גבוה מידי או נמוך מידי מיוצג ע"י Infinity חיובי ושלילי בהתאמה.
ראה בMSDN.
פורסם במקור בפורום CODE613 ב29/01/2014 19:12 (+02:00)
אכן CONCAT זוהי פונקציה חדשה מ2012 (SERVER, הManagement Studio לא "מתערב" בעסק).
גירסאות קודמות צריכים להשתמש עם + ולוודא שהכל סטרינגים.
לSQL SERVER יש IDE נורמלי לחלוטין. רק שאתם ירוקים בעסק... כל מי שמתחיל ללמוד מסדי נתונים יודע שNull זה לא ערך. זה "בלתי ידוע" וממילא אם עושים לדוגמא
DECLARE @VAR int;
SELECT 100 - @VAR
התוצאה אינה 100 (כי לא חיסרנו ממנו כלום), אלא NULL! כי הSQL לא יודע כמה זה מאה פחות XXX.
פורסם במקור בפורום CODE613 ב29/01/2014 14:32 (+02:00)
אני חושב שהפתרון הוא זה http://stackoverflow.com/a/436112/1271037.
הוא עוקב אחרי שינוי בעמודה אחת מהשניים, בודק אם זה לא תוצאה ממנו עצמו, ואם לא הוא משנה את השנייה בהתאם.
פורסם במקור בפורום CODE613 ב26/01/2014 18:17 (+02:00)
הבעיה היא שהDataGridColumn מוכן להגיד מה רוחבו אבל לא מוכן שיגידו לו מה יהיה רוחבו...
כך שהדוגמא של רחמים עובדת ואילו זאת לא תעבוד:
<StackPanel >
<DataGrid AutoGenerateColumns="False" Height="50" Name="datagrid1">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Width="150" />
</DataGrid.Columns>
</DataGrid>
<DataGrid AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Width="{Binding ElementName=datagrid1, Path=Columns[0].ActualWidth}" />
</DataGrid.Columns>
</DataGrid>
</StackPanel>
פורסם במקור בפורום CODE613 ב26/01/2014 17:14 (+02:00)
הUser הראשון זה אכן שם המחשב, או תחום במידה וזה יוזר של דומיין.
ובVBA צריך לגשת גם לשם המחשב, ואם יש אפשרות שהמשתמש הוא על דומיין אז להשיג את שם הדומיין.
פורסם במקור בפורום CODE613 ב26/01/2014 13:16 (+02:00)