

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
2 messages in org.openoffice.fr.progRe: [prog] export de formulaire| From | Sent On | Attachments |
|---|---|---|
| Sharpminded Gmail | Jun 14, 2009 4:18 am | |
| Thibault Vataire | Jun 15, 2009 6:16 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] export de formulaire | Actions... |
|---|---|---|
| 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







