10 Replies Latest reply: Aug 30, 2017 2:46 AM by f m RSS

    erreur chargement script - append qvd

    f m

      Bonjour

       

      j'ai une application dans laquelle je charge des fichiers Excel (XLS) systématiquement identique. Seul le nom du fichier change mensuellement.

      Pour limiter les temps de chargement et supprimer les fichiers XLS , je souhaitais créer un qvd et concatener mes fichiers XLS au fur et a mesure.

      Afin d'avoir un identifiant unique, j'ai essayé de récupérer le nom du fichier (c'est pas terrible mais je ne trouve pas d'autre solution pour avoir un id unique) puis  ensuite je charge dans un QVD sauf si le nom du fichier existe mais en fait ça ne marche pas!!

       

      j'ai essayé de créer un champ date d'extraction (today() as dateextract et de mettre uen clause where not existe today mais sanss suces également

       

      ou alors j'ai un message d'erreur a la fin du script. ou alors si je supprime mes données je n'ai plus les data dans mon qvd .. bref .. désarroi 

       

      J'ai regardé dans les forums, et sur les exemple que j'ai trouvé je ne peux pas les mettre en oeuvre car  je n'ai pas de "primary key" dans mes fichiers XLS. 

       

      Pourriez vous m'aider sur ce point svp? merci

       

       

      mon script :

       

      Data:

      LOAD [Compte d'achat],

           [Libellé Compte],

           [Compte matière],

           [Libellé Cpt matière],

            [QTE STK INI],

           [VAL STK INI],

           [QTE ENTREES],

           [VAL ENTREES],

           [QTE SORTIE],

           [VAL SORTIES],

           [QTE en stock],

           [Valeur stock],

           filename() as nomfichier

      FROM

      [C:\Users\xxxxx\Documents\_01BKP\DHAL\xxxxxx\*.xls]

      (biff, embedded labels, header is 1 lines, table is Rapport1$);

       

      qvd:

      Concatenate LOAD

      [Compte d'achat],

           [Libellé Compte],

           [Compte matière],

           [Libellé Cpt matière],

           [QTE STK INI],

           [VAL STK INI],

           [QTE ENTREES],

           [VAL ENTREES],

           [QTE SORTIE],

           [VAL SORTIES],

           [QTE en stock],

           [Valeur stock],

           nomfichier

      FROM

      [C:\Users\xxx\Documents\_01BKP\DHAL\xxxxx\Suivi.qvd](qvd) Where not Exists(nomfichier) ;

       

       

      Store Data into [C:\Users\xxxx\Documents\_01BKP\DHAL\xxxxxx\Suivi.qvd]

      (qvd);

        • Re: erreur chargement script - append qvd
          Kevin Chevrier

          Bonjour,

           

          J'aurai tendance à enlever "qvd:" avant ton concatenate.

           

          Kevin

            • Re: erreur chargement script - append qvd
              f m

              Bonjour

               

              Merci de ta réponse.

              ça marche "a moitié" dans le sens ou lorsque je supprime mes fichiers XLS, je n'ai plus de données. par contre je n'ai plsu de message d'erreur.

              je pensais que c'était le QVD qui allait servir de base de données ? suis je obligé de conserver mes extractions excel? 

                • Re: erreur chargement script - append qvd
                  Kevin Chevrier

                  Je ne comprends pas. Actuellement tu store "Data". Donc pourquoi ne pas concaténer tout dans cette même table si c'est ce que tu souhaites ?

                   

                  Kevin

                    • Re: erreur chargement script - append qvd
                      f m

                      heu.... je ne comprends pas trop.

                       

                      en fait ce que je souhaiterai c'est :

                       

                      - charger mes fichier(s) XLS dans un QVD (puis les supprimer / déplacer) (il s'agit des fichiers pour créer un historique des 2 dernières années)

                      - travailler depuis le QVD dans mon application

                      - incrémenter au fur et a mesure des périodes mes autres fichiers xls dans mon QVD en fonction d'une clause (soit le nom du fichier, soit un champ de date soit une autre solution.

                      - puis supprimer / déplacer les fichiers excel dont je n'aurais plus besoin

                       

                      est ce plus clair?

                        • Re: erreur chargement script - append qvd
                          Christophe Brault

                          Bonjour,

                           

                          De ce que j'ai compris de ton besoin, je pense qu'il faut que tu fasses l'inverse dans ton script :

                           

                          1 : Charger le QVD créé à partir des fichier excel

                          2 : charger les fichiers excel existant dans ton dossier avec un where not exists(nomfichier,filename())

                          3 : faire un store de ton QVD qui ecrasera le précédent

                            • Re: erreur chargement script - append qvd
                              f m

                              Bonsoir

                               

                              Effectivement j'ai essayé mais je dois avoir un pb avec ma clause where not exist car mes données ne se charge pas.

                              sans doute a cause du nom de fichier

                              j'ai créé un  champ  'MoisYear' pour pouvoir faire la même chose ( ne pas charger dans mon qvd les données ou 'MoisYear' seraient pésent quelque soit le nom du fichier mais je n'y arrive pas ..

                               

                              une petite idée?

                    • Re: erreur chargement script - append qvd
                      Massimo Grossi

                      Maybe

                      Change the script with your fields, files, xls, path, etc.........



                      DIRECTORY;

                       

                      //

                      // read all excel, add a filename_xls field

                      //

                      Data:

                      LOAD

                          cod,

                          desc,

                          FileName() as filename,

                          FileName() as filename_xls

                      FROM

                      [.\*.xlsx]

                      (ooxml, embedded labels, table is Foglio1);

                       

                      //

                      // if qvd exists read the record with filename <> filename_xls

                      //

                      IF QvdCreateTime('Data.qvd') THEN

                          TRACE 'Read QVD';

                          Concatenate (Data)

                          load * from Data.qvd (qvd)

                          where

                                not exists (filename_xls, filename)

                          ;

                      ELSE

                          TRACE 'Do not Read QVD';

                      ENDIF

                       

                      //

                      // overwrite qvd without filename_xls field

                      //

                      DROP field filename_xls;

                      Store Data into Data.qvd (qvd);

                      Drop table Data;




                        • Re: erreur chargement script - append qvd
                          f m

                          HI Massimo,

                           

                          apologize for my english .. not as fluent as your's..

                           

                          Il take your script , it seem's working with  no errors but after loading i've no data ? 

                          I understand the operation but i don't know all the code.. can you have a look please?

                           

                          Data:

                          LOAD

                               x,

                               y,

                               [VAL SORTIES],

                               [QTE en stock],

                               [Valeur stock],

                              FileName() as filename,

                               FileName() as filename_xls,

                               Date(Date#(MOIS_en_date),'MMMM-YYYY') as _MoisYearStkIni,

                                timestamp(now()) as _DateImport

                           

                          FROM

                          [C:\Users\xxx\Documents\_01BKP\DHAL\xxxxx\*.xls]

                          (biff, embedded labels, header is 1 lines, table is Rapport1$);

                           

                           

                          //if qvd exists read the record with filename <> filename_xls

                           

                          IF QvdCreateTime('Data.qvd') THEN

                              TRACE 'Read QVD';

                             

                              Concatenate (Data)

                             

                              load * from Data.qvd (qvd)

                           

                                 where

                                    not exists (filename_xls, filename) ;

                                   

                          ELSE

                              TRACE 'Do not Read QVD';

                          ENDIF

                           

                          //

                          // overwrite qvd without filename_xls field

                          //

                          DROP field filename_xls;

                          Store Data into Data.qvd (qvd);

                          Drop table Data;

                            • Re: erreur chargement script - append qvd
                              Massimo Grossi

                              Add a comment to the last line

                              // Drop table Data;

                               

                              Sorry I can't write in french

                              Il y a longtemps que j'ai étudié le Français a l'école, maintenant je ne peux que lire

                                • Re: erreur chargement script - append qvd
                                  f m

                                  Bonjour Massimo

                                   

                                  thank's for you'r reply "en français"  

                                   

                                  My italien is worse than my English ..  mais j'ai adoré Pise ou je suis allé plusieurs fois.. (pas pour voir la tour mais plutôt le centre ville côté des universités) , la toscane est magnifique, j'ai hâte d'y retourner ! 

                                   

                                  So

                                  the script is working only if i let a XLS file in the folder. If there's no xls files, after loading, there's no data in my application. ?

                                   

                                  i have two questions ?

                                  -  is it possible to correct this?  : if there's no xls file have a message box ? or no loading anything? 

                                   

                                  after a night of sleep, and other tests, I think it's better to have a clause where no exists little different for secure the app and be sure that I don't load the same data twice (or more)

                                   

                                   

                                  I made a filed like that   : Date(Date#(MOIS_en_date),'MMMM-YYYY') as _MoisYearStkIn

                                  - is it possible to make a clause where no exists with this ?

                                   

                                  Thank you if you can have a look

                                   

                                  François