|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Débuté par Philippe Lienart, 16 jan. 2025 17:27 - 5 réponses |
| |
| | | |
|
| |
Posté le 16 janvier 2025 - 17:27 |
Dans un état on peut reprendre plusieurs types de champs (libelle, RTFn ..). Mais est-il possible de reprendre un document généré via le traitement de texte de Windev. Le but étant d'imprimer également d'autres données en plus du document. Cela ne pose actuellement aucun problème si on utilise des champs RTF. La transformation d'un document en RTF serait une solution. Mais peut-on transformer (ou sauver) un document traitement de texte en RTF ? |
| |
| |
| | | |
|
| | |
| |
Posté le 17 janvier 2025 - 08:27 |
Philippe Lienart a écrit :
Dans un état on peut reprendre plusieurs types de champs (libelle, RTFn ..). Mais est-il possible de reprendre un document généré via le traitement de texte de Windev. Le but étant d'imprimer également d'autres données en plus du document. Cela ne pose actuellement aucun problème si on utilise des champs RTF. La transformation d'un document en RTF serait une solution. Mais peut-on transformer (ou sauver) un document traitement de texte en RTF ? |
| |
| |
| | | |
|
| | |
| |
Posté le 17 janvier 2025 - 08:28 |
Philippe Lienart a écrit :
Dans un état on peut reprendre plusieurs types de champs (libelle, RTFn ..). Mais est-il possible de reprendre un document généré via le traitement de texte de Windev. Le but étant d'imprimer également d'autres données en plus du document. Cela ne pose actuellement aucun problème si on utilise des champs RTF. La transformation d'un document en RTF serait une solution. Mais peut-on transformer (ou sauver) un document traitement de texte en RTF ?
Bonjour
Je vois votre problème, vous souhaitez sauvegarder un document de type RTF, j'ai deux solution pour vous, à vous de choisir
1. Soit vous devrez enregistrer le texte dans un fichier HFSQL 2. Soit vous devrez enregistrer le texte dans un fichier de format .RTF
Pour le cas 1, vous devrez créer un fichier HFSQL avec le titre FIC_Devis, c'est pour un exemple de piste Pour le cas 2, après avoir sauvegarder le texte dans une base HFSQL, vous devrez sauvegarder en format RTF après
Voilà un code dont vous pouvez utiliser // EDD (01/25) : créer un nouveau champ RTF et un nouveau champ bouton pour lancer le sauvegarde // EDD (01/25) : copier ce code dans le nouveau bouton LOCAL cRtf is ClRtf cRtf:m_sChamp = "SSI_Texte" cRtf:m_sRépertoire = fRepExe() + "\RTF" cRtf:m_sTexte = SSI_Texte cRtf:m_sTitre = "Devis_" + DateSys() cRtf:Validation() IF cRtf:m_bRetour = True THEN cRtf:Sauvegarder_Texte() cRtf:Sauvegarder_Fichier() Info("L'enregistrement de texte en RTF est réussie.") END
// EDD (01/25) : créer un nouveau répetoire dans exe ...\Database // EDD (01/25) : créer un nouveau répetoire dans exe ...\RTF // EDD (01/25) : créer un nouveau fichier HFSQL FIC_Devis.fic avec le rubrique suivant et mettre dans le répertoire ...\Database\FIC_Devis.fic Identifiant Id.Auto Texte chaine(1000) Date_Enregistre DateHeure
// EDD (01/25) : créer une nouvelle classe ClConnexion_Rtf ClConnexion_Rtf est une Classe FIN
// EDD (01/25) : créer deux nouvelles méthode dans la classe ClConnexion_Rtf PROCÉDURE Annulation() LOCAL cRub is ClRubrique_Devis IF HAnnuleDéclaration(cRub:Fichier()) = False THEN Info(ErreurInfo(errComplet)) EndProgram() END
PROCÉDURE Déclaration() LOCAL cRub is ClRubrique_Devis IF HDéclareExterne(fRepExe() + "\Database\" + cRub:Fichier() + ".fic", cRub:Fichier()) = False THEN Info(ErreurInfo(errComplet)) EndProgram() END
// EDD (01/25) : créer une nouvelle classe ClRtf ClRtf est une Classe m_bRetour is booléen m_sChamp is string m_sTitre is string m_sRépertoire is string m_sTexte is string FIN
// EDD (01/25) : créer trois nouvelle méthode dans la classe ClRtf PROCÉDURE Sauvegarder_Fichier() LOCAL bfBuffeur is Buffer cConnexion is ClConnexion_Rtf cRub is ClRubrique_Devis eEntier is entier cConnexion:Déclaration() eEntier = HNbEnr(cRub:Fichier()) HLitRecherche(cRub:Fichier(), cRub:Rub_Identifiant(), eEntier) IF HTrouve(cRub:Fichier()) = True THEN {:m_sChamp, indChamp} = {cRub:Fichier() + "." + cRub:Rub_Texte(), indRubrique} END cConnexion:Annulation() bfBuffeur = {:m_sChamp, indChamp} IF fSauveBuffer(:m_sRépertoire + "\" + :m_sTitre + ".rtf", bfBuffeur) = False THEN Info(ErreurInfo(errComplet)) EndProgram() ELSE Info("Le fichier RTF se trouve dans " + :m_sRépertoire + "\" + :m_sTitre + ".rtf") END
PROCÉDURE Sauvegarder_Texte() LOCAL cRub is ClRubrique_Devis cConnexion is ClConnexion_Rtf cConnexion:Déclaration() HRAZ(cRub:Fichier()) {cRub:Fichier() + "." + cRub:Rub_Texte(), indRubrique} = {:m_sChamp, indChamp}..Valeur {cRub:Fichier() + "." + cRub:Rub_Date_Enregistre(), indRubrique} = DateHeureSys() IF HAjoute(cRub:Fichier()) = False THEN Info(ErreurInfo(errComplet)) EndProgram() END cConnexion:Annulation()
PROCÉDURE Validation() :m_bRetour = True IF fRépertoireExiste(:m_sRépertoire) = False THEN :m_bRetour = False Info("Merci de vérifier le répertoire RTF destination.") ELSE IF NoSpace(:m_sTitre) = "" THEN :m_bRetour = False Info("Merci de remplir le titre du RTF.") ELSE IF ChampExiste(:m_sChamp) = False THEN :m_bRetour = False Info("Merci de vérifier le champ RTF inexistante.") END
// EDD (01/25) : créer une nouvelle classe ClRubrique_Devis ClRubrique_Devis est une Classe FIN
// EDD (01/25) : créer trois nouvelle méthode dans la classe ClRubrique_Devis PROCÉDURE Rub_Date_Enregistre() RENVOYER "Date_Enregistre"
PROCÉDURE Rub_Identifiant() RENVOYER "Identifiant"
PROCÉDURE Rub_Texte() RENVOYER "Texte"
NB : Pour ce modèle, vous avez le document RTF et ainsi le texte en RTF dans une base de données HFSQL
Cordialement Mr.RATSIMANDRESY Niry Aina Eddy |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 752 messages |
|
Posté le 17 janvier 2025 - 09:37 |
Bonjour Je n'ai jamais utilisé, mais iEnchaînementAjoute mentionne les documents de type Traitement de texte. Voir Remarque au début de cette page :
https://doc.pcsoft.fr/fr-FR/?9000128
Cdlt |
| |
| |
| | | |
|
| | |
| |
Posté le 21 janvier 2025 - 09:53 |
Cédric_34 a écrit :
Bonjour Je n'ai jamais utilisé, mais iEnchaînementAjoute mentionne les documents de type Traitement de texte. Voir Remarque au début de cette page : https://doc.pcsoft.fr/fr-FR/?9000128Cdlt
La fonction iEnchaînementAjoute permet d'enchaîner des documents mais cela provoque un saut de page. Cela ne permet pas d'avoir d'autres champs sur la même page. |
| |
| |
| | | |
|
| | |
| |
Posté le 21 janvier 2025 - 10:40 |
Bonjour, Pourquoi ne pas utiliser un sous état (dans le document principal) dans lequel ton document sera imprimé via iEnchainementAjoute |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|