Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum 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 !
J'ai des checkBox (cases à cocher) dans une colonne d'une grille d'un formulaire et j'aimerais pouvoir les initialiser à non cochées (état 0) et sans l'état 2 à l'ouverture de mon formulaire.
J'avais essayé une macro mais elle ne marche pas :
(mon_formulaire est le nom de mon formulaire
ma_grille est le nom de ma grille
selection est le nom de ma colonne de checkBox)
sub initialisation()
dim doc as Object, grille as Object
dim form as Object, control as Object
doc = ThisComponent
form = doc.DrawPage.Forms("mon_formulaire")
grille = form.getByName("ma_grille")
control = grille.getByName("selection")
control.enableTriState(false)
control.setState(0)
end sub
Il me met comme erreur :
Runtime error BASIC
Propriété ou méthode introuvable.
sur la ligne control.enableTriState(false) mais aussi sur la ligne control.setState(0) quand j'enlève la première.
Je ne vois pas du tout comment y arriver. Si vous avez une idée, n'hésitez pas.
Merci.
Dernière modification par Yaone le 20 avr. 2006 09:50, modifié 1 fois.
.
.
control = grille.getByName("selection")
control.TriState = false 'supprime l'état indéterminé du TriState
control.State = 0 'décoche la case à cocher
Qu'est-ce que c'est une "grille"?
cris59
WinXP PRO SP2 avec OOo2.2 & Vista avec OOo2.3.1
& Debian avec OOo2.2
Je ne sais quoi te dire, je n'ai en encore jamais utilisé Base.
Néanmoins j'ai fait un essai, j'ai créé une table avec un formulaire associé.
Dans le formulaire j'ai rajouté une case à cocher (CheckBox), j'ai mis la macro dans un module sur le formulaire, et ça à fonctionner...
WinXP PRO SP2 avec OOo2.2 & Vista avec OOo2.3.1
& Debian avec OOo2.2
J'avais pensé à autre chose mais il ne connait pas le setText.
(genre mettre une colonne avec un format booleen qui pointe sur le même champs de la table que mes checkBox)
Je me sers peut-être mal des fonctions, pour ça qu'il ne les connait pas ?
c'est ptêt pas ça que tu recherches comme réponse, mais on ne sait jamais:
Lorsque tu définis ta base, avec un champ de type oui/non, tu peux lui définir une valeur par défaut...
C'était ça que tu cherchais? ou bien c'est au cas pas cas par formulaire(et dans ce cas, je n'ai pas de réponse)?
J'y ai pensé, je te rassure.
Mais dès que je change la valeur (dès que je coche sur une case) dans le formulaire, quand je le réouvre, il me laisse la case cochée.
Mais si je lui demande de ne pas changer la valeur de mon champs, je ne peux plus cocher sur les cases pour sélectionner la ligne dont j'ai besoin.
Si tu as une autre idée.
Je n'aurais pas posé la question si ça avait été aussi simple ^^" (et c'est là que c'est un truc tout bête ou impossible à faire ^^")
J'ai remarqué qu'il y avait peu de doc sur les Grid et leur utilisation avec des macros, vous n'en connaitriez pas ?
sub initialisation()
dim maRequete as Object, resuQuery as Object
dim instrSQL as String
connexionSource
instrSQL = "UPDATE ma_table SET 'select' = false"
maRequete = maConnexion.createStatement()
resuQuery = maRequete.executeUpdate(instrSQL)
deconnexionSource
end sub
Et l'erreur sur la ligne resuQuery = maRequete.executeUpdate(instrSQL) :
Runtime error BASIC
Exception
Type: com.sun.star.sdbc.SQLException
Message: Aucune valeur donnée pour un ou plusieurs des paramètres requis
Si vous pouviez m'aider à corriger cette erreur ou si vous avez un autre moyen d'arriver au même résultat, je suis preneuse aussi.
Sub initialisation
dim maRequete as Object, resuQuery as Object
dim instrSQL as String
dim vrai as boolean
vrai = FALSE
ConnecterSource
instrSQL = "UPDATE" & chr(34) & "TAuteurs" & chr(34) &_
"SET" & chr(34) & "Genre" & chr(34) & " = " & chr(39) & vrai & chr(39)
maRequete = maConnexion.createStatement()
resuQuery = maRequete.executeQuery(instrSQL)
DeconnecterSource
Recharger_formulaire
End Sub
Sub Recharger_formulaire
dim monDoc as Object, unForm as Object
monDoc = thisComponent
unForm = monDoc.drawPage.Forms.getByName("MainForm")
unForm.reload()
End Sub
Tu accroches la macro "initialisation" à un bouton dans ton formulaire.
WinXP PRO SP2 avec OOo2.2 & Vista avec OOo2.3.1
& Debian avec OOo2.2