PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Récuperer le dernier fichier
Récuperer le dernier fichier
Iniciado por dboiseaux, 13,dic. 2019 09:31 - 4 respuestas
Publicado el 13,diciembre 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"
Miembro registrado
19 mensajes
Publicado el 13,diciembre 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
Miembro registrado
324 mensajes
Publicado el 13,diciembre 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.
Miembro registrado
491 mensajes
Publicado el 13,diciembre 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
Mensaje modificado, 13,diciembre 2019 - 15:47
Miembro registrado
1.640 mensajes
Publicado el 13,diciembre 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 .