PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Déclaration de fichier externe avec exemple
Déclaration de fichier externe avec exemple
Started by cramsoturf, Oct., 14 2021 10:47 AM - 4 replies
Registered member
14 messages
Posted on October, 14 2021 - 10:47 AM
Bonjour,
J'ai voulu déclaré un fichier externe sur la base de cette exemple là mais il semble que la fonction hDécritFichier ne lui plait pas
UneDescriptionFichier est une Description dede Fichier
UneRubrique est une Description dede Rubrique
sdSource est une Source dede Données

// Description du fichier de données "CLIENT"
UneDescriptionFichier..Nom = "CLIENT"
UneDescriptionFichier..Type = hFichierNormal
UneDescriptionFichier..CryptageFic = hCryptageStandard

// Description de la rubrique "NOM"
UneRubrique..Nom = "NOM"
UneRubrique..Type = hRubTexte
UneRubrique..Taille = 40
UneRubrique..TypeClé = hCléUnique
HDécritRubrique(UneDescriptionFichier, UneRubrique)

// Description de la rubrique "PRENOM"
UneRubrique..Nom = "PRENOM"
UneRubrique..Type = hRubTexte
UneRubrique..Taille = 40
HDécritRubrique(UneDescriptionFichier, UneRubrique)

// Valide la description du fichier de données
// * Cette fonction est souligné en rouge et m'indique qu'il n'y a pas de syntaxe correspondant. Or c'est l'exemple windev...
HDécritFichier(sdSource, UneDescriptionFichier)


HCreation(sdSource)


Quelqu'un peut me donner une explication ? ;(

Cordialement,
Marc
Registered member
874 messages
Popularité : +39 (51 votes)
Posted on October, 14 2021 - 11:37 AM
Hello
Vu la copie de ton code, est-ce que la ligne "Or c'est l'exemple windev..." est en commentaire ?

--
Christian - kick71
Registered member
14 messages
Posted on October, 14 2021 - 3:01 PM
Oui c'est la suite qui est retournée à la ligne c'est en commentaire.
Mais ceci dit. J'ai résolu mon problème en utilisant la première méthode de l'exemple qui fonctionne et après le HCréation j'ai utilisé la fonction HDéclareExterne d'une source de donnée.
Merci pour vos réponses nombreuses :D
Registered member
1,923 messages
Popularité : +53 (65 votes)
Posted on October, 14 2021 - 10:16 PM
Bonjour,

Je me demande s'il n'y a pas un problème à réutiliser une Description sans la réinitialiser.

Sinon, j'ai testé le code de l'exemple (syntaxe 2) sans souci WD25.
Par contre la syntaxe 1 génère l'erreur :
Client est une Source de Données = "Client"
Un élément de type 'chaîne ANSI' ne peut pas être converti vers le type 'objet source de données'.

--
Bon dev,
Jean-Pierre
Registered member
14 messages
Posted on October, 18 2021 - 9:14 AM
Pour moi tout fonctionne bien maintenant avec la syntaxe 1.

// Résumé : Création d'un fichier de données en externe
// Syntaxe :
//[ <Résultat> = ] bFileDescAdd (<lsdFile> est source de données)
//
// Paramètres :
// lsdFile (source de données) : <indiquez ici le rôle de lsdFile>
// Valeur de retour :
// booléen : // Aucune
//
// Exemple :
// Indiquez ici un exemple d'utilisation.
//// Traitement automatique des exceptions : exécuter le bloc de code CAS EXCEPTION:
//

Procedure bFileDescAdd(lsdFile est une Source dede Données)
lsListRubrique est une chaîne
lsdFileHF est une Source dede Données = lsdFile..Nom
ldfUnFichier est une Description dede Fichier
ldrUneRubrique est une Description dede Rubrique

// Structure du nouveau fichier
ldfUnFichier..Nom = lsdFile..NomPhysique
ldfUnFichier..Type = hFichierClientServeur
ldfUnFichier..CryptageFic = hCryptageStandard
//ldfUnFichier..Connexion = gpoDbHFSQL.zCnx


// Parcours du fichier AS400 pour créer la structure du fichier HFSQL équivalente
lsListRubrique = HListeRubrique(lsdFile)
POUR TOUTE chaîne lpRubrique de lsListRubrique SEPAREE PAR RC
SELON {lsdFile..Nom + "." + lpRubrique,indRubrique}..Type
CAS hRubTexte
ldrUneRubrique..Nom = {lsdFile..Nom + "." + lpRubrique,indRubrique}..Nom
ldrUneRubrique..Type = hRubTexte
ldrUneRubrique..Taille = {lsdFile..Nom + "." + lpRubrique,indRubrique}..taille
HDécritRubrique(ldfUnFichier, ldrUneRubrique)
CAS hRubNumérique
ldrUneRubrique..Nom = {lsdFile..Nom + "." + lpRubrique,indRubrique}..Nom
ldrUneRubrique..Type = {lsdFile..Nom + "." + lpRubrique,indRubrique}..Type
HDécritRubrique(ldfUnFichier, ldrUneRubrique)
AUTRE CAS
Info("inconnu : ",{lsdFile..Nom + "." + lpRubrique,indRubrique}..Type)
FIN

FIN
HDécritFichier(ldfUnFichier)

HCreation(lsdFile)


RENVOYER Vrai
CAS EXCEPTION:
Erreur("Erreur fatale lors de la création du fichier non déclaré dans l'analyse (bFileDescAdd) de la procédure globale CO_Globale.",ExceptionInfo(errComplet))
RENVOYER Faux