Wartości z formularza jako parametry do raportu - jak?

Użytkowanie programu bazodanowego
Piotrek_K
Posty: 14
Rejestracja: wt gru 09, 2014 11:26 pm
Kontakt:

Wartości z formularza jako parametry do raportu - jak?

Post autor: Piotrek_K »

Dzień dobry! Dawno mnie nie było, chyba ze cztery lata. :) Bo nie było problemów. ;)
Teraz problem się pojawił i (ponieważ poprzedni został szybko rozwiązany) w te pędy na to forum się udałem.
Już tłumaczę o co chodzi.
Mam formularz z czterema polami kombi, w których uzytkownik wybiera kombinację liczb. Chciałbym, aby po wybraniu uzytkownik mógł uruchomić (najlepiej przyciskiem formularza) raport, w którym te wybrane liczby mają być parametrami, tak aby nie wyświetlało się okienko raportu z pytaniem o parametry. Najlepiej gdyby rozwiązanie nie używało makr gdyż może być używane przez różne osoby, w tym takie, które obcych makr nie pozwalają uruchamiać na swoim komputerze.

Jeżeli trzeba to mogę dołączyć bazę, aby było łatwiej zrozumieć o co mi chodzi oraz aby łatwiej było mi zrozumieć tłumaczącego.

PS. Widziałem wątek https://forum.openoffice.org/pl/forum/v ... =13&t=2151 ale... Przykład bez makr z tego wątku nie działa tak jakbym chciał a przykłady z makrami nie potrafię dostosować do swoich potrzeb.
LibreOffice 6.0.5.2 na Windows 7 Professional / LibreOffice 6.0.5.2 na Windows 10 Home
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Rafkus »

Witaj.
Proponuję w widoku utworzyć tabelę z danymi które będą miały być umieszczone w raporcie. Jako kryterium umieścić adresy komórek
w których użytkownik wybiera kombinację liczb
(a właściwie zapisał swój wybór).
Na podstawie tego widoku stwórz raport.

Jeśli nie wiesz jak to podsyłam moją prymitywną bazę testową, zapoznaj się z nią.
W formularzu Towar1 wybieram według jakiego kryterium chcę przejrzeć dane z tabeli Towar, zapisuję i odświeżam formularz. Mój wybór jest zapisywany tabeli Kryteria, w polu Kryterium w rekordzie o IDKryt =0, mówiąc w SQL dane są zapisane w:

Kod: Zaznacz cały

( SELECT [Kryterium] FROM [Kryteria] WHERE [IDKryt] = 0 )
i to jest właśnie adres komórki z danymi . A teraz przyjrzyj się tabeli Widok1 w trybie edycji. Została ona utworzona na podstawie tabeli Towar i wyświetla dane tylko dla mojego wyboru.

Jeśli chodzi o otwarcie raportu przyciskiem w formularzu to bez makara, raczej się nie da :(
Załączniki
Pomoc.odb
(72.59 KiB) Pobrany 175 razy
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Piotrek_K
Posty: 14
Rejestracja: wt gru 09, 2014 11:26 pm
Kontakt:

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Piotrek_K »

Dzięki! :) Zaraz obejrzę, ale z opisu coś czuję, że to nie o to mi chodziło. Chyba bez makr się nie obejdzie... :(
LibreOffice 6.0.5.2 na Windows 7 Professional / LibreOffice 6.0.5.2 na Windows 10 Home
Piotrek_K
Posty: 14
Rejestracja: wt gru 09, 2014 11:26 pm
Kontakt:

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Piotrek_K »

Dzień dobry!
No i tak jak podejrzewałem - nie bardzo widzę możliwość zastosowania proponowanego rozwiązania. Opiszę więc do czego moja baza ma służyć co pozwoli zrozumieć bardziej mój pomysł. Tutaj link do pobrania z dysku Google, bo jest za duża aby ja załączyć bezpośrednio: https://drive.google.com/file/d/1qE7V0G ... sp=sharing
Otóż baza ma być "dekoderem" tzw. numerów adresowych stosowanych w Lasach Państwowych (PGL LP). Numery te służą miedzy innymi do zakodowania na plakietce do znakowania drewna numeru dyrekcji, nadleśnictwa i leśnictwa. Jak na załączonym zdjęciu
Obrazek
Oto krótki opis takiej płytki:
"Plakietki, płytki, oznaczniki do drewna. Już od wielu lat zastępują odbijane metalowymi czcionkami wymazanymi smarem numery drewna. Małe plastikowe prostokąty przybite do drewna specjalnym młotkiem. Na każdej dłużycy i na każdym stosie jest taka plakietka. Znajduje się na niej numer kolejny napisany większymi cyferkami, a poniżej jest zakodowany liczbami adres. Można po nim poznać dyrekcję lasów, nadleśnictwom i leśnictwo." Kod zbudowany jest z 2 cyfr numeru rdLP, 2 cyfr numeru nadleśnictwa i 2 cyfr numeru leśnictwa.
Problemem jest to, że nigdzie nie ma listy zawierającej wszystkie adresy leśne i "przeciętny Kowalski" nie ma możności sprawdzić skąd dane drewno do niego przyjechało. :) Wśród tych "przeciętnych Kowalskich" są również pracownicy PGL LP bowiem każdy z nich zna na ogół numer swojej dyrekcji, nadleśnictwa, obrębu i leśnictwa. I numery wszystkich leśnictw własnego nadleśnictwa. Na ogół zna także numery wszystkich nadleśnictw własnej dyrekcji. I na tym koniec. Ja chciałbym to zmienić, tak aby każdy przepisując do formularza numer z plakietki mógł w rezultacie otrzymać w raporcie jego rozwinięcie w postaci nazw: dyrekcji, nadleśnictwa, obrębu i leśnictwa.

PS. Wcześniej pisałem o czterech parametrach. Zmniejszyłem ich ilość do trzech bo wszak płytka nie zawiera numeru obrębu leśnego. O czym wcześniej zapomniałem... :)

PPS. Gdyby ktoś poddawał w wątpliwość sens takiej bazy mówiąc: "To nie wystarczy lista?", to informuję, że dyrekcji jest 17, nadleśnictw 430 a leśnictw 5282. Jest w czym szukać "na piechotę". :)
LibreOffice 6.0.5.2 na Windows 7 Professional / LibreOffice 6.0.5.2 na Windows 10 Home
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Rafkus »

Przerobiłem trochę twoją bazę, dałem tabelę pomocniczą "Szukaj", właśnie w niej zapisują się dane, które wprowadza się w formularzu "Podaj szukany adres". W kwerendzie usunąłem parametry. Najwięcej modyfikacji było zrobionych w formularzu.
Obecnie formularz bazuje na tabeli "Szukaj", zabroniłem w nim dodawać nowe rekordy, można tylko modyfikować ten jeden wyświetlony. Dodałem podformularz - kwerendę "adr_lesny" (taka mała sugestia: nazwach tabel, pól czy też w aliasach nie używaj spacji i polskich znaków). Pola formularza "kod_rdLP", "n-ctwo", "l-ctwo" są połączone z polami podformularza "kod_r", "kod_n", "kod_l", dzięki czemu zostaną wyświetlone tylko rekordy o pasujących kodach. Dane podformularza są przedstawiane w tabeli i w polach.

:alarm: UWAGA: Gdy kwerenda ma te 5282 rekordów to niestety tabelka podformularza sobie nie radzi. Zamiast np tekstu '01' widzi cyfrę '1' a dla tej cyfry nie ma przypisanej nazwy :ucrazy: . Ale w polach dane prezentuje dobrze. Gdy testowałem na mniejszej ilości rekordów wszystko było dobrze.

Wspominałeś o raporcie, zrób go na podstawie widoku "Raport"
Ostatnio zmieniony ndz lip 22, 2018 6:28 pm przez Rafkus, łącznie zmieniany 1 raz.
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Piotrek_K
Posty: 14
Rejestracja: wt gru 09, 2014 11:26 pm
Kontakt:

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Piotrek_K »

Dzięki! Pobieram i analizuję! :)
LibreOffice 6.0.5.2 na Windows 7 Professional / LibreOffice 6.0.5.2 na Windows 10 Home
Piotrek_K
Posty: 14
Rejestracja: wt gru 09, 2014 11:26 pm
Kontakt:

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Piotrek_K »

Jest OK! :bravo:
Jeszcze raz bardzo dziękuję! Stawiam wirtualne piwo! Obrazek
Trochę było problemów z przerobieniem mojej bazy ale w końcu wszystko działa. Nie zauważyłem żadnego błędu przy dużej kwerendzie. Nie wiem od czego by to zależało, że u ciebie był a u mnie nie?
LibreOffice 6.0.5.2 na Windows 7 Professional / LibreOffice 6.0.5.2 na Windows 10 Home
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Rafkus »

To dobrze że działa. Co do błędu to może komp mi nawala a może to wina programu ty masz LO a ja OO...
W każdym razie dzięki za piwo :D
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Jan_J »

@Rafkus

dzięki za dobrą robotę. Proponuję zamiast (albo oprócz) linka do google drive zrobić załącznik do postu na forum.
W ten sposób zasoby są mniej rozproszone, a dostęp jest nawet łatwiejszy, bo bez javascriptu.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Rafkus »

Był problem z wielkością pliku orginał ma ponad 600 kB. Po znacznym odchudzeniu dołączam go do wglądu.
Załączniki
Lasy.odb
(42 KiB) Pobrany 177 razy
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Piotrek_K
Posty: 14
Rejestracja: wt gru 09, 2014 11:26 pm
Kontakt:

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Piotrek_K »

Pobrałem i dziś sobie obejrzę. :)
LibreOffice 6.0.5.2 na Windows 7 Professional / LibreOffice 6.0.5.2 na Windows 10 Home
Piotrek_K
Posty: 14
Rejestracja: wt gru 09, 2014 11:26 pm
Kontakt:

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Piotrek_K »

Rafkus pisze:Po znacznym odchudzeniu dołączam go do wglądu.
"Wglądnąłem" ;)
Raport "Pokaż adres" nie wykonuje się generując błąd jak na załączonym obrazku. Wyraźnie brakuje mu kolumny "Nr rdLP".

A jak "odchudzasz" taki duży plik do takich małych rozmiarów?

Z najświeższych wieści to po konsultacji z kolegami, którzy testowali to co zrobiłem przy twojej pomocy, doszliśmy do wniosku, że jednak przycisk w formularzu wywołujący raport jest wygodniejszy. Wiec dopisałem makro i teraz raport tak jest wywoływany.
Załączył bym tę wersję tutaj ale na razie nie umiem jej zmniejszyć, a ma ponad 300 kB :( Więc tradycyjnie na dysku Google: https://drive.google.com/file/d/1QzJJYJ ... sp=sharing
Załączniki
blad_makra.jpg
LibreOffice 6.0.5.2 na Windows 7 Professional / LibreOffice 6.0.5.2 na Windows 10 Home
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Jan_J »

Wstawiłem duży załącznik zamiast linku do Google Docs. Teamowi wolno, zaś nie jestem przekonany, czy zwiększanie limitu jest sensowne, w końcu tak duże pliki załącza się rzadko.
Załączniki
BAL v. 1.2m.odb
(317.79 KiB) Pobrany 168 razy
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Piotrek_K
Posty: 14
Rejestracja: wt gru 09, 2014 11:26 pm
Kontakt:

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Piotrek_K »

THX! :)
LibreOffice 6.0.5.2 na Windows 7 Professional / LibreOffice 6.0.5.2 na Windows 10 Home
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Rafkus »

Jeśli chodzi o odchudzenie to w pierwszej kolejności pousuwałem znaczną część rekordów, stworzyłem nową bazę, ustawiłem te 2 bazy obok siebie i wszystkie tabelki, kwerendy, formularze ze starej przeniosłem do nowej bazy.
Należy wybrać z menu Narzędzia ---> SQL:
Do otwartego okna należy wpisać polecenie SQL: SHUTDOWN COMPACT – ta operacja zmniejsza wszystkie pliki do minimalnego rozmiaru.

Jeśli chodzi o raport "Pokaż adres" to ja go nie ruszałem. Podesłałeś go w pierwszym pliku, a jest on zbudowany na podstawie kwerendy "adr_lesny", z której pousuwałem wszystkie aliasy (czyli zmieniły się nazwy kolumn). Zawierały one polskie znaki i spacje - myślałem że to przez nie wystąpił błąd z "odrzuconym zerem". Ponadto pousuwane zostały parametry i kwerenda pokazuje obecnie wszystkie rekordy. Dlatego musisz zbudować nowy raport i to na podstawie widoku Raport.
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Piotrek_K
Posty: 14
Rejestracja: wt gru 09, 2014 11:26 pm
Kontakt:

Re: Wartości z formularza jako parametry do raportu - jak?

Post autor: Piotrek_K »

No popatrz... Kompletnie zapomniałem, że to moje dzieło owa dziwna nazwa kolumny "Nr rdLP". :)
Mniejsza z tym. I tak w obecnej wersji ten raport jest już zbędny.
LibreOffice 6.0.5.2 na Windows 7 Professional / LibreOffice 6.0.5.2 na Windows 10 Home
ODPOWIEDZ