Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

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 07-09-2010 08:41:22

armelos  
Nouveau membre
Date d'inscription: 07-09-2010
Messages: 1
Pépites: 10
Banque: 0

Invalid DataWindow row

Bjr a vous j'ai un soucis avec l'utilisation d'un trieview avec power builder 10.5

voila l'erreur qui s'affiche

 

Code: pb

 Text:Invalid DataWindow row/column specified at line 120 in itempopulate event of object tv_1 of      u_md0760_ent_geo 

  Object:tv_1

   Event/Function:itempopulate

   Line:120
   Position:6

Ce problème se pose au niveau du case 5(dans le code)

Quelqu'un pour me venir en aide.STP

et voila le code

Code: pb

TreeViewItem tvi_Current, tvi_New
long ll_Row, ll_RowCount, ll_level

SetPointer(HourGlass!)

GetItem(handle, tvi_Current)

ids_DataBuffer.Reset()
ll_level = tvi_Current.Level
choose case tvi_Current.Level
  case 1
    
    if ids_DataBuffer.of_cambiar_dataobject('d_md0760_prov') <0 then Return -1
  case 2
    
     if ids_DataBuffer.of_cambiar_dataobject('d_md0760_deptos') <0 then Return -1
  case 3
    
    if ids_DataBuffer.of_cambiar_dataobject('d_md0760_munic') <0 then Return -1
    
  
  
  case 4
  
    if ids_DataBuffer.of_cambiar_dataobject('d_md0760_localidades_1') <0 then Return -1
  case 5
  
    if ids_DataBuffer.of_cambiar_dataobject('d_md0760_localidades_2') <0 then Return -1
  
    
  case 6
    
    if ids_DataBuffer.of_cambiar_dataobject('d_ent_calles') <0 then Return -1
  case 7   
    
    if ids_DataBuffer.of_cambiar_dataobject('d_ent_fincas') <0 then Return -1
    
  case else
    tvi_Current.Children=FALSE
    this.SetItem(Handle,tvi_Current)
    return 0
end choose
ids_DataBuffer.SetTransObject(SQLCA)
ll_RowCount=ids_DataBuffer.Retrieve(tvi_Current.Data)
if  ll_RowCount< 1 then
  tvi_Current.Children=FALSE
  this.SetItem(handle,tvi_Current)
  return 0

end if
tvi_New.Children=(NOT tvi_Current.Level=7)
tvi_New.Level=tvi_Current.Level+1
tvi_New.PictureIndex=tvi_New.Level*2
tvi_New.SelectedPictureIndex=tvi_New.PictureIndex

for ll_Row=1 to ll_RowCount
  
    tvi_New.Data=ids_DataBuffer.GetItemNumber(ll_Row,'ID')
    tvi_New.Label=ids_DataBuffer.GetItemString(ll_Row,'nombre')
    this.InsertItemLast(Handle,tvi_New)


Elseif tvi_New.Level= 2 Then
    tvi_New.Data=ids_DataBuffer.GetItemNumber(ll_Row,'ID')         
    tvi_New.Label=ids_DataBuffer.GetItemString(ll_Row,'nombre')
    this.InsertItemLast(Handle,tvi_New)


  Elseif tvi_New.Level= 3 Then
    tvi_New.Data=ids_DataBuffer.GetItemNumber(ll_Row,'ID')
    tvi_New.Label=ids_DataBuffer.GetItemString(ll_Row,'nombre')
    this.InsertItemLast(Handle,tvi_New)

 Elseif tvi_New.Level= 4 Then
    tvi_New.Data=ids_DataBuffer.GetItemNumber(ll_Row,'ID')
    tvi_New.Label=ids_DataBuffer.GetItemString(ll_Row,'nombre')
    this.InsertItemLast(Handle,tvi_New)


    
 Elseif tvi_New.Level= 5 Then
    tvi_New.Data=ids_DataBuffer.GetItemNumber(ll_Row,'ID') // Le problème se pose ici
    tvi_New.Label=ids_DataBuffer.GetItemString(ll_Row,'nombre')
    this.InsertItemLast(Handle,tvi_New)  

 Elseif tvi_New.Level= 6 Then
    tvi_New.Data=ids_DataBuffer.GetItemNumber(ll_Row,'ID')
    tvi_New.Label=ids_DataBuffer.GetItemString(ll_Row,'nombre')
    this.InsertItemLast(Handle,tvi_New)
    
 Elseif tvi_New.Level= 7 Then
    tvi_New.Data=ids_DataBuffer.GetItemNumber(ll_Row,'ID')
    tvi_New.Label=ids_DataBuffer.GetItemString(ll_Row,'nombre')
    this.InsertItemLast(Handle,tvi_New)
  End if  
next
 
return 0

Hors ligne

 

#2 07-09-2010 08:54:17

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2473
Pépites: 56
Banque: 9,223,372,036,854,776,000

Re: Invalid DataWindow row

Bonjour,

Tout d'abord, afin de clarifier ton post,

Ensuite, as-tu le code de la fonction of_cambiar_dataobject?


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 07-09-2010 09:38:41

Gilles  
Membre
Lieu: Nogent Sur Seine
Date d'inscription: 15-03-2010
Messages: 16
Pépites: 65
Banque: 67,334
Site web

Re: Invalid DataWindow row

Hi all,

Invalid row/column, la variable ll_row est-elle bien remplie en vérifiant en debug ?


PB 10.5.2
Oracle 10g

http://gilles.baudlet.free.fr/storage/userbar.gif

Hors ligne

 

#4 07-09-2010 10:04:38

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2473
Pépites: 56
Banque: 9,223,372,036,854,776,000

Re: Invalid DataWindow row

A mon avis, il manque un if dans ta boucle FOR...NEXT.
On ne voit que des elseif.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#5 07-09-2010 11:37:17

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5107
Pépites: 97,146
Banque: 2,147,483,647

Re: Invalid DataWindow row

Il doit en effet manquer après le FOR : If tvi_New.Level= 1 Then (copier-coller foiré?)
D'ailleurs autant utiliser un Choose case.
Mais bon, l'erreur est en amont...


TESTER C'EST DOUTER.http://imageshack.com/a/img547/2035/ed4o.jpg
N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 07-09-2010 11:44:32

Gilles  
Membre
Lieu: Nogent Sur Seine
Date d'inscription: 15-03-2010
Messages: 16
Pépites: 65
Banque: 67,334
Site web

Re: Invalid DataWindow row

On dirait oui, par contre il passe plusieurs elseif quand même
Il a du sucrer des bouts de code.

Dernière modification par Gilles (07-09-2010 12:01:05)


PB 10.5.2
Oracle 10g

http://gilles.baudlet.free.fr/storage/userbar.gif

Hors ligne

 

#7 07-09-2010 13:27:55

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 734
Pépites: 1,028,804
Banque: 171,170,849,654

Re: Invalid DataWindow row

Bonjour,

Il doit en effet manquer après le FOR : If tvi_New.Level= 1 Then (copier-coller foiré?)
D'ailleurs autant utiliser un Choose case.

Surtout que dans les elseif, J'ai raté quelque chose mais je n'ai vu aucune différence de code pour les niveaux 2 à 7.

Ce ne serait pas plus lisible et plus simple :

Code: pb

CHOOSE CASE ltvi_new.level
    CASE 2 TO 7
        tvi_New.Data=ids_DataBuffer.GetItemNumber(ll_Row,'ID')
        tvi_New.Label=ids_DataBuffer.GetItemString(ll_Row,'nombre')
        this.InsertItemLast(Handle,tvi_New)
END CHOOSE

Hors ligne

 

#8 08-09-2010 07:21:35

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 346
Pépites: 642
Banque: 150

Re: Invalid DataWindow row

Armelos as tu résolu ton cas ?

Si oui peut tu indiquer ce que tu as fait pour le résoudre  et mettre le cas échéant ton cas à résolu : [RESOLU] dans ton titre?

Si ce n'est toujours pas le cas peut tu donner d'autres info .

Hors ligne

 

#9 08-09-2010 08:27:09

Gilles  
Membre
Lieu: Nogent Sur Seine
Date d'inscription: 15-03-2010
Messages: 16
Pépites: 65
Banque: 67,334
Site web

Re: Invalid DataWindow row

1 Message pour Armelos, le reverrons nous ?
Il ne s'est pas reconnecté depuis son post.


PB 10.5.2
Oracle 10g

http://gilles.baudlet.free.fr/storage/userbar.gif

Hors ligne

 

#10 08-09-2010 08:48:56

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5107
Pépites: 97,146
Banque: 2,147,483,647

Re: Invalid DataWindow row

Gilles a écrit:

1 Message pour Armelos, le reverrons nous ?
Il ne s'est pas reconnecté depuis son post.

en même temps, c'était juste hier...


TESTER C'EST DOUTER.http://imageshack.com/a/img547/2035/ed4o.jpg
N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22