[prog] problème pour modifier les enregistrements da ns base

2006-04-06 Par sujet BOTTIN Laurence - DGMT/SG/AG2
bonjour,
j'utilise OOo 2.0.2 sous XP,
pour =Ecrire cette sub je me suis basee sur les exemples du livre =
macros et
API de Marcelly et Godard.
la BDD a ete creee avec base d'OOo 2.0
Je recupere sans probleme les donnees que j'incremente dans 
un tableau pour
les afficher dans une boite de dialogue.
Je repere les modifications faites dans les champs des boites de dialogue
et je les reecris dans le meme tableau.
je recupere bien les modifs
pour mettre a jour la BDD j'utilise le code suivant et il ne fonctionne pas
du tout...
Sub majDonnees()
On Error GoTo Erreurs
dim maRequete As Object, resuQuery As Object
dim mesRows as long, monRow as long
dim mesColonnes as long, maColonne as long
dim nbColonnes as long
dim instrSQL As String, monSignet As Variant
dim info As String, cr As String

dim i as long
dim test1 as string, monType
cr = chr(13) ' retour a la ligne, pour les messages
ConnecterSource
' Texte de la requ=EAte
instrSQL = select * from   signataires   order by  
ID_signataires  
' Envoyer la requete
maRequete = maConnexion.createStatement()
resuQuery = maRequete.executeQuery(instrSQL)

'nombre de colonne
nbColonnes = resuQuery.columns.count-1

resuQuery.beforefirst()
do while resuQuery.next
monrow=resuQuery.row
for i = 0 to nbColonnes
monType=resuQuery.columns(i).TypeName
test1 = tabSignataires ( monrow, i)
select case monType
case INTEGER
test1 = Cint(tabSignataires ( monrow, i))
msgbox test1
resuQuery.updateShort(i, test1)
case VARCHAR
test1 = CStr(tabSignataires ( monrow, i))
resuQuery.updateString(i, test1)
case LONGVARCHAR
test1 = CStr(tabSignataires ( monrow, i))
resuQuery.updateString(i,test1)
end select
next
resuQuery.updateRow
loop


DeconnecterSource
Exit Sub
Erreurs:
DeconnecterSource
erreur_num=err()
erreur_txt=error(erreur_num)
erreur_ligne = Erl()
MsgBox(erreur n=B0  + erreur_num +  =E0 la ligne  + erreur_ligne + =
chr(13) +
erreur_txt, 1 + 16, Macro recupcurseur)
End Sub
merci pour votre aide


Laurence BOTTIN (DGMT/SG/AG2), bureau informatique 
ministère des Transports, de l'Equipement, du Tourisme et de la Mer 
direction générale de la Mer et des Transports  
(: +33 1 40 81 17 27 Fax : +33 1 40 81 37 95 
localisation des bureaux : Grande Arche sud La Défense 
mailto:[EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] Geler l'affichage d'un document Calc

2006-04-06 Par sujet Olivier Villatte

Merci Bernard,

Cette méthode permet effectivement de geler correctement l'affichage.

J'ai constaté que pour un gain significatif de performance, il faut 
cumuler cette méthode avec AddActionLock/RemoveActionLock.


Dans mon test, mise à jour de toutes les cellules d'une plage de 18 
colonnes par 1172 lignes (soit 21096 cellules),

la macro tourne en 22 secondes sans ActionLock et en 8 secondes avec.

Olivier

Bernard Marcelly a écrit :

dim fenDoc as Object
fenDoc = thisComponent.CurrentController.Frame.ContainerWindow
fenDoc.Enable = False
wait 5000 ' simulation de la réalisation du travail
fenDoc.Enable = True

Et malgré la désactivation, il est possible de faire évoluer une barre 
de progression au bas de la fenêtre du document.


   Bernard



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[prog] [OOo sous Delphi] AddActionLock RemoveActionLock font des graphiques pas beaux

2006-04-06 Par sujet pac

Bonjour tout le monde.

J'utilise OOo via la programmation en Delphi, j'arrive à faire presque 
tout ce que je désire.

Pour bloquer l'application, j'utilise :
FDocumentOOo.lockControllers;
FDocumentOOo.unlockControllers;

Cela donne le résultat que je désire, j'apprends (via cet emailing) 
qu'utiliser AddActionLock donnera des temps de traitements bien meilleurs.
Mais lorsque je bloque l'application avec AddActionLock et 
RemoveActionLock, les graphiques ont une police plus grosse que prévu, 
la bordure de droite n'apparaît pas.
Il faut double cliquer sur le graphique pour le mettre en mode édition 
et le déselectionner pour retrouver un graphique potable.


Est-ce que vous avez  déjà eu ce genre de problèmes et/ou savez-vous 
comment je peux résoudre ce problème, ou quelle est la piste à suivre ?


Merci, pac.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] problème pour modifier les enregistrements dans base

2006-04-06 Par sujet Bernard Marcelly

Bonjour BOTTIN Laurence - DGMT/SG/AG2 (LoloBot)
Message du 2006-04-06 09:57:

pour mettre a jour la BDD j'utilise le code suivant et il ne fonctionne pas
du tout...


Ce diagnostic n'aide pas beaucoup... Et la non-indentation du codage non 
plus.
Alors question : est-ce qu'une des colonnes modifiées est un champ 
auto-incrémenté?


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [prog] problème pour modifier les e nregistrements dans base

2006-04-06 Par sujet BOTTIN Laurence - DGMT/SG/AG2
J'ai pensé effectivement à cette hypothèse et je ne fait pas d'update sur le
champs contenant la clef

-Message d'origine-
De : Bernard Marcelly [mailto:[EMAIL PROTECTED]
Envoyé : jeudi 6 avril 2006 13:35
À : prog@fr.openoffice.org
Objet : Re: [prog] problème pour modifier les enregistrements dans base


Bonjour BOTTIN Laurence - DGMT/SG/AG2 (LoloBot)
Message du 2006-04-06 09:57:
 pour mettre a jour la BDD j'utilise le code suivant et il ne fonctionne
pas
 du tout...

Ce diagnostic n'aide pas beaucoup... Et la non-indentation du codage non 
plus.
Alors question : est-ce qu'une des colonnes modifiées est un champ 
auto-incrémenté?

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] [OOo sous Delphi] AddActionLock RemoveActionLock font des graphiques pas beaux

2006-04-06 Par sujet pac
Je travaille aussi la majorité du temps sur la manipulation de cellules, 
c'est pour ça que j'étais intéressé par le possible gain de temps.
J'ai essayé ton idée de faire un RemoveActionLock avant de créer le 
graphique et le rajouter un AddActionLock à la fin du traitement de 
création du graphique mais cela ne marche pas.

J'ai toujours ce bug qui affiche mal les graphiques.
Personne d'autres n'a d'idées ou de pistes ?

pac.

Olivier Villatte a écrit :

Bonjour,

J'ai obtenu des gains de perfomances avec 
AddActionLock/RemoveActionLock sur la manipulation du contenu des 
cellules. Je n'ai jamais travaillé avec les graphiques donc je ne sais 
pas si tu auras un gain de performance.


une piste peut-être en plaçant un RemoveActionLock juste avant la 
création du graphique et en replaçant un AddActionLock après si tu as 
encore besoin de modifier des cellules.


Olivier




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[prog] Comment supprimer une valeur dans la base de registre ?

2006-04-06 Par sujet pac
Salut, dans le (très bon) livre de Bernard Marcelly version 1.1.4, page 
599 Traitements spécifiques pour MS-Windows, il est indiqué d'utiliser :

OpenRegKey pour ouvrir une clé,
QueryValue pour récupérer une valeur.
Mais il n'est  pas indiqué comment supprimer une valeur, j'ai essayé 
quelques méthodes comme DeleteRegValue et d'autres dans le même style 
mais aucune n'a été reconnue.
Dans l'API, 
http://api.openoffice.org/docs/common/ref/com/sun/star/registry/XRegistryKey.html
il est fait état de deleteKey pour supprimer une clé complète et 
deleteLink pour supprimer un lien (je n'ai pas encore  bien compris ce 
que c'était), mais rien pour supprimer une valeur.


Comment peut-on faire ?
Merci, pac.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [prog] impossible de faire un update dans base via macro

2006-04-06 Par sujet DAVID Jean-Claude - CETE Ouest/DU/AEH
Bonjour,
A) Vous utilisez une Boite de dialogue ou un formulaire ?
B) En ce qui me concerne, j'avais fait une application de saisie avec
formulaire en Ooo V1.1 et je faisais simplement un UpdateRow sur ma
référence au formulaire de saisie oForm, ce qui provoquait la mise à jour de
la BdD :

oForm = ThisComponent.DrawPage.Forms.GetByName(Saisie_totale)
oForm.UpdateRow

C) Sinon, il y a toujours la possibilité d'envoyer une requête UPDATE
directement à la BdD

Jean-Claude DAVID

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [prog] impossible de faire un update dans base via macro

2006-04-06 Par sujet DAVID Jean-Claude - CETE Ouest/DU/AEH
Une Base de Données ne verrouille pas un enregistrement si on ne lui demande
pas explicitement.

Si c'est une boite de dialogue remplie par une requête SELECT, cette requête
ne peut pas mettre à jour la BdD.

Pour ma part, pour chaque ligne, je ferais quelque chose du type (je n'ai
pas vérifié la syntaxe) :

strSQL = UPDATE signataires SET   resuQuery.columns(0).Name   =  
tabSignataires(monrow, 0)  ,   resuQuery.columns(1).Name   =  
tabSignataires(monrow, 1)  ...    WHERE ID_signataires =  
ID_signataires
'Création de la requête
oStatement = oCon.CreateStatement()
'Exécution de la requête
Retour = oStatement.executeUpdate(strSQL)

Envoye ton fichier en M.P. si tu souhaites que j'y jette un coup d'oeil.

Jean-Claude DAVID

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] Geler l'affichage d'un document Calc

2006-04-06 Par sujet Olivier Villatte

Bonjour Bernard,

J'ai beau cherher, je ne trouve pas d'exemple où AddActionLock est 
appliqué à un autre objet que le document.


J'ai essayer le fouiller un peu dans le sdk et je n'ai trouvé que cette 
information :


The interface com.sun.star.document.XActionLockable protects this cell 
from painting or updating during changes. The interface can be used to 
optimize the performance of complex changes, for instance, inserting or 
deleting formatted text.


j'avais compris que AddActionLock gèle la mise à jour de l'affichage 
et que LockControlers bloque les actions utilisateur... maintenant, je 
ne suis plus sur de rien.


 est-il possible d'avoir plus d'infos ?

Olivier

Bernard Marcelly a écrit :
AddActionLock est prévu pour un objet particulier dans l'interface, et 
même des parties d'un objet.




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [prog] impossible de faire un update dans base via macro

2006-04-06 Par sujet BOTTIN Laurence - DGMT/SG/AG2
Merci
je vais faire le test, que veux tu dire par M.P. ?

Laurence.bottin

-Message d'origine-
De : DAVID Jean-Claude - CETE Ouest/DU/AEH
[mailto:[EMAIL PROTECTED]
Envoyé : jeudi 6 avril 2006 15:07
À : prog@fr.openoffice.org
Objet : RE: [prog] impossible de faire un update dans base via macro 


Une Base de Données ne verrouille pas un enregistrement si on ne lui demande
pas explicitement.

Si c'est une boite de dialogue remplie par une requête SELECT, cette requête
ne peut pas mettre à jour la BdD.

Pour ma part, pour chaque ligne, je ferais quelque chose du type (je n'ai
pas vérifié la syntaxe) :

strSQL = UPDATE signataires SET   resuQuery.columns(0).Name   =  
tabSignataires(monrow, 0)  ,   resuQuery.columns(1).Name   =  
tabSignataires(monrow, 1)  ...    WHERE ID_signataires =  
ID_signataires
'Création de la requête
oStatement = oCon.CreateStatement()
'Exécution de la requête
Retour = oStatement.executeUpdate(strSQL)

Envoye ton fichier en M.P. si tu souhaites que j'y jette un coup d'oeil.

Jean-Claude DAVID

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [prog] impossible de faire un update dans base via macro - s uite

2006-04-06 Par sujet DAVID Jean-Claude - CETE Ouest/DU/AEH
Dans la documentation de l'interface XStatement (que retourne
ExecuteQuery) il est précisé : is used for executing a static SQL
statement, on serait donc sur un ResultSet statique et pas dynamique. 

A mon avis, il faut donc passer par des Update pour effectuer des mises à
jour.

Ou alors il faut utiliser un XResultSetUpdate qui lui provides the
possiblity to write changes made on a result set back to database. par un
UpdateRow

Jean-Claude

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[prog] impossible de faire un update dans base via macro - s uite et fin

2006-04-06 Par sujet BOTTIN Laurence - DGMT/SG/AG2
Merci à Jean-Claude DAVID :
Le update fonctionne dans ce cas
Sub majDonnees()
On Error GoTo Erreurs
dim maRequete As Object, resuQuery As Object
dim mesRows as long, monRow as long 
dim mesColonnes as long, maColonne as long
dim nbColonnes as long, nbre
dim instrSQL As String, monSignet As Variant
dim info As String, cr As String

dim i as long
dim test1 as string, monType
cr = chr(13) ' retour à la ligne, pour les messages
ConnecterSource
' Texte de la requête
instrSQL = SELECT * FROM SIGNATAIRES ORDER BY ID_SIGNATAIRES
' Envoyer la requête

maRequete = maConnexion.createStatement()


for i = 1 to ubound(tabSignataires(),1) 
instrSQL=UPDATEsignataires
instrSQL=instrSQL   SET  
instrSQL=instrSQL  civilite   = '  tabSignataires
(i, 1 )  ', 
instrSQL=instrSQL  nom   = '  tabSignataires (i,
2 )  ', 
instrSQL=instrSQL  prenom   = '  tabSignataires
(i, 3 )  ' WHEREID_signataires   =  tabSignataires (i, 0 )

print instrSQL
nbre = maRequete.executeUpdate(instrSQL)
next
DeconnecterSource
Exit Sub
Erreurs:
DeconnecterSource
erreur_num=err()
erreur_txt=error(erreur_num)
erreur_ligne = Erl()
MsgBox(erreur n°  + erreur_num +  à la ligne  + erreur_ligne
+ chr(13) + erreur_txt, 1 + 16, Macro recupcurseur)


End Sub
Laurence BOTTIN (DGMT/SG/AG2), bureau informatique 
ministère des Transports, de l'Equipement, du Tourisme et de la Mer 
direction générale de la Mer et des Transports  
(: +33 1 40 81 17 27 Fax : +33 1 40 81 37 95 
localisation des bureaux : Grande Arche sud La Défense 
mailto:[EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[prog] boutons radio

2006-04-06 Par sujet Troumad

Bonjour

Dans mon fichier http://troumad.info/Linux/sudoku.odt, j'ai fait une 
boite de dialogue avec des boutons radio (un seul groupe). Tout allait 
bien, je m'étais posé la question sur les regroupements, mais comme sans 
rien faire, tout allait comme je voulais, j'en ai profité !
Aujourd'hui, j'ai voulu rajouter deux boutons dans ce même groupe, j'ai 
donc rajouté ses deux boutons, mais impossible de voir comment les 
associer à l'autre groupe ! Ils forment un groupe à eux seuls...

--
Amicalement vOOotre  Troumad Alias Bernard SIAUD
mon site : http://troumad.info : ADD maths WEB sectes
Pour la liberté http://lea-linux.org http://www.eurolinux.org/index.fr.html
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.openoffice.org


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] boutons radio

2006-04-06 Par sujet Laurent Godard

Bonjour Bernard

Dans mon fichier http://troumad.info/Linux/sudoku.odt, j'ai fait une 
boite de dialogue avec des boutons radio (un seul groupe). Tout allait 
bien, je m'étais posé la question sur les regroupements, mais comme sans 
rien faire, tout allait comme je voulais, j'en ai profité !
Aujourd'hui, j'ai voulu rajouter deux boutons dans ce même groupe, j'ai 
donc rajouté ses deux boutons, mais impossible de voir comment les 
associer à l'autre groupe ! Ils forment un groupe à eux seuls...


il faut que tes boutons aient un numero d'ordre (propriete) consecutifs 
pour etre considérés du meme groupe


OOo decale automatique les ordres quand on insere

Livre ed1.p470/ed2.p510

Bon courage

Laurent

--
Laurent Godard [EMAIL PROTECTED] - Ingénierie OpenOffice.org
Indesko  http://www.indesko.com
Nuxeo CPS  http://www.nuxeo.com - http://www.cps-project.org
Livre Programmation OpenOffice.org, Eyrolles 2004

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] boutons radio

2006-04-06 Par sujet Troumad

Laurent Godard a écrit :

Bonjour Bernard

Dans mon fichier http://troumad.info/Linux/sudoku.odt, j'ai fait une 
boite de dialogue avec des boutons radio (un seul groupe). Tout 
allait bien, je m'étais posé la question sur les regroupements, mais 
comme sans rien faire, tout allait comme je voulais, j'en ai profité !
Aujourd'hui, j'ai voulu rajouter deux boutons dans ce même groupe, 
j'ai donc rajouté ses deux boutons, mais impossible de voir comment 
les associer à l'autre groupe ! Ils forment un groupe à eux seuls...


il faut que tes boutons aient un numero d'ordre (propriete) 
consecutifs pour etre considérés du meme groupe


OOo decale automatique les ordres quand on insere

Livre ed1.p470/ed2.p510

Bon courage

Laurent


OK !

Je pense qu'il serait agréable de pouvoir regrouper plus facilement les 
boutons radios !

Par exemple avoir un bouton 'grouper'...

--
Amicalement vOOotre  Troumad Alias Bernard SIAUD
mon site : http://troumad.info : ADD maths WEB sectes
Pour la liberté http://lea-linux.org http://www.eurolinux.org/index.fr.html
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.openoffice.org


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] problème pour modifier les enregistrements dans base

2006-04-06 Par sujet Bernard Marcelly

Vu que:
- tu utilises la base interne HSQL
- avec un ordre updateXXX

Cela ressemble beaucoup au rapport 
http://www.openoffice.org/issues/show_bug.cgi?id=61869 qui n'est pas 
encore prise en compte bien que reproductible apparemment.

Y-a-t-il un responsable Base dans OpenOffice ?

   Bernard

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]