PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Récuperer le dernier fichier
Récuperer le dernier fichier
Débuté par White 16, 13 déc. 2019 09:31 - 4 réponses
Posté le 13 décembre 2019 - 09:31
Bonjour a tous je bloque sur un petit probleme, est ce possible de récuperer le dernier fichier que j'ai crée et de l'envoyer.
J'ai 10 fichier Excel et je veux envoyer le dernier que j'ai crée sois le pus récent.
// Déclaration d'une variable de type document Excel
sDateAujourdhui est une chaîne = DateVersChaîne(DateSys(),"AAAA-MM-JJ")
sVariable est une chaîne

sTest est une chaîne
sTest = RéseauUtilisateur()

sVariable = "Exécuté le " + sDateAujourdhui + " à " + HeureVersChaîne(HeureSys(), "HH-MM-SS")


DocumentExcel est un xlsDocument

// Création de la feuille
xlsAjouteFeuille(DocumentExcel, "Feuille 1", 1)
DocumentExcel..Feuille = 1

// Modification de la feuille
// Insertion de Ligne dans le fichier
DocumentExcel..Ligne[1]..Cellule[1] = "Bonjour"


// Enregistrement du fichier
sNomFichier est une chaîne = "C:\RepertoireCrée\" + sTest + ". "+ sVariable +".xls"
xlsSauve(DocumentExcel, sNomFichier)

// Fermeture du fichier
xlsFerme(DocumentExcel)
// Fin Création Du Documents Excel

// Envoie du document Excel par mail
MonEmail est un Email
MonEmail..Expediteur="Adresse MailExpéditeur"
Ajoute(MonEmail..Destinataire,"Adresse Mail Destinataire")

MonEmail..Sujet="Rapport Entrée D'Etat des Lieux du " + DateVersChaîne(DateSys(),"YYYY-MM-JJ")
MonEmail..Message= "Test de l'envoie du controle EDLE "

// Envoie de L'email ayant pour objet Le Fichier Excel
Monattache est un emailAttache

Monattache..Nom= "Rapport.xls"
// Charger le dernier fichier crée
Monattache..Contenu= fChargeBuffer("C:\RepertoireCrée\" + sTest + ". "+ sVariable +".xls")
Monattache..ContentType= "excel/xls"
Monattache..ContentDescription= "excel XLS"
Ajoute(MonEmail..Attache,Monattache)


Session est une emailSessionSMTP
Session..AdresseServeur= "Adresse IP SERVEUR"
Membre enregistré
19 messages
Popularité : +1 (1 vote)
Posté le 13 décembre 2019 - 11:57
Bonjour,

IL existe plusieurs approches, créer un fichier de données comportant le chemin des fichiers Excell avec horodatage sur création et modification et faire un hlitdernier avec récupération du chemin du fichier. Créer un champ table avec le contenu du répertoire et la date de modification trier par date et prendre le premier.

Cordialement
Thibault
Membre enregistré
324 messages
Popularité : +21 (51 votes)
Posté le 13 décembre 2019 - 15:02
Pourquoi n'y a t'il aucun test de date dans votre code ... utiliser un raisonnement humain ...

Vous avez 10 facture devant vous, comment savoir la dernière reçu ? ben la date, donc pour savoir qu'elle est le dernier fichier, faut aller voir leur date et garder le dernier.

Aide ! (F1 dans windev)

>FlisteFichier(Chemin+"\*.xls")

// Récupération de la date de modification d'un fichier
ResDate = fDate("C:\MesRépertoires\Fichier.txt", "", fModification)


Pourquoi chercher midi à 14h, faite comme tout être humain, au plus simple.
Membre enregistré
449 messages
Popularité : +31 (43 votes)
Posté le 13 décembre 2019 - 15:40
Poncherello a écrit :
Pourquoi n'y a t'il aucun test de date dans votre code ... utiliser un raisonnement humain ...

Vous avez 10 facture devant vous, comment savoir la dernière reçu ? ben la date, donc pour savoir qu'elle est le dernier fichier, faut aller voir leur date et garder le dernier.

Aide ! (F1 dans windev)

FlisteFichier(Chemin+"\*.xls")

// Récupération de la date de modification d'un fichier
ResDate = fDate("C:\MesRépertoires\Fichier.txt", "", fModification)


Pourquoi chercher midi à 14h, faite comme tout être humain, au plus simple.


Et si les 10 factures sont générées le même jour j'ai bien peur que le raisonnement humain la ne marche pas il faut chercher un peu plus loin, soit avec un test en plus sur l'heure éventuellement.

Il y'a aussi la solution simple de stocker dans un fichier ini ou autre (comme la base des registres: https://doc.pcsoft.fr/?3025046 et https://doc.pcsoft.fr/?3025047) le nom du fichier de la dernière facture générée.

Cordialement

DG
Message modifié, 13 décembre 2019 - 15:47
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 13 décembre 2019 - 16:25
Sinon on peut nommer les fichier d'une certaine facon qui fait qu'on va pouvoir retrouver :

sNomFichier = sTest + ". "+ sVariable +"_"+DateHeureSys()+".xls"

Ensuite dans la boucle FlisteFichier, récuperer la dateheure du nom de fichier :
extraitChaine(sNomFichier,rangDernier,"_")
Et prendre le plus récent .