[Résolu] [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Seb1258
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 11 sept. 2024 15:31
Localisation : Pas loin du Canada

[Résolu] [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Seb1258 »

Bonjour,

Je reviens vers vous une nouvelle fois concernant la base de données Agents que je suis en train de faire.

Après quelques recherches sur le forum, j'ai trouvé plusieurs posts ci-dessous mais je n'arrive pas à ce que je veux :

viewtopic.php?t=65783&hilit=zoom
viewtopic.php?f=8&t=24930&p=136179&hili ... an#p136179

J'aurais voulu savoir s'il était possible d'ouvrir les formulaires automatiquement à 85% de zoom (voir image ci-dessous) ? Il faudrait que ce paramétrage s'applique à tous les utilisateurs (nous avons tous la même résolution). Je ne sais pas du tous si c'est possible et si c'est un paramétrage sur base ou via une macro.

zoom.PNG

Actuellement, pour ouvrir un formulaire (via un bouton) j'ai le code ci-dessous :

Code : Tout sélectionner

Sub OuvertureAgents 

ThisDatabaseDocument.CurrentController.connect("","") 
LibOForm = ThisDatabaseDocument.FormDocuments.getByName("Agents").open
LibOForm.currentController.frame.ContainerWindow.IsMaximized = true
ThisDatabaseDocument.FormDocuments.getByName("Accueil").close

End Sub
Pensez-vous que je pourrais rajouter le pourcentage d'affichage souhaité dans cette partie ?

Si oui, sauriez-vous ce que je dois mettre ? Et ou dans le code ?

Si je demande cela c'est parce que sur les quelques personnes qui vont utiliser la base, certaines ont d'autres outils avec des affichages différents et lors de l'ouverture le zoom est différent et la base devient illisible.

A besoin je peux mettre la base en ligne si le paramétrage ce fais ailleurs.

Merci d'avance.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Seb1258 le 17 déc. 2024 10:53, modifié 1 fois.
Libre office 7.3.7.2 < Obligation de version :fou:

Windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26205
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Dude »

Salut,
Seb1258 a écrit : 12 déc. 2024 12:09 Si oui, sauriez-vous ce que je dois mettre ? Et ou dans le code ?
XRay est ton ami
Seb1258
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 11 sept. 2024 15:31
Localisation : Pas loin du Canada

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Seb1258 »

Bonjour dude,

Merci pour ton retour, mais comme tu le sais, je n'arrive pas à me servir d'xRay, malgré le tuto sur le forum. Je suis surement un peu idiot.

Si toutefois quelqu'un à une autre idée, je suis intéressé.

Merci d'avance.
Libre office 7.3.7.2 < Obligation de version :fou:

Windows 10 Pro
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par jeanmimi »

Bonjour,
La question est évoquée dans ce fil de messages :
viewtopic.php?p=199384#p199384
À tester pour valider avec la version actuelle de LibreOffice.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Seb1258
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 11 sept. 2024 15:31
Localisation : Pas loin du Canada

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Seb1258 »

Bonjour Jeanmimi,

Merci pour ton retour.

J'avais déjà vu le post et après avoir téléchargé les bases de données, j'ai pas mal de problème sur basic.

Je te joins une image d'une erreur quand je clic pour ouvrir un autre formulaire.

A bientôt :D

erreur basic.PNG
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 7.3.7.2 < Obligation de version :fou:

Windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26205
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Dude »

Seb1258 a écrit : 12 déc. 2024 18:46 je n'arrive pas à me servir d'xRay, malgré le tuto sur le forum.
Ouvre un nouveau fil et indique nous à quel endroit du tutoriel tu pêches et te retrouve bloqué.

Le lien fourni par jeanmimi ne parle pas du zoom mais modifie la taille et la position d'un formulaire.
Régler ce paramètre risque de poser problème par ailleurs car il est mémorisé pour tous les documents Writer ouverts ensuite.
Seb1258
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 11 sept. 2024 15:31
Localisation : Pas loin du Canada

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Seb1258 »

Bonjour Dude,

Merci pour ton retour.

Concernant xRay, je l'ai installé depuis un bon moment (sur tes conseils). Là, j'ai créé un bouton (temporaire) pour lancer la macro "Xraymenu" sur le formulaire "Accueil". J'ai ensuite sélectionné "Xray ThisComponent" (je ne sais pas si c'est celui là qu'il faut choisir).

J'ai pleins de lignes affichées et je ne comprends rien du tous (voir image ci-dessous).

Je ne sais pas du tous si ce que j'ai fais est bon et si comment lire le résultat.

A bientôt,

xray-menu.PNG
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 7.3.7.2 < Obligation de version :fou:

Windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26205
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Dude »

Seb1258 a écrit : 13 déc. 2024 16:11 Là, j'ai créé un bouton (temporaire) pour lancer la macro "Xraymenu" sur le formulaire "Accueil".
Tu as lu ça où dans le tuto ?


Seb1258 a écrit : 13 déc. 2024 16:11J'ai ensuite sélectionné "Xray ThisComponent"
Bien sûr qu'on peut partir sur le document qui est l'objet le plus haut mais il est quand même plus simple d'interroger le formulaire non ?
https://dai.ly/k4QjSlKU3WzvUfC408u
Seb1258
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 11 sept. 2024 15:31
Localisation : Pas loin du Canada

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Seb1258 »

Bonjour Dude,
Dude a écrit : 16 déc. 2024 08:52 Tu as lu ça où dans le tuto ?
Je ne l'ai pas lu, mais comme je ne sais pas comment faire pour lancer xRay, j'ai fais comme ça. :wink:

Je test ce soir ou demain soir à la maison et je reviens vers vous.

Merci pour la réponse :D
Libre office 7.3.7.2 < Obligation de version :fou:

Windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26205
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Dude »

Dude a écrit : 13 déc. 2024 13:01 Ouvre un nouveau fil et indique nous à quel endroit du tutoriel tu pêches et te retrouve bloqué.
Seb1258 a écrit : 16 déc. 2024 11:34Je ne l'ai pas lu
Lu ou vu ?
L'auteur bm92 de XRay qui n'est autre que Bernard Marcelly serait ravi d'apprendre qu'il a passé du temps pour rien à le rédiger. :evil:
Seb1258
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 11 sept. 2024 15:31
Localisation : Pas loin du Canada

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Seb1258 »

Dude,
Dude a écrit : 16 déc. 2024 12:31 Lu ou vu ?
L'auteur bm92 de XRay qui n'est autre que Bernard Marcelly serait ravi d'apprendre qu'il a passé du temps pour rien à le rédiger. :evil:
Je n'ai pas vu dans le tuto la création d'un bouton... Biensure que j'ai lu le tuto et j'en remercie bm92, simplement je n'arrive pas à me servir de cet outil certainement formidable. Oui je dois être complètement idiot...

Comme tu le sais, je suis débutant, je ne connais pas grand chose à libre office, sinon j'essaierai d'aider plutôt que poser des questions qui paraissent si stupide pour un pro comme toi. Je pense que tu veux me faire découvrir les solutions par moi même (ou alors tu aimes me voir galérer), malheureusement il me manque beaucoup trop de connaissance pour arriver à ce résultat de si loin.

Bonne journée.
Libre office 7.3.7.2 < Obligation de version :fou:

Windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26205
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Dude »

Qu'est ce que tu n'as pas compris dans la vidéo d'explication que j'ai fournie ?
Seb1258
Membre hOOnoraire
Membre hOOnoraire
Messages : 106
Inscription : 11 sept. 2024 15:31
Localisation : Pas loin du Canada

Re: [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Seb1258 »

Bonjour Dude,

Au boulot je n'arrive pas à voir la vidéo (surement des restrictions de sécurités ou un truc dans ce genre).

J'ai donc testé hier soir chez moi.

J'ai inscrit tous le code dans un module que j'ai appelé xRay. La seule chose que j'ai modifié c'est le nom du formulaire. Et j'ai appelé cette macro au démarrage de la base de données (dans personnalisé) et je l'ai lancé depuis Basic comme sur la vidéo. Le résultat est le même et je pense que mon pc n'est pas assez puissant.

Code : Tout sélectionner

Sub xRay
		GlobalScope.BasicLibraries.loadLibrary("XrayTool")
		ThisDatabaseDocument.CurrentController.connect("","")
		oForm = ThisDatabaseDocument.FormDocuments.getByName ("Accueil")
		oForm.open
		oComponent = oForm.getComponent()
		oCC = oComponent.getCurrentController ()
		xray oCC
End Sub
xray.PNG

Néanmoins, après pas mal de recherche (et l'appel à un amis) j'ai semble-t'il trouvé une solution. Pour l'instant je n'ai pas pu la tester sur l'ensemble des postes qui nécessiteront un accès à la base, mais apparemment le code fonctionne quand même. Après quelques tests sur les lignes ci-dessous (au niveau des chiffres) c'est ok sur un écran dont la résolution est 1920*1080. Je ne sais pas ce que ça donne si la résolution est différente.

Code : Tout sélectionner

inx = Int(oWin.Size.Width * 80 * 75 / (inWidth * inDpiX))
iny = Int(oWin.Size.Height * 80 * 75 / (inHeight * inDpiY))
Je remets le nouveau code ci-dessous ainsi que la base qui le contient pour aider d'autre personne.

Je clôture également le post mais si tu réponds ici concernant la vidéo je regarderai.

Code : Tout sélectionner

option explicit

global LibOForm as object

Sub LibOFormOpen (evt As Object)

Dim oConnexion AS Object
'ThisDatabaseDocument.CurrentController.ApplicationMainWindow.setVisible(false)
'Dim props(0) As New com.sun.star.beans.PropertyValue
ThisDatabaseDocument.CurrentController.connect("","") 
LibOForm = ThisDatabaseDocument.FormDocuments.getByName("Accueil").open 
LibOForm.currentController.frame.ContainerWindow.IsMaximized = true
Call WindowsResize(evt)
End Sub

Sub WindowsResize(oVent As Object)
DIM oFrame AS OBJECT, oWin AS OBJECT, oLayoutMng AS OBJECT
DIM inx AS INTEGER, iny AS INTEGER, inDpiX AS INTEGER, inDpiY AS INTEGER, inWidth AS INTEGER, inHeight AS INTEGER, inZoom AS INTEGER, i AS INTEGER

inWidth = 1360
inHeight = 750

oFrame = oVent.Source.CurrentController.Frame
'oFrame.setTitle(oEvent.Source.Title)
oWin = oFrame.getContainerWindow()
oWin.IsMaximized = true' (ohne zu maximieren wird immer die letzte Fenstereinstellung genommen)
oLayoutMng = oFrame.LayoutManager

inDpiX = Int(1440 \ TwipsPerPixelX())
inDpiY = Int(1440 \ TwipsPerPixelY())
inx = Int(oWin.Size.Width * 80 * 75 / (inWidth * inDpiX))
iny = Int(oWin.Size.Height * 80 * 75 / (inHeight * inDpiY))
IF inx < iny THEN
    inZoom = inx
ELSE
    inZoom = iny
END IF
LibOForm.CurrentController.ViewSettings.ZoomValue = inZoom
End sub
Merci à tous pour votre aide.

A bientôt.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 7.3.7.2 < Obligation de version :fou:

Windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26205
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu] [Base] Régler le pourcentage d'affichage d'un formulaire à 85% par défaut.

Message par Dude »

Seb1258 a écrit : 17 déc. 2024 10:52 J'ai inscrit tous le code dans un module que j'ai appelé xRay.
Normal que tu aies un débordement, tu appelles XRay dans une routine XRay.
Tu la sens la grosse boucle en mémoire ? :lol:


Comme indiqué dans la vidéo, le contrôleur du composant formulaire contient les paramètres de zoom :

Code : Tout sélectionner

oForm = ThisDatabaseDocument.FormDocuments.getByName( "F_saisie_caisse" )
oComponent = oForm.getComponent()
oCC = oComponent.getCurrentController()
oParam = oCC.ViewSettings
oParam.ZoomValue = nZoom
Et comme toujours, il faut fournir un document limité à la seule problématique.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.