[Basic] Un jour, il y aura un tuto video sur XRAY!

Venez ici afin d'enrichir la documentation de nos suites bureautiques préférées. Déposez une demande ou y répondre par la création ou la traduction d'un tutoriel.

Modérateur : Vilains modOOs

Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

[Basic] Un jour, il y aura un tuto video sur XRAY!

Message par martinbrait »

Bonjour à tous!

xray, semble le silex indispensable à
tout programmeur qui se respecte en ooobasic.

Désolé, je galère depuis plusieurs mois
avec l'outil, en sachant à peine retourner
les propriétés string pour les insérer à
mes programmes.

Bref, Jean NIGAUD, je suis condamné à réutiliser
perpétuellement des
sous-programmes effectués par les autres
pour les assembler, sans savoir comment améliorer les
scripts que je récupère, et sans en créer par moi-même. :fou:

Un tp vidéo youtube 20-30 minutes, décrivant l'utilisation
pas à pas, des 5 sous-menus
[Propriétés, Méthodes, Services, Interfaces, Listeners] pour élaborer un petit programme
genre calculatrice avec GUI (boutons d'interface) seraient d'un grand secours!

Voici le lien le plus utile que j'ai trouvé :
http://openoffice-libreoffice.developpe ... fice/xray/

Je pourrais enfin contribuer en programmant
des classes, pour la communauté.

M E R C I!
Dernière modification par martinbrait le 04 févr. 2017 16:03, modifié 3 fois.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par Churay »

Bonjour,

Voilà donc une formulation plus fonctionnelle.
xray, semble le silex indispensable à tout programmeur qui se respecte en ooobasic.
XRay est incontournable pour aller chercher la substantifique moelle dans les méandres de l'API (expert ou pas).
Comme il est utile pour découvrir l'API, en connaître quelques pans, l'apprivoiser.

XRay est déroutant au départ, entre autres pour celles et ceux qui n'ont pas une culture objet (si, si ça existe) et ils s'y sont adaptés.
Concernant la réalisation d'un mini tuto, c'est en cours mais, à ma connaissance il ne sera pas vidéo. Et bien évidemment ce ne sera pas un guide utilisateur, juste une intro à la manipulation.
Ensuite son auteur, même s'il utilise XRay au quotidien rencontre quelques difficultés non négligeables :
  • - comment partir de l'inconnu et faire taire des automatismes pour en expliquer la logique
    - comment formuler, même si la prétention n'est pas de rivaliser avec nos spécialistes des FAQ | HowTos et autres documentations, il faut quand même obtenir un minimum de lisibilité
    - comment s'affranchir de l'irl
La connaissance de Basic et de l'API, en plus de la Bible passe aussi par, même s'il n'a pas été écrit pour Basic, le Developer's Guide aide à comprendre, mais il n'est toujours pas traduit (la taille du pavé est une des raisons, et des considérations bassement irl en ont freiné l'avancement.

Dans ton précédent messages, as joint la partie Outils et ressources tirée de la Bible. Si l'on reprend l'exemple :

Code : Tout sélectionner

monDocument = thisComponent
lesFeuilles = monDocument.Sheets
maFeuille = lesFeuilles.getByName("Janvier")
xray maFeuille
XRay affiche l'objet représentant maFeuille. Si l'on souhaite avoir l'affichage d'un objet représentant la ligne 10, on le lui demandera avec

Code : Tout sélectionner

xray maFeuille.rows(9)
ou en créant l'objet concerné

Code : Tout sélectionner

maLigne = maFeuille.rows(9)
que l'on fait afficher ensuite

Code : Tout sélectionner

xray maLigne
.

Pour en revenir à nos moutons, un tuto va bientôt apparaître, il ne sera pas en vidéo et l'auteur n'étant pas un expert, cela vaudra que que ça vaudra...
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
OOo - Ekel
SuppOOrter
SuppOOrter
Messages : 1295
Inscription : 10 nov. 2006 15:04
Localisation : F-Oise

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par OOo - Ekel »

Bonsoir,

Et pourquoi ne pas t'y mettre à cette vidéo, au moins tu comprendrais le fonctionnement de Xray... si tu parviens à la faire cette vidéo, c'est que tu auras tout compris.

Cordialement.
Ekel

KUbuntu Noble Numbat (24.04) : LibreOffice 24.8.0.3 Officielle
AMD Ryzen 5 5600G
AMD Radeon RX 6650 XT
22" + 22"
16 Go
____________________
Pour les règles du jeu.
Pour marquer Résolu.
Pour joindre un fichier.
Avatar de l’utilisateur
alhazred
ManitOOu
ManitOOu
Messages : 3028
Inscription : 30 avr. 2011 23:08
Localisation : Casablanca (Maroc)

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par alhazred »

Bonjour,

XRay ne permet que d'explorer un objet que tu as déjà obtenu dans le programme :

Code : Tout sélectionner

XRay monObjet
ouvre la fenêtre.

Elle liste les propriétés et les méthodes utilisables pour cet objet
Un double-clic sur l'une des propriétés affiche en cascade le nouvel objet concerné (propriétés, etc.)
Si tu as installé le SDK et renseigné les Options, un bouton présente la fiche complète de la rubrique sélectionnée.

C'est à peu près tout ce qu'il y a à savoir pour débuter.

Les autres volets (Services, Interfaces, Listeners) sont rarement utilisés, seulement dans un but précis.

Par exemple, la liste des services permet de faire des tests pour déterminer la nature exacte d'un objet : dans Calc, l'objet ThisComponent.currentSelection peut être une cellule, une zone de cellules, plusieurs zones de cellules, des contrôles...
Tu peux alors insérer dans ton programme des tests du genre

Code : Tout sélectionner

If ThisComponent.currentSelection.SupportsService("le_service_voulu") Then ....
Cela évite des erreurs d'exécution (propriété ou méthode inexistante dans l'objet considéré)

Et la meilleure méthode est de mettre les mains dans le cambouis et d'essayer (faut pas avoir peur des erreurs qui apprennent beaucoup plus que les succès).
À bientôt

LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.

Et la sauvegarde incrémentée, c'est sympa !
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par martinbrait »

Bonsoir!

Le document joint, m'a été TRES utile, notamment, pour la description détaillée de l'utilisation d'xray
Qualité rédactionnelle,approche PAS à PAS.C'est exemplaire!
Tester xRay

Pour tester xRay, il faut utiliser dans un programme la commande « xray » suivi de l’objet à analyser.

Cette ligne analyse l’objet « thisComponent » et on pourra retrouver la propriété « sheets »

xray thisComponent

Cette ligne analyse l’objet « Sheets » et on pourra retrouver la méthode « getByName »

xray thisComponent.Sheets

Cette ligne analyse l’objet « getByName("Feuille1") » et on pourra retrouver la méthode « getCellRangeByName »

xray thisComponent.Sheets.getByName("Feuille1")

Cette ligne analyse l’objet « getCellRangeByName("A1") » et on pourra retrouver la propriété « string »

xray thisComponent.Sheets.getByName("Feuille1").getCellRangeByName("A1")
Ce serait génial, d'avoir le même genre de tuto pour les INTERFACES, SERVICES et LISTENERS.

A bon entendeur!
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25577
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par Dude »

Salut,
martinbrait a écrit :Ce serait génial, d'avoir le même genre de tuto pour les INTERFACES, SERVICES et LISTENERS.
A priori, tu n'as pas compris ce qu'était un projet libre.
Ce n'est pas aux autres de réaliser ce dont tu as besoin.
En clair, c'est à toi de démarrer une trame de document.
Document qui pourra être éventuellement complété par des bénévoles.
martinbrait a écrit :A bon entendeur!
Bin salut !
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par martinbrait »

Petite contribution du jour, pour mieux comprendre les interactions UNO.
Je rêve du moment où un expert OOObasic montrera aux autres
comment manipuler xray sous tous ses aspects, dans une petite appli.!

Pas moyen de faire des tests de l'api, avec les retours xray.
A quoi ça sert de confier un super outil, sans laisser de mode d'emploi ultra vulgarisé? :marto:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par martinbrait le 30 janv. 2014 23:12, modifié 2 fois.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
OOo - Ekel
SuppOOrter
SuppOOrter
Messages : 1295
Inscription : 10 nov. 2006 15:04
Localisation : F-Oise

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par OOo - Ekel »

Bonjour,

<Humour>Mais n'y aura-t-il pas alors quelqu'un pour demander comment fonctionne l'application qui permet d'expliquer comment fonctionne l'application qui permet d'expliquer comment fonctionne l'application qui... ? </Humour>

Cordialement.
Ekel

KUbuntu Noble Numbat (24.04) : LibreOffice 24.8.0.3 Officielle
AMD Ryzen 5 5600G
AMD Radeon RX 6650 XT
22" + 22"
16 Go
____________________
Pour les règles du jeu.
Pour marquer Résolu.
Pour joindre un fichier.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25577
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par Dude »

Pourquoi mettre en ligne un PDF ?
Dude a écrit :Document qui pourra être éventuellement complété par des bénévoles.
Je parle d'un document dans un format ouvert et modifiable.
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par martinbrait »

Dois je déduire que dans ce forum, personne n'a jamais osé se confronter
aux Services, Interfaces, Listeners, via xRay, pour coder ses applications? :cry: :aie:

Bonjour, merci et à bientôt.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
alhazred
ManitOOu
ManitOOu
Messages : 3028
Inscription : 30 avr. 2011 23:08
Localisation : Casablanca (Maroc)

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par alhazred »

Bonjour,

Bien évidemment que si (plus ou moins, tous ceux qui interviennent dans la section Macros), mais apparemment, cela n'intéresse personne de faire un travail sur commande, suis-je clair ?
À bientôt

LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.

Et la sauvegarde incrémentée, c'est sympa !
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Basic] Un jour, il y aura un tuto video sur XRAY!

Message par martinbrait »

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. :fou:
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... :mrgreen:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par martinbrait le 15 juin 2017 06:55, modifié 4 fois.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1445
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Basic] Xray, un expert peut-il faire un tp video?

Message par jeanmi2403 »

Bonjour,
martinbrait a écrit :Petite contribution du jour, pour mieux comprendre les interactions UNO.
La moindre politesse, et de respect du travail d'autrui, voudrait que tu cite tes sources....
Ta "petite contribution" est en fait l'oeuvre de Marc FEGLI
A moins qu'il ne s'agisse d'un dédoublement de personnalité....
En tout cas, cet extrait fait partie d'un bouquin plus vaste qui présente certainement un grand intérêt, mais que je n'ai pas réussi à identifier.
Je rêve du moment où un expert OOObasic montrera aux autres
comment manipuler xray sous tous ses aspects, dans une petite appli.!
Je fais ça, avec python, mais ça n'a rien de compliqué, me semble-t-il.
Désolé, je galère depuis plusieurs mois avec l'outil, en sachant à peine retourner les propriétés string pour les insérer à mes programmes.
Toutes les propriétés sont accessibles par des méthodes, parfaitement décrites dans XRAY.
Voici le lien le plus utile que j'ai trouvé : http://openoffice-libreoffice.developpe ... fice/xray/
Tout y est dit !!
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2747
Inscription : 16 avr. 2010 13:31

Re: [Basic] Un jour, il y aura un tuto video sur XRAY!

Message par OOotremer971 »

Bonjour,
@jeanmi2403
Apparemment il y a un soucis avec le lien tel qu'il est rédigé dans ton message. Je crois que c'est là :
http://openoffice-libreoffice.developpe ... fice/xray/

A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1445
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Basic] Un jour, il y aura un tuto video sur XRAY!

Message par jeanmi2403 »

Bonjour OOotremer971
En fait, j'ai tronqué le lien du post de martinbrait en le citant.
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX