2 messages in org.openoffice.fr.progRe: [prog] export de formulaire
FromSent OnAttachments
Sharpminded GmailJun 14, 2009 4:18 am 
Thibault VataireJun 15, 2009 6:16 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] export de formulaireActions...
From:Thibault Vataire (tvat@starxpert.fr)
Date:Jun 15, 2009 6:16:11 am
List:org.openoffice.fr.prog

Bonjour,

S'il s'agit de récupérer des informations concernant un formulaire voici
quelques pistes (entre autres) :

* la propriété .Count du formulaire permet d'obtenir le nombre d'éléments du
formulaire * la propriété .ControlModels du formulaire permet de récupérer un tableau
contenant le modèle de chacun des éléments. La taille de ce tableau permet
également de connaitre le nombre d'éléments. * chaque élément de ce tableau devrait disposer de ces propriétés : - .name = nom de l'élément - .classid = valeur numérique spécifique à chaque type d'élément (correspond à
l'une des constantes du groupe com.sun.star.form.FormComponentType) - .serviceName = description textuelle du type de l'élément (par ex.
"stardiv.one.form.component.CommandButton)

Pour ce genre de recherches, l'exploration des objets à l'aide de l'outil Xray
est salvatrice :)

Cordialement,

T. Vataire

----- Mail Original ----- De: "Sharpminded Gmail" <shar@gmail.com> À: pr@fr.openoffice.org Envoyé: Dimanche 14 Juin 2009 13h19:17 GMT +02:00 Harare / Pretoria Objet: [prog] export de formulaire

Bonjour,

Après quelques mois d'absence, je me remet doucement dans l'api de OOo. Néanmoins, je sèche sur un petit soucis : A partir d'un formulaire de Base, je cherche à "copier" le contenu d'un rowset dans un tableur. Je parts de cette macro :

Sub ExporterVersTableur()

Dim oDesk As Object Dim oDoc As Object Dim oSheet As Object Dim obFrmApp As Object Dim iLigne As Integer

' ouvre un document calc vide oDesk = createUnoService("com.sun.star.frame.Desktop") oDoc = oDesk.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array() ) oSheet = oDoc.sheets(0) ' la première feuille de calcul

' récupère le formulaire concerné 'Dim obConnexionActive As Object obFrmApp =
thisComponent.DrawPage.Forms.getByName("frmZoneDep").getByName("frmApp") 'obConnexionActive = obFrmApp.ActiveConnection

' écrit la première ligne de titres des colonnes iLigne = 0 oSheet.getCellByPosition(0,iLigne).setString("Noms des apprenants") oSheet.getCellByPosition(1,iLigne).setString("Prénoms des apprenants")

' positionne sur le premier enregistrement If obFrmApp.first() Then iLigne = 1 ' écrit chaque enregistrement sur une nouvelle ligne Do oSheet.getCellByPosition(0,iLigne).setString(obFrmApp.getString(2)) oSheet.getCellByPosition(1,iLigne).setString(obFrmApp.getString(3)) iLigne = iLigne + 1 Loop While obFrmApp.next() End If End Sub

A termes, je souhaite ajouter un argument 'form' à cette procédure, et la modifier de telle sorte quelle récupère à partir de ce formulaire : -le nombre de champs du formulaire, -le nom de chacun d'eux, -le type de chacun d'eux. Auriez-vous quelques conseils / fonctions / pointeurs pour me guider dans cette tache ?

sharpminded