Iets over dispatcher en exporteren

Iets over dispatcher en exporteren

Berichtdoor RPG » di dec 29, 2020 4:44 pm

Dit is misschien meer een inleiding tot het bijgevoegde voorbeeld. Het eerste doel is hoe exporteer ik gemakkelijk een werkblad naar een PDF. Om het gemakkelijk te maken heb ik zowel gebruik gemaakt van wat een macro doen en wat er mogelijk is met een werkblad. Ik heb dit al eerder geprobeerd maar het eindresultaat was te moeilijk. In tussen tijds heb ik zelf ook meer geleerd om het eenvoudiger te maken, meer kennis van de API van een werkblad.

Ondanks deze eenvoud zal het niet voor iedereen eenvoudig zijn.

Dispatcer opdrachten
In principe heb ik mij beperkt tot dispatcher opdrachten. Dit is grotendeels gelijk met de knoppen op de werkbalken of de menu's. De dispatcher opdrachten worden soms ook wel URL commando's genoemd. In principe beperk ik mij tot die commando's die een deel van het bestand opslaan als een PDF document.

Afdrukbereik
Het is niet zo eenvoudig om gebruik te maken van de vele mogelijkheden die er zijn. Door gebruik te maken van een goed gedefinieerd afdrukbereik is het niet nodig om steeds het gewenste te selecteren. Bij het maken van facturen is het verstandig dat de gegevens steeds getoond worden op het gewenste blad. De bladen die niet afgedrukt moeten worden daar kan het afdruk bereik van verwijderd worden door:
menu --> Opmaak --> Afdrukbereiken --> Verwijderen

Optie's selecteren voor in een PDF
Dit geheel gaat niet over het selecteren van de vele opties die er zijn voor het maken van een PDF. Voor zover ik begrepen heb uit kleine testen worden de laatste instellingen gebruikt. Wanneer vele afdrukken gemaakt worden bij de eerste even kijken naar het resultaat. In de link staan alle mogelijkheden voor een PDF: API/Tutorials/PDF export - Apache OpenOffice Wiki.


Voorbeelden in een scenario.
Elk scenario geeft een klein voorbeeld. De eerste regel is steeds de opdracht of het url-commando. Daar onder staan de benodigde argumenten voor een eenvoudige opdracht. Soms worden daar zelfgedefinieerde functie gebruikt. Deze zelf gedefinieerde functie staan in de module Functies. Voor iemand die bekend is met functies in een werkblad is dit eenvoudig werken. Een scenario is een soort keuze menu. Klik op het pijltje voor de keuze.

Namen in een werkblad
Al de gegevens die nodig zijn moeten in een bereik staan wat benoemd is. De naam die dit benoemde bereik heeft moet in de knop komen te staan en wordt gebruik in de macro om de gegevens te vinden en te gebruiken. Door gebruik te maken van een benoemd bereik kan de macro steeds gebruikt worden. In het werkblad gebruik is voor het corrigeren en samenstellen van de naam veel cellen en functies' Het gebruik van vele cellen is ook om elke stap duidelijk te maken.

Onderzoeken
Door deze voorbereiding moest ik zelf ook goed moest kijken naar wat er gebeurde met de verschillende knoppen in de werkbalken of menu optie. Ik denk dat het wel verstandig is om te onderzoeken wat er precies gewenst wordt. Niet alle combinatie zijn altijd mogelijk ook al is er geen foutmelding. Een verkeerd getypt woord geeft geen foutmelding maar doet in het beste geval niets. Heel veel van deze woorden zijn Hoofdlettergevoelig. Overwrite met hoofdletter wordt goed gerekend maar overwrite met kleine letter wordt niet herkend. Natuurlijk moet Overwrite dan ook nog in de goede combinatie gebruikt worden. Overwrite in combinatie .uno.ExportTo en URL is voorzover ik nu weet de enige goede combinatie.


Voor macrokenners
In de bijgesloten macro heb ik gebruik gemaakt van deze interface Interface XCellRange. Het is altijd min of meer een keuze wat de beste weg is naar een oplossing en in deze werd ik steeds meer deze op gedrven op een zo eenvoudig mogelijk oplossing te vinden. In een eerdere poging om iets gemakkelijks te maken had ik onvoldoende kennis van welke interface het beste werkt.
Mijn idee is dat het werk voor de gebruiker het best in het werkblad gedaan kan worden. Dit werk kan het best gedaan worden door mogelijkheden die er al zijn. Dit laat zich ook gemakkelijker corrigeren.

Overstappen van Excel naar Calc
De vragen die Excel verlaters hebben kenmerken zicht door een overdaad aan macro's en weinig gebruik aangeboden mogelijkheden. Het leren gebruiken van de aangeboden mogelijk is niet eenvoudig maar dat is hier niet aan de orde.
Bijlagen
WerkenMetMediadescriptor02.ods
Iets voor het maken van een PDF
(17.45 KiB) 86 keer gedownload
LibreOffice 7.1.1.2 op openSUSE Leap 15.1
RPG
 
Berichten: 4391
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Iets over dispatcher en exporteren

Berichtdoor RPG » za jan 02, 2021 9:35 pm

Ik kreeg via een persoonlijk bericht dat de functie voor DirectoryNameoutofPath op de manier hoe het gebruikt wordt in dit voorbeeld beter niet gekozen kan worden door een functie maar standaard ingevuld moet worden. In de werkblad functie CEL("FILENAME") komt een standaard URL wat altijd is met "/".

Code: Selecteer alles   UitklappenInklappen
function DirectoryNameoutofPath(Waarden)
   LoadLibrarie("Tools")
   DirectoryNameoutofPath =tools.strings.DirectoryNameoutofPath(Waarden,"/") ' Er staat nu een vaste waarde.
end function
LibreOffice 7.1.1.2 op openSUSE Leap 15.1
RPG
 
Berichten: 4391
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Iets over dispatcher en exporteren

Berichtdoor RPG » za jan 02, 2021 9:57 pm

Ik heb mij nu enige tijd verdiept in wat er mogelijk is met het exporteren van een calc blad naar PDF. Ook heb ik gekeken naar wat er mogelijk is met het gebruik van macro's. Ik heb dit allemaal uitgetest met ApacheOffice. Aangezien LibreOffice in een recente uitvoering altijd op mijn computer staat vergelijk ik het daar ook mee.

Hoe te werken?
Ik denk dat er twee manieren zijn om te zorgen dat het gewenste afgedrukt wordt naar papier of een PDF.
A) Zorg dat de gegevens op een bepaald werkblad
B) Zorg ervoor dat de gegevens in verschillende werkbladen staan en print het geselecteerde werkblad af.
Het lijkt er op dat Apache goed kan werken met mogelijkheid A. LibreOffice kan met beide mogelijk gemakkelijk werken aangezien daar selectie geactiveerd is.

Geselecteerde werkblad(en)
Zoals geschreven LibreOffice heeft standaard het selectie vinkje aan staan en zodoende wordt altijd het actieve werkblad ge-exporteerd.


Afdruk instellingen voor werken met bladen.
Er zijn verschillende instellingen die behulpzaaam zijn om het gewenste te bereiken.
Het geheel is pas actief voor PDF wanneer de optie voor selectie Actief is in de dialoog voor PDF. Bij LibreOffice is dit standaard actief bij ApacheOffice moet Selecte elke keer opnieuw gekozen worden.

Het selectie vinkje in de filemanager heeft voor zover ik kan nagaan geen functie bij het maken van afdrukken en PDF bestanden voor een calc bestand. In de help file staat: Exporteert alleen de geselecteerde afbeeldingsobjecten in OpenOffice Draw en Impress naar een andere indeling. Als dit vakje niet is afgevinkt, wordt het gehele document geëxporteerd.

In de de opties voor Calc voor afdrukken is een instelling die het mogelijk maakt om alleen geselecteerde werkbladen af te drukken. Ik heb nog niet goed kunnen ontdekken wat dit voor betekenis heeft.


Kiezen waar op slaan
Blijkbaar gaat ApacheOffice er vanuit dat het bestand opgeslagen wordt in de zelfde map als waar het huidige bestand is opgeslagen. Het huidige bestand moet dan wel een bestandsnaam hebben. Voor de naam die het te exporteren bestand moet hebben kan een naam gemaakt worden die ook enige submappen heeft. Wanneer de submappen niet bestaan wordt een fout melding gegevens. Let er bij het uittesten wel op dat alles wel zo gebeurd zoals gewenst is. Stel in een cel die niet afgedrukt wordt alles zo samen dat de naam goed wordt weergegeven. Let er op dat er geen tekens gebruikt worden die het operatings systeem hinderen. Nu kan met eenvoudig kopiëren de naam geplakt worden in filemanager.


Samenstellen van de bestandsnaam
Vaak wordt de bestandsnaam samengesteld uit onderdelen van het document. Het beste is deze naam samen te stellen met behulp van functies die bekend zijn uit Calc. Zoals bovenal beschreven in de bestandsnaam kan ook een nadere aanduiding opgegeven worden waar het opgeslagen moet worden. Voorzover ik het begrijp wordt de bestandsnaam toegevoegd aan de map waar het huidige document is opgeslagen.

Kopiëren en plakken
De goed samengestelde naam met eventuele submappen kan gekopieerd en geplakt worden in het dialoog venster.

Het doel van het geheel
Het doel van dit geheel is voor mij ook steeds geweest het begrijpen wat er mogelijk is zonder gebruikt te maken van macro's. Het gebruik van macro's maakt vaak dat het geheel inflexibel wordt. Een ander voordeel is dat de macro's veel eenvoudiger kunnen worden.
LibreOffice 7.1.1.2 op openSUSE Leap 15.1
RPG
 
Berichten: 4391
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Iets over dispatcher en exporteren

Berichtdoor RPG » zo jan 03, 2021 7:48 pm

Het is fijn om te merken dat het ontwikkelteam van ApacheOffice de wiki waar de documentatie staat heeft bij gewerkt en dat veel pagina's nu weer bereikbaar zijn. Ik heb nu gebruik gemaakt van de informatie voor PDF documenten. Deze documentatie is ook geldig voor LibreOffice.

API/Tutorials/PDF export - Apache OpenOffice WikiHier staat ook beschreven wat ik ook al vermoedde. De citaten zijn de tekst waar de link naar verwijst.

the document will be exported using the current PDF export settings (the ones used the last time, or the default values stipulated by the filter configuration, if this is first time


Not all properties passed to the PDF filter are stored in the registry (as it makes no sense, for example to make persistent the page range to be exported, or the passwords for protecting the document). The following is a list of the properties not stored in the OpenOffice.org registry:

DocumentOpenPassword
EncryptFile
PageRange
PermissionPassword
RestrictPermissions
Selection
Watermark


In de link wordt ook beschreven dat .uno:ExportToPDF gebruikt kan worden voor het goed zetten van de instellingen en dat .uno:ExportDirectToPDF gebruikt kan worden voor de volgende documenten die de zelfde instelling nodig hebben.

Most of the PDF export filter properties seen in the tables above are stored in the OpenOffice.org configuration.

When the user clicks the toolbar icon to export the current document (command ".uno:ExportDirectToPDF"), s/he will only see the "Export" dialog, not the "PDF Options" dialog. In this case, the filter will export reading the settings the user defined the last time in the PDF Options dialog (or the default settings if the dialog has never been used before).

If the user chooses the command in the "File" menu (".uno:ExportToPDF"), s/he will see two dialogs in succession: first the PDF Options dialog, where s/he chooses the export settings; then the "Export" dialog, where s/he enters a file name. The settings entered int the PDF Options dialog are made persistent.

The PDF export filter configuration is stored in the path org.openoffice.Office/Common/PDF/Export, its schema can be found in the office installation inside
LibreOffice 7.1.1.2 op openSUSE Leap 15.1
RPG
 
Berichten: 4391
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland


Keer terug naar Macro's

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 0 gasten