Witam,
mam pytanie i ewentualnie prośbę o przykład odnośnie rozwiązania poniższego problemu:
W bazie mam tabelę "Uprawnienia" która wygląda następująco:
ID_UPRAWNIENIA | ID_MODULU | ID_UZYTKOWNIKA | P | D | U | E |
---|---|---|---|---|---|---|
1 | 14 | 10 | 1 | 0 | 0 | 1 |
**gdzie: **
P - Przegląd
D - Dodawanie
U - Usuwanie
E - Edycja
Na formie mam XDBGrid wyglądający tak:
Nazwa modułu | Przegląd | Dodawanie | Usuwanie | Edycja |
---|---|---|---|---|
Ustawienia systemu | X | O | O | X |
X - Checkbox zaznaczony
O - Checkbox odznaczony
Problem jest taki, że nie każdy moduł wymaga np. Dodawania lub Edycji bo posiada tylko Przegląd dlatego chciałbym nie wyświetlać checkboxów w tych komórkach (ukryć je).
Podejrzewam, że całość funkcji sprawdzającej musiałaby znajdować się w zdarzeniu OnDrawColumnCell.
Póki co wymyśliłem to, lecz w efekcie widać nazwy kolumn ale tabela jest czarna.
if (IBDataSet2.FieldByName('NAZWA').AsString = 'Ustawienia systemu') // Jesli modul to ustawienia systemu
and (IBDataSet2.FieldByName('P').AsString <> '') then // i aktualnie znajdujemy sie w kolumnie P (przeglad)
dbUprawnienia.SelectedField.Visible := False // Ukryj pole
else
dbUprawnienia.SelectedField.Visible := True; // Pokaz pole
Proszę o pomoc.