Mon problème est le suivant :
Quand j'ouvre une page du sdk, c'est comme si j'ouvrais un listing des cours de la bourse.
SDK=FRUSTRATION
Comment suis-je informé du type de valeur à envoyer dans l'objet que je suis en train d'explorer,
ou dans les propriétés de l'objet que je suis en train d'explorer ?
objet, structure, tableau, variable ?
'première approche, le 05/05/2016
'0) mon objectif :
PageStyle.FirstPageNumber.JPG
'Je cherche juste à afficher/régler sur 5, mon numéro de première page de feuille à imprimer.
prérequis :
Je cherche dans la doc en version anglaise, le nom de la propriété que je souhaite programmer.
FirstPageNumber
'contains the page number applied to the first page for this sheet
'1) Je tape dans l'explorateur en haut à droite du site sdk les mots clef de mon choix "first page",
pour avoir peut être une ressource qui me permette de manipuler le réglage de la première page,
vu que je cherche à régler la première page.
http://api.libreoffice.org/docs/idl/ref ... Style.html
'2) je trouve sur le site une propriété FirstPageNumber,(dans la classe PageStyle) qui semble faire ce que j'attends.
' Celle-ci a besoin d'une instanciation du service "PageStyle"
'3) Ne comprenant rien au labyrinthe des instanciations de services et interfaces,
Je cherche un exemple de code d'un expert, qui contienne le service PageStyle,
(dans la bible ProgrammationOpenOffice 3 de Bernard MARCELLY.)
'voici une aide de Bernard Marcelly, pour gérer vraiment un style de page
Code : Tout sélectionner
rem Code09-07.ods bibli : Haut_Bas Module1
'Option Explicit
Sub InsererUnEnTete()
Dim monDocument As Object, lesFeuilles As Object
Dim maFeuille As Object, enTete As Object
Dim Texte2 As Object, Curseur2 As Object
Dim nomStyleMaPage As String, StyleMaPage As Object
Dim stylesPage As Object
monDocument = ThisComponent
'la récupération de la référence de la feuille de mon choix passe nécessairement par l'exploration de la collection.
lesFeuilles = monDocument.Sheets
maFeuille = lesFeuilles.getByName("Feuille4")
' récupérer le nom du style de page en cours
nomStyleMaPage = maFeuille.PageStyle
print "Cette page est du style : " & nomStyleMaPage
' récupérer la collection de styles de pages
stylesPage = monDocument.StyleFamilies.getByName("PageStyles")
' récupérer le style de page
StyleMaPage = stylesPage.getByName(nomStyleMaPage)
StyleMaPage.HeaderIsOn = true ' insérer un en-tête
StyleMaPage.HeaderBodyDistance = 1000 ' 10 mm
StyleMaPage.HeaderHeight = 2500 ' 25mm
' l'en-tête page droite est aussi utilisé pour la gauche
enTete = StyleMaPage.RightPageHeaderContent
Texte2 = enTete.LeftText' zone de texte gauche de l'en-tête
Curseur2 = Texte2.createTextCursor ' curseur dans l'en-tête
' écrire un texte dans l'en-tête
Texte2.insertString(Curseur2, "Voici un en-tête", false)
StyleMaPage.RightPageHeaderContent = enTete' mettre à jour
End Sub
'4) J'écris un début de code, en me calant sur celui
de Bernard M. pour y mettre en oeuvre ma propriété FirstPageNumber
Code : Tout sélectionner
Sub Main
Dim monDocument As Object, oOriginal As Object, oCurseur as Object
Dim lesFeuilles As Object, maFeuille As Object
Dim oCell As Object, oCopy As Object, oZone As Object, oCible As Object
Dim oFirstPageNumber As Integer
Dim oPageStyle As Object,oStyle As Object
Dim nomStyleMaPage As String
Dim stylesPage As Object
Dim StyleMaPage As Object
Dim monTexte() as String
monDocument = ThisComponent
lesFeuilles = monDocument.Sheets
maFeuille = lesFeuilles.getByName("Feuille1")
' MsgBox oDoc.Sheets.getByIndex(0)
' Msgbox thisComponent.CurrentSelection.RangeAddress.Sheet
'xray monDocument 'Je trouve un soit-disant "service disponible", via xray, à partir de mon objet monDocument.
'xray maFeuille
'xray oPageStyle
' Je postule que Spreadsheet mis en mémoire sous oDoc contiendrait com.sun.star.table.style.PageStyle comme service déjà instancié ?
'méthode à suivre pour tout ce qui suit :
'1)Mettre en mémoire une première variable objet
'2)Créer une instance du service souhaité, à partir de l'objet.
sous-objectif : Je dois obligatoirement récupérer le nom du style de la page considérée pour interagir avec.
Attention, FirstPageNumber s'applique à la feuille de style !
maFeuille = lesFeuilles.getByName("Feuille1")
' récupérer le nom du style de page en cours
nomStyleMaPage = maFeuille.PageStyle
print "Cette page est du style : " & nomStyleMaPage
' récupérer la collection de styles de pages
Avant d'accéder à la feuille de style de ma page considérée, il faut passer par une collection des styles de page du classeur.
stylesPage = monDocument.StyleFamilies.getByName("PageStyles")
' récupérer le style de page
StyleMaPage = stylesPage.getByName(nomStyleMaPage)
xray nomStyleMaPage
StyleMaPage.FirstPageNumber=5'mettre la première page à 5
xray nomStyleMaPage
MsgBox StyleMaPage.FirstPageNumber
End Sub
'5) Eurêka, je viens d'optimiser(?) 3 heures de ma vie. Tout ça pour ça, eh bé, mon ami...