[XML][Etat] Liaison fichier en prog...
Stagiaire WDF
Inscrit:
24/02/2005 15:49
Post(s): 8
Voila j'ai un truc simple a faire (en théorie), mais je voudrai être certain d'employer la meilleur méthode.
Je scan un répertoire a la recherche de fichier XML (de forme T00001.XML, T13242.XML)... ensuite j'initialise une table a l'ecran avec le nom du fichier, la date de création fichier + le numero du dossier qui se trouve dans une des balises du fichier XML... ensuite j'initialise une autre table ecran avec le details se trouvant dans le fichier XML incriminé (le pauvre ! ;o))...
Maintenant je voudrais faire la meme chose sur un etat.. du genre la ligne du fichier xml (nom,date + info xml) et un sous etat avec le detail du fichier en question... et ceux pour chaque fichier xml trouvé auparavant... quel solution prendre ? zonememoire ? requete (mais dans ce cas je n'aurai pas le nom du fichier xml, puisque ce n'est pas une valeur a proprement parler) ? programmation etat ?

en un mot ....aider moi please !

Krys

Contribution le : 29/04/2005 15:31
Créer un fichier PDF de la contribution Imprimer


Re: [XML][Etat] Liaison fichier en prog...
DSI WDF
Inscrit:
15/03/2005 14:22
Post(s): 238
Le plus cohérent est par programmation.
Tu peux toujours bricoller un truc avec d'autres méthodes, mais j'ai du mal à en trouver une qui sont propre.

Contribution le : 29/04/2005 16:01
Créer un fichier PDF de la contribution Imprimer


Re: [XML][Etat] Liaison fichier en prog...
Stagiaire WDF
Inscrit:
24/02/2005 15:49
Post(s): 8
Quand tu dit programmation, a quel endroit de l'etat je dois mettre le code ? comment itérer par exemple sur la liste des fichiers ?

En tout merci de cette indication...

Contribution le : 29/04/2005 16:54
Créer un fichier PDF de la contribution Imprimer


Re: [XML][Etat] Liaison fichier en prog...
DSI WDF
Inscrit:
15/03/2005 14:22
Post(s): 238
Sur l'état:
lecture des enregistrement : Parcour à faire.
Pour chaque passage, l'édition du corp est lancé.

Filtre:
Si tu renvoi vrai, le corp est édité, si faux, par édité.

Contribution le : 29/04/2005 17:06
Créer un fichier PDF de la contribution Imprimer


Re: [XML][Etat] Liaison fichier en prog...
Stagiaire WDF
Inscrit:
24/02/2005 15:49
Post(s): 8
Merci bcp... et pour le details... je dois recréer un autre group ?

Contribution le : 29/04/2005 17:13
Créer un fichier PDF de la contribution Imprimer


Re: [XML][Etat] Liaison fichier en prog...
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour Krys,

Dans le module d'état de WinDev il me semble que ce que tu appel Groupe en WinDev il s'agit de rupture:
dans le début de la ruprure:
nom,date + info xml
dans le corps
==> le détail

Voir dans le menu Etat de l'éditeur d'état
- Editer les ruptures.


Contribution le : 02/05/2005 11:09
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: [XML][Etat] Liaison fichier en prog...
Anonyme
Merci de cette indication... mais je crois que j'ai tjrs un souci.. (pff je me dit que c'est pas tres simple les etats avec WD... bref... ou alors je suis pas doué)...

Alors je donne un peu + de précision.. voici ce que je dois obtenir :

Dans un repertoire il y des fichies XML : (1133.xml, 1123.xml, ect )

Je veux un etat ayant cette tête la


Nom fichier | Date | Nom client
=> Code article | Prix
=> Code article | Prix
=> ...
Nom fichier | Date | Nom client
=> Code article | Prix

En sachant que le nom fichier est récupéré en bouclant sur un répertoire :
Ouverture ETAT1
gResFichier = fRep (gCheminREFUSED + "\*.xml", frFichier )

Lecture données ETAT1
IF gResFichier<>"" ALORS
DateFichier = fDate(gCheminREFUSED + "\" + gResFichier)
HeureFichier = fHeure(gCheminREFUSED + "\" + gResFichier)
CodeClient = ReadInfoFileXML(gResFichier,"clientcode")
NomClient = SearchNomClient(CodeClient)
gLigneLue = gResFichier + TAB + DateFichier + TAB + NomClient
gResFichier = fRep ("", frFichier)
SINON
RENVOYER Faux
END

Dans le code du corp j'ai :

RubNameFiles = ExtraitChaîne(gLigneLue,1,TAB)
RubDate = ExtraitChaîne(gLigneLue,2,TAB)
RubCodeClient = ExtraitChaîne(gLigneLue,3,TAB)

Alors ca, ca marche pas trop mal, mais là je n'ai que les ligne d'entete !!!

pour aller chercher le contenu du detail par ligne d'entete, normalement j'ouvre le fichier xlm avec un Hdécritconnexion pour me placer sur le bon fichier xml puis un houvre....

Et la sur l'etat je ne vois comment faire ? car pour décrire la connnexion je dois connaitre le nom du fichier (entete)... puis dans le détail ne sais pas comment boucler sur mes lignes de détail...

merci de votre aide...

Krys


Contribution le : 02/05/2005 11:55
Créer un fichier PDF de la contribution Imprimer


Re: [XML][Etat] Liaison fichier en prog...
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

C'est dans la conception a mon avis que vous vous méprenez.

en effet un etat à pour but de parcourir les enregistrement d'un fichier ou bien d'une requête ou meme d'un fichier texte en toute d'une source de données.

Vous vous cherchez à créer un etat qui va afficher le contenu de X fichier XML qui se trouvent dans un répertoire.

Je pense que vous vous y êtes mal pris.

Ce qu'il faut faire dans l'optique ou vos fichiers XML ont toutes la meme structure.

Déclarer le modele d'un fichier XML dans votre analyse (Plus facile pour la définition de l'état).

Créer un etat basé sur le fichier défini dans l'analyse.
avec l'ntete en début de document et le détail dans le corps de l'etat.

dans la fenetre qui appel votre etat créer une procédure qui va lister dans un tableau tous les fichiers XML à editer
Dans ce tableau vous y stockerez votre entete en séparant chaque element par exemple par une tabulation

pour demander l'impression
iImprimeEtat(,,1)
Nom de l'état ==> nom de l'etat que vous avez créé
Nom du tableau ==> nom de la variable qui contient le tableau
1 ==> indice du tableau qui contient les informations d'entête du fichier XML a éditer.

Dans la déclaration global de votre etat insérer cette ligne
PROCEDURE Etat(tblEntete, Indice)
//tblEntete = tableau contenant l'entete des fichiers xml a editer
//Indice = N° du de l'indice du tableau correspondant au fichier XML pour lequel on désire editer le détail.

dans l'etat, dans le bloc corps, après impression du bloc inserer ce code
[code]
SI Indice < dimension(tblEntete) Alors
 iImprimeEtat(<Nom de l'etat>, <Nom du tableau>, Indice + 1)
FIN

Ainsi tantque le tableau n'aura pas été intégralement parcouru l'impression sera relancé su l'élément suivant dant le tableau d'entete.

Cette idée est purement théorique et n'a pas été testée, elle peut donc comporter des erreurs.

Contribution le : 02/05/2005 14:10
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: [XML][Etat] Liaison fichier en prog...
Anonyme
Enore merci de m'aider, et de patiament m'expliquer "l'etat d'esprit" windev !...
Bon j'ai essayé un truc pour me permettre de bien comprendre ce que je fais...
Donc voila j'ai un fichier XML ayant l'aboresence suivant :

Entete XML
|
- Client(s)
|
- Commande(s)
|
- Detail(s) commande

Petite précision, j'ai incorpore un fichier dans mon analayse pour avoir acces au nom champs directos dans mon dev (y'a qd même des trucs que j'ai appris dans ce sympatique forum ;))

Alors imaginons que j'ai l'envie (la folle envie avec WD?) de creer un etat affichant pour chaque client, chaque commande avec chaque details....
Je creer donc mon etat, je la base sur une requete.... et la le bas blesse déja... et oui dans l'analyse mon fichier xml est décomposé en plusieur table (apparement lié, en tt cas dans l'analyse!) si je prends les tables commande et details commade il me dit qu'il n'arrive pas à lié les tables !!!!

alors une réponse à ce problème... je crois vraiment que si je comprends ce truc, mon 1ier etat basé sur des (saletés de?) fihiers XML ne sera plus qu'un vieux (et pénible) souvenir


Merci d'avance

krys

Contribution le : 02/05/2005 22:41
Créer un fichier PDF de la contribution Imprimer


Re: [XML][Etat] Liaison fichier en prog...
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Il se peux car non encore utilisé, qu'il soit difficile d'avoir des fichiers XML liées a partir d'une requête.

Cela peut être contourné via les fonctions classiques de WinDev; les fonctions H*

Je constate tel qu'expliqué que tu as 3 fichiers.
L'idée est donc de créer un etat qui affichera pour chaque client, ses commandes et pour chacunes de ses commandes le détail de la commande.

Il faut donc procéder de la même manière.
Créer un etat sur le fichier client(Seulement le client)
créer un etat bornée sur les commandes
les bornes de cette etat sera le N° de client
Puis un etat bornée sur les lignes de commandes avec des borne sur le N° de commande.

Dans le bloc corps de l'etat du client avant ou après impression de bloc selon apparence de l'etat voulue on appel l'impression de l'état des commandes via la fonction
iImprimeEtat(,,+hValMax>)

puis dans le bloc corps de la commande vous faites de même pour appeler l'etat contenant le détail de la commande.

Si vous trouvez la chose difficile a traivailler avec des fichiers XML, vous pouvez très bien modifier le type des fichiers (structure) de xml en Hyper file puis d'importer le contenu des fichier xml dans des fichiers HyperFile et ainsi créer vos etat nom plus sur des fichiers xml mais tout simplement sur des fichier Hyper File.

Contribution le : 03/05/2005 10:40
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2