Strona 1 z 1

Drukowanie etykiet z arkusza calc

: czw gru 27, 2018 3:50 pm
autor: Maxbert
Witam,

proszę o udzielenie odpowiedzi czy możliwe jest a jeśli tak to proszę o pomoc w napisaniu makra dla poniższej konfiguracji:
W polu B1 Baza.ods wpisuję poszukiwany rekord z bazy danych.
Pliki z etykietami A i B powiązane są łączami DDE z Baza.ods.
Makro pod przyciskami z arkusza Baza.ods powinno wydrukować
- etykietę A na drukarce zebra1 w ilości zapisanej w komórce B12
- etykietę B na drukarce zebra2 w ilości zapisanej w komórce B13

Najbardziej zależy mi na komendzie makro wywołanym z pliku baza.ods i drukującym odpowiednią etykietę w podanej w arkuszu ilości sztuk.

PZDR
MG

Re: Drukowanie etykiet z arkusza calc

: czw gru 27, 2018 4:32 pm
autor: Jermor
Myślę, że zadanie jest niepotrzebnie komplikowane. Po co drukować etykiety za pomocą Writera przenosząc dane do oddzielnych dokumentów, skoro można to zrobić bezpośrednio z arkusza. Np dodając dwa nowe arkusze nazwane choćby "Zebra 1" i "Zebra 2" a zawierające układ drukowanych etykiet, bez zbędnych w tym przypadku pól DDE.

Re: Drukowanie etykiet z arkusza calc

: śr sty 02, 2019 12:02 pm
autor: Maxbert
Dziękuję za radę. Postanowiłem więc podążać zasugerowaną w odpowiedzi drogą ale napotkałem inne problemy z którymi nie potrafię sobie poradzić.
Załączam przerobiony plik Baza.ods. Poza arkuszami "ekran kontrolny" i "baza danych" zawiera arkusze ze wzorcowymi etykietami. Pod klawiszami umieściłem makra oddzielnie dla każdej z drukarek. Dla czytelności na ekranie wypisuję aktualne ustawienia.
Problemem jest to że pomimo że ustawiam format papieru na "user" + jego oczekiwane wymiary to niestety ustawienie "PaperFormat" i "PaperSize" raczej nie odnosi się do ustawień formatu strony ( Format-> Strona) ponieważ nic się tam nie zmienia.
Próba ręcznego ustawienia formatu strony kończy się tym że po wykonaniu makra zakres do wydruku jest poszatkowany w sposób: jedna komórka = jedna strona do wydruku, a wymiary 1,9x0,63cm zupełnie nie wiem skąd się wzięły
Ekran ustawienia strony.PNG
Pytanie więc jak makrem zmienić ustawienia format i wymiarów strony?

PZDR
MG

Re: Drukowanie etykiet z arkusza calc

: śr sty 02, 2019 10:55 pm
autor: Jermor
Drukowanie w Calcu przebiega następująco:
Jeżeli w skoroszycie zdefiniowano obszar wydruku (lub kilka takich obszarów) to polecenie drukowania drukuje ten obszar a następnie kolejne jeśli istnieją.
Jeżeli nie zdefiniowano żadnych nazw to można wydrukować wszystkie arkusze skoroszytu, zaznaczone arkusze albo zaznaczone obszary.
Ponieważ utworzyłeś oddzielne arkusze dla etykiet A i B to możesz wskazując arkusz EtykietaA żądać wydrukowania go w całości, bez zaznaczania obszaru wydruku. I tak zostanie wydrukowany tylko zakres do dolnego prawego rogu zajętego przez dane.
Moim zdaniem powinieneś utworzyć nowy styl strony, nadając mu nazwę np. "Etykieta" i ustalając wymiar 7x3,5cm, marginesy na poziomie 0,2 cm, wyłączając nagłówki i stopki oraz tryb skalowania na "Dopasuj zakresy wydruku do szerokości/wysokości" na 1 stronie.
Przypisz ten format strony do arkusza "EtykietaA" i "EtykietaB". Od teraz możesz drukować cały arkusz bez zaznaczania obszarów wydruku.

Re: Drukowanie etykiet z arkusza calc

: wt sty 08, 2019 11:45 am
autor: Maxbert
Dzięki to dobre rady. Niestety nie mogę znaleźć informacji jaką komendą makro określić numer strony całego dokumentu który chcę wydrukować.
Oczywiście znalazłem sposób na drukowanie konkretnych stron tj. np.
oPrinter(2).Name = "Pages" : oPrinter(2).Value = "1-3"
tyle tylko że ze standardowymi ustawieniami dotyczy to aktualnego arkusza a nie całego dokumentu
Potrzebuję wiedzieć jak programowo przestawić ustawienie z "aktualnego arkusza" na "wszystkie arkusze" ?

PS. wiem że można zmienić ustawienie w opcjach opcje-openOfficeCalc-Drukowanie-"Drukuj tylko zaznaczone arkusze" ale będzie to dotyczyło wszystkich dokumentów a nie tego konkretnego

Re: Drukowanie etykiet z arkusza calc

: wt sty 08, 2019 7:27 pm
autor: Jermor
Czegoś nie zrozumiałem? Według mnie musisz wydrukować wybraną ilość kopii jednej strony arkusza EtykietaA albo EtykietaB.
Arkusze zawierają tylko to co ma zostać wydrukowane na etykiecie. Jak wspomniałem, jeśli wybierzesz ten jeden arkusz i zlecisz jego wydruk, to zostanie wydrukowana jedna etykieta, bo tylko tyle danych jest w arkuszu. Musisz wskazać ile kopii ma zostać powtórzonych.
Do wydrukowania wybranego arkusza podaje ci makro. Nie jest mojego autorstwa. Przerobiłem je tylko tak aby parametrem procedury była nazwa arkusza jaki ma zostać wydrukowany. Po wydrukowaniu następuje powrót do arkusza pierwszego.

Kod: Zaznacz cały

Sub PrintSpecificSheet (sArk as String)
Rem Procedura drukuje wybrany arkusz	
Dim oSheetToPrint as Object
Dim oSheetToReturnTo as Object
oSheetToPrint = ThisComponent.Sheets.getByName(sArk)   
oSheetToReturnTo = ThisComponent.Sheets.getByIndex(0)
ThisComponent.currentController.setActiveSheet(oSheetToPrint)
ThisComponent.Print(Array())
Wait 100
ThisComponent.currentController.setActiveSheet(oSheetToReturnTo)
End Sub
Możesz rozbudować makro (dodając parametry: ile kopii etykiety i rodzaj drukarki)i wykorzystać je do drukowania zarówno etykiety A jak i B.

Re: Drukowanie etykiet z arkusza calc

: wt sty 08, 2019 8:41 pm
autor: Jermor
Znalazłem jeszcze te parametry do drukowania
oPrint(0).Name="CopyCount"
oPrint(0).Value=ile kopii

Re: Drukowanie etykiet z arkusza calc

: wt sty 08, 2019 9:23 pm
autor: Maxbert
Wszystko dobrze zrozumiałeś. Makro mam dokładnie tak działać jak napisałeś. Sprawdziłem zaproponowane makro no i ono działa ale...
Makro na chwilę przełącza aktywny arkusz i pokazuje arkusz z zawartością etykiety. Nie pomaga ukrycie arkusza etykiety i za-hasłowanie dokumentu.
Chciałbym wydrukować etykietę przez przełączania aktywnego arkusza czyli tak jak to można zrobić manualnie z menu ustawiając:

Re: Drukowanie etykiet z arkusza calc

: śr sty 09, 2019 11:58 am
autor: Jermor
Wybór opcji "Wszystkie arkusze" oznacza wydruk wszystkich arkuszy, czyli w twoim przypadku: "ekran kontrolny", "baza danych", "EtykietaA" i "EtykietaB" a przy tych parametrach (strony = 1) ma zostać wydrukowana tylko pierwsza strona i to nie każdego arkusza, tylko pierwsza ze wszystkich.
Jeszcze raz o zasadach drukowania:
Jeżeli w arkuszu określono zakresy wydruku, to ustawienia, które pokazujesz na ilustracji są następujące: Gdy zaznaczono "Wszystkie arkusze" - drukowane są wszystkie określone zakresy wydruku, przy czym każdy zakres generuje nową stronę. Gdy zaznaczono "Zaznaczone arkusze" - drukowane są tylko te zakresy drukowania, które znajdują się w zaznaczonych arkuszach (arkusz aktywny jest traktowany jako arkusz zaznaczony). Gdy wybrano opcję "Zaznaczone komórki" to drukowane są zaznaczone komórki. Jak to wykorzystać?
Są dwie możliwości.
Pierwsza: procedura najpierw usuwa wszystkie zakresy drukowania, następnie definiuje ten zakres, który ma być wydrukowany, wybiera drukarkę, ustala liczbę kopii i drukuje. Użyta opcja "Wszystkie arkusze".
Druga: Ustalasz dwa zakresy drukowania o nazwie np "Zebra1" i "Zebra2", następnie procedura drukuje albo stronę numer 1 albo stronę nr 2 tyle razy ile to jest potrzebne. Można tak zrobić bo zawsze zakres drukowania zaczyna się od nowej strony a każda etykieta zajmuje jedna stronę.
Gdy nie ma określonych zakresów drukowania, decydują tylko parametry wspomnianego okienka. Arkusze drukowane są od komórki A1 do ostatniej, prawej, dolnej komórki. Ponieważ arkusze etykiet są dopasowane do wielkości strony, nie ma potrzeby określać zakresu wydruku. Wystarczy wydrukować potrzebny arkusz, ale trzeba przy tym ustalić opcję "Zaznaczone arkusze". Podana przeze mnie procedura uaktywnia arkusz, który ma zostać wydrukowany a to oznacza, że musi się on na ten czas pojawić na ekranie. Dlatego procedura zawiera instrukcję powrotu do wybranego arkusza.
Ten sposób drukowania nie przeszkadza w drukowaniu innych arkuszy, np. bazy danych.

Re: Drukowanie etykiet z arkusza calc

: sob lip 13, 2019 9:39 pm
autor: Loipeld
A powiedzcie mi jaką drukarkę do etykiet możecie mi polecić?

Re: Drukowanie etykiet z arkusza calc

: śr maja 15, 2024 1:33 pm
autor: Altaro
Loipeld pisze: sob lip 13, 2019 9:39 pm A powiedzcie mi jaką drukarkę do etykiet możecie mi polecić?
Zebra