Base : mise à jour des vues

classic Classic list List threaded Threaded
6 messages Options
demande_aide_fr demande_aide_fr
Reply | Threaded
Open this post in threaded view
|

Base : mise à jour des vues

Bonjour

Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.


Email:: [hidden email]
Sujet:: Base : mise à jour des vues
OS:: Windows 7
Version:: 5.4.x
Question:: Bonjour,
Pour me lancer dans l’utilisation de LibO Base, j’ai décidé d’importer des fichiers bruts (en format MT940 de mon e-banking, format texte qui demande un gros travail de traitement) auxquels je souhaite faire subir une série de transformations pour sortir des données à intégrer dans ma comptabilité sur calc. A chaque importation c’est entre un et quatre fichiers qu’il faut importer, une opération que je veux pouvoir répéter, régulièrement ou pas. J’ai fait ce genre d’opération sur Access, sur d’autres types de fichiers, mais j’ai très envie de basculer du côté libre !

Pour le traitement des données j’ai une cascade de requêtes, comptez autour de quinze, ce que LibO n’aime pas. J’ai compris que je peux faire des vues qui stabilisent la cascade et lui permettent de se dérouler comme je veux… Très bien pour la première fois. Mais comment faire quand je passe à une nouvelle importation ? Je pensais n’avoir qu’à indiquer à la première requête de reprendre les données d’une autre table. En SQL (que je balbutie), il me suffit de changer le nom de la table dans la clause FROM.

Oui, mais comment la suite du processus se met-elle à jour avec les données de la nouvelle table brute ? Dois-je refaire toutes les vues ? Y a-t-il moyen de monter une macro pour cela ? Il est essentiel, dans un tel projet, que le traitement soit simple à faire et je veux donc limiter les manips au strict nécessaire.
Merci pour vos lumières !

Étienne


--
Envoyez un mail à [hidden email] pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
Bernard Schoenacker Bernard Schoenacker
Reply | Threaded
Open this post in threaded view
|

Re: Base : mise à jour des vues



----- Mail original -----

> De: "demande aide fr" <[hidden email]>
> À: [hidden email]
> Envoyé: Lundi 26 Février 2018 18:09:25
> Objet: [fr-users] Base : mise à jour des vues
>
> Bonjour
>
> Voici une nouvelle question envoyée à l'aide du formulaire de demande
> d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
> Si vous répondez, merci de penser à utiliser la fonction "répondre à
> tous" de votre logiciel de courrier électronique de façon que le
> demandeur reçoive une copie de votre réponse.
>
>
> Email:: [hidden email]
> Sujet:: Base : mise à jour des vues
> OS:: Windows 7
> Version:: 5.4.x
> Question:: Bonjour,
> Pour me lancer dans l’utilisation de LibO Base, j’ai décidé
> d’importer des fichiers bruts (en format MT940 de mon e-banking,
> format texte qui demande un gros travail de traitement) auxquels je
> souhaite faire subir une série de transformations pour sortir des
> données à intégrer dans ma comptabilité sur calc. A chaque
> importation c’est entre un et quatre fichiers qu’il faut importer,
> une opération que je veux pouvoir répéter, régulièrement ou pas.
> J’ai fait ce genre d’opération sur Access, sur d’autres types de
> fichiers, mais j’ai très envie de basculer du côté libre !
>
> Pour le traitement des données j’ai une cascade de requêtes, comptez
> autour de quinze, ce que LibO n’aime pas. J’ai compris que je peux
> faire des vues qui stabilisent la cascade et lui permettent de se
> dérouler comme je veux… Très bien pour la première fois. Mais
> comment faire quand je passe à une nouvelle importation ? Je pensais
> n’avoir qu’à indiquer à la première requête de reprendre les données
> d’une autre table. En SQL (que je balbutie), il me suffit de changer
> le nom de la table dans la clause FROM.
>
> Oui, mais comment la suite du processus se met-elle à jour avec les
> données de la nouvelle table brute ? Dois-je refaire toutes les vues
>  ? Y a-t-il moyen de monter une macro pour cela ? Il est essentiel,
> dans un tel projet, que le traitement soit simple à faire et je veux
> donc limiter les manips au strict nécessaire.
> Merci pour vos lumières !
>
> Étienne
>

bonjour,
 

voici un script python pour convertir ver du csv :

https://github.com/mhalder/mt940


à vous de voir comment faire pour windows ...

slt
bernard

--
Envoyez un mail à [hidden email] pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
Thierry Jeanneret Thierry Jeanneret
Reply | Threaded
Open this post in threaded view
|

Re: Base : mise à jour des vues

In reply to this post by demande_aide_fr
Bonjour,
Si vous décortiquez de toutes façons les fichiers reçus, puis-je vous suggérer de générer ligne à ligne les requêtes SQL d'insertion et de les mettre dans un fichier dédié ?
Vous pouvez ensuite l'exécuter par l'option SQL offerte par Base, ou par une macro qui le lira ligne à ligne et exécutera les commandes qu'il y trouvera.
J'ai au cours de ma carrière chargé des tables de plusieurs milliers de lignes ainsi, lorsque la source était vraiment "bizarre".

Thierry


> Le 26 févr. 2018 à 18:09, [hidden email] a écrit :
>
> Bonjour
>
> Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
> Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.
>
>
> Email:: [hidden email]
> Sujet:: Base : mise à jour des vues
> OS:: Windows 7
> Version:: 5.4.x
> Question:: Bonjour,
> Pour me lancer dans l’utilisation de LibO Base, j’ai décidé d’importer des fichiers bruts (en format MT940 de mon e-banking, format texte qui demande un gros travail de traitement) auxquels je souhaite faire subir une série de transformations pour sortir des données à intégrer dans ma comptabilité sur calc. A chaque importation c’est entre un et quatre fichiers qu’il faut importer, une opération que je veux pouvoir répéter, régulièrement ou pas. J’ai fait ce genre d’opération sur Access, sur d’autres types de fichiers, mais j’ai très envie de basculer du côté libre !
>
> Pour le traitement des données j’ai une cascade de requêtes, comptez autour de quinze, ce que LibO n’aime pas. J’ai compris que je peux faire des vues qui stabilisent la cascade et lui permettent de se dérouler comme je veux… Très bien pour la première fois. Mais comment faire quand je passe à une nouvelle importation ? Je pensais n’avoir qu’à indiquer à la première requête de reprendre les données d’une autre table. En SQL (que je balbutie), il me suffit de changer le nom de la table dans la clause FROM.
>
> Oui, mais comment la suite du processus se met-elle à jour avec les données de la nouvelle table brute ? Dois-je refaire toutes les vues ? Y a-t-il moyen de monter une macro pour cela ? Il est essentiel, dans un tel projet, que le traitement soit simple à faire et je veux donc limiter les manips au strict nécessaire.
> Merci pour vos lumières !
>
> Étienne
>
>
> --
> Envoyez un mail à [hidden email] pour vous désinscrire
> Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
> Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés

--
Envoyez un mail à [hidden email] pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
ATN ATN
Reply | Threaded
Open this post in threaded view
|

Re: Base : mise à jour des vues

Bonjour,

Un très grand merci pour la réponse ultra-raide! Je suis impressionné et
il m'a fallu nettement plus de temps pour me représenter ce que cela
signifiait concrètement!

La suggestion m'intéresse effectivement. Je la comprends comme ça: je
regroupe toutes mes requêtes/instructions SQL dans un fichier spécifique
que Base peut exécuter ligne par ligne. Si le principe m'apparaît
presque clair, j'ai encore des questions:

  * Quels formats de fichiers Base peut-il lire et exécuter de cette
    manière, et comment indiquer à base de lire ce fichier pour en
    exécuter les commandes?

Habitué au QBE d'Access, je ne sais pas très bien comment enchaîner les
instructions SQL dans ce fichier. Dans mon projet, je pensais enchaîner
les requêtes dans une logique de "pas à pas", chaque groupe traitant un
niveau de cas particuliers dont mon fichier d'origine est truffé,
aboutissant sur une table intermédiaire avant de passer au niveau
suivant.Pour schématiser, il s'agissant de d'abord repérer les
références de lignes (dont la longueur varie), puis repérer les types
d'écriture (groupes de 18 lignes) dont l'identifiant varie, puis repérer
les blocs d'info élémentaires dont la longueur et la place, voire la
ligne, varient. Chaque niveau demande plusieurs requêtes faisant parfois
appel à des tables de référence spécifiques pour d'abord repérer les
éléments déterminants des cas particuliers, puis les identifier et enfin
les exploiter. Je me suis vite familiarisé avec la commande CASEWHEN!

  * Est-ce que je peux reproduire une telle cascade de requêtes dans un
    fichier d'instructions SQL? Pour cela, il me faut au moins nommer
    chaque requête (ce que je ne sais pas faire avec une commande SQL)
    ou envoyer les résultats de chaque instruction SELECT dans une
    table. Comment cela se fait-il avec HSQLBD, que j'utilise avec Base?
    La clause SELECT INTO marche-t-elle dans ce cas?
  * Ou alors me faut-il adopter une logique de sous-requêtes imbriquées?
    Je suis prêt à faire ce pas méthodologique (un poil audacieux vu mon
    niveau en SQL), mais je pense que je n'éviterai pas de devoir passer
    par des tables intermédiaires - ou des vues - vu que je change de
    niveau dans mon décorticage, passant de l'analyse des lignes à celle
    des blocs ce qui me force à passer par celui des écritures (groupes
    de lignes). J'utilisais beaucoup les tables intermédiaires dans ce
    type de situations sur ACCESS. La question de savoir envoyer les
    résultats des requêtes SELECT dans des tables se pose donc de toutes
    façons.

Merci encore pour vos lumières, j'ai décidément besoin d'éclairages!

Étienne

Étienne Dollfus
20 rue du Village
CH-1273 Arzier
022 366 08 79
077 421 60 70

Le 26.02.2018 à 18:28, Thierry Jeanneret a écrit :

> Bonjour,
> Si vous décortiquez de toutes façons les fichiers reçus, puis-je vous suggérer de générer ligne à ligne les requêtes SQL d'insertion et de les mettre dans un fichier dédié ?
> Vous pouvez ensuite l'exécuter par l'option SQL offerte par Base, ou par une macro qui le lira ligne à ligne et exécutera les commandes qu'il y trouvera.
> J'ai au cours de ma carrière chargé des tables de plusieurs milliers de lignes ainsi, lorsque la source était vraiment "bizarre".
>
> Thierry
>
>
>> Le 26 févr. 2018 à 18:09, [hidden email] a écrit :
>>
>> Bonjour
>>
>> Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
>> Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.
>>
>>
>> Email:: [hidden email]
>> Sujet:: Base : mise à jour des vues
>> OS:: Windows 7
>> Version:: 5.4.x
>> Question:: Bonjour,
>> Pour me lancer dans l’utilisation de LibO Base, j’ai décidé d’importer des fichiers bruts (en format MT940 de mon e-banking, format texte qui demande un gros travail de traitement) auxquels je souhaite faire subir une série de transformations pour sortir des données à intégrer dans ma comptabilité sur calc. A chaque importation c’est entre un et quatre fichiers qu’il faut importer, une opération que je veux pouvoir répéter, régulièrement ou pas. J’ai fait ce genre d’opération sur Access, sur d’autres types de fichiers, mais j’ai très envie de basculer du côté libre !
>>
>> Pour le traitement des données j’ai une cascade de requêtes, comptez autour de quinze, ce que LibO n’aime pas. J’ai compris que je peux faire des vues qui stabilisent la cascade et lui permettent de se dérouler comme je veux… Très bien pour la première fois. Mais comment faire quand je passe à une nouvelle importation ? Je pensais n’avoir qu’à indiquer à la première requête de reprendre les données d’une autre table. En SQL (que je balbutie), il me suffit de changer le nom de la table dans la clause FROM.
>>
>> Oui, mais comment la suite du processus se met-elle à jour avec les données de la nouvelle table brute ? Dois-je refaire toutes les vues ? Y a-t-il moyen de monter une macro pour cela ? Il est essentiel, dans un tel projet, que le traitement soit simple à faire et je veux donc limiter les manips au strict nécessaire.
>> Merci pour vos lumières !
>>
>> Étienne
>>
>>
>> --
>> Envoyez un mail à [hidden email] pour vous désinscrire
>> Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
>> Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés


--
Envoyez un mail à [hidden email] pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
Thierry Jeanneret Thierry Jeanneret
Reply | Threaded
Open this post in threaded view
|

Re: Base : mise à jour des vues

Bonjour,

Je pars du principe que vous voulez stocker l'intégralité des messages reçus pour traitement ultérieur.

J'ai jeté un coup d'oeil au format MT940 (https://www.rabobank.com/nl/images/format-description-swift-mt940-structured-en.pdf <https://www.rabobank.com/nl/images/format-description-swift-mt940-structured-en.pdf>).
Ma suggestion valait pour un fichier déjà traité, réduit en tables homogènes. Manifestement, ce n'est pas votre point de départ.

Je tenterais donc d'utiliser le script Python indiqué dans la réponse de Bernard pour étendre l'information d'origine en tables cohérentes. Au format .csv.
Ensuite, tout dépend de la structure que ce script vous fournira. Le principal problème me semble être le transport des clés entre la table principale (le corps obligatoire du message) et les potentielles sections redondantes, qui devraient être stockées dans leurs propres tables.

L'import d'un .csv dans un tableur est simple. Ensuite on peut copier la feuille obtenue depuis le tableur dans Base, en veillant à ne prendre que les données sinon on écrase la table existante. On peut aussi partir de ce fichier .csv pour générer les requêtes que j'évoquais dans mon premier post.

Mais si vous utilisez fréquemment ce système, il me semble préférable de mettre en place une mécanique complètement écrite en BASIC, exploitant directement le fichier d'origine. Ca implique la lecture ligne à ligne du fichier, la segmentation de chaque ligne en fonction des tags trouvés et l'insertion de chaque segment par une requête SQL appropriée. Rien de tout ça ne me semble très complexe, même dans l'environnement LibreOffice, mais une description complète me semble au-delà du scope de ce forum.

Je ne sais pas quel est votre niveau de confort avec les Macros, SQL & Cie. J'ai trouvé des documentations utiles ici : https://wiki.documentfoundation.org/Documentation/Publications#User_Guides <https://wiki.documentfoundation.org/Documentation/Publications#LibreOffice_Base_Handbook>, notamment pour ce qui concerne l'accès aux bases HSQLDB depuis les macros BASIC.

Je me réfère aussi beaucoup aux publications d'Andrew Pitnoiak http://www.pitonyak.org, que je trouve remarquables.
 
A dispo,

Thierry




> Le 27 févr. 2018 à 12:00, Étienne Dollfus <[hidden email]> a écrit :
>
> Bonjour,
>
> Un très grand merci pour la réponse ultra-raide! Je suis impressionné et il m'a fallu nettement plus de temps pour me représenter ce que cela signifiait concrètement!
> La suggestion m'intéresse effectivement. Je la comprends comme ça: je regroupe toutes mes requêtes/instructions SQL dans un fichier spécifique que Base peut exécuter ligne par ligne. Si le principe m'apparaît presque clair, j'ai encore des questions:
>
> Quels formats de fichiers Base peut-il lire et exécuter de cette manière, et comment indiquer à base de lire ce fichier pour en exécuter les commandes?
> Habitué au QBE d'Access, je ne sais pas très bien comment enchaîner les instructions SQL dans ce fichier. Dans mon projet, je pensais enchaîner les requêtes dans une logique de "pas à pas", chaque groupe traitant un niveau de cas particuliers dont mon fichier d'origine est truffé, aboutissant sur une table intermédiaire avant de passer au niveau suivant.Pour schématiser, il s'agissant de d'abord repérer les références de lignes (dont la longueur varie), puis repérer les types d'écriture (groupes de 18 lignes) dont l'identifiant varie, puis repérer les blocs d'info élémentaires dont la longueur et la place, voire la ligne, varient. Chaque niveau demande plusieurs requêtes faisant parfois appel à des tables de référence spécifiques pour d'abord repérer les éléments déterminants des cas particuliers, puis les identifier et enfin les exploiter. Je me suis vite familiarisé avec la commande CASEWHEN!
> Est-ce que je peux reproduire une telle cascade de requêtes dans un fichier d'instructions SQL? Pour cela, il me faut au moins nommer chaque requête (ce que je ne sais pas faire avec une commande SQL) ou envoyer les résultats de chaque instruction SELECT dans une table. Comment cela se fait-il avec HSQLBD, que j'utilise avec Base? La clause SELECT INTO marche-t-elle dans ce cas?
> Ou alors me faut-il adopter une logique de sous-requêtes imbriquées? Je suis prêt à faire ce pas méthodologique (un poil audacieux vu mon niveau en SQL), mais je pense que je n'éviterai pas de devoir passer par des tables intermédiaires - ou des vues - vu que je change de niveau dans mon décorticage, passant de l'analyse des lignes à celle des blocs ce qui me force à passer par celui des écritures (groupes de lignes). J'utilisais beaucoup les tables intermédiaires dans ce type de situations sur ACCESS. La question de savoir envoyer les résultats des requêtes SELECT dans des tables se pose donc de toutes façons.
> Merci encore pour vos lumières, j'ai décidément besoin d'éclairages!
>
> Étienne
> Étienne Dollfus
> 20 rue du Village
> CH-1273 Arzier
> 022 366 08 79
> 077 421 60 70
> Le 26.02.2018 à 18:28, Thierry Jeanneret a écrit :
>> Bonjour,
>> Si vous décortiquez de toutes façons les fichiers reçus, puis-je vous suggérer de générer ligne à ligne les requêtes SQL d'insertion et de les mettre dans un fichier dédié ?
>> Vous pouvez ensuite l'exécuter par l'option SQL offerte par Base, ou par une macro qui le lira ligne à ligne et exécutera les commandes qu'il y trouvera.
>> J'ai au cours de ma carrière chargé des tables de plusieurs milliers de lignes ainsi, lorsque la source était vraiment "bizarre".
>>
>> Thierry
>>
>>
>>> Le 26 févr. 2018 à 18:09, [hidden email] <mailto:[hidden email]> a écrit :
>>>
>>> Bonjour
>>>
>>> Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/ <http://fr.libreoffice.org/get-help/poser-une-question/>).
>>> Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.
>>>
>>>
>>> Email:: [hidden email] <mailto:[hidden email]>
>>> Sujet:: Base : mise à jour des vues
>>> OS:: Windows 7
>>> Version:: 5.4.x
>>> Question:: Bonjour,
>>> Pour me lancer dans l’utilisation de LibO Base, j’ai décidé d’importer des fichiers bruts (en format MT940 de mon e-banking, format texte qui demande un gros travail de traitement) auxquels je souhaite faire subir une série de transformations pour sortir des données à intégrer dans ma comptabilité sur calc. A chaque importation c’est entre un et quatre fichiers qu’il faut importer, une opération que je veux pouvoir répéter, régulièrement ou pas. J’ai fait ce genre d’opération sur Access, sur d’autres types de fichiers, mais j’ai très envie de basculer du côté libre !
>>>
>>> Pour le traitement des données j’ai une cascade de requêtes, comptez autour de quinze, ce que LibO n’aime pas. J’ai compris que je peux faire des vues qui stabilisent la cascade et lui permettent de se dérouler comme je veux… Très bien pour la première fois. Mais comment faire quand je passe à une nouvelle importation ? Je pensais n’avoir qu’à indiquer à la première requête de reprendre les données d’une autre table. En SQL (que je balbutie), il me suffit de changer le nom de la table dans la clause FROM.
>>>
>>> Oui, mais comment la suite du processus se met-elle à jour avec les données de la nouvelle table brute ? Dois-je refaire toutes les vues ? Y a-t-il moyen de monter une macro pour cela ? Il est essentiel, dans un tel projet, que le traitement soit simple à faire et je veux donc limiter les manips au strict nécessaire.
>>> Merci pour vos lumières !
>>>
>>> Étienne
>>>
>>>
>>> --
>>> Envoyez un mail à [hidden email] <mailto:[hidden email]> pour vous désinscrire
>>> Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/ <https://listarchives.libreoffice.org/fr/users/>
>>> Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
>


--
Envoyez un mail à [hidden email] pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
ATN ATN
Reply | Threaded
Open this post in threaded view
|

Re: Base : mise à jour des vues

Re-bonjour,

Que voilà de la matière à réflexion!

Oui, mon point de départ est bien un fichier encore passablement "en
vrac". Effectivement, importer un fichier texte sur Base ne me pose pas
problème, c'est bien ce que je fais... mais à vous lire je vois que ce
n'est peut-être pas la meilleure option.

Il me reste deux choses à faire:

  * affiner mon analyse de mes fichiers MT940 pour être plus précis sur
    les blocs et les tags qui me permettent de les identifier. Je vais
    demander à ma banque si elle a un document qui présente sa manière
    de gérer le format MTT940 puis je décortiquerai ces cas particuliers.
  * lire la documentation que vous m'avez transmise pour voir si je peux
    utiliser le script Python et comment je peux gérer mes manœuvres de
    décorticage par des macros basic ou d'autres possibilités. Il me
    faudra faire avec le fait que je n'ai aucune connaissance en
    programmation.

De quoi m'occuper quelques jours! Merci beaucoup, vos réponses me
semblent orienter mon travail, vers quelque chose de plus productif.

Bien cordialement,

Étienne

Étienne Dollfus
20 rue du Village
CH-1273 Arzier
022 366 08 79
077 421 60 70

Le 27.02.2018 à 13:56, Thierry Jeanneret a écrit :

> Bonjour,
>
> Je pars du principe que vous voulez stocker l'intégralité des messages
> reçus pour traitement ultérieur.
>
> J'ai jeté un coup d'oeil au format MT940
> (https://www.rabobank.com/nl/images/format-description-swift-mt940-structured-en.pdf).
>
> Ma suggestion valait pour un fichier déjà traité, réduit en tables
> homogènes. Manifestement, ce n'est pas votre point de départ.
>
> Je tenterais donc d'utiliser le script Python indiqué dans la réponse
> de Bernard pour étendre l'information d'origine en tables cohérentes.
> Au format .csv.
> Ensuite, tout dépend de la structure que ce script vous fournira. Le
> principal problème me semble être le transport des clés entre la table
> principale (le corps obligatoire du message) et les potentielles
> sections redondantes, qui devraient être stockées dans leurs propres
> tables.
>
> L'import d'un .csv dans un tableur est simple. Ensuite on peut copier
> la feuille obtenue depuis le tableur dans Base, en veillant à ne
> prendre que les données sinon on écrase la table existante. On peut
> aussi partir de ce fichier .csv pour générer les requêtes que
> j'évoquais dans mon premier post.
>
> Mais si vous utilisez fréquemment ce système, il me semble préférable
> de mettre en place une mécanique complètement écrite en BASIC,
> exploitant directement le fichier d'origine. Ca implique la lecture
> ligne à ligne du fichier, la segmentation de chaque ligne en fonction
> des tags trouvés et l'insertion de chaque segment par une requête SQL
> appropriée. Rien de tout ça ne me semble très complexe, même dans
> l'environnement LibreOffice, mais une description complète me semble
> au-delà du scope de ce forum.
>
> Je ne sais pas quel est votre niveau de confort avec les Macros, SQL &
> Cie. J'ai trouvé des documentations utiles ici :
> https://wiki.documentfoundation.org/Documentation/Publications#User_Guides 
> <https://wiki.documentfoundation.org/Documentation/Publications#LibreOffice_Base_Handbook>,
> notamment pour ce qui concerne l'accès aux bases HSQLDB depuis les
> macros BASIC.
>
> Je me réfère aussi beaucoup aux publications d'Andrew Pitnoiak
> http://www.pitonyak.org, que je trouve remarquables.
> A dispo,
>
> Thierry
>
>
>
>
>> Le 27 févr. 2018 à 12:00, Étienne Dollfus <[hidden email]
>> <mailto:[hidden email]>> a écrit :
>>
>> Bonjour,
>>
>> Un très grand merci pour la réponse ultra-raide! Je suis impressionné
>> et il m'a fallu nettement plus de temps pour me représenter ce que
>> cela signifiait concrètement!
>>
>> La suggestion m'intéresse effectivement. Je la comprends comme ça: je
>> regroupe toutes mes requêtes/instructions SQL dans un fichier
>> spécifique que Base peut exécuter ligne par ligne. Si le principe
>> m'apparaît presque clair, j'ai encore des questions:
>>
>>   * Quels formats de fichiers Base peut-il lire et exécuter de cette
>>     manière, et comment indiquer à base de lire ce fichier pour en
>>     exécuter les commandes?
>>
>> Habitué au QBE d'Access, je ne sais pas très bien comment enchaîner
>> les instructions SQL dans ce fichier. Dans mon projet, je pensais
>> enchaîner les requêtes dans une logique de "pas à pas", chaque groupe
>> traitant un niveau de cas particuliers dont mon fichier d'origine est
>> truffé, aboutissant sur une table intermédiaire avant de passer au
>> niveau suivant.Pour schématiser, il s'agissant de d'abord repérer les
>> références de lignes (dont la longueur varie), puis repérer les types
>> d'écriture (groupes de 18 lignes) dont l'identifiant varie, puis
>> repérer les blocs d'info élémentaires dont la longueur et la place,
>> voire la ligne, varient. Chaque niveau demande plusieurs requêtes
>> faisant parfois appel à des tables de référence spécifiques pour
>> d'abord repérer les éléments déterminants des cas particuliers, puis
>> les identifier et enfin les exploiter. Je me suis vite familiarisé
>> avec la commande CASEWHEN!
>>
>>   * Est-ce que je peux reproduire une telle cascade de requêtes dans
>>     un fichier d'instructions SQL? Pour cela, il me faut au moins
>>     nommer chaque requête (ce que je ne sais pas faire avec une
>>     commande SQL) ou envoyer les résultats de chaque instruction
>>     SELECT dans une table. Comment cela se fait-il avec HSQLBD, que
>>     j'utilise avec Base? La clause SELECT INTO marche-t-elle dans ce
>>     cas?
>>   * Ou alors me faut-il adopter une logique de sous-requêtes
>>     imbriquées? Je suis prêt à faire ce pas méthodologique (un poil
>>     audacieux vu mon niveau en SQL), mais je pense que je n'éviterai
>>     pas de devoir passer par des tables intermédiaires - ou des vues
>>     - vu que je change de niveau dans mon décorticage, passant de
>>     l'analyse des lignes à celle des blocs ce qui me force à passer
>>     par celui des écritures (groupes de lignes). J'utilisais beaucoup
>>     les tables intermédiaires dans ce type de situations sur ACCESS.
>>     La question de savoir envoyer les résultats des requêtes SELECT
>>     dans des tables se pose donc de toutes façons.
>>
>> Merci encore pour vos lumières, j'ai décidément besoin d'éclairages!
>>
>> Étienne
>>
>> Étienne Dollfus
>> 20 rue du Village
>> CH-1273 Arzier
>> 022 366 08 79
>> 077 421 60 70
>> Le 26.02.2018 à 18:28, Thierry Jeanneret a écrit :
>>> Bonjour,
>>> Si vous décortiquez de toutes façons les fichiers reçus, puis-je vous suggérer de générer ligne à ligne les requêtes SQL d'insertion et de les mettre dans un fichier dédié ?
>>> Vous pouvez ensuite l'exécuter par l'option SQL offerte par Base, ou par une macro qui le lira ligne à ligne et exécutera les commandes qu'il y trouvera.
>>> J'ai au cours de ma carrière chargé des tables de plusieurs milliers de lignes ainsi, lorsque la source était vraiment "bizarre".
>>>
>>> Thierry
>>>
>>>
>>>> Le 26 févr. 2018 à 18:09,[hidden email]  a écrit :
>>>>
>>>> Bonjour
>>>>
>>>> Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
>>>> Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.
>>>>
>>>>
>>>> Email::[hidden email]  
>>>> Sujet:: Base : mise à jour des vues
>>>> OS:: Windows 7
>>>> Version:: 5.4.x
>>>> Question:: Bonjour,
>>>> Pour me lancer dans l’utilisation de LibO Base, j’ai décidé d’importer des fichiers bruts (en format MT940 de mon e-banking, format texte qui demande un gros travail de traitement) auxquels je souhaite faire subir une série de transformations pour sortir des données à intégrer dans ma comptabilité sur calc. A chaque importation c’est entre un et quatre fichiers qu’il faut importer, une opération que je veux pouvoir répéter, régulièrement ou pas. J’ai fait ce genre d’opération sur Access, sur d’autres types de fichiers, mais j’ai très envie de basculer du côté libre !
>>>>
>>>> Pour le traitement des données j’ai une cascade de requêtes, comptez autour de quinze, ce que LibO n’aime pas. J’ai compris que je peux faire des vues qui stabilisent la cascade et lui permettent de se dérouler comme je veux… Très bien pour la première fois. Mais comment faire quand je passe à une nouvelle importation ? Je pensais n’avoir qu’à indiquer à la première requête de reprendre les données d’une autre table. En SQL (que je balbutie), il me suffit de changer le nom de la table dans la clause FROM.
>>>>
>>>> Oui, mais comment la suite du processus se met-elle à jour avec les données de la nouvelle table brute ? Dois-je refaire toutes les vues ? Y a-t-il moyen de monter une macro pour cela ? Il est essentiel, dans un tel projet, que le traitement soit simple à faire et je veux donc limiter les manips au strict nécessaire.
>>>> Merci pour vos lumières !
>>>>
>>>> Étienne
>>>>
>>>>
>>>> --
>>>> Envoyez un mail àusers+[hidden email]  pour vous désinscrire
>>>> Les archives de la liste sont disponibles àhttps://listarchives.libreoffice.org/fr/users/
>>>> Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
>>
>


--
Envoyez un mail à [hidden email] pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés