דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. SQL: קביעת רשימת ערכים מותאמת אישית

SQL: קביעת רשימת ערכים מותאמת אישית

מתוזמן נעוץ נעול הועבר ארכיון code613m
14 פוסטים 3 כותבים 766 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • clickoneC מנותק
    clickoneC מנותק
    clickone
    כתב ב נערך לאחרונה על ידי
    #4

    כן. בוודאי.
    הSQL זה לשמירת הנתונים וטיפול בהם.

    ההצגה זה בעיקרון בUI.

    פורסם במקור בפורום CODE613 ב09/07/2015 00:00 (+03:00)

    אין טסט כמו פרודקשן.

    המייל שלי urivpn@gmail.com

    תגובה 1 תגובה אחרונה
    2
    • A מנותק
      A מנותק
      avr416
      כתב ב נערך לאחרונה על ידי
      #5

      איך אפשר להכניס תיבה משולבת בתוך הדטהגריד שמחזיקה גם את המזהה וגם את הטקסט מהטבלה השניה?

      פורסם במקור בפורום CODE613 ב09/07/2015 01:47 (+03:00)

      תגובה 1 תגובה אחרונה
      0
      • dovidD מחובר
        dovidD מחובר
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #6

        @avr416

        איך אפשר להכניס תיבה משולבת בתוך הדטהגריד שמחזיקה גם את המזהה וגם את הטקסט מהטבלה השניה?

        DataGridComboBoxColumn.
        צריך להכיר את המאפיינים:
        ItemsSource צריך להכיל את הטבלה השניה (בעלת הארבעה ערכים).
        נניח שיש לה עמודת ID ועמודה Description.

        DisplayMemberPath שם השדה/עמודה בטבלה השניה אותו אתה רוצה שיוצג בתצוגה, היינו Description.
        SelectedValuePath העמודה שתייצג את הSelectedValue. במקרה שלנו UD. כלומר שיפנו למאפיין SelectedValue וישאלו ממנו את ערכו זה יחזיר את הערך מתוך שם העמודה המצויין, וכן להפך: כשיקבעו לSelectedValue ערך, השורה שתיבחר תהיה זו שבעמודה המצויינת הערך מתאים.
        אחרי כן עושים למאפיין SelectedValue בינדינג לעמודה בטבלה הנוכחית שמכילה את הID הנכון במין הארבעה.

        סיבוך קטן...

        פורסם במקור בפורום CODE613 ב09/07/2015 18:57 (+03:00)

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה
        1
        • A מנותק
          A מנותק
          avr416
          כתב ב נערך לאחרונה על ידי
          #7

          תודה!
          כלומר, בעצם למשתמש מוצג comboBox שמכיל רק עמודה אחת, ולפי מה שהוא בוחר זה מחזיר לי את הערך של הID שבעמודה שהוא לא רואה.

          פורסם במקור בפורום CODE613 ב09/07/2015 19:01 (+03:00)

          תגובה 1 תגובה אחרונה
          1
          • A מנותק
            A מנותק
            avr416
            כתב ב נערך לאחרונה על ידי
            #8

            @דוד ל.ט.

            DataGridComboBoxColumn.
            צריך להכיר את המאפיינים:
            ItemsSource צריך להכיל את הטבלה השניה (בעלת הארבעה ערכים).
            נניח שיש לה עמודת ID ועמודה Description.

            DisplayMemberPath שם השדה/עמודה בטבלה השניה אותו אתה רוצה שיוצג בתצוגה, היינו Description.
            SelectedValuePath העמודה שתייצג את הSelectedValue. במקרה שלנו UD. כלומר שיפנו למאפיין SelectedValue וישאלו ממנו את ערכו זה יחזיר את הערך מתוך שם העמודה המצויין, וכן להפך: כשיקבעו לSelectedValue ערך, השורה שתיבחר תהיה זו שבעמודה המצויינת הערך מתאים.
            אחרי כן עושים למאפיין SelectedValue בינדינג לעמודה בטבלה הנוכחית שמכילה את הID הנכון במין הארבעה.

            סיבוך קטן...

            ניסיתי בטבלה של תרומות ליצור קומבובוקס של רשימת התורמים שבמערכת, כשבטבלה הוא שומר רק את הID אך בתצוגה הוא מציג את שם התורם.

            לא בדיוק הצלחתי..
            עקרונית ביצירה האוט' נוצר לי הקוד הבא, ולא הצלחתי למצוא שם את ההגדרות הללו (למרות שניסיתי..)

            <DataGridTemplateColumn x:Name="donorColumn" Header="מזהה תורם" Width="SizeToHeader">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ComboBox>
                                    <ComboBoxItem  Content="{Binding Donor}"/>
                                </ComboBox>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
            

            אשמח להסבר כיצד אפשר להגדיר באופן הנ"ל..

            מחקתי אותו וכתבתי את הקוד הבא:

            <DataGridComboBoxColumn x:Name="donorComboBox" ItemsSource="{Binding Source=avrTrumaDataSet, Path=Person}" DisplayMemberPath="FirstName" SelectedValuePath="ID" SelectedValueBinding="Donor"  Header="מזהה תורם">
            

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

            תודה רבה רבה לכל העוזרים והמסייעים והטורחים לענות על שאלותי 🙂

            פורסם במקור בפורום CODE613 ב14/07/2015 17:57 (+03:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #9

              שתי הדרכים טובות, אם כי שלך הנכונה במקרים פשוטים.
              בעיקרון בדוגמתך יש טעות פשוטה: המאפיין SelectedValueBinding לא מקבל סטרינג אלא בינדינג ככה:

              SelectedValueBinding="{Binding Donor}"
              

              וחוץ מזה זה אמור לעבוד.
              שים לב שכל המאפיינים כתובים מדוייק (רגיש לרישיות!).

              פורסם במקור בפורום CODE613 ב14/07/2015 22:03 (+03:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              1
              • A מנותק
                A מנותק
                avr416
                כתב ב נערך לאחרונה על ידי
                #10

                תקנתי וכתבתי כך:

                <DataGridComboBoxColumn x:Name="donorComboBox" ItemsSource="{Binding Source=avrTrumaDataSet,Path=Person}" DisplayMemberPath="FirstName" SelectedValuePath="ID" SelectedValueBinding="{Binding Donor}" Header="מזהה תורם" />
                

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

                <DataGridComboBoxColumn x:Name="donorComboBox" ItemsSource="{Binding Source={StaticResource avrTrumaDataSet},Path=Person}" DisplayMemberPath="FirstName" SelectedValuePath="ID" SelectedValueBinding="{Binding Donor}" Header="מזהה תורם" /> 
                

                הוספתי את הסטטיק ריסורס, אבל התוצאה אותו דבר...
                אציין רק שבתחילה הוא זרק לי שגיאה על הselectionChanged , ופשוט הוספתי מתודה בשם הזה, שלא עושה כלום (כיון שכרגע עוד אין לי מושג מה היא אמורה לעשות.. והשגיאה נעלמה :lol: ) אולי זה קשור?? אולי זה בגלל שלא באמת מימשתי את המתודה הנ"ל והיא אמורה לעדכן את הנתונים בקומבובוקס בזמן ריצה??
                תודה רבה מראש!!

                פורסם במקור בפורום CODE613 ב15/07/2015 00:48 (+03:00)

                תגובה 1 תגובה אחרונה
                0
                • dovidD מחובר
                  dovidD מחובר
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי
                  #11

                  לא מבין את השגיאה אבל הקוד השני שלך אמור לעבוד.
                  לא רואה סיבה שלא. בדוק היטב את השמות ובמיוחד את הSelectedValuePath.

                  פורסם במקור בפורום CODE613 ב15/07/2015 15:27 (+03:00)

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  תגובה 1 תגובה אחרונה
                  0
                  • A מנותק
                    A מנותק
                    avr416
                    כתב ב נערך לאחרונה על ידי
                    #12

                    בדקתי וזה לא עובד.
                    התוצאה היא כך:

                    הוסף תרומה.png
                    כלומר הוא מציג רשימה נפתחת ריקה, אך הוא לא מציג את הנתונים..

                    הקוד הוא זה: (השורה החשובה זו שורה מס' 25)

                    <Window
                            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                            xmlns:local="clr-namespace:TrialSQL1" x:Class="TrialSQL1.AddTruma"
                            Title="AddTruma" MinHeight="400" MinWidth="900" Loaded="Window_Loaded" FlowDirection="RightToLeft">
                        <Window.Resources>
                            <local:AvrTrumaDataSet x:Key="avrTrumaDataSet"/>
                            <CollectionViewSource x:Key="donoationViewSource" Source="{Binding Donoation, Source={StaticResource avrTrumaDataSet}}"/>
                        </Window.Resources>
                        <Grid DataContext="{StaticResource donoationViewSource}">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="40"/>
                                <RowDefinition/>
                            </Grid.RowDefinitions>
                            <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="0" FontSize="18" FontWeight="Bold"><Run Text="הוסף תרומות"/></TextBlock>
                            <DataGrid x:Name="donoationDataGrid" AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding}" Margin="10,75,0,189" Grid.Row="1" RowDetailsVisibilityMode="VisibleWhenSelected" SelectionChanged="donoationDataGrid_SelectionChanged">
                                <DataGrid.Columns>
                                    <DataGridTemplateColumn x:Name="idDonationColumn" Header="מזהה תרומה" IsReadOnly="True" Width="SizeToHeader">
                                        <DataGridTemplateColumn.CellTemplate>
                                            <DataTemplate>
                                                <TextBlock Text="{Binding IdDonation}"/>
                                            </DataTemplate>
                                        </DataGridTemplateColumn.CellTemplate>
                                    </DataGridTemplateColumn>
                                    <DataGridComboBoxColumn x:Name="donorComboBox" ItemsSource="{Binding Source={StaticResource avrTrumaDataSet},Path=Person}" DisplayMemberPath="FirstName" SelectedValuePath="ID" SelectedValueBinding="{Binding Donor}" Header="מזהה תורם" />
                                    <DataGridCheckBoxColumn x:Name="isOneTimeColumn" Binding="{Binding IsOneTime}" Header="חד פעמי?" Width="SizeToHeader"/>
                                    <DataGridTextColumn x:Name="sumDonationColumn" Binding="{Binding SumDonation}" Header="סכום התרומה" Width="SizeToHeader"/>
                                    <DataGridTemplateColumn x:Name="startDateColumn" Header="תאריך התחלה" Width="SizeToHeader">
                                        <DataGridTemplateColumn.CellTemplate>
                                            <DataTemplate>
                                                <DatePicker SelectedDate="{Binding StartDate, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
                                            </DataTemplate>
                                        </DataGridTemplateColumn.CellTemplate>
                                    </DataGridTemplateColumn>
                                    <DataGridTextColumn x:Name="numOfPaymentColumn" Binding="{Binding NumOfPayment}" Header="מספר תשלומים" Width="SizeToHeader"/>
                                    <DataGridTemplateColumn x:Name="deadlineColumn" Header="תאריך סיום" Width="SizeToHeader">
                                        <DataGridTemplateColumn.CellTemplate>
                                            <DataTemplate>
                                                <DatePicker SelectedDate="{Binding Deadline, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
                                            </DataTemplate>
                                        </DataGridTemplateColumn.CellTemplate>
                                    </DataGridTemplateColumn>
                                    <DataGridTemplateColumn x:Name="howToPayColumn" Header="אופן התשלום" Width="SizeToHeader">
                                        <DataGridTemplateColumn.CellTemplate>
                                            <DataTemplate>
                                                <ComboBox>
                                                    <ComboBoxItem Content="{Binding HowToPay}"/>
                                                </ComboBox>
                                            </DataTemplate>
                                        </DataGridTemplateColumn.CellTemplate>
                                    </DataGridTemplateColumn>
                                    <DataGridTemplateColumn x:Name="idMethodPayColumn" Header="מזהה אמצעי תשלום" Width="SizeToHeader">
                                        <DataGridTemplateColumn.CellTemplate>
                                            <DataTemplate>
                                                <ComboBox>
                                                    <ComboBoxItem Content="{Binding IdMethodPay}"/>
                                                </ComboBox>
                                            </DataTemplate>
                                        </DataGridTemplateColumn.CellTemplate>
                                    </DataGridTemplateColumn>
                                </DataGrid.Columns>
                            </DataGrid>
                    
                        </Grid>
                    </Window>
                    

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

                    פורסם במקור בפורום CODE613 ב19/07/2015 15:24 (+03:00)

                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מחובר
                      dovidD מחובר
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי
                      #13

                      אכן חוץ מלא להאמין לך אני לא רואה מוצא 🙂

                      פורסם במקור בפורום CODE613 ב20/07/2015 12:58 (+03:00)

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      תגובה 1 תגובה אחרונה
                      0
                      • A מנותק
                        A מנותק
                        avr416
                        כתב ב נערך לאחרונה על ידי
                        #14

                        בעזרתו של דוד ל.ט. התבררה השגיאה!

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

                        פורסם במקור בפורום CODE613 ב20/07/2015 16:26 (+03:00)

                        תגובה 1 תגובה אחרונה
                        2

                        בא תתחבר לדף היומי!
                        • התחברות

                        • אין לך חשבון עדיין? הרשמה

                        • התחברו או הירשמו כדי לחפש.
                        • פוסט ראשון
                          פוסט אחרון
                        0
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום