Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C#] Lista rozwijana z wartości tabeli wpisana do innej tabeli

SQ9MYX 15 Lis 2011 20:43 5254 6
  • #1 15 Lis 2011 20:43
    SQ9MYX
    Poziom 23  

    Witam,
    Mam za zadanie zrobić program ewidencjonujący wyjazdy karetek pogotowia i mam takie pytanie jak zrobić aby z listy rozwijanej w której będą wartości z bazy danych wpisać wartości do innej tabeli z tej samej bazy. może troche kiepsko to opisałem ale załaczam rysunek. tak by naprzykład w kolumnie ID zespołu/Karetki pojawił sie przycisk listy rozwijanej w której będzie możliwość wyboru wartości z wcześniej utworzonej tabeli w której zapisze ID zespołu/Karetki i analogicznie w innych przykładach.

    [C#] Lista rozwijana z wartości tabeli wpisana do innej tabeli

    0 6
  • #2 15 Lis 2011 23:06
    marcinj12
    Poziom 40  

    Chcesz tą listę rozwijalną mieć w tabeli czy w tych polach nad tabelą?
    W sumie działanie jest podobne - skoro robisz bazę z wykorzystaniem gotowych kontrolek, proponuję bindowanie comboboxa do tabeli z danymi.
    Dla ID zespołu/karetki:
    W przypadku kolumny w tabeli, zmieniasz jej typ na DataGridViewComboBoxColumn. Następnie, w sekcji Data, wybierasz DataSource z listy: Other Data Sources -> Project Data Sources -> rozwijasz Database1DataSet i zaznaczasz tabelkę Zespoły. Visual Studio automatycznie utworzy z tego BindingSource, coś w stylu: zespołyBindingSource3 i pod taką nazwą wstawi. Następnie w ValueMember wybierasz Id Zespołu (to jest wartość odpowiadająca liście), możesz też wybrać DisplayMember na tą samą wartość (ta wartość będzie wyświetlana).

    W przypadku ComboBoxa możesz zrobić podobnie: wybierasz DataSource i ustawiasz ValueMember i/lub DisplayMember.

    Zdaje się że to wszystko, choć bardzo rzadko rzadko korzystam z kreatora VS więc coś mi mogło umknąć, wyjdzie w praniu :)...

    0
  • #3 16 Lis 2011 09:00
    SQ9MYX
    Poziom 23  

    Witam.
    Dodałem ComboBox'y z możliwością wyboru wartości z tabeli. Wartości ładnie się pokazują da sie wybierać itp ale niestety przy próbie zapisu wartości w oknie DataGridView nie zapisują sie wybrane wartości z ComboBoxu tzn wygląda tak jak by zapisywały sie w pierwszym wierszu DataGridView a następne wiersze w w danych kolumnach pozostają puste.
    W załaczniku przesyłam to co udało sie stworzyć.

    0
  • Pomocny post
    #4 16 Lis 2011 20:54
    marcinj12
    Poziom 40  

    A rozwinie no sobie Kolega tym trójkątem po lewej właściwość (DataBindings) tych kontrolek, co to ich dane się nie zapisują, i popatrzy na właściwość Text. Potem popatrzy w to samo miejsce kontrolek, które się zapisują, porówna, znajdzie różnicę i wyciągnie wnioski co może być nie tak...

    0
  • #5 18 Lis 2011 13:39
    SQ9MYX
    Poziom 23  

    I wszystko jasne :) Dziękuję za pomoc.
    Aż mi głupio pytać ale jak zrobić teraz wydruk wyników wprowadzonych do tabeli zdarzenie? tak by wydrukowało mi wszystkie rekordy

    0
  • #6 18 Lis 2011 14:31
    marcinj12
    Poziom 40  

    A to pytanie wbrew pozorom wcale takie głupie nie jest, bo drukowanie jest całkiem skomplikowanym procesem.

    Możesz albo poszukać na necie gotowego komponentu (iTextSharp, fyiReporting), przejrzeć tutoriale do niego i spróbować coś sklecić, albo napisać własny kod obsługi drukowania z wykorzystaniem GDI+. To drugie daje większe możliwości, praktycznie tworzysz ręcznie wydruk z tekstu i kształtów, ale też wymaga dłuższego posiedzenia nad tym. Proponuję poszukać na necie przykładów i wybrać coś, co Ci odpowiada. Tutaj masz mniej więcej przykład jak by to miało wyglądać. A tutaj link do innego posta, w którym kiedyś był podobny temat poruszony.

    Natomiast najprostsza metoda którą spotkałem to drukowanie bitmapy z kontrolki, ale to raczej tylko informacyjnie że coś takiego istnieje:
    1. wrzucasz na formę komponent printDocument z sekcji Printing,
    2. do przycisku podłączasz kod:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    3. w zdarzeniu PrintPage wspomnianego komponentu umieszczas kod:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Powoduje to odrysowanie komponentu na bitmapie i wydrukowaniu na drukarce domyślnej.

    0
  • #7 23 Lis 2011 13:26
    SQ9MYX
    Poziom 23  

    Znowu coś sknociłem. tak fajnie dało sie wybierać wartości w karcie zdarzenie z comboboxów a teraz nie mogę ustawić żadnych wartości w datamember albo valuemember..i oczywiscie nie da sie wybierac w oknach combobox.

    0