Piotr Warda

Piotr Warda
informatyk-ekonomist
a

Temat: Optima - problem z sortowaniem kalendarza

Witam,

Próbuję zrobić raport, który będzie drukował dla każdego pracownika szablon listy obecności z wykorzystaniem kalendarza. Ponieważ ma to byc wydruk seryjny, więc korzystam z tabel:

Rpt_Zaznaczenia2 - wybór osób do drukowania
PracIdx - filtruję osoby zatrudnione i tylko etatowców
PracEtaty - dla każdego zatrudnionego wybieram numer ostatniego kalendarza

Z Optimy przekazuję przez zmienną 'rok' typu data miesiąc i rok drukowania listy obecności

Raport mam zrobiony, tak:
formuła wybierania grup: {Pracidx.PRI_Archiwalny}=0 and {Pracidx.PRI_Typ}=10

nagłowek grupy 1 (grupowanie osób - funkcja: nazwisko+imię) - wydruk góry tabelki tabelki
nagłowek grupy 2 (grupowanie wpisów dla osoby: PracEtaty.PRE_PraId

stopka grupy 2 mam podraport drukujący wiersze tabelki na każdy dzień miesiąca
stopka grupy 1 podsumowanie tabelki

Do podraportu przekazuję dwa parametry:
rok - z parametrów
PracEtaty.PRE_KalId - numer kalendarza dla konkretnego pracownika.

I teraz podraport:
Z uwagi na liknowanie w Optimie tabel Kalendarze i KalDni - otwieram obydwie tabele.

formuła wybierania grup: Year({KalendDni.KAD_Data})=Year({?Pm-@mc_rok}) and
Month({KalendDni.KAD_Data})=Month({?Pm-@mc_rok})

formuła wybierania rekordów: {KalendDni.KAD_KalId} = {?Pm-PracEtaty.PRE_KalId}

nagłówek grupy 1 - grupowanie Kalendarze.KAL_KalId
nagłowek grupy 2 - grupowanie funkcją {KalendDni.KAD_KalId}+{KalendDni.KAD_Data}

w szczegółach drukuję wiersz tabelki biorąc dzień miesiąca formułą: ToText(Day({KalendDni.KAD_Data}),0,'','')

W tabeli mam różne kalendarze dla grup osób i czasami pojawia się problem, że na wydruku dni miesiąca nie są uporządkowane rosnąco. Gdzie tkwi przyczyna - domyślam się, że tabela w raporcie nie ustawia się prawidłowo po kluczu - tylko dlaczego?

Z opisu struktury tabeli:

KAD_KalId - integer
KAD_Data - datetime

Klucze:
KAD_Primary - KAD_KadId - Klucz główny
KADData - KAD_KalId ,KAD_Data - Unikalny indeks po id kalendarza i dacie

Może jakieś sugestie?

Pozdrawiam,
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Optima - problem z sortowaniem kalendarza

Tabela w raporcie nie jest automatycznie sortowana po kluczu, lecz według fizycznej kolejności rekordów. Jeśli chcesz chcesz ustawić rekordy lub grupy w określonej kolejności to musisz wybrać opcję: dla rekordów: Report | Record Sort Expert lub dla grup: Report | Group Sort Expert
Piotr Warda

Piotr Warda
informatyk-ekonomist
a

Temat: Optima - problem z sortowaniem kalendarza

Witam,

Wielkie dzięki - pomogło. Ja w tej opcji widziałem wpisy i uznałem, że skoro w grupowaniu używam ustawiania rekordów w kolejności to załatwi sprawę. Jak się okazało - jednak nie.

Er­ra­re hu­manum est.

Pozdrawiam,



Wyślij zaproszenie do