We will be migrating from Ask to Discourse on the first week of August, read the details here

Poser votre question
0

[Résolu]-Connection table libreoffice base python

posée 2021-04-04 18:09:45 +0200

Image Gravatar de El Catala

updated 2021-04-18 17:10:55 +0200

Bonsoir, J' ai développé une application qui me permet de récupérer des données de page web. Pour continuer mon projet, j' ai besoin de créer des diagrammes. Un rapport édité depuis une base libre office ne permet pas de les réaliser. Je pensai donc extraire les données depuis une table de libre office base avec un script python puis d' utiliser une des bibliothèques permettant d' éditer un diagramme. Depuis plusieurs jours, je recherche sur internet une solution mais j' avoue que je n' avance pas. La majorité des documents traitant de ce sujet sont plus sur un tableau Calc que sur le module base. De plus elles sont quasiment toutes en anglais ce qui me complique considérablement la tache. Avez-vous déjà tenté cette opération? Dans l' idéal, un clic sur un bouton d' un formulaire ouvrirai le diagramme. Cordialement

éditer requalifier signaler fermer fusionner supprimer

Commentaires

Bonsoir, Les deux questions sont différentes. Dans le premier cas, il s' agissait de déclencher un script python depuis un formulaire LO. Ce script me permet de faire un calcul hors de LO.J' ai ajouté dans mon script la fonction ci-dessous:

def Control_Action(ev):
ctrl = ev.Source
frm = ev.Source.Model.Parent
subform = frm.getByName("F_Ctn")

Dans le cas présent, je veux récupérer les données d' une table existante. Pour le SQL, pas de soucis. Le problème est la connection à la table. Cordialement

Image Gravatar de El CatalaEl Catala ( 2021-04-06 20:23:36 +0200 )éditer

Bonjour,

Merci beaucoup de votre réponse. Pas de soucis pour le délai, je suis à la retraite et vous n' avez pas que ce sujet à voir. Votre code est vraiment très complet et je vais donc m' atteler à le modifier pour l' usage auquel je le destine.

Bonne continuation et encore merci

Image Gravatar de El CatalaEl Catala ( 2021-04-18 17:10:19 +0200 )éditer

1Réponse

0

répondue 2021-04-05 12:18:18 +0200

Image Gravatar de pierre-yves samyn

updated 2021-04-17 10:37:04 +0200

Bonjour @El Catala

Tu avais déjà plus ou moins posé la même question et répondu finalement qu'il n'y avait pas de table ?

Sinon, pour l'exécution de SQL via script python dans base voir cette réponse.

[Ajout 17-04-21 10:35]

Désolé @El Catala je n'ai pas été notifié de ta réponse, du coup avec beaucoup de retard ci-dessous un exemple de parcours de Table1 et affichage du champ Texte (à toi d'adapter les noms de champs et, je suppose stocker les valeurs en variables pour l'affichage du diagramme).

ctx = XSCRIPTCONTEXT.getComponentContext()
smgr = ctx.getServiceManager()
oDoc = XSCRIPTCONTEXT.getDocument()

oCC = oDoc.getCurrentController()
oDS = oCC.DataSource
oAC = oDS.getConnection("","")
oRowSet = smgr.createInstanceWithContext("com.sun.star.sdb.RowSet", ctx)
oRowSet.ActiveConnection = oAC
oRowSet.CommandType = TABLE
oRowSet.Command = "Table1" 
oRowSet.execute()
oRowSet.beforeFirst()

while oRowSet.next():
    sTexte = oRowSet.getColumns().getByName("Texte").getString()
    MessageBox(WARNINGBOX, BUTTONS_OK, "Titre", sTexte)

Voir ParcourirTable.odb

Cordialement

éditer signaler supprimer permalien plus
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2021-04-04 18:09:45 +0200

Consultée: 41 fois

Mise à jour: Apr 18