Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Bon je suis gros débutant en PB (préfére prévenir... mais je pense que vous le remarquerez )
J'utilise en local des fichiers XML de client. Chaque client a un historique de contact, cependant le client a été contacté x fois (et donc x Compte Rendu).
J'obtient un fichier XML de ce genre :
<Historique>
<CompteRendu>
<Date>01/01/2007</Date>
<Contact>Moi</Contact>
<Commentaire>Je sais pas de trop</Commentaire>
</CompteRendu>
<CompteRendu>
...
</CompteRendu>
</Historique>
J'aimerais maintenant savoir si il est possible (ou malin si c'est bête autant trouver autre chose) de mettre ces données dans une datawindow ? et si c'est possible (et malin ) de quel maniére j'ai essayer de trouver comment faire mais je n'est pas vraiment vu comment géré les multis noeuds.
Quelqu'un pourrait il m'aider ?
Hors ligne
Bonjour,
je n'ai pas d'expérience en XML avec PB mais je devine quand même la première question très importante qu'on va te poser : Quelle version de PB utilises tu ?
Hors ligne
tu as regardé le doc sur pb xml dispo sur le forum ?
sinon faut que tu te crée un template au format du fichier xml que tu veux importer dans ta dw
Hors ligne
au début j'étais sur la version 7 puis j'ai bien vu que la version ne gérait pas le XML, je suis donc passer à la 9. j'avais pas trouver de doc sur le XML mais je n'est pas cherché de façon approndi car je ne peux passer autant de temp que je veux sur le net... je regarde immediatement.
Heu en fait j'ai faite j'ai fait une recherche sur le forum... Je sais ouvrir mon fichier et utilioser les noeuds simple mais pas les noeuds multiples... je vais regarder la doc des template...
Dernière modification par ben_ghost (28-03-2007 13:42:47)
Hors ligne
ta pas a gérer ca dans le template, tu fais un noeud et après à apartir du moment ou tu as le même nom ca va être géré comme tu le souhaite.
Hors ligne
C'est interressant ça... je regarde tt de suite. merci.
Hors ligne
dis moi si tu y arrives
Hors ligne
dis-moi quand tu parle de template... il ne s'agit pas d'un oleobject ?
Hors ligne
Bonjour,
Les templates sont des "canevas" de descriptions de données sous forme XML qui sont liés aux datawindows. Quand tu créés une nouvelle DW sous PB9 et plus, un template par défaut est sauvegardé (PB te pose la question "Save template?" lors de la sauvegarde de ta DW). Tu peux en créer autant que tu veux par datawindow.
Hors ligne
pour voir la fenetre des templates tu vas dans view -> export/import template
Hors ligne
Ok je commence a comprendre mais ... ??? comment accéder aux données de la DW ? (et non de la template puisque celle-ci n'est qu'un support ... enfin si j'ai bien compris)
Hors ligne
tu parles dans ton code je suppose :
datastore lds_import lds_import = CREATE datastore //******************import fichier*********************// lds_import.dataobject="nom_de_ta_dw" lds_import.Object.DataWindow.Import.XML.UseTemplate=nom_de_ton_template_xml // nom du template que tu veux utiliser lds_import.ImportFile(nom_fichier_import) // nom du fichier xml que tu veux importer ls_variable=lds_import.getitemstring(1,"nom_du_champs_a_recup")
Hors ligne
Ok bon je vais faire quelque recherche la-dessus Dans touts les cas je tiens vraiment a te remercier, ton aide est vraiment génial.
Hors ligne
pas de problème mais avec le code que je t'ai donné logiquement c'est bon
si tu as d'autres questions n'hésites pas
Hors ligne
Rebonjour,
Bon actuellement, j'ai creer une datawindow que je réutilise dans ma window, ensuite dans le constructeur de celle-ci je mets le code suivant :
this.importfile(XML!,"C:\File0000")
le fichier File0000.xml existe bien mais il me met cette erreur au démarrage :
Error Parsing XML document: An exception occurred! Type:RuntimeException, Message:The primary document entity could not be opened. Id=C:\File0000
Hors ligne
Serait ce un probléme de ma DW ou alors je m'y prend mal pour ouvrir mon fichier ?
Hors ligne
ben_ghost a écrit:
Code: pb
this.importfile(XML!,"C:\File0000")
le fichier File0000.xml existe bien mais il me met cette erreur au démarrage :Code:
Error Parsing XML document: An exception occurred! Type:RuntimeException, Message:The primary document entity could not be opened. Id=C:\File0000
salut, as-tu essayé
this.importfile(XML!,"C:\File0000.xml")
Hors ligne
il faut en effet que tu rajoutes le .xml
Hors ligne
ça marche nikel, je pense avoir pigé un peu le truc... le seul hic c'est que la syntaxe XML qu'utilise power builder n'est pas normé non?
Car si l'on désire faire un fichier avec par ex <CompteRendus> ayant des récurences <CompteRendu> et un autre <Commentaires> ayant des récurence <commentaire> dans le même fichier il n'a pas l'air de le géré.
Je vas donc devoir utiliser un fichier CompteRendu et un autre commentaire
En tout cas je n'est plus aucun probléme pour accéder a mes données... au final c'est assez simple.
Merci pour votre aide
Dernière modification par ben_ghost (04-04-2007 07:56:21)
Hors ligne
tu veux faire quoi concrètement?
Hors ligne
je veux pouvoir gérer ce fichier :
<consultant> - <PersonalData> <Name>***</Name> <FirstName>***</FirstName> <Adress>***</Adress> <PostalCode>**</PostalCode> <City>**</City> <BirthDate>26/08/1982</BirthDate> <BirthCity>Athis-Mons</BirthCity> <SocialSecurity /> </PersonalData> - <ProfessionnalsExperiences> - <ProfessionnalExperience> <BeginDate /> <EndDate /> <Society /> <Employment /> <Description /> </ProfessionnalExperience> </ProfessionnalsExperiences> - <Formations> - <Formation> <BeginDate /> <EndDate /> <Diploma /> <School /> <Description /> </Formation> </Formations> </consultant>
Sachant que les champs consultant, formation, et ProfessionnalExperience peuvent être récurrente.
Hors ligne
ta racine c'est bien consultant ? logiquement c'est possible..
Hors ligne
humhum bon je vais chercher et je reviendrais alimenter le forum si je trouve.
Merci
Hors ligne