Bonjour à toutes et à tous.
Je dois modifier une application asp de gestion des congés. Cette modification consiste en la génération + ouverture d'un fichier des prévisions de congés.
La difficulté que je rencontre est que je veux que le fichier soit généré et ouvert seulement quand l'utilisateur clique sur le bouton.
J'ai donc mis la génération du fichier dans une fonction.
Mais j'ai peur qu'il essaye d'ouvrir le fichier avant que celui-ci ne soit créé.
Par ailleurs, je voudrais qu'il soit créé sur le client et non sur le serveur contrairement a ce que j'ai mis dans le code.
Voici l'appel du fichier
<a href="<%=VfichierCSV%>" style="cursor:hand" onclick="CreateFicPrev('<%=SsectionAct%>')">
Voici la fonction :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Function CreateFicPrev(SsectionAct) {
Set Fso= CreateObject("scripting.filesystemobject")
strFilePath = server.MapPath(GetParameter("UpdateDataPath")) & "/temp"
VfichierCSV = strFilePath & "/Prev_" & SsectionAct & "_" & Cstr(Year(now)) & Cstr(month(now)) & Cstr(Day(now)) & "-" & Cstr(hour(now)) & Cstr(minute(now)) & ".csv"
Set Fic=fso.Opentextfile(VfichierCSV,2,true)
'----- Connexion à la base de données des Prévisions -----
Set rsPrev = server.CreateObject("ADODB.Recordset")
StrReqPrev = "SELECT * FROM previsions WHERE ssection = " & sSectionAct & " ORDER BY nom,depart DESC"
rsPrev.Open StrReqPrev, Connexion_hqweb, 3, 3
'---- Création des entetes de colonnes pour le fichier téchargeable CSV------
titre = "Matricule;Nom;Prenom;Date Depart;Date Retour;Type de conge;Statut;Validé par;Saisi par;Date de saisie;Date de validation;Section"
Fic.WhriteLine titre
// Remplir le fichier avec les données de la table Prevision
do While not rsPrev.EOF
donnees = rsPrev("matricule") & ";" & rsPrev("nom") & ";" & rsPrev("prenom") & ";" & rsPrev("depart") & ";" & rsPrev("arrivee") & ";"
donnees = donnees & rsPrev("typedeconges") & ";" & rsPrev("statut") & ";" & rsPrev("validepar") & ";" & rsPrev("saisipar") & ";"
donnees = donnees & rsPrev("datesaisie") & ";" & rsPrev("datevalidation") & ";" & rsPrev("ssection") & ";"
Fic.writeLine donnees
rsPrev.movenext
loop
Fic.close
End function |
Je n'ai pas pu tester ce bout de code car beaucoup d'autres problèmes avec cette appli (les erreurs ne sont pas gérés + config IIS ,...)
Merci infiniment de votre aide en tout cas.
Partager