PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 26 → 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
5 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 de Fichier
UneRubrique est une Description de Rubrique
sdSource est une Source de 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)


HCréation(sdSource)


Quelqu'un peut me donner une explication ? ;(

Cordialement,
Marc
Registered member
663 messages
Popularité : +2 (4 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
5 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,640 messages
Popularité : +9 (9 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
5 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 :
//[ = ] bFileDescAdd ( est source de données)
//
// Paramètres :
// lsdFile (source de données) :
// 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:
//

PROCÉDURE bFileDescAdd(lsdFile est une Source de Données)
lsListRubrique est une chaîne
lsdFileHF est une Source de Données = lsdFile..Nom
ldfUnFichier est une Description de Fichier
ldrUneRubrique est une Description de 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 SÉPARÉE 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)

HCréation(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