ďťż

Ładny brzuch

Witam serdecznie

dlephi 7 i ms sql server 2000

mam mianowicie taki problem pobieram z bazy dane liczbowe do dbgrid chciałbym
dodać do dbgrid jeszcze dwie kolumny nie związane z bazą danych puste w pierwszej wpisuje jakąś liczbę, która zostanie odjęta od liczby pobranej z bazy danych a w drugiej kolumnie zostaje wyświetlony wynik różnicy

jest to możliwe w tym komponencie a jak nie to może jakaś propozycja

dzięki i proszę o pomoc

Pozdrawiam



Ja bym na Twoim miejscu użył zwykłego StringGrid'a. Wczytanie do niego rekordów ze źródła danych wcale nie jest takie trudne, a wtedy rozwiązanie Twojego problemu nie powinno stwarzać kłopotów.

Wydaje mi się, że dbgrid nie daje takich możliwości (też cos takiego chciałem).
Najlepszy efekt prezentacji danych daje ListView. Nie ma problemu z kasowaniem i dodawianiem wierszy lub kolumn.

tak te komponenty mają duże możliwości natomiast nie są tak szybkie jak dbgrid ponieważ według mojej wiedzy do tych komponentów trzeba wczytywać dane po koleji np w pętli a to nie jest dobre rozwiązanie przy 10000 rekordów miałem te tabeliki ale strasznie wolno szło

Pozdrawiam




według mojej wiedzy do tych komponentów trzeba wczytywać dane po koleji np w pętli a to nie jest dobre rozwiązanie przy 10000 rekordów miałem te tabeliki ale strasznie wolno szło


Ale przecież po dodaniu dwóch nowych kolumn do dbgrid'a też ich zawartość musiałbyś wypełniać w pętli...

Dodaj nowe pola typu calculated i w OnCalcFields (tabeli czy też query) ustawiaj wartość.


Dodaj nowe pola typu calculated i w OnCalcFields (tabeli czy też query) ustawiaj wartość.

Ale readonly to z angielskiego tylko do odczytu :P Może to ustaw na false ?


Problem polega na tym ze tak mam zrobione natomiast nie daje sie nic w pisać w kolumny dodane readonly ustawione jest na true  i też nic

Jak to sie nie da ?? Przed chwila sprawdzałem i działa. W OnCalcFields nie ustawiasz wartości kolumny DBGrida tylko wartość pola np
ADOQuery1s_w.Value := ADOQuery1SIZE.Value * ADOQuery1WEIGHT.Value;
Przykład jest dla jakiejś bazy dodawanej do Delphi. Dodałem pole o nazwie s_w i je obliczam sobie.

Wówczas Ty programowo masz dostęp do tych wartości a jak w DBGridzie ustawisz dla kolumny wyświetlającej dane dla pola, w tym przykładzie, s_w ReadOnly := True to użytkownik nie będzie mógł ich modyfikować. Pole dodane s_w nie może być wówczas ReadOnly - bo jak będzie to programowo nie będzie sie dało ustawić dla niego niezbędnych wartości.


Jak to sie nie da ?? Przed chwila sprawdzałem i działa. W OnCalcFields nie ustawiasz wartości kolumny DBGrida tylko wartość pola np
ADOQuery1s_w.Value := ADOQuery1SIZE.Value * ADOQuery1WEIGHT.Value;
Przykład jest dla jakiejś bazy dodawanej do Delphi. Dodałem pole o nazwie s_w i je obliczam sobie.

Wówczas Ty programowo masz dostęp do tych wartości a jak w DBGridzie ustawisz dla kolumny wyświetlającej dane dla pola, w tym przykładzie, s_w ReadOnly := True to użytkownik nie będzie mógł ich modyfikować. Pole dodane s_w nie może być wówczas ReadOnly - bo jak będzie to programowo nie będzie sie dało ustawić dla niego niezbędnych wartości.

ADOQuery1SIZE i ADOQuery1WIEGHT to są nazwy pól z TADOQuery. Automat delphiowy nadaje nazwy pól sumując nazwę query i nazwę pola z tego query. Pola SIZE i WIEGHT sa w tabeli bazy danych. Pole s_w sam utworzyłem i oczywiście została mu nadana nazwa ADOQuery1+s_w czyli ADOQuery1s_w.
Oczywiście w Twoim przypadku będzie inaczej bo zapewne inne są nazwy pól ... Klepnij prawym klawiszem na Query (lub na tabelę) i daj Fields editor -> prawy klawisz w okienku, które sie pojawi i Add all fields. Zostaną dodane wszystkie pola wynikające z zapytania/tabeli. Tam tez dodalem nowe pole o nazwie s_w i pokazalem, że jest to pole kalkulowane ...
Użytkownik Uno edytował ten post 05 lipiec 2006, 13:27
ADOQuery1SIZE i ADOQuery1WEIGHT to są nazwy pól z TADOQuery. Automat delphiowy nadaje nazwy pól sumując nazwę query i nazwę pola z tego query. Pola SIZE i WEIGHT sa w tabeli bazy danych. Pole s_w sam utworzyłem i oczywiście została mu nadana nazwa ADOQuery1+s_w czyli ADOQuery1s_w.
Oczywiście w Twoim przypadku będzie inaczej bo zapewne inne są nazwy pól ... Klepnij prawym klawiszem na Query (lub na tabelę) i daj Fields editor -> prawy klawisz w okienku, które sie pojawi i Add all fields. Zostaną dodane wszystkie pola wynikające z zapytania/tabeli. Tam tez dodalem nowe pole o nazwie s_w i pokazalem, że jest to pole kalkulowane ...
Użytkownik Uno edytował ten post 05 lipiec 2006, 13:28

ADOQuery1SIZE i ADOQuery1WEIGHT to są nazwy pól z TADOQuery. Automat delphiowy nadaje nazwy pól sumując nazwę query i nazwę pola z tego query. Pola SIZE i WEIGHT sa w tabeli bazy danych. Pole s_w sam utworzyłem i oczywiście została mu nadana nazwa ADOQuery1+s_w czyli ADOQuery1s_w.
Oczywiście w Twoim przypadku będzie inaczej bo zapewne inne są nazwy pól ... Klepnij prawym klawiszem na Query (lub na tabelę) i daj Fields editor -> prawy klawisz w okienku, które sie pojawi i Add all fields. Zostaną dodane wszystkie pola wynikające z zapytania/tabeli. Tam tez dodalem nowe pole o nazwie s_w i pokazalem, że jest to pole kalkulowane ...

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •