Korespondencja seryjna - sortowanie rekordów wg daty
Korespondencja seryjna - sortowanie rekordów wg daty
Witam.
Mam bazę danych w której rekordy są wpisywane w kolejności przypadkowej. Bazę danych muszę wydrukować w postaci tabelek ułożonych wg wprowadzonej daty. W opcjach sortowania tabeli układam rosnąco wg wpisanej daty. Jednak gdy tworzę korespondencję seryjną to rekordy są ułożone w kolejności wpisywania. Czy można to jakoś obejść?
Pozdrawiam
Mam bazę danych w której rekordy są wpisywane w kolejności przypadkowej. Bazę danych muszę wydrukować w postaci tabelek ułożonych wg wprowadzonej daty. W opcjach sortowania tabeli układam rosnąco wg wpisanej daty. Jednak gdy tworzę korespondencję seryjną to rekordy są ułożone w kolejności wpisywania. Czy można to jakoś obejść?
Pozdrawiam
OpenOffice 3.3 Windows 7 64bit
Re: Korespondencja seryjna - sortowanie rekordów wg daty
Utwórz kwerendę na podstawie tej tabeli i w widoku projektu ustaw sortowanie w polu data. W korespondencje seryjnej wybierz tą kwerendę jako źródło danych.
Jest to pierwsze co mi przyszło do głowy, ale czy zadziała? Nie sprawdzałem
Jest to pierwsze co mi przyszło do głowy, ale czy zadziała? Nie sprawdzałem
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Korespondencja seryjna - sortowanie rekordów wg daty
Zamiast kwerendy może być perspektywa. Oba rodzaje obiektów zawierają zapytanie; różnica jest taka, ze kwerendą zarządza klient, a perspektywą system bazy. Więc odpytywanie perspektywy nie różni się niczym od odpytywania tabeli.
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Korespondencja seryjna - sortowanie rekordów wg daty
Dziękuje za szybką odpowiedź. Jestem początkującym użytkownikiem i dopiero poznaje oprogramowanie OO - udało mi się to obejść poprzez nie korzystanie z kreatora korespondencji seryjnej tylko poprzez zwykłą opcję drukowania i menu. Pojawił się jednak problem z numerowaniem rekordów - wcześniej wprowadzany klucz ID (używam go do numerowania poszczególnych tabelek) po ułożeniu względem daty nie odpowiada numerowi drukowanej strony. Czy mogę po posortowaniu ponumerować ponownie rekordy wg nowego porządku?
Pozdrawiam
Pozdrawiam
OpenOffice 3.3 Windows 7 64bit
Re: Korespondencja seryjna - sortowanie rekordów wg daty
Chyba stosujesz niewłaściwe podejście, do druku w bazach danych służą raporty. Pole ID nie służy do tego by być licznikiem. W raporcie wstawiasz pole które automatycznie ponumeruje ci wszystkie rekordy (te które wybrałeś w kwerendzie, tabeli). W standardowej instalacji budowanie raportów jest krótko mówiąc pod psem, ale jest doskonały dodatek do tego przeznaczony - Orackle Report builder lub po polsku Kreator raportów. Praca z nim przypomina budowę raportów z Ms Accessa, po prostu wstawiasz pole i we właściwościach wybieracz licznik ot cała filozofia.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Korespondencja seryjna - sortowanie rekordów wg daty
Próbowałem już robić raporty - nie udało mi się jednak uzyskać efektu by każdy rekord był drukowany w osobnej ściśle określonej tabelce która ma swój numer porządkowy (wymóg centrum egzaminów medycznych). Zapytanie jak to zrobić umieściłem na tym forum - doradzono mi właśnie korespondencje seryjną do tworzenia takiego dokumentu i póki co wszystko czego potrzebowałem, udawało mi się uzyskać korespondencją seryjną. Jedynie numer porządkowy tabelki stanowi problem. Nie znam SQL i raczkuje w programach biurowych. Narzucenie nowej numeracji albo dodatkowej kolumny tabeli z numeracją rozwiązało by problem (ale nie wiem czy to jest możliwe).
Korzystając z okazji próbowałem zrobić kwerendę która zliczyłaby w tabeli ilość wpisów tekstowych (kody procedur zabiegów oznaczone literami A i B,C oraz podany typ zabiegu i zakres dat) Udaje mi się wyświetlić wyselekcjonowane rekordy jednak każda próba zastosowania funkcji ilości kończy się błędem - nawet gdy zrobiłem drugą kwerendę która by zliczyła ilość wpisów z drugiej. W załączniku baza danych i szablony dokumentów. Proszę o pomoc i pozdrawiam
Korzystając z okazji próbowałem zrobić kwerendę która zliczyłaby w tabeli ilość wpisów tekstowych (kody procedur zabiegów oznaczone literami A i B,C oraz podany typ zabiegu i zakres dat) Udaje mi się wyświetlić wyselekcjonowane rekordy jednak każda próba zastosowania funkcji ilości kończy się błędem - nawet gdy zrobiłem drugą kwerendę która by zliczyła ilość wpisów z drugiej. W załączniku baza danych i szablony dokumentów. Proszę o pomoc i pozdrawiam
- Załączniki
-
- ListaZabiegówMedycznychszablon.ott
- Szablon do korespondencji seryjnej
- (12.38 KiB) Pobrany 193 razy
-
- tabelka zestawienie.odt
- tabelka która ma zliczać ilość zabiegów w zależności czy operator czy też nie (kod oznaczenia A lub B)
- (10.84 KiB) Pobrany 224 razy
Ostatnio zmieniony sob maja 11, 2013 8:47 pm przez Klastes, łącznie zmieniany 1 raz.
OpenOffice 3.3 Windows 7 64bit
Re: Korespondencja seryjna - sortowanie rekordów wg daty
Po zainstalowaniu dodatku o którym wspominałem wcześniej, wybierz Użyj kreatora, aby utworzyć raport.
W kreatorze wybierz odpowiednią tabelę lub kwerendę - "Spis zabiegów operacyjnych..."
Wskaż odpowiednie pola "(pole ID pomiń) i przenieś je za pomocą strzałek do pola "Pola w raporcie" zatwierdź przyciskiem Dalej.
Wpisz odpowiednie etykiety dla pól. i Dalej.
Możesz pogrupować dane np. Wspominany Kod A i Dalej.
Możesz posortować dane wg. pola jakiego chcesz - "Data" i Dalej.
Wybierz "W blokach, etykiet powyżej" lub co tam chcesz. Podczas wybierania obserwuj co się dzieje na raporcie, układ pól i etykiet zmienia się dynamicznie, i Dalej.
Wybierz raport dynamiczny i w tym momencie zdecyduj czy raport ma być utworzony czy będziesz go modyfikował i przycisk Zakończ. Utworzony raport uruchomi się, zamknij go i wciskając PPM wybierz edycja. Poukładaj pola tak jak w twoim szablonie (sekcja szczegóły). teraz wstaw pole tekstowe wskazując ikonę na pasku narzędziowym i używając myszy narysuj je tam gdzie ma być. PPM na tym polu i wybierz Właściwości. Wskaż zakładkę Dane, w polu Typ pola danych wybierz Licznik. I to tak naprawdę wszystko, dodaj tylko jeszcze etykietę do utworzonego pola z licznikiem (analogicznie do pola tekstowego).
Możesz modyfikować wszystkie aspekty raportu, pomoże w tym nawigator raportu (F5). nawet możesz zdecydować czy dokumentem wyjściowym ma być arkusz kalkulacyjny czy dokument tekstowy.
Uff.. No to sprawa raportu załatwiona, mam nadzieję.
Przeglądając twoją bazę danych nasuwa się tylko jedna myśl, musisz tą bazę potraktować jako punkt wyjścia do zbudowania systemu o wiele bardziej wydajnego. Szczególnie pod młotek weź normalizację (W polach tabeli nie powinno być powtarzających się danych. np pola w tabeli Spis zabiegów... "NazwaStazu, Kodoznaczenia, miejscewykonania" itd. powinny znajdować się w oddzielnych tabelach powiązanych relacjami z tą tabelą), literatury na ten temat spor w sieci http://pl.wikipedia.org/wiki/Normalizacja_bazy_danych - to na początek.
Mam nadzieję że to jest to czego szukasz.
W kreatorze wybierz odpowiednią tabelę lub kwerendę - "Spis zabiegów operacyjnych..."
Wskaż odpowiednie pola "(pole ID pomiń) i przenieś je za pomocą strzałek do pola "Pola w raporcie" zatwierdź przyciskiem Dalej.
Wpisz odpowiednie etykiety dla pól. i Dalej.
Możesz pogrupować dane np. Wspominany Kod A i Dalej.
Możesz posortować dane wg. pola jakiego chcesz - "Data" i Dalej.
Wybierz "W blokach, etykiet powyżej" lub co tam chcesz. Podczas wybierania obserwuj co się dzieje na raporcie, układ pól i etykiet zmienia się dynamicznie, i Dalej.
Wybierz raport dynamiczny i w tym momencie zdecyduj czy raport ma być utworzony czy będziesz go modyfikował i przycisk Zakończ. Utworzony raport uruchomi się, zamknij go i wciskając PPM wybierz edycja. Poukładaj pola tak jak w twoim szablonie (sekcja szczegóły). teraz wstaw pole tekstowe wskazując ikonę na pasku narzędziowym i używając myszy narysuj je tam gdzie ma być. PPM na tym polu i wybierz Właściwości. Wskaż zakładkę Dane, w polu Typ pola danych wybierz Licznik. I to tak naprawdę wszystko, dodaj tylko jeszcze etykietę do utworzonego pola z licznikiem (analogicznie do pola tekstowego).
Możesz modyfikować wszystkie aspekty raportu, pomoże w tym nawigator raportu (F5). nawet możesz zdecydować czy dokumentem wyjściowym ma być arkusz kalkulacyjny czy dokument tekstowy.
Uff.. No to sprawa raportu załatwiona, mam nadzieję.
Przeglądając twoją bazę danych nasuwa się tylko jedna myśl, musisz tą bazę potraktować jako punkt wyjścia do zbudowania systemu o wiele bardziej wydajnego. Szczególnie pod młotek weź normalizację (W polach tabeli nie powinno być powtarzających się danych. np pola w tabeli Spis zabiegów... "NazwaStazu, Kodoznaczenia, miejscewykonania" itd. powinny znajdować się w oddzielnych tabelach powiązanych relacjami z tą tabelą), literatury na ten temat spor w sieci http://pl.wikipedia.org/wiki/Normalizacja_bazy_danych - to na początek.
Mam nadzieję że to jest to czego szukasz.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Korespondencja seryjna - sortowanie rekordów wg daty
Bardzo dziękuje za szybką i szczegółową odpowiedź. Będę starał się wdrożyć te rady.
Pozdrawiam
Pozdrawiam
OpenOffice 3.3 Windows 7 64bit