PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 24-11-2006 17:12:07

dauphina  
Membre
Lieu: Mougins
Date d'inscription: 24-11-2006
Messages: 11
Pépites: 54
Banque: 0

[RESOLU] Créer une DataWindow pendant l'exécution ?

Bonjour,

je débute en powerbuilder et j'ai besoin d'une petite aide !
j'ai fait quelques recherches dans l'aide de pb et sur le web, et apparement on peut créer une datawindow au moment de l'exécution.
donc je crée ma syntaxe dynamiquement dans une String ls_syntax(que j'ai testé en la récupérant et qui compile et marche), et ensuite j'appelle dw.Create(ls_syntax)
mais je ne vois rien de différent, la datawindow dw garde ses colonnes antérieures.
petite précision : je crée un datawindow pour importer des données depuis un fichier CSV avec ImportFile, dans lequel la premiere ligne contient les colonnes à importer.
autre chose : j'ai créé dans le painter de ma fenetre une instance de ma datawindow, est ce que le problème peut venir de la, cad qu'il est impossible de remplacer cette datawindow ?

si vous savez pourquoi, ou si c'est tout simplement impossible de faire ça, merci de m'aider !
bonne soirée et we

PS: ma syntaxe générée à l'exécution(je le répète testée mais allégée en nombre de colonnes )_:

Code: pb

release 9;
datawindow ( units=0 timer_interval=0 color=1073741824 processing=0 print.printername=""  print.documentname=""  print.orientation=0 print.margin.left=110 print.margin.right=110 print.margin.top=96 print.margin.bottom=96 print.paper.size=0 print.paper.source=0 print.canusedefaultprinter=yes selected.mouse=no)
header(height=200 color="536870912" )
summary(height=0 color="536870912" )
footer(height=0 color="536870912" )
detail(height=84 color="536870912" )
table(column=(type=char(20) updatewhereclause=yes name=nom dbname="nom")
column=(type=char(20) updatewhereclause=yes name=prenom dbname="prenom")
)
text(band=header alignment="2" text="nom" border="0" color="33554432" x="5" y="4" height="64" width="549" html.valueishtml="0"  name=nom_t visible="1"  font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
text(band=header alignment="2" text="prenom" border="0" color="33554432" x="355" y="4" height="64" width="549" html.valueishtml="0"  name=prenom_t visible="1"  font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
column(band=detail id=1 alignment="0" tabsequence=10 border="0" color="33554432" x="5" y="4" height="76" width="549" format="[general]" html.valueishtml="0"  name=nom visible="1" edit.limit=0 edit.case=any edit.autoselect=yes edit.autohscroll=yes edit.imemode=0  font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
column(band=detail id=2 alignment="0" tabsequence=10 border="0" color="33554432" x="355" y="4" height="76" width="549" format="[general]" html.valueishtml="0"  name=prenom visible="1" edit.limit=0 edit.case=any edit.autoselect=yes edit.autohscroll=yes edit.imemode=0  font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
htmltable(border="1" )
htmlgen(clientComputedFields="1" clientEvents="1" clientFormatting="0" clientScriptable="0" clientValidation="1" generateJavaScript="1" netscapeLayers="0" netscapelayers="0" encodeSelfLinkArgs="1" )
export.xml(headGroups="1" includewhitespace="0" metadatatype=0 savemetadata=0  template=(comment="" encoding="UTF-8" name="dw_patient_min_template" xml="<?xml version=~"1.0~" encoding=~"UTF-8~" standalone=~"no~"?><patient_min><patient_min_row __pbband=~"detail~"><nom>nom</nom><prenom>prenom</prenom></patient_min_row></patient_min>"))
import.xml()
export.pdf(method=0 distill.customPostScript="0" xslfop.print="0" )

Hors ligne

 

#2 24-11-2006 22:45:47

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Créer une DataWindow pendant l'exécution ?

Bonsoir,
Peut-être n'ai-je pas compris ton probleme, mais pourquoi ne créés tu pas une DW et ensuite tu crées un datastore avec cette datawindow dans ton code et tu l'utilise comme tu le veux?
désolé si j'ai pas compris !

Hors ligne

 

#3 27-11-2006 09:00:08

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Créer une DataWindow pendant l'exécution ?

coucou,
lors de la creation dynamique de la dw, il n'y a pas d'erreurs ?

sinon, pourquoi creer dynamiquement cette dw ?
alors qu'il suffit de creer la dw...
de l'attribuer à une datastore... ect...et ca marche bien...
enfin, c'est que je fais.... je suis en ce moment dans les importations de fichiers justement...



je regarde pour ton cas.
A+


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#4 28-11-2006 13:22:01

dauphina  
Membre
Lieu: Mougins
Date d'inscription: 24-11-2006
Messages: 11
Pépites: 54
Banque: 0

Re: [RESOLU] Créer une DataWindow pendant l'exécution ?

merci d'avoir répondu
je débute en powerbuilder, donc je ne connais pas trop les datawindows, et encore moins les datastores !
je vais me pencher la dessus, et je vous dis si je trouve.

sinon si vous avez une explication sur les liens entre datastores et datawindows...

Hors ligne

 

#5 28-11-2006 13:28:12

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Créer une DataWindow pendant l'exécution ?

regardes dans le forum
http://pbadonf.fr/forum/viewtopic.php?id=53
tu trouveras la reponse...
il y a aussi des cours...

Bon courage


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#6 28-11-2006 17:04:07

dauphina  
Membre
Lieu: Mougins
Date d'inscription: 24-11-2006
Messages: 11
Pépites: 54
Banque: 0

Re: [RESOLU] Créer une DataWindow pendant l'exécution ?

re coucou !

j'ai reussi a recupérer les données dans le datastore, je crois que je ne vais pas m'enquiquiner à les afficher dans une datawindow (je vois pas comment faire, a moins qu'il faille faire une copie dans une autre datawindow, je sais plus où j'ai vu ça), mais plutot essayer de directement les insérer dans une base de données (nouvelle mission !)

en tout cas j'aime bien ce forum, je pense que je vous allez me voir souvent !

merci et continuez comme ça !

Delphine

Aperçu de ce que j'ai fait (is_data est un fichier CSV avec une première ligne contenant les noms des colonnes)
c'est tout simple mais ça a pas été facile de le faire pour une débutante comme moi !

Code: pb

string ls_syntax, ls_header, ls_err
long pos, colNum

// mettre les colonnes de l'entête du fichier is_data dans un array
pos = Pos(is_data, "~n")
ls_header = Mid(is_data, 0, pos - 2)
nb_columns = StringToArray(ls_header, ",", is_data_headers)

// créer la définition de la datawindow à associer au datastore
ls_syntax = "release 9; datawindow() table("
FOR colNum = 1 TO nb_columns
  // crée chaque colonne récupérées dans l'en-tete du fichier
  ls_syntax += 'column=(type=char(255) name=' + is_data_headers[colNum] + ' dbname="' + is_data_headers[colNum] + '")~r~n'
NEXT
ls_syntax += ')'

// créer le datastore et la datawindow pour importer ensuite les données
ds_patient = CREATE DataStore
IF ds_patient.Create(ls_syntax, ls_err) = -1  THEN
  MessageBox("Erreur", "erreur de création de la datawindow associée au datastore~r~n" + ls_err)
END IF
ds_patient.ImportFile(CSV!, nom_input, 2)

Hors ligne

 

#7 28-11-2006 17:08:56

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Créer une DataWindow pendant l'exécution ?

et tout fonctionne ?
tu as réussi à faire un update de ta datastore ou datawindow ?
tu testes aussi les codes de retour d'erreurs ?

Attention, la difference entre la datastore et la datawindow, lorsque tu fais un update, tu n'auras pas de message d'erreur s'il y a lieu....

A+ et bienvenue parmi nous


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#8 28-11-2006 19:44:36

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Créer une DataWindow pendant l'exécution ?

bienvenue ici tu vas voir on s'y sent bien :D

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22