MotlawaTech:Funkcjonalność "kosza" w kartotece: Różnice pomiędzy wersjami
Z Motława
| Linia 15: | Linia 15: | ||
shl.MaxTimeFieldName := 'localtime';</pre> | shl.MaxTimeFieldName := 'localtime';</pre> | ||
| − | W oknie FDBC przeglądarki (w zdarzeniu ''Create'' lub ''ChldMayOpen'') należy ustawić | + | W oknie FDBC przeglądarki (w zdarzeniu ''Create'' lub ''ChldMayOpen'') należy ustawić: |
<pre>DeleteRecHandled := True;</pre> | <pre>DeleteRecHandled := True;</pre> | ||
a w akcji usunięcia rekordu zamiast | a w akcji usunięcia rekordu zamiast | ||
<pre>DBPlaces.GUI_OperExecute_Handle_And_Editor(null, hrtExistDelete, 0);</pre> | <pre>DBPlaces.GUI_OperExecute_Handle_And_Editor(null, hrtExistDelete, 0);</pre> | ||
| − | należy wywołać | + | należy wywołać: |
<pre>DeleteRecShell;</pre> | <pre>DeleteRecShell;</pre> | ||
[[Kategoria:Programowanie|Funkcjonalność "kosza" w kartotece]] | [[Kategoria:Programowanie|Funkcjonalność "kosza" w kartotece]] | ||
Wersja z 13:40, 11 mar 2010
Tabela w bazie powinna posiadać kolumnę - znacznik usunięcia oraz kolumnę - znacznik czasu edycji; jeśli ich nie posiada, to należy je dodać:
add `localtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, add deleted integer default 0;
pole typu timestamp powinno zostać dodane do zapytania SQL shella oraz do CDSa jako TSQLTimeStampField - definicja w DFM:
object cdslocaltime: TSQLTimeStampField
FieldName = 'localtime'
ProviderFlags = []
Visible = False
end
Nie ma potrzeby dodawania do CDSa pola - znacznika usunięcia.
W shellu przeglądarki należy zdefiniować property DeletedFieldName oraz MaxTimeFieldName i podając w/w pola tabeli np.
shl.DeletedFieldName := 'deleted'; shl.MaxTimeFieldName := 'localtime';
W oknie FDBC przeglądarki (w zdarzeniu Create lub ChldMayOpen) należy ustawić:
DeleteRecHandled := True;
a w akcji usunięcia rekordu zamiast
DBPlaces.GUI_OperExecute_Handle_And_Editor(null, hrtExistDelete, 0);
należy wywołać:
DeleteRecShell;