Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
j'ai besoin de copier une datastore dans une datawindow, mais la datastore a été créé dynamiquement par sa syntaxe donc je n'ai pas de dataobject qui lui est associée. donc je ne peux pas faire dw_destination.dataobject=dw_source.dataobject.
et pareil pour rowscopy, je ne peux pas copier mes lignes dans la datawindow. (ça retourne -1 car la datawindow ne possède aucune colonne).
Est ce qu'il y a un moyen de créer une datawindow identique à une datastore même sans son contenu?
Dernière modification par zeineb (17-05-2013 11:08:17)
Hors ligne
Salut zeineb , tu peux pas tout simplement créer dynamiquement le DWO de ta DW de la même façon que tu as crée le DWO de ta DS ?
sinon peut être jeter un oeil du coté de GetFullState() / SetFullState()
Hors ligne
Non car le même code avec lequel j'ai créé la datastore retourne -1 pour la datawindow
Dernière modification par zeineb (18-04-2013 09:40:11)
Hors ligne
zeineb a écrit:
Non car le même code avec lequel j'ai créé la datastore retourne -1 pour la datawindow
voir ton autre message et mon explication à ce sujet.
(en gros :
Ce qui marche pour une DS ne marche pas forcément pour une DW et vice versa.
La datastore est un objet non visuel, hérité de nonvisualobject
La datawindow est un objet visuel, hérité de graphicobject
donc faut pas essayer de faire ma_dw = create datawindow, ça ne peut pas marcher et ce n'est surtout pas nécéssaire.
)
Hors ligne
Mais j'ai besoin de récupérer les données de la datastore pour les comparer avec ceux d'une autre datawindow et afficher quelques données aussi.
et il y a des méthodes valables pour "datawindow" que j'ai besoin d'utiliser.
Hors ligne
IL faut vérifier que vote datawindow et la datastore ont le même nombre de colonnes ainsi que les mêmes types de champs pour que rowscopy marche correctement
Dernière modification par s.simo (16-05-2013 14:22:11)
Hors ligne
Bonjour,
je reviens à ton problème de départ qui était que tu n'as pas l'objet DWO.
Tu peux le sauvegarder à l'exécution dans une librairie PB par programmation.
Un code de type
// Nom de l'objet DWO ls_nomDS = "ds_AQB_"+String(Today(), "YYYYMMDD_hhmmss") // Syntaxe de l'objet DWO dwsyntax = TaDatastore.Describe("DataWindow.Syntax") // Création dynamique dans une librairie de ton target rtncode = LibraryImport(CheminAccesATaPBL,ls_nomDS, ImportDataWindow!,dwsyntax, ErrorBuffer ) // Si OK IF rtncode = 1 THEN // Afficher la DS dans le DWC ToDWC.dataobject = ls_nomDS END IF
devrait te le permettre.
Hors ligne
Bonjour,
Merci pour la réponse.
Oui c'est ce que j'ai fait finalement, j'ai sauvegardé la syntaxe dans un fichier puis j'ai fait importfile.
ça marche bien
Hors ligne
Content pour toi .
N'oublies pas de mettre [RESOLU] en début de topic .
Hors ligne