Thread View: pl.comp.lang.delphi
5 messages
5 total messages
Started by lordbz
Wed, 04 Dec 2019 10:44
Nazwy pól i na podstawie wartości
Author: lordbz
Date: Wed, 04 Dec 2019 10:44
Date: Wed, 04 Dec 2019 10:44
31 lines
2389 bytes
2389 bytes
Witam grupę
Od rana się borykam z pewną sprawą :
Chcę wyświetlić nazwe kolumny np. na listbox pod warunkiem, że wartość w polu w tej kolumnie = 0
W bazie (firebird) mam w tabeli kolumny np : kol_1, kol_2, kol_3 itp aż do kol_10
Typ integer ale może być zapisana w polu wartość 1 lub 0
Robię selecta z tabeli do grida. a następnie poprzez dataset z którego korzysta grid chcę wyświetlić nazwy kolumn np w listbox:
b:=0
if (smdbGrd.DataSource.DataSet.Fields.FieldByName('KOL_1').AsInteger =0) or (smdbGrd.DataSource.DataSet.Fields.FieldByName('KOL_2').AsInteger =0) then
listbox1.itemsAdd(b);
ewentualnie
można by spróbować pominąć grida
lst1.Items.Add(DMod.IBQ.DataSource.DataSet.FieldDefList.GetText)
Chciałbym teraz wyświetlić nazwę kolumny np. na listbox pod warunkiem że w polu jest wartość 0
To coś jak DMod.DataSource.DataSet.FieldDefList.GetText ale zależne od wartości pola.
Chyba nie namieszałem. Może ktoś coś podrzuci ?
kurcze to wydawało mi się proste a tu się zapętliłem. Coś naknociłem :-(
Przemek
Re: Nazwy pól i na podstawie wartości
Author: Tomek D
Date: Thu, 05 Dec 2019 00:37
Date: Thu, 05 Dec 2019 00:37
44 lines
2481 bytes
2481 bytes
Trochę niejasne co chcesz osiągnąć. Ogólnie rzecz biorąc nazwy kolumn w
zależności od wartości rekordu to trochę dziwne rozwiązanie. Czy one
mają się zmieniać gdy będziesz nawigować (przechodzić pomiędzy
rekordami) dataseta?
Ile rekordów masz w DataSet?
Jak ustalimy o co Ci chodzi, to przejdziemy do nauki prostego dostępu do
danych do DataSet zamiast tego co tu napisałeś.
Tomek D.
W dniu 04.12.2019 o 11:44, lordbz pisze:
> Witam grupę
>
>
> Od rana się borykam z pewną sprawą :
>
> Chcę wyświetlić nazwe kolumny np. na listbox pod warunkiem, że wartość w polu w tej kolumnie = 0
>
> W bazie (firebird) mam w tabeli kolumny np : kol_1, kol_2, kol_3 itp aż do kol_10
> Typ integer ale może być zapisana w polu wartość 1 lub 0
>
> Robię selecta z tabeli do grida. a następnie poprzez dataset z którego korzysta grid chcę wyświetlić nazwy kolumn np w listbox:
>
> b:=0
> if (smdbGrd.DataSource.DataSet.Fields.FieldByName('KOL_1').AsInteger =0) or (smdbGrd.DataSource.DataSet.Fields.FieldByName('KOL_2').AsInteger =0) then
>
> listbox1.itemsAdd(b);
>
> ewentualnie
>
> można by spróbować pominąć grida
>
> lst1.Items.Add(DMod.IBQ.DataSource.DataSet.FieldDefList.GetText)
>
> Chciałbym teraz wyświetlić nazwę kolumny np. na listbox pod warunkiem że w polu jest wartość 0
>
> To coś jak DMod.DataSource.DataSet.FieldDefList.GetText ale zależne od wartości pola.
> Chyba nie namieszałem. Może ktoś coś podrzuci ?
>
> kurcze to wydawało mi się proste a tu się zapętliłem. Coś naknociłem :-(
>
> Przemek
>
Re: Nazwy pól i na podstawie wartości
Author: zpksoft
Date: Thu, 05 Dec 2019 06:40
Date: Thu, 05 Dec 2019 06:40
39 lines
2615 bytes
2615 bytes
W dniu środa, 4 grudnia 2019 11:44:19 UTC+1 użytkownik lordbz napisał:
> Witam grupę
>
>
> Od rana się borykam z pewną sprawą :
>
> Chcę wyświetlić nazwe kolumny np. na listbox pod warunkiem, że wartość w polu w tej kolumnie = 0
>
> W bazie (firebird) mam w tabeli kolumny np : kol_1, kol_2, kol_3 itp aż do kol_10
> Typ integer ale może być zapisana w polu wartość 1 lub 0
>
> Robię selecta z tabeli do grida. a następnie poprzez dataset z którego korzysta grid chcę wyświetlić nazwy kolumn np w listbox:
>
> b:=0
> if (smdbGrd.DataSource.DataSet.Fields.FieldByName('KOL_1').AsInteger =0) or (smdbGrd.DataSource.DataSet.Fields.FieldByName('KOL_2').AsInteger =0) then
>
> listbox1.itemsAdd(b);
>
> ewentualnie
>
> można by spróbować pominąć grida
>
> lst1.Items.Add(DMod.IBQ.DataSource.DataSet.FieldDefList.GetText)
>
> Chciałbym teraz wyświetlić nazwę kolumny np. na listbox pod warunkiem że w polu jest wartość 0
>
> To coś jak DMod.DataSource.DataSet.FieldDefList.GetText ale zależne od wartości pola.
> Chyba nie namieszałem. Może ktoś coś podrzuci ?
>
> kurcze to wydawało mi się proste a tu się zapętliłem. Coś naknociłem :-(
>
> Przemek
może taki trop:
if fields[i].value=0 then listBox.Add(fields[i].displayName);
Paweł
Re: Nazwy pól i na podstawie wartości
Author: lordbz
Date: Thu, 05 Dec 2019 08:16
Date: Thu, 05 Dec 2019 08:16
3 lines
2477 bytes
2477 bytes
Kilka lat temu popełniłem program, który w nazwie kolumny posiada nazwę miesiąca czyli styczeń, luty itp.W polu zapisuje się 0 - niezapłacony, 1 -zapłacony. Na bardzo szybko muszę coś tam przerobić , więc pomyślałem, że zbiorę nazwy kolumn gdzie dla danego klienta(w rekordzie) jest 0 i wyświetlę nazwę kolumny w listbox. Od razy widać że za styczeń nie zapłacił bo się wyświetla styczeń w listbox. No cóż, jest co jest ale nie będę udawał że to po kimś kod. Ja to popełniłem :-(. Teraz bym przemyślał to lepiej. W sumie wtedy nie było takiej potrzeby (żeby coś zmieniać) a dzisiaj jest dzisiaj. :-) Brak doświadczenia. Ale nie o tym, biczując się nie zdobędę go. Stąd prośba o pomoc. Więc jak będę nawigował to nazwy będą się wyświetlały inne. Np. Iksiński nie zapłacił za styczen i luty - klikam na iksińskiego i w listbox jest styczeń, luty a Igrekowski za marzec nie zapłacił - wyświetli się marzec. Rekordów niedużo, problemem jest to "na szybko". Na szybko to pchły... Lepiej byłoby to przemyśleć i poprawić ale.....
Re: Nazwy pól i na podstawie wartości
Author: zpksoft
Date: Thu, 05 Dec 2019 09:34
Date: Thu, 05 Dec 2019 09:34
50 lines
3232 bytes
3232 bytes
W dniu czwartek, 5 grudnia 2019 07:40:40 UTC+1 użytkownik zpksoft napisał:
> W dniu środa, 4 grudnia 2019 11:44:19 UTC+1 użytkownik lordbz napisał:
> > Witam grupę
> >
> >
> > Od rana się borykam z pewną sprawą :
> >
> > Chcę wyświetlić nazwe kolumny np. na listbox pod warunkiem, że wartość w polu w tej kolumnie = 0
> >
> > W bazie (firebird) mam w tabeli kolumny np : kol_1, kol_2, kol_3 itp aż do kol_10
> > Typ integer ale może być zapisana w polu wartość 1 lub 0
> >
> > Robię selecta z tabeli do grida. a następnie poprzez dataset z którego korzysta grid chcę wyświetlić nazwy kolumn np w listbox:
> >
> > b:=0
> > if (smdbGrd.DataSource.DataSet.Fields.FieldByName('KOL_1').AsInteger =0) or (smdbGrd.DataSource.DataSet.Fields.FieldByName('KOL_2').AsInteger =0) then
> >
> > listbox1.itemsAdd(b);
> >
> > ewentualnie
> >
> > można by spróbować pominąć grida
> >
> > lst1.Items.Add(DMod.IBQ.DataSource.DataSet.FieldDefList.GetText)
> >
> > Chciałbym teraz wyświetlić nazwę kolumny np. na listbox pod warunkiem że w polu jest wartość 0
> >
> > To coś jak DMod.DataSource.DataSet.FieldDefList.GetText ale zależne od wartości pola.
> > Chyba nie namieszałem. Może ktoś coś podrzuci ?
> >
> > kurcze to wydawało mi się proste a tu się zapętliłem. Coś naknociłem :-(
> >
> > Przemek
>
> może taki trop:
>
> if fields[i].value=0 then listBox.Add(fields[i].displayName);
>
>
> Paweł
I jeszcze taka uwaga.
To już lepiej odpytać bazę:
select miesiac from platnosci where klientID=:klientID and zaplacil=0
zamiast iterować po całym zbiorze danych.
Paweł
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads