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: 2486
Pépites: 85
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: 2486
Pépites: 85
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: 5121
Pépites: 97,197
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...


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: 747
Pépites: 1,028,843
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: 349
Pépites: 665
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: 5121
Pépites: 97,197
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...


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22