formatowanie daty DBGRID

0

Witam

Siagam dane z MSsql2008 do DBGRIDA (delphi6) dane sciagaja sie w formacie yyyy-mm-dd a ja chcialbym dokladnie na odwrot czyli dd-mm-yyyy.

Chcialbym rowniez zmienic format liczb aby wyswietlaly dodatkowo dwa miejsca po przecinku czyli zamiast 750 bedzie 750,00

szukalem zmiany formatu w sql ale nie do konca pasuje mi to rozwiazanie czy jest jakas opcja aby zmienic to w programie

Z gory dziekuje za wszelkie podpowiedzi

0

Oczywiście że jest Andrzejku popatrz w propertis. Lepszym rozwiązaniem jest przeszukanie forum.

0

Szukam juz drugi dzien i znalezc nie moge.

0

co do daty: pokombinuj z http://4programmers.net/Delphi/TFormatSettings
a co do tych miejsc po przecinku:
jeśli to nie jest liczba rzeczywista to potraktuj ją jako rzeczywistą i wpisz:

FormatFloat('0.00', jakas_liczba);
0

Jakie formatSettings. Bez przesady. Wystarczy ustawić odpowiedni format w odpowiedniej kolumnie.

0

Ja nie moge znalezc a patrze juz setny raz na wlasciwosci dbgrida jak i na wlasciwosci kolumn w dbgridzie

0

Popatrz w tabeli dla danego pola, każde pole ma w propertisach coś takiego jak DisplayFormat. Dla daty ustawiasz odpowiednio dd-mmm-yyyy, tak samo z liczbami zmiennoprzecinkowymi odpowiedni format 0.00

0

uzywam DElphi6 lacze sie do SQL2008 za pomoca ADODataset potem to wrzucam do datasource i z datasource do dbgrid

w zadnej z tych kontrolek a wiesz mi przeszukalem je juz kilkanascie razy nie ma czegos takiego jak ty mowisz czyli DISPLAYFORMAT.

Bardzo prosze o dokladne wskazanie gdzie i co mam szukac jezeli taka ocja istnieje bo powoli sie poddaje

0

Dwuklik na ADODataset, dodajesz wszystkie kolumny i w odpowieniej kolumnie ustawiasz DispayFormat.

0

Ok znalazlem.
Problem w tym ze dla daty nie mam opcji displayformat mam tylko mask ale to nie dziala tak jak chce

dla formatu money(sql) moge zmienic displayformat ale jak dam 0.00 to i tak nic sie nie zmienia

0

ok dziala odnosnie formatu 0.00 dla money ale dalej mam problem z data.
zauwazylem ze date zapisuje w formacie TWideStringField i wtedy nie mam opcji displayformat czy jest opcja aby dalo sie to zmienic

0

Pola z datą mają właściwość DisplayFormat, dla pól z wartościami walutowymi wystarczy ustwić -> currency := True

0

No u mnie nie maja

W sql format kolumny to "date" gdy wloze to do grida to w dataset format wyskakuje ftWideString zmienialem go na ftData ale dalej nie mam w wlasciwosciach zakladki displayformat

0

czyli nie ma rozwiazania.
Dziwi mnie dlaczego tak podstawowa rzecz jest taka skomplikowana

0

Moze ci to pomoze.

procedure TfmKarty.dbgKartyDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
    if qrKartyuzywana.Value then
        dbgKarty.Canvas.Brush.Color := clCream
    else
        dbgKarty.Canvas.Brush.Color := clWhite;

    dbgKarty.DefaultDrawColumnCell(Rect, DataCol, Column, State);

    if (Column.FieldName = 'uzywana')  then
    begin
        dbgKarty.Canvas.Pen.Style := psSolid;
        dbgKarty.Canvas.Pen.Color := clBlack;

        if qrKartyuzywana.Value then
        begin
            dbgKarty.Canvas.FillRect(rect);
            dbgKarty.Canvas.TextOUT(rect.Left + 1, Rect.top, 'TAK')
        end
        else
        begin
            dbgKarty.Canvas.FillRect(rect);
            dbgKarty.Canvas.TextOUT(rect.Left + 1, Rect.top, 'NIE');
        end;
    end;

Wystarczy tylko dorobic funkcje ktora pobiera dane konwertuje na format ktory tobie odpowiada i przekazujesz w miejsce 'TAK'.

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