calimeria
Messages postés30Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention11 août 2009
-
29 juil. 2008 à 09:29
bonjourcheval
Messages postés228Date d'inscriptionmercredi 13 décembre 2000StatutMembreDernière intervention 8 août 2011
-
30 juil. 2008 à 16:21
Boonjour à tous
je réalise une application qui lit des fichiers, récupère les données qu'ils contiennent et les met en page pour les imprimer. Il faudrait que l'utilisateur puisse selectionner plusieurs fichiers en une fois (les fichiers contiennent les temps de cycle d'une machine et il y a 1000 cycles, donc il ne peut pas les imprimer un à un). J'utilise un objet Common Dialog que j'ai mis sur ma feuille avec un bouton.
1) Le premier probleme, c'est que quand dans mon code j'écrit :
>Private Sub btn_continue_Click( )
>...
>...
>CommonDialog1.Flags = cdlOFNAllowMultiselect AND cdlOFNExplorer
>CommonDialog1.ShowOpen
>fichier = CommonDialog1.FileName
>....
>...
et que j'exécute, la boite ouvrir s'ouvre bien mais je ne peux toujours prendre qu'un seul fichier, je ne peux pas utiliser Shift ou Ctrl pour en sélectionner plusieurs.
Si quelqu'un sait pourquoi je ne peux pas le faire ...
Merci d'avance
PS : j'ai ajouté cdlOFNExplorer car je ne voulais pas de l'autre interface car elle n'affiche pas les fichiers présents dans le répertoire et donc l'utilisateur est obligé de taper le nom des 30 fichiers séparés d'un espace, enfin je crois.
2) Le second probleme : j'utilise crystal report XI pour le rapport que j'imprime (celui où je viens mettre les données récupérées). Lors de l'exécution du programme, tout va bien : j'utilise une feuille sur laquelle j'ai mis un objet CrystalActiveXReportViewer pour avoir un aperçu (pour mes tests quand je ne prend qu'un seul fichier). L'aperçu du rapport s'ouvre ensuite je le ferme pour en ouvrir un autre et les données se rafraichissent bien. Mais quand je réalise l'empaquetage avec le fichier d'installation etc., et que j'installe l'appli sur l'ordi, les données ne se rafraichissent plus, j'ai beau fermer la feuille d'aperçu les données ne changent pas. J'ai même l'impression que le rapport a gardé les données qui datent d'avant l'installation. J'explique :
- j'ai créé un rapport avec crystal report, je lui ai lié la base de données que j'utilise (celle dans laquelle je recopie les données que contiennent les fichiers). je l'ai enregistré dans le répertoire de travail du projet VB6.
- dans le code de la feuille d'aperçu, je déclare :
>Dim rap As New CRAXDDRT.Report
>Dim appli As New CRAXDDRT.Application
>...
>Set rap = appli.OpenReport(App.Path & "\rapport1.rpt")
>CrystalActiveXReportViewer1.ReportSource = rap
>CrystalActiveXReportViewer1.Refresh
>CrystalActiveXReportViewer1.ViewReport
- dans le code du même bouton que tout à l'heure, je fais :
>Form9.Show
- et au tout début du code de ce même bouton je fais :
>Unload Form9
pour être sûre que les données soient mises à jour
Quand j'empaquette, je mets le fichier de la base de données avec les fichiers d'installation ainsi que le rapport.
.....
En fait, je suis désolée mais tout en écrivant je suis en train de me rendre compte que le rapport ne se rafraichit pas car la base de données à laquelle il est relié n'a pas changé !!!! En effet, j'ai dû mettre le chemin entier amenant au fichier de la base et du coup il n'est pas relié à celle que j'ai ajouté aux fichiers d'installation puisqu'elle n'est plus au même endroit.
Ce qui m'amène à un autre problème : comment pourrais-je faire pour le rattacher "dynamiquement".
Avec un dataenvironnement, je pouvais donner le chemin sous cette forme : App.Path & "\mabase.mdb"
Mais là avec le crystal je ne peux pas le faire.
Donc j'en arrive à la fin de ma longue histoire (désolée ) : le probleme 2 c'est que je n'arrive pas à rafraichir mon rapport car je n'arrive pas à le rattacher "dynamiquement" à la base (lui dire par exemple d'aller voir dans le répertoire de travail ou un truc comme ça)
Je vous remercie d'avance et m'excuse de la longueur du texte mais je voulais être comprise.
PS : cette application sera installée sur des ordinateurs ne possèdant ni VB ni CrystalReport. Encore merci d'avance