bonjour à tous,et encore merci pour toutes vos contributions.Oui, ici aussi on
a profité du soleil hier ;-) et on recommence
aujourd'hui, donc pas de souci Jean-Michel !pour répondre à la question
"d'où viennent ces données ? "C'est un script Python que j'ai programmé, qui
vient
quotidiennement extraire d'un site web en ligne les données
prix/promotions sur 250 produits. Le script constitue une base de
données (le fichier CSV), qui grossit donc tous les jours.Oui : je
pourrais modifier mon script pour ajouter cette fameuse
colonne PromotionExists, mais j'avais envie d'apprendre à me
servir de LibreOffice, que je n'ai jamais vraiment utilisé, donc
je ne voulais pas faire un constat d'échec dès le début ;-)Force est de
constater que BASE + table CSV, ça ne marche pas.
Tant pis.
Initialement, j'étais parti sur cette idée de faire un lien de
données externes dans CALC comme proposé par Yves. Mais le fait de
devoir manuellement "prolonger" les formules jusqu'à la dernière
ligne pour que le graphique final soit à jour ne m'allait pas.
C'est pourquoi je m'étais rabbattu sur l'idée d'une requête dans
BASE (dont la formule n'a pas besoin d'être corrigée
quotidiennement).Donc je reviens à mon idée initiale, mais avec cette
fois-ci comme
problématique de prolonger automatiquement les formules jusqu'à la
dernière ligne. Je vais partir sur une macro je pense.A ce stade, je
devrais pouvoir me débrouiller (il faut juste que
je comprenne quels sont les objets accessibles par macro en
LibreOffice, ansi que leurs attributs et méthodes)Merci à tous pour votre
aide,
et profitez bien de la journée !
Le 29/05/2021 à 14:25, yves dutrieux a
écrit :
bonjour,
supposons ton fichier .csv avec 3 champs dont le dernier
est le champ "promotion".
A partir de calc,
Feuilles - lien vers données externes -choisir ton
fichier .csv
le fichier sera importé dans ta feuille,
dans la colonne D1 : =SI(C1="";0;1)
indiquera 1 si promotion different de zéro (tu
copies/colles cette formule sur toutes les lignes).
Si ensuite, fon fichier csv venait à être modifié : Editon
- liens de données externes- [actualiser]
idée rapide et à l'arrache. A voir si ça peut convenir.
nb: ton problème avec la requêtes est sql est probablement
du à ce que base ne considère pas un fichier .csv comme une
table "standard" sql de base.
Si tu importes ton fichier normalement et le transforme
comme une table, probablement que cela fonctionnera.
Yves
Le sam. 29 mai 2021 à 09:44,[email protected]
écrit :
Merci
à tous les deux.Concernant le
forumhttps://ask.libreoffice.org/fr/questions/,
jel'avais vu, mais il ne m'a pas semblé très actif autour de
Base, etcomme sur la page officielle de LibreOffice, ils mentionnent
que lecanal officiel pour demander de l'aide, c'est la liste...je
suis allépar là.Concernant ma version (obsolète) de LibreOffice, c'est
parceque jetravaille sous Linux, distribution non compilée Gentoo,
qui du
coup atoujours un peu de retard dans la mise à disposition de
paquets stables,pour privilégier la stabilité des versions
officiellement
stables (mêmesi je peux installer la nouvelle version de LibreOffice
en
"forçant" lepaquet jugé instable sous Gentoo)Merci Jean-Michel
(COSTE) pour le lien vers la documentation
(dont ilsemble que vous êtes le traducteur ? Merci pour ça !).J'y
apprends qu'il y a 2 manières de se connecter à un fichier
CSV :1) Tables de texte dans une base de données HSQLDB interne2)Les
tables texte comme base d’une base de données autonomeJ'ai utilisé la 2ème
méthode. Et dans ce cas, la documentation
indique"L’accès aux tables par requêtes est également limité à une
table à lafois et sans l’utilisation defonctions. De même, les
relations ne sont pas prises en
charge"...Si on ne peut pas utiliser de fonctions, ça explique donc
pourquoi macolonne reste toujours vide !Donc j'ai testé la méthode
1). Mais elle ne convient pas non
plus, carje n'ai pas de clé primaire numérique dans mon fichier
CSV...doncimpossible de lier la table (je peux créer le squelette
vide à
l'aide del'instruction SQL, mais pas faire la liaison)Je suis donc un
peu coincé...A l'origine, mon vrai besoin était de créer des analyses
graphiquesdepuis les données sources du fichier CSV, et j'avais besoin
desimplifier le champ "Promotion" par une simple information
"présence ouabsence : 1 ou 0. Et de restituer, pour 1 produit au
choix, unhistorique de prix sous forme de graphique "courbe" et des
batonslorsqu'une période est sous promotion (bâtons à 1 lors d'une
périodesous promotion, et à 0 (donc invisible) hors période de
promotion).Je pensais donc faire le graphique dans CALC, grâce à un
tableau croisédynamique dont la source aurait été une base de données
BASE(enregistrée pour être utilisable dans CALC) qui elle-même
aurait étéliée à mon fichier CSV.Manifestement, je ne peux pas faire
ça.A tout hasard, auriez une idée pour contourner le problème ?En tout cas,
merci de vos contributions fort utiles !Cordialement,Le 29/05/2021 à 08:09,
Jean-Michel PIERRE a écrit :Il est aussi possible de poser les questions sur
cette
page :https://ask.libreoffice.org/fr/questions/Un fichier peut y être
téléversé pour être testéJean-Michel PIERRETél : 05.49.255.333Tél :
06.19.55.73.22Le 29 mai 2021 à 00:53, Jean-Michel [email protected]
écrit :Bonjour,Le 28/05/2021 à 19:23,[email protected] écrit
:Bonjour à tous,C'est la 1ère fois que j'utilise une liste comme
moyen de solliciter de l'aide. J'espère que j'ai bien saisi le
principe, et que mon message n'est pas à côté de la plaque ;-)J'ai
cherché sur Internet pour trouver une
réponse à mon problème, mais aucune des solutions que j'ai
trouvé ne fonctionne, bien qu'elles semblent pertinentes.J'utilise
LibreOffice 6.4.7.2Cette version est obsolète, la dernière version
stable est la 7.06 (mais ce n'est pas la cause du problème)Le
problème : j'ai une table HistoriquePromo (qui
est un fichier CSV, la base de donnée est connectée à ce
fichier CSV). J'ai un champ Promotion dans cette table, qui
contient parfois une information (libellé de la promotion,
c'est du texte). Le reste du temps, il est vide (il n'y a donc
pas de promotion).Mon besoin : Dans une requête SELECT "Article"
"Article", "Description" "Description", "Date" "Date", "Prix"
"Prix", "Promotion" "Promotion" FROM "HistoriquePromo", je
veux ajouter une colonne à la requête qui renvoit 1 si une
promotion est présente (le champ est rempli avec du texte), 0
sinon.J'ai testé : SELECT "Article" "Article",
"Description" "Description", "Date" "Date", "Prix" "Prix",
"Promotion" "Promotion", COALESCE ( "Promotion", 1, 0 )
"PromotionExists" FROM "HistoriquePromo"mais la nouvelle colonne
"PromotionExists" reste
vide. Je n'ai, cependant, pas de message d'erreur.Attention, il y a
deux manières de gérer une table
texte, il est possible que ça ne fonctionne pas dans l'une des
deux. Lire le chapitre 2 du Guide Base
;https://wiki.documentfoundation.org/Documentation/Publications/fr#Guide_Basehttps://wiki.documentfoundation.org/Documentation/Publications/fr#Guide_BaseIl
est précisé dans la documentation que pour qu'une
base CSV soit modifiable, elle doit être munie d'un champ
numérique à valeurs uniques.J'ai testé CASE WHEN "Promotion" = ""
THEN 0 ELSE
1 END : la nouvelle colonne reste vide.J’essaierais CASE "Promotion"
WHEN "" THEN 0 ELSE 1Cordialement,-- Jean-Michel COSTE--Envoyez un mail
à[email protected] vous désinscrireLes archives de la
liste sont disponibles àhttps://listarchives.libreoffice.org/fr/users/Privacy
Policy:https://www.documentfoundation.org/privacy--Envoyez un mail
à[email protected] vous désinscrireLes archives de la
liste sont disponibles àhttps://listarchives.libreoffice.org/fr/users/Privacy
Policy:https://www.documentfoundation.org/privacy
--web site :http://www.molenbaix.com
--
Envoyez un mail à [email protected] pour vous désinscrire
Les archives de la liste sont disponibles à
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy