Macros

From The Document Foundation Wiki
< Macros‎ | Base
Jump to: navigation, search

Comment gérer les images liées ?

On souhaite gérer des images sans incorporer ces dernières dans la base. L'avantage est de ne pas les dupliquer et surtout de ne pas faire grossir d'autant la base de données.

Cette fonctionnalité est accessible sans macro (voir la FAQ correspondante de la section Base). Nous verrons ici comment gérer par programme les propriétés concernées.

Résultat souhaité

copie d'écran formulaire
Formulaire de saisie/affichage des images
  • Une zone de texte permettant de saisir ou coller le chemin d'accès à l'image (local ou Url).
  • Un contrôle Sélection de fichier pour permettre la sélection des images.
  • Le formulaire comprend en outre une zone de texte permettant à l'utilisateur de saisir un titre à l'image.
  • Le contrôle Picto permettant l'affichage occupe le bas du formulaire


Base permet de réaliser cela via deux procédures :

option explicit

sub AfficherImage
dim PysForm as object

PysForm = thiscomponent.drawPage.forms.getByName("Standard")

PysForm.getByName("ImageControl").ImageURL=_
   convertToUrl(PysForm.getByName("TextBox").Text)
end sub

sub EnregistrerChemin(PysEvent)
dim PysForm as object

PysForm = thiscomponent.drawPage.forms.getByName("Standard")

PysForm.getByName("TextBox").Text =_
                PysEvent.Source.Text
PysForm.getByName("TextBox").commit

AfficherImage

end sub

La procédure AfficherImage est associée aux événements :

  • Après le changement d'enregistrement du formulaire,
  • À la réception du focus du contrôle Image.

La procédure EnregistrerChemin est associée aux événements :

  • À la perte du focus du contrôle zone de texte,
  • Texte modifié du contrôle Sélection de fichier.