Wykorzystanie korespondencji seryjnej do stworzenia zaświadczeń o członkostwie

Zawsze, gdy trzeba stworzyć wiele dokumentów różniących się tylko kilkoma szczegółami, powinniśmy użyć Korespondencji seryjnej. W tym artykule na przykładzie pokazuję, jak używać tej funkcji i stworzyć zaświadczenia o członkostwie w organizacji.

Swego czasu miałem przyjemność być koordynatorem jednej z Sekcji Koła Naukowego na moim uniwersytecie. Bycie koordynatorem jest fajne, ponieważ wszyscy ich lubią — zwłaszcza gdy zbliża się termin składania wniosków o stypendium, kiedy to członkowie Koła potrzebują dokumentów potwierdzających ich działalność naukową. Oczywiście stworzenie tych kilkunastu zaświadczeń nie byłoby specjalnie nużące, ale nie widziałem większego sensu w wykonywaniu pracy, którą może za mnie wykonać komputer — dlatego też zdecydowałem się wykorzystać Korespondencję seryjną.

1. Przygotowanie treści dokumentu

Cały proces najlepiej jest zacząć od przygotowania treści zaświadczenia. W niniejszym artykule wykorzystamy wersję minimum, zawierającą tylko dwie zmienne — imię oraz nazwisko:

Zaświadczam, że Pan/i <Imię> <Nazwisko> jest aktywnym członkiem/aktywną członkinią Koła Naukowego.

Dopiero po napisaniu treści zaświadczenia jasne staje się, że nasze wstępne założenie wykorzystania tylko dwóch zmiennych było nazbyt optymistyczne — będziemy potrzebowali również trzeciej, określającej płeć. Dzięki niej nasze zaświadczenia będą bardziej spersonalizowane (te wyrazy, które powinny być odmienione, zostaną odmienione).

2. Przygotowanie bazy danych

Teraz, kiedy już wiemy jakich zmiennych będziemy potrzebowali, możemy przystąpić do zaprojektowania bazy danych. Naszą bazą danych w tym wypadku będzie zwykły skoroszyt programu Calc. Tworzymy więc nowy plik i wypełniamy go w następujący sposób:

  1. W pierwszym wierszu umieszczamy nagłówki pól. Są to nazwy, po których będziemy identyfikować zmienne. Powinny one być dla nas zrozumiałe, czego „Imię”, „Nazwisko” oraz „Płeć” są doskonałymi przykładami. W celu uniknięcia późniejszych problemów, w nazwach tych nie powinny występować spacje.
  2. W każdym kolejnym wierszu wpisujemy dane o osobie, której wystawimy zaświadczenie. Jeżeli chodzi o płeć, można wpisać dowolne symbole, byle były one różne i stosowane konsekwentnie. Ja wykorzystam literki „k” (jak kobieta) i „m” (jak mężczyzna).

Arkusz kalkulacyjny zawierający przykładową bazę danych

Plik arkusza kalkulacyjnego oczywiście zapisujemy.

Mamy już treść zaświadczenia oraz bazę danych, na podstawie której powstaną nasze dokumenty. Pozostaje nam jeszcze tylko wypełnić plik zaświadczenia danymi z bazy. Aby to jednak zrobić, musimy wpierw zarejestrować bazę danych w programie LibreOffice.

3. Rejestrowanie bazy danych w programie

Z menu wybieramy PlikNowyBaza danych. Pojawi się nowe okienko, w którym zaznaczamy pozycję Połącz z istniejącą bazą danych, zaś z listy wybieramy Arkusz Kalkulacyjny.

W następnym kroku musimy wskazać programowi ścieżkę do uprzednio zapisanego pliku arkusza kalkulacyjnego.

Wreszcie w trzecim i ostatnim kroku upewniamy się, że opcja Tak, zarejestruj bazę danych jest zaznaczona, zaś opcja Otwórz bazę danych do edycji jest odznaczona (jeżeli zostawimy ją zaznaczoną, to otworzy się program LibreOffice Base, za pomocą którego można manipulować bazą danych; nasza baza jest bardzo prosta, więc program ten nie jest nam do niczego potrzebny).

Po kliknięciu Utwórz pojawi się okienko zapisu pliku. Wpisujemy dowolną nazwę i zatwierdzamy.

Plik ODB (Open Document dataBase), który utworzyliśmy, jest wykorzystywany przez LibreOffice do przechowywania informacji o połączeniu z bazą danych. Plik ten nie zawiera żadnych informacji z samej bazy danych. Gdybyśmy kiedyś usunęli ten plik, nasze dane nadal będą bezpieczne w skoroszycie arkusza kalkulacyjnego. Gdybyśmy jednak kiedyś usunęli plik arkusza kalkulacyjnego, ale pozostawili plik ODB, wtedy będziemy posiadali połączenie z bazą, która już nie istnieje.

LibreOffice w swoim pliku konfiguracyjnym zapisuje informację, gdzie znajduje się plik ODB. Jeżeli więc zmienimy jego nazwę lub przeniesiemy go do innego katalogu, LibreOffice straci do niego dostęp. Konieczne będzie zmodyfikowanie ustawień rejestracji bazy danych.

4. Wstawianie pól w dokumencie

Po zarejestrowaniu bazy możemy przystąpić do wypełnienia naszego dokumentu polami — w ich miejsce program wstawi informacje z bazy danych.

Wracamy więc do okna zawierającego dokument tekstowy i z menu wybieramy WstawPolaInne.... W nowym oknie przechodzimy na kartę Baza danych i po lewej stronie wybieramy Pole listu seryjnego. Następnie po prawej rozwijamy drzewko zawierające nazwę wcześniej zarejestrowanej bazy danych i po wybraniu odpowiedniego pola, klikamy Wstaw. Operację powtarzamy dla pozostałych pól w dokumencie.

W naszym przykładowym zaświadczeniu znajdują się wyrazy, które powinny przyjąć odmienną formę w zależności od tego, czy zaświadczenie jest wystawiane dla kobiety, czy też dla mężczyzny. Do tej pory w treści znajdowały się ukośniki, które oddzielały różne formy gramatyczne. Innym rozwiązaniem byłoby umieszczenie dodatkowych kolumn w bazie danych, które wypełnilibyśmy w odpowiedni sposób dla kobiet i dla mężczyzn, a następnie wstawili do dokumentu. W takim przypadku łatwo jednak o pomyłkę, a dodawanie nowych kolumn w już istniejącej bazie byłoby dość nużące. Zamiast tego użyjemy instrukcji warunkowych.

Najpierw przyjrzyjmy się konstrukcji „Pan/i”. Jak widać, forma żeńska od formy męskiej różni się tylko jedną literą. Możemy więc skorzystać z ukrywania tekstu.

W pierwszej kolejności zamienimy „Pan/i” na „Pan”. Upewniwszy się, że kursor jest umieszczony bezpośrednio za „n”, ponownie otwieramy okno wstawiania pól. Tym razem przechodzimy na kartę Funkcje. Po lewej zaznaczamy Ukryty tekst, po prawej w miejscu Warunek wpisujemy Płeć EQ "m", zaś w miejscu Wstaw teksti. Zatwierdzamy za pomocą Wstaw.

Okno wstawiania pól. Na karcie Funkcje zaznaczony jest typ Ukryty tekst. Warunek oraz Wstaw tekst jest ustawiony zgodnie z wytycznymi z artykułu.

W tym przykładzie Płeć to oczywiście tytuł kolumny w bazie danych, zaś m to symbol oznaczający mężczyzn. Warunek należy dostosować do swojej bazy danych.

Logika stojąca za tą operacją może wydawać się dość pokrętna. Najlepiej jest sobie wyobrazić, że tekst jest domyślnie wprowadzany do dokumentu. Jeżeli jednak spełniony zostanie warunek, to tekst zostanie usunięty.

Druga konstrukcja („aktywnym członkiem/aktywną członkinią”) jest trochę bardziej skomplikowana. Możemy co prawda wykorzystać ukrywanie tekstu, ale będzie to wymagało wstawienia dwóch różnych pól. Zamiast tego lepiej wykorzystać tekst warunkowy.

Usuwamy więc wspomniane wyrazy z dokumentu i otwieramy okno wstawiania pól. Na karcie Funkcje zaznaczamy po lewej Tekst warunkowy. W miejscu Warunek wpisujemy Płeć EQ "m", w miejscu Wtedyaktywnym członkiem, zaś w miejscu W przeciwnym przypadkuaktywną członkinią. Tak zdefiniowane pole wstawiamy do dokumentu.

Okno wstawiania pól. Na karcie Funkcje zaznaczony jest typ Tekst warunkowy. Warunek, Wtedy oraz W przeciwnym przypadku ustawione są zgodnie z wytycznymi z artykułu.

5. Sprawdzenie poprawności dokumentu

Już niemal skończyliśmy. Nasz dokument powinien być automatycznie tworzony na podstawie informacji z bazy danych. Jednak przed wydrukowaniem zaświadczeń warto jeszcze sprawdzić, czy na pewno jest on poprawny dla różnych zestawów danych.

W tym celu z menu wybieramy WidokŹródła danych. W górnej części okna Writera pojawi się nowy zestaw narzędzi. Z drzewka po lewej wybieramy naszą bazę danych. Następnie po prawej klikamy na zieloną strzałkę, aby zaznaczyć cały wiersz danych. Klikając ikonę Dane na Pola (zaznaczoną na poniższej grafice) spowodujemy, że Writer wyświetli nasz dokument dla zaznaczonego zestawu danych. Operację powtarzamy dla pozostałych wierszy.

Okno programu Writer z widoczną sekcją Źródła danych. Po lewej znajdują się dostępne bazy danych i ich tabele. Po prawej wyświetlone są rekordy bazy danych. Po zaznaczeniu wiersza można kliknąć przycisk Dane na pola, czwarty od prawej.

6. Zapisywanie dokumentu wynikowego

Kiedy mamy pewność, że nasz dokument jest poprawny, możemy go wydrukować. Otwieramy okno korespondencji seryjnej wybierając z menu NarzędziaKreator korespondencji seryjnej.

Pojawi się nowe okno, które przeprowadzi nas przez cały proces przygotowywania dokumentów w seriach. Większość z kroków możemy pominąć, ponieważ już je wykonaliśmy. Dla przykładu, w kroku trzecim możemy stworzyć bazę danych, zaś w kroku szóstym zobaczyć, jak będzie się prezentował dokument dla różnych zestawów danych z bazy.

Od razu przechodzimy więc do ostatniego kroku ósmego. Mamy tam cztery możliwości do wyboru.

Pierwsza z nich, Zapisz dokument wyjściowy, pozwala zapisać przygotowany plik tekstowy. Będzie on zawierał pola (ale nie ich treść!) i może posłużyć jako podstawa stworzenia podobnego zaświadczenia w przyszłości.

Druga z nich, Zapisz dokumenty wynikowe, pozwala zapisać pliki tekstowe wygenerowane na podstawie informacji z bazy danych. Możemy bądź zapisać wszystkie zaświadczenia w jednym pliku, bądź każde zaświadczenie w osobnym pliku. Z opcji tej powinniśmy skorzystać, jeżeli zaświadczenia przygotowujemy na komputerze który nie ma dostępu do drukarki.

Pozostałe dwie możliwości, Drukuj dokumenty wynikowe oraz Wyślij dokumenty wynikowe jako e-mail, raczej nie wymagają komentarza.

Podobał Ci się ten artykuł? Zapisz się na listę subskrybentów i otrzymuj informacje o następnych

komentarzy 30

  • LeM napisał(a):

    Doskonały pomysł. Świetne wykonanie. Gratuluję. LeM

  • Pawel napisał(a):

    Pomysł z blogiem – świetny.
    Czekam na inne artykuły. A może o wstawianiu tabel – z tym mam najwięcej problemów, w Wordzie jest to mniej toporne; wstawianiu grafiki – reakcja tekstu na wstawiony obiekt, po zapisaniu i ponownym otwarciu czasami coś się zaczyna „pierniczyć”; o kolumnach – po zapisaniu, zamknięciu i otwarciu dokumentu tekst z drugiej kolumny znajduje się na następnej stronie a powinien być w drugiej kolumnie.
    Pozdrawiam
    kp

    • Mirosław Zalewski napisał(a):

      Dziękuję za komentarz.
      Jeżeli chodzi o propozycje artykułów:
      1. Tabele — da się zrobić. Akurat artykuł na jutro mam już napisany, więc będzie w sobotę.
      2. Układ tekstu zależy od zakotwiczenia oraz opływania obiektu (chodzi nie tylko o grafiki, ale również ramki). Właściwie mogę o tym napisać kilka słów, przy czym nie mogę podać jakiejś konkretnej daty.
      Jeżeli zaś chodzi o problemy z układem tekstu po ponownym otwarciu dokumentu — przyznaję, że mi również zdarza się to obserwować. Nigdy nie zastanawiałem się, dlaczego konkretnie tak się dzieje, ale niewątpliwie jest to błąd w programie. Niestety, ale nie jest to temat, któremu można poświęcić artykuł (bo i co miałoby się tam znaleźć?)
      3. Tak jak wyżej.

      Jeżeli chodzi o punkty drugi i trzeci, to najlepiej by było zgłosić błąd programistom LibreOffice. Jeżeli masz problemy z językiem angielskim, napisz proszę do mnie maila (adres na stronie Kontakt). Jeżeli możesz, to załącz również pliki, które po ponownym otwarciu wyglądają inaczej niż przy zapisie. Pliki te będą później (po zgłoszeniu błędu) dostępne publicznie w Internecie, więc usuń z nich wszelkie poufne dane.

  • przemas napisał(a):

    Dzięki z poradnik odnośnie korespondencji seryjnej i wstawiania pól, bardzo mi się przydało w dniu dzisiejszym 😉
    Mam jeszcze tylko pytanie czy dało by się zrobić w korespondencji seryjnej żeby generowane dokumenty miały nadawany kolejny numer oraz miały wstawioną bieżącą datę?
    Pozdrawiam
    Przemas

    • Mirosław Zalewski napisał(a):

      Jeżeli chodzi o daty: Wstaw → Pola → Inne…, w karcie Dokument jest Data. „Data (stała)” to dzisiejsza data w odpowiednim formacie. „Data” to data zmieniająca się wraz z upływem dni.

      Co do kolejnych numerów: chyba najprościej będzie w bazie danych dodać kolumnę zawierającą unikatowy identyfikator (kolejne liczby). Jeżeli Twój plik korespondencji ma tylko jedną stronę, to numer strony jest jednocześnie takim unikatowym identyfikatorem.

      Chyba że masz na myśli umieszczanie numerów w nazwie pliku, a nie treści dokumentu. Co prawda nie sprawdzałem, ale wydaje mi się, że to powinno się robić automatycznie.

      • przemas napisał(a):

        Dzięki za podpowiedzi, chodziło mi o numer umieszczany w treści np – oświadczenie Nr 1, 2 itd.
        Co do numeracji kolejnych dokumentów – oczywiście LO ładnie sobie tworzy nowe pliki w korespondencji seryjnej nadając im numerki 🙂

  • Karol napisał(a):

    Cześć, możesz napisać jak tworzy się w Libre Office Writer listy (papierowe maile)? Chciałbym stworzyć sobie szablon, w którym zmieniałbym tylko adresatów, tak jak to da się zrobić w klasycznym Wordzie. Pomożesz ?

    • Mirosław Zalewski napisał(a):

      Jeżeli nie interesuje Cię wykorzystanie korespondencji seryjnej (którą, jak rozumiem, znasz, skoro piszesz pod artykułem jej dotyczącym), to może specjalne pola?
      Reszta to kwestia odpowiedniego sformatowania listu (marginesy, odstępy, wyrównanie itp.), czyli coś, czym — ogólnie — na blogu się nie zajmuję.

  • ottis napisał(a):

    Czy to możliwe że brakuje mi jakiegoś rozszerzenia… gdyż nie mam „bazy danych” w menu….

    • Mirosław Zalewski napisał(a):

      Akurat dzisiaj gdzieś mi mignęło, że Źródła danych nie są dostępne jeżeli nie jest zainstalowany Base. Sam nie sprawdzałem, czy to prawda, gdyż używam standardowej instalacji LO. Czy instalowałeś LibreOffice w trybie eksperta?

  • Jan napisał(a):

    Bardzo dziękuję za świetny artykuł, bardzo dawno żaden poradnik tak mi się nie przydał, jak ten. Bardzo bym chciał się dowiedzieć jeszcze jednej rzeczy, tutaj nie poruszonej – czy jest możliwość, aby zapisane dokumenty wynikowe miały nazwy wzięte z jedno z pól korespondencji seryjnej? Jeśli tak, to ja to zrobić? Muszę stworzyć bardzo liczne i skomplikowane dokumenty, bardzo by mi więc zależało na jak największej automatyzacji.

    Pozdrawiam,

    • Mirosław Zalewski napisał(a):

      (Na wstępie przepraszam za to, że odpisuję po tak długim czasie. Wakacje zdecydowanie nie sprzyjają regularnemu korzystaniu z komputera.)
      Można to zrobić, ale nie jest to intuicyjne.

      Przede wszystkim musimy mieć bazę danych oraz plik tekstowy z polami; czyli wykonać wszystkie czynności do punktu piątego z artykułu.

      Następnie w oknie Writera wybieramy z menu Plik → Drukuj… (nawet jeśli nie mamy drukarki). Program wykryje, że w dokumencie są pola i zapyta, czy wydrukować listy seryjne. Odpowiadamy „tak”. Pojawi się nowe okno, w którym po prawej stronie zaznaczamy Wyjście: „Plik”. Niżej zaznaczamy „Zapisz jako indywidualny dokument” i „Generuj nazwę pliku z Bazy danych”. Z listy wybieramy kolumnę. Poza tym określamy ścieżkę zapisu oraz format wyjściowy (najlepiej OpenDocument lub PDF). Potwierdzamy.

      W LO 4.0.4 po polu z bazy danych i tak znajduje się liczba porządkowa. Osobiście uznałbym to za błąd, ale może to być celowe działanie; należałoby to skonsultować z programistami. W razie czego można skorzystać z jednego z wielu programów służących do masowej zamiany nazw plików w folderze.

  • Jan napisał(a):

    Co prawda już zdążyłem to wymyślić ( z pomocą wiki), niemniej bardzo dziękuję za odpowiedź. Myślę, że ma Pan rację, to „0” w przypadku nazw, które się nie powtarzają, nie jest potrzebne i szkoda, że nie da się tego wyłączyć. Powinno się pojawiać automatycznie wtedy, gdy dwie nazwy są identyczne.

    To faktycznie doby pomysł, by skorzystać z programów służących do masowej zamiany nazw plików.

    Pozdrawiam,

  • Michał napisał(a):

    Czy jest możliwość „zmuszenia” programu, by np. w zaproszeniach, dyplomach, itp, wpisywał imiona i nazwiska w przypadku zależnym Jan – Jana, Karol -Karola, Paweł – Pawła (nie Paweła). W bazie zwykle podaje się je w mianowniku, ale czasem zachodzi konieczność użycia danych w innym przypadku. Czy jest jakaś możliwość zautomatyzowania tego?
    z pozdrowieniami

  • SpeX napisał(a):

    Witam

    Mam pytanie, a czy da się utworzyć kole wielowierszowe? Coś jak na jak by pod wcisnąć:
    Nazwa adresata
    ulica i numer
    kod pocztowy i miasto

    A nie rozbijać to na pojedynce wiersze lub pola np kod pocztowy.

  • SpeX napisał(a):

    A po co robić bazę danych (pkt. 3)? Przecież w pkt. 4 spokojnie można podpiąć arkusz.

  • Kolezanka napisał(a):

    Jest Pan świetny, gdyby nie Pan to pewnie miałabym same problemy na informatyce w szkole. W imieniu wszystkich zielonych w informatyce – DZIĘ-KU-JE-MY

  • Grzegorz napisał(a):

    Dzięki za prezentację. Nareszcie po kilku latach udało mi się stworzyć dokumenty z korespondencją seryjną w Libre Office-OO

  • Robi napisał(a):

    Czy istnieje sposób na wstawianie obrazka do korespondencji seryjnej?
    Np. w danym wierszu w bazie (źródle danych) mam nazwę pliku jpg w określonym katalogu i chciałbym wygenerować dokument ilustrowany.

    Ewentualnie jak przywołać obrazek w Calcu przy pomocy formuły?

  • Bartek napisał(a):

    Wiesz może czy istnieje jakiś sposób, aby dowolnie sformatować części akapitu w całości w całości zaimportowane z bazy?

    Dzięki za pomoc 🙂

  • Jo napisał(a):

    Świetny poradnik! Zaoszczędził mi ręcznego wypełniania formularzy na klub wakacyjny dla ponad 130 dzieciaków! Naiwnie wierzyłam, że baza danych utworzona w Microsoft Publisher 2010 będzie w jakiś magiczny sposób współpracować z moim LibreOffice….

  • Ebisgroup napisał(a):

    Bardzo ciekawy artykuł w szczególności, że można odpowiednio katalogując korespondencje przy okazji tworzymy całkiem ciekawą bazę danych.

  • Przemek napisał(a):

    Witam. Mam spory problem z OO i opcją tekst ukryty lub tekst warunkowy. Mam bazę danych osób upoważnionych do pewnych zbiorów danych osobowych. Każda osoba ma upoważnienie do jakiegoś zbioru w różnym zakresie – zbieranie, utrwalanie, przechowywanie, opracowywanie, zmienianie, usuwanie, udostępnianie. Odpowiednie uprawnienia w OO Base nadaje za pomocą formularza i opcją TAK/NIE – czyli pole „Boolean”. Na postawie całej bazy danych i odpowiedniej kwerendy robię sobie w Writer pismo „Upoważnienie…”

    O ile z Pan Pani udało się zrobić bez problemu „tekst ukryty” to już z wykorzystaniem pół TAK/NIE mi to nie wychodzi. W tabeli „Pracownicy” płeć mam odpowiednio m i k – tutaj writer bez problemu rozpoznaje warunki. Ale jak mam już TAK/NIE jako warunek to mi w ogóle nie działa…. albo raz działa a raz nie.

    Jeśli przeciągnę do writera całą kolumnę np „Zbieranie” to wstawia wszytko poprawnie – czyli „PRAWDA” lub „FAŁSZ”.

  • Akademia-Sokrates napisał(a):

    Dzięki za dobrze przygotowany poradnik!

  • Przemek napisał(a):

    Fajne ale mam inny problem.
    Muszę wydrukować sporą liczbę mandatów na walne zebranie.
    Zmienne są tylko dwie – numer mandatu oraz imię/nazwisko pobierane z jednego pola.
    Chciałbym zrobić wydruk 4 mandatów na jednej kartce.
    Jak to osiągnąć?

  • Olek napisał(a):

    uzupełniłbym tylko wpisem o legalności wykorzystania baz danych. jednak warto o tym pamiętać, np. wpis o podobnej tematyce: http://www.eporady24.pl/gromadzenie_i_przetwarzanie_danych_osobowych,pytania,17,219,7332.html ale ogólnie przedstawienie mechanizmu korespondecnji seryjnej na 5+, gratuluję 🙂

  • szwagruXmetin napisał(a):

    SPIERDALAĆ WORLD LEPSY !!!!!!!!!!!!!!!1111

  • Leszek napisał(a):

    Czy jest możliwość w korespondencji seryjnej w LO, oprócz danych tekstowych, uzyskania zmieniającej się grafiki? Nie mam tu na myśli wstawienia warunkowego ukrywania sekcji, bo żeby coś takiego stworzyć trzeba trochę poklikać. Chciałbym w jakiś sposób wykorzystać bazę danych. W MS Word jest możliwość wstawienia do bazy danych linku, na podstawie którego korespondencja seryjna wstawia określoną linkiem grafikę. Czy podobny efekt można uzyskać w LO? Może ktoś wie jak można to wykonać ewentualnie posiada i mógłby udostępnić odpowiednie makro pozwalające uzyskać takowy efekt.
    Z góry dziękuję za pomoc.

Dodaj komentarz