DataGidView z DataGridViewComboBoxColumn o zmiennych wartościach

0

Witam,

Mam taki "ideologiczny" problem z Gridem...

Załóżmy, że mam tabelę słownikową z informacjami o typach dokumentów oraz znacznikiem, czy dany typ dokumentu jest jeszcze w użyciu (DOC_ID, DOC_NAME, IS_VALID)

Do tego mam tabelę z danymi transakcyjnymi kiedy jaki typ dokumentu był użyty (DATE_TIME, DOC_ID).

Chciałbym, aby użytkownik dodając nowy rekord do tabeli transakcyjnej miał możliwość wyboru jedynie dostępnego typu dokumentu (gdzie IS_VALID=true) ale oczywiście w tabeli transakcyjnej przechowuję również dane o starych dokumentach, które już teraz nie są w użyciu (np od godziny IS_VALID = false).

I teraz pytanie: czy przy takich założeniach mogę użyć jednego DataGidView z polem Combo do wyboru typu dokumentu (DOC_ID / DOC_NAME), który to grid jednocześnie będzie mi umożliwiał podgląd, edycję i dodawanie nowych rekordów?

Problem polega na tym, że jeżeli źródłem danych DataGridViewComboBoxColumn będą jedynie dane ze słownika gdzie IS_VALID = true (aby zawęzić użytkownikom możliwość wyboru przy nowym wpisie) to w przypadku wyświetlania starych danych może się pojawić wpis o dokumencie, którego typ dokumentu już nie jest VALID co generuje błąd w gridzie...

Oczywiście mogę użyć jednego grida do podglądu, drugiego do dodawania danych, ale miałem nadzieję, że od czasów DBGrida już coś się w tym temacie zmieniło...

Z góry dzięki za podpowiedzi!

0

Może komuś się przyda - ten kod pozwala na wyświetlanie w ComboBoxie innych wartości a wstawianie / edytowanie innych (VB.NET):

Private Sub Grd_EditingControlShowing(sender As Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles Grd.EditingControlShowing

Dim BsValidOnly As New BindingSource

If Grd.CurrentCell.ColumnIndex = *NrKolumny* Then
  BsValidOnly.DataSource = DsDictionaty.Tables(0)
  BsValidOnly.Filter = "IS_VALID = True"
  Dim comboBox As DataGridViewComboBoxEditingControl = CType(e.Control, DataGridViewComboBoxEditingControl)
  comboBox.DataSource = BsValidOnly
End If

End Sub

1 użytkowników online, w tym zalogowanych: 0, gości: 1