Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
Je demande pas grand chose, juste initialiser un champ de ma dw...
Sauf que lorsque je mets ma valeur dans ce champ, j'ai rien du tout à l'affichage ! Apparemment un truc se passe pas bien ... Je travaille toujours avec la notation Dot, mais quand j'utilise un setitem il me retourne -1 ...
Ma dw n'a rien de spécifique, le champ est un string ... Jamais vu ça.
Savez-vous comment déterminer la raison pour laquelle un setitem retournerait -1?
Merci )
Dernière modification par rapitou (26-09-2013 09:15:06)
Hors ligne
Modifies-tu une ligne existante ?
Si ta DW est vides, as-tu bien inséré une ligne vide dans ta DW avant d'initialiser la colonne ?
Hors ligne
Oui la ligne existe bien (sinon ça planterait) et je n'ai qu'une seule ligne
Hors ligne
Il faut vérifier en édit source que les id qui identifie les champs de l'objet datawindow n'ont pas été vérolé.
Dernière modification par Dadone (24-09-2013 10:00:16)
Hors ligne
Il n'y a pas de problème sur les id
Hors ligne
Comment sont les update properties de ta DW ? Le champs que tu essaies de modifier est il updatable ? Le Tab order est il différent de 0 ?
Dernière modification par Geo (24-09-2013 10:18:18)
Hors ligne
Dans ce cas la meilleure solution de refaire de zéro la datawindow et de voir si le problème réapparait.
Si cela se reproduit il faut isoler la problématique de l'existant jusqu'à que cela fonctionne puis la réintégrer pas à pas dans l'existant.
Hors ligne
Ton SetItem() est appelé comment (fais voir... ) ? Tu es sûre de la valeur qui est passée ?
Hors ligne
rapitou a écrit:
Savez-vous comment déterminer la raison pour laquelle un setitem retournerait -1?
au hasard : type de donnée utilisé par le setitem <> type de donnée de la colonne ?
Hors ligne
rincevent a écrit:
rapitou a écrit:
Savez-vous comment déterminer la raison pour laquelle un setitem retournerait -1?
au hasard : type de donnée utilisé par le setitem <> type de donnée de la colonne ?
Vu que SetItem() prend un any, il peut y avoir des trucs quand PB fait correspondre le any avec le vrai type de la colonne. Any nul ou un truc du genre.
Hors ligne
avec date / datetime aussi ça fait des trucs chelous des fois je pense
Hors ligne
seki a écrit:
Ton SetItem() est appelé comment...
Tant qu'on y est, un export de la Datawindow Object serait utile pour vérifier le type...
Hors ligne
Juste pour info je suis très confirmée en dev PB donc il faut chercher la vérité ailleurs que dans les types pas compatibles ou la syntaxe du setitem ...
Voici l'export des colonnes, la dw n'a rien de compliqué :
column(band=detail id=2 alignment="0" tabsequence=10 border="5" color="0" x="507" y="16" height="56" width="800" format="[general]" html.valueishtml="0" name=ag_nom_patro visible="1" edit.limit=30 edit.case=upper edit.autoselect=yes edit.autohscroll=yes edit.useellipsis=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" ) text(band=detail alignment="1" text="Nom Patronymique" border="0" color="8388608" x="14" y="16" height="56" width="443" html.valueishtml="0" name=t_1 visible="1" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" ) column(band=detail id=4 alignment="0" tabsequence=30 border="5" color="0" x="507" y="184" height="56" width="800" format="[general]" html.valueishtml="0" name=ag_prenom visible="1" edit.limit=30 edit.case=upper edit.autoselect=yes edit.autohscroll=yes edit.useellipsis=yes font.face="Arial" font.height="-8" font.weight="400" font.family="1" font.pitch="1" font.charset="0" background.mode="2" background.color="16777215" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" ) text(band=detail alignment="1" text="Prénom" border="0" color="8388608" x="270" y="184" height="56" width="187" html.valueishtml="0" name=t_2 visible="1" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" ) column(band=detail id=5 alignment="0" tabsequence=40 border="5" color="0" x="1701" y="16" height="56" width="581" format="[general]" html.valueishtml="0" name=ag_matricule visible="1" edit.limit=15 edit.case=upper edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="1" font.pitch="1" font.charset="0" background.mode="2" background.color="16777215" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" ) column(band=detail id=3 alignment="0" tabsequence=20 border="5" color="0" x="507" y="100" height="56" width="800" format="[general]" html.valueishtml="0" name=ag_nom visible="1" edit.limit=30 edit.case=upper edit.autoselect=yes edit.autohscroll=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" ) column(band=detail id=1 alignment="0" tabsequence=50 border="5" color="0" x="1701" y="100" height="56" width="581" format="[general]" html.valueishtml="0" name=ag_num visible="1~t~"No~"" edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" ) text(band=detail alignment="1" text="Identifiant" border="0" color="8388608" x="1413" y="16" height="56" width="242" html.valueishtml="0" name=t_3 visible="1" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" ) text(band=detail alignment="1" text="Nom Marital" border="0" color="8388608" x="160" y="100" height="56" width="297" html.valueishtml="0" name=t_4 visible="1" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="81324524" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" ) text(band=detail alignment="1" text="N° d'Agent" border="0" color="8388608" x="1349" y="100" height="56" width="306" html.valueishtml="0" name=ag_num_t visible="1~t~"No~"" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="79741120" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" )
Hors ligne
Non je n'ai pas essayé... Par contre j'ai créé un nouveau champ bidon pour y mettre une valeur et ça n'a pas marché non plus....
Je vais faire autrement ... je vais créer une autre dw avec la meme requete , la mettre dans mon controle et faire un nouveau test ... je vous dis ce que ça donne
Hors ligne
Ca marche toujours pas donc ce n'est pas l'objet datawindow lui même mais ce dans quoi il est encapsulé ... Sauf que je n'ai pas envie de mettre le nez dans les méandres de ce fw sur lequel je ne ferai aucun commentaire !!
On revient au point de départ d'où ma question : il n'y a pas moyen de récupérer l'erreur déclenchée par le setitem ? D'après vos réponses je comprends que non ...
Hors ligne
Bonjour,
Tu n'utilise pas un framework quelconque qui refuse la valeur dans l'événement itemchanged ou autres ...
Sinon, j'ai vu une ou deux fois des comportements analogues inexplicables. J'ai effacé et reconstruit le "dataobjet" et le problème s'est réglé tout seul.
Hors ligne
Non il n'y a pas de refus de valeur dans l'itemchanged .. un setitem ne déclenche pas l'itemchanged sinon j'aurai pu récupérer l'erreur dans l'itemerror ...
En recréant le dataobject ça fonctionne pas non plus !
Pourquoi je pourrais modifier un champ en saisie mais ne pas mettre une valeur dedans par le code ?? Ca n'a pas de sens ...
Dire qu'il va falloir vivre avec ce fw daubesque ... en peu de temps j'ai cumulé tout un tas de c... inexplicables !!
Hors ligne
tiens, tu parles de fw, est-ce que tu travailes avec une datawindow ou un control heritié, avec une surcharge du setitem par exemple?
Hors ligne
Non il n'y a pas de surcharge du setitem
Hors ligne
Essaye SetText() puis accepttext() cela déclenche bien l'item error.
Tu simules ainsi une saisie manuelle.
Dernière modification par Dadone (24-09-2013 13:54:46)
Hors ligne
j'imagine que tu as essayé de tracer en debug en pas à pas (Step In) pour voir si il n'y a pas un script qui s’exécute une fois dans le setitem...
Hors ligne
Ou j'étais passé en debug ça n'a rien donné
Je vais essayer avec le Settext/acceptText
Dernière modification par rapitou (24-09-2013 14:35:58)
Hors ligne
Bon alors j'ai essayé avec le SetText ... et là je n'ai pas d'erreur le champ est bien mis à jour !!
???
La vérité est vraiment ailleurs pour le coup ...........
Hors ligne
rapitou a écrit:
La vérité est vraiment ailleurs pour le coup
Maraboutage habituels de PB (quand on a déjà essayé tout le reste) :
- full build
- sinon relancer PB + full build ?
- sinon relancer le poste + full build ?
- sinon ?
Hors ligne