Re: [fr-users] Re: Base : maj sous-formulaire par listbox

2013-02-11 Par sujet Alexander Thurgood
Le 11/02/2013 11:12, Michel ALBERT a écrit :

Bonjour Michel,


> as-tu un conseil de lecture/doc/faq pour Base avec macro ?Au risque
> d'abuser, vu que c'est toi qui a mis à jour en dernier la FAQ Base
>

Le guide de Andrew Pitonyak :
http://www.pitonyak.org/database/AndrewBase.odt

Le livre de Roberto Benitez :
http://www.lulu.com/fr/fr/shop/roberto-benitez/database-programming-with-openofficeorg-base-basic/paperback/product-3568728.html

Le livre de Marcelly/Godard :
http://www.eyrolles.com/Informatique/Livre/programmation-openoffice-org-et-libreoffice-9782212132472



Alex

-- 
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


[fr-users] Re: Base : maj sous-formulaire par listbox

2013-02-11 Par sujet Michel ALBERT
C'est parfait.Je comprends pourquoi cela faisait quelques jours que je
séchais là-dessus ! Manifestement, Base a un certain retard sur MS Access...
Cela ne change rien pour moi, c'est décidé, je passe à LibreOffice. Mes PC
sont sous Linux Debian, mes "utilisateurs/clients" sont sur PC et Mac. J'en
ai marre de garder un PC Windows uniquement pour MS Access. D'où LibreOffice
qui tourne sur les 3 OS.J'avais développé en 2005-2006 une petite
application MS Access pour une association d'aide au développement pour la
gestion des dons, donateurs avec génération d'attestation fiscale et, depuis
2012, génération d'un fichier xml à destination du ministère des finances.
Donc, je vais devoir (sérieusement) me mettre aux macros et à LibreOffice
basic.Vu que tu as un certain bagage LibreOffice/OpenOffice (à voir le
nombre de tes interventions sur les forum et dans les FAQ (au moins Base)),
as-tu un conseil de lecture/doc/faq pour Base avec macro ?Au risque
d'abuser, vu que c'est toi qui a mis à jour en dernier la FAQ Base
Formulaire avec sous-formulaire (
https://wiki.documentfoundation.org/FR/FAQ/Base/003
  ), ne pourrais-tu pas
y joindre la db test ? Je ne sais pas si c'est habituel ou même autorisé. Un
petit dessin valant mieux qu'un long discours, cet exemple est (sera) très
utile à d'autres.Encore merci pour ton aide.Michel



--
View this message in context: 
http://nabble.documentfoundation.org/Base-maj-sous-formulaire-par-listbox-tp4036088p4036325.html
Sent from the Users mailing list archive at Nabble.com.
-- 
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


[fr-users] Re: Base : maj sous-formulaire par listbox

2013-02-10 Par sujet pierre-yves samyn
Suite...


Michel ALBERT wrote
> En fait, j'essayais de reproduire le fonctionnement de MS Access mais,
> apparemment, Base ne fonctionne pas ainsi. 

Non en effet...


Michel ALBERT wrote
> La solution est satisfaisante à un détail près : le fait d'utiliser un
> bouton pour le refresh; je pensais que cela se ferait automatiquement.
> 
> Serait-il possible/imaginable via une macro de faire un "subform.reload"
> ou assimilé qui serait démarré automatiquement après chaque changement de
> valeur dans la listbox ? 
> 
> Dans l'onglet Evénements de la listbox client, en bas, je vois "Après
> l'actualisation"; en cliquant sur les "...", une fenêtre "Assigner une
> action" s'ouvre, je trouve "Exécuter l'action" et y assigner une macro
> démarrant un reload/refresh. Est-ce une bonne piste ?

Ci-joint nouvelle version avec macro donc :)

Quelques explications:
- la macro (dont je joins le texte ci-dessous) est associée à l'événement
"Modifié"
plutôt que "Exécuter l'action" (inutile de lancer la macro si l'utilisateur
n'a fait que
cliquer sans modifier le contenu de la liste).
-la macro "valide" le choix fait dans la liste, puis valide l'enregistrement
du formulaire
MainForm et donc la modification faite dans la table "Sélection".
-elle termine par l'actualisation du sous-formulaire.

test.odb   

Ci-dessous la macro:

option explicit

Sub PysActualiser(oEvent)
'Valider la modification dans la liste
oEvent.source.model.commit
'Valider la modification de l'enregistrement (MainForm)
oEvent.source.model.parent.updateRow
'Recharger les données du sous-formulaire
thiscomponent.drawPage.Forms.getByName("MainForm").getByName("SubForm").reload
End Sub



--
View this message in context: 
http://nabble.documentfoundation.org/Base-maj-sous-formulaire-par-listbox-tp4036088p4036129.html
Sent from the Users mailing list archive at Nabble.com.

-- 
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


[fr-users] Re: Base : maj sous-formulaire par listbox

2013-02-10 Par sujet Michel ALBERT
Bonjour,

Merci pour cette réponse rapide.

En fait, j'essayais de reproduire le fonctionnement de MS Access mais,
apparemment, Base ne fonctionne pas ainsi. La solution est satisfaisante à
un détail près : le fait d'utiliser un bouton pour le refresh; je pensais
que cela se ferait automatiquement.

Serait-il possible/imaginable via une macro de faire un "subform.reload" ou
assimilé qui serait démarré automatiquement après chaque changement de
valeur dans la listbox ? 

Dans l'onglet Evénements de la listbox client, en bas, je vois "Après
l'actualisation"; en cliquant sur les "...", une fenêtre "Assigner une
action" s'ouvre, je trouve "Exécuter l'action" et y assigner une macro
démarrant un reload/refresh. Est-ce une bonne piste ?

Encore merci.

Michel



--
View this message in context: 
http://nabble.documentfoundation.org/Base-maj-sous-formulaire-par-listbox-tp4036088p4036114.html
Sent from the Users mailing list archive at Nabble.com.

-- 
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


[fr-users] Re: Base : maj sous-formulaire par listbox

2013-02-10 Par sujet pierre-yves samyn
Bonjour

En préambule une précision...

Il ne faut pas confondre deux choses :

1.Quand un enregistrement est sélectionné, disposer de listes pour modifier
la valeur d'un des champs. Par exemple, pour une facture, pouvoir choisir
dans la liste des clients. Il va de soi que ce faisant on ne souhaite pas
changer de facture...
2. Rechercher, choisir, sélectionner un enregistrement (une facture, un
client, un contrebassiste, etc.), par exemple d'après son nom. Après cette
opération l'enregistrement courant change : ce n'est plus systématiquement
le premier saisi mais celui trouvé qui est affiché, prêt pour la
consultation ou la modification.

De ce que je comprends tu souhaites réaliser le cas 2... mais ton formulaire
met en oeuvre le cas 1.

Le formulaire principal est fondé sur la table Clients et ta liste
déroulante modifie le contenu du champ NomClient.
Autrement dit, quand on sélectionne dans la liste, on modifie le nom du
client courant... Ce n'est pas ce que l'on veut.

On peut obtenir ce que tu souhaites par macro ou par un "truc"  : utiliser
une table "supplémentaire" qui ne servira que pour la sélection. Dans
l'exemple joint je l'ai nommée... Sélection.

Elle ne contient que deux champs :

ID_Sélection (Integer - clé primaire)
Sélection (Texte VARCHAR_IGNORECASE)

Fonder le formulaire principal (MainForm) sur cette table Sélection
La liste déroulante sera liée au champ Sélection, ainsi, lorsqu'on
sélectionne dans la liste l'ID client correspondant sera enregistré dans le
champ Sélection de la table Sélection.

Le sous-formulaire (SubForm) reste fondé sur la table Commandes. Il est lié
au formulaire principal par les champs:
Sélection et RefClient.

Pour peaufiner, j'ai ajouté un bouton permettant de rafraîchir le
sous-formulaire après choix dans la liste déroulante.
Il suffit pour cela de choisir cette action dans l'onglet général des
propriétés du bouton.

test.odb   

Je ne détaille pas les solutions macros, car il faut connaître les macros et
je ne sais pas si tu souhaites t'orienter par là.

Cordialement
Pierre-Yves





--
View this message in context: 
http://nabble.documentfoundation.org/Base-maj-sous-formulaire-par-listbox-tp4036088p4036108.html
Sent from the Users mailing list archive at Nabble.com.

-- 
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés