Het mailen van een PDF document vanuit Calc.

Forumregels
In dit forum geen vragen stellen, het is uitsluitend bedoeld voor het plaatsten en toelichten van code. Stel vragen in het forum Macro's.
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Het mailen van een PDF document vanuit Calc.

Bericht door RPG »

Verklaring van het programma export
 Edit: Aanwijzing voor het gebruiken van de code.
De uitleg die in dit deel staat is nog steeds voor een groot deel waar. Ik denk dat de code die in het tweede bericht staat beter gebruikt kan worden. Daar staat ook nog iets uitleg. 
Dit programma was voor mij een hernieuwde poging om mij te verdiepen in:
Het exporteren van gegevens naar een PDF
Het verzenden als PDF
Het begrijpen van Calc met behulp van macro's.

Ik probeer zo kort mogelijk bij OpenOffice te blijven. Wanneer ik OpenOffice gebruik is dit zowel voor Apache OpenOffice als ook voor LibreOffice. Gezien het feit dat de twee programma's beginnen te verschillen is het niet doenlijk om menu opties te geven. Lees hiervoor de helpfile. Ik heb niet het idee dat iemand dit direct zonder een probleem kan toepassen maar hoop wel dat het zonder al te veel problemen kan. Ik denk niet dat anderen deze macro kunnen aanpassen. Het is ook niet de bedoeling om er veel in aan te passen. Echte programmeurs kunnen het natuurlijk aanpassen want daarom heb ik het commentaar er bijgezet.

Ik heb OpenOffice en de API redelijk lang bestudeerd maar ik blijf een hobby programmeur. Dat heb ik opnieuw gemerkt bij het coderen.

Namen in een werkblad
In een werkblad kunnen op verschillende manieren namen gebruikt worden. In de verschillende documenten wordt uitgelegd hoe de regels hier voor zijn. Ik maak speciaal gebruik van het geven van een naam aan een bepaald gebied in een werkblad. Ik denk dat de beste methode is om enkel en alleen het cel bereik op tegeven en niet de bladnaam. De reden hiervan is dat de macro dan toegepast kan worden op verschillende werkbladen. Wanneer de macro geplaatst wordt in "Mijn macro's" dan kan het zelf gebruik worden voor verschillende documenten.
Dan is er ook nog de keuze voor Absolute en relatieve adressering. Ik weet niet of hier iets eenduidig over gezegd kan worden maar in alle gevallen geldt wees bewust van je keuze.
Kiezen voor het gebruik van Namen maakt dat de macro flexibel is. Door de naam een ander adres wordt er ook gelijk een ander gebied gebruik op het werkblad en is het niet nodig om de macro aan te passen


VerZendTabel
VerZendTabel is de naam van een kleine tabel. In deze tabel staan de gegevens die de macro nodig heeft. In de eerste kolom staan de namen. In de tweede kolom staan de gegevens die bij die namen horen. De tabel moet gedefinieerd worden met een naam. Wanneer er verschillende werkbladen gebruikt worden dan moet deze naam gedefinieerd worden zonder een bladnaam. Ik denk dat het best absolute adressering gebruikt kan worden.

Data-array
De keuze voor het gebruik van Namen zoals reeds uitgelegd maakt het ook gemakkelijk om daarna een data-array tegebruiken. Een data-array is een geneste array. Dat is niet gelijk aan een twee dimensionale array. In de twee voorbeelden is het verschil in notatie duidelijk
Geneste gegevens: dataarray(1)(2)
twee-dimensionaal: dataarray(1,2)
Aan verdere uitleg wil ik mij niet bezondigen: Lees de verschillende Engelstalig handleidingen over StarBasic.

Waarom Data-array
Ik kies er vaak voor om zo kort mogelijk bij OOo te blijven en ook op een zo hoog mogelijk niveau. Dit niveau zorgt er voor dat ik mij niet bezig hoef te houden met strings of double waardes. Dat wordt wel geregeld door OOo. Ik kan ook niet bij een eventuele functie komen wel bij het resultaat. Het kiezen voor een dataarray geeft voordelen en nadelen.
Het voordeel is dat door de adressering te veranderen de tabel ergens anders geplaatst kan worden. Een nadeel is dat er geen controle is uit te voeren op ingebrachte namen althans niet zo gemakkelijk op het corrigeren. Ik denk dat dat ook beter met werkblad code gedaan kan worden.

Gegevens
Het aangeven van het gegevensgebied zorgt er voor dat alleen dat gebied naar een PDF ge-exporteerd wordt. Het zelfde kan bereikt worden door een printbereik te definiëren. Het is wel zo dat de selectie door het gegevens gebied boven printbereik gaat.


Werk in uitvoering
Het is nog steeds een werk in uitvoering. Nog niet alle fouten zijn er uitgehaald. Dat komt ook door het feit dat bepaalde gedachten tijdens het programeren zijn veranderd.
25-3-2018 Tot dusver werkte het waarschijnlijk alleen onder Linux nu mogelijk ook onder Windows.

Romke
Bijlagen
exportbepaalActivsheet09.ods
Ik hoop dat er nu geen fouten meer in zitten.
(27.12 KiB) 315 keer gedownload
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Het mailen van een PDF document vanuit Calc.

Bericht door RPG »

Ik heb geprobeerd om alles wat eenvoudiger te maken. Door het feit dat ik mij langer in het basis probleem heb verdiept komen er ook andere gedachten. Wel is het zodat ik mij meer gericht heb op de manier hoe OpenOffice werkt naar mijn idee. Ik ben verder gegaan met het gebruik van namen. Het is zo dat er alleen maar namen gebruikt kunnen worden. Dit maakt de macro code eenvoudiger en het lijkt mij ook duidelijker voor de meeste gebruikers.

In de macro moet zo goed als niets veranderd worden. De namen die gebruikt worden in het werkblad moeten aangepast worden. Er wordt ook veel getoond. Tijdens het gebruikt moet dit uitgeschakeld worden. Het werkt alleen wanneer er een werkzaam email programma is. Ik heb heel veel uitleg in de macro geplaatst.

De macro is naar alle waarschijnlijkheid nu werkzaam voor ApacheOffice en LibreOffice. Ik weet niet of er nu nog problemen met windows kunnen zijn. Wanneer iemand grote hoeveelheden mails wil versturen lijkt mij het idee achter deze macro niet goed. Villeroy heeft macro's geschreven die van een ander principe gebruik maakt voor het verzenden van mails.

Romke
Bijlagen
spelenmetNaam09.ods
Dit is een wat vereenvoudigd voorbeeld
(12.91 KiB) 285 keer gedownload
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Plaats reactie