Drukowanie etykiet z arkusza calc
Drukowanie etykiet z arkusza calc
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
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
- Załączniki
-
- EtykietaB.odt
- (11.76 KiB) Pobrany 269 razy
-
- EtykietaA.odt
- (12.04 KiB) Pobrany 207 razy
-
- Baza.ods
- (12.56 KiB) Pobrany 197 razy
AOO 4.1.14, LO 7.5.5.2 (X86_64), Windows 10
Re: Drukowanie etykiet z arkusza calc
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.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Drukowanie etykiet z arkusza calc
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 Pytanie więc jak makrem zmienić ustawienia format i wymiarów strony?
PZDR
MG
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 Pytanie więc jak makrem zmienić ustawienia format i wymiarów strony?
PZDR
MG
- Załączniki
-
- Baza.ods
- (15.67 KiB) Pobrany 192 razy
AOO 4.1.14, LO 7.5.5.2 (X86_64), Windows 10
Re: Drukowanie etykiet z arkusza calc
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.
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.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Drukowanie etykiet z arkusza calc
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
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
AOO 4.1.14, LO 7.5.5.2 (X86_64), Windows 10
Re: Drukowanie etykiet z arkusza calc
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.
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.
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
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Drukowanie etykiet z arkusza calc
Znalazłem jeszcze te parametry do drukowania
oPrint(0).Name="CopyCount"
oPrint(0).Value=ile kopii
oPrint(0).Name="CopyCount"
oPrint(0).Value=ile kopii
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Drukowanie etykiet z arkusza calc
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:
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:
- Załączniki
-
- druk.PNG (5 KiB) Przejrzano 4650 razy
AOO 4.1.14, LO 7.5.5.2 (X86_64), Windows 10
Re: Drukowanie etykiet z arkusza calc
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.
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.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Drukowanie etykiet z arkusza calc
A powiedzcie mi jaką drukarkę do etykiet możecie mi polecić?
NeoOffice 2.2.3, MacOS 10.4