DDDW
Publicado por Miguel Angel (12 intervenciones) el 30/03/2006 09:45:42
Hola a todos, mi problema es el siguiente: he migrado de PowerBuilder 6.5 a PowerBuilder 10 (gran salto lo se jejeje) pero la cuestión es que en PW6.5 tenia una dw con un campo de tipo long en el que yo metia una dddw en función de un valor y en tiempo de ejecución cambiaba esta dddw, es decir, si el usuario cambiaba el valor de una columna la dddw cambiaba automáticamente. El código que tenía en la versión 6.5 es el siguiente (evento ItemFocusChanged):
//Variables
String Tipo_vehiculo
If (row>0) then
tipo_vehiculo=This.GetItemString(row,"tpvh")
Choose case tipo_vehiculo
case "T"
This.Modify("codtip.dddw.PercentWidth=430")
This.Modify("codtip.dddw.ShowList=No")
This.Modify("codtip.dddw.Datacolumn='codtrac'")
This.Modify("codtip.dddw.Displaycolumn='codtrac'")
This.Modify("codtip.dddw.Name='dwl_tract'")
case "R"
This.Modify("codtip.dddw.PercentWidth=370")
This.Modify("codtip.dddw.ShowList=No")
This.Modify("codtip.dddw.Datacolumn='codsemi'")
This.Modify("codtip.dddw.Displaycolumn='codsemi'")
This.Modify("codtip.dddw.Name='dwl_semi'")
End Choose
End if
La cuestión es que ahora este código no me funciona, me sale un error que dice: "DataWindow Error" "Expression is not valid", he cambiado el código a este (en el mismo evento):
DataWindowChild dwc
If (dwo.Name='codtip') then
If (row>0) then
tipo_vehiculo=This.GetItemString(row,"tpvh")
If (tipo_vehiculo='T') then
This.Object.codtip.dddw.Name='dwl_tract'
This.Object.codtip.dddw.DataColumn='codtrac'
This.Object.codtip.dddw.DisplayColumn='codtrac'
else
This.Object.codtip.dddw.Name='dwl_semi'
This.Object.codtip.dddw.DataColumn='codsemi'
This.Object.codtip.dddw.DisplayColumn='codsemi'
end if
This.GetChild('codtip',dwc)
dwc.SetTransObject(SQLCA)
dwc.Retrieve()
end if
end if
pero sigue sin fucionar, me sale el mismo error, aunque lo curioso es que después de darle a aceptar cuando me sale el error, si me cambia la dddw pero el fastidio es que siempre sale la dichosa ventanita con el DataWindow Error Expression is not valid.
Me parece que el error lo da cuando cambia de dddw porque si la fila tiene el mismo valor en la columna tipo y por tanto no tiene que cambiar el dddw no hace nada, ahora el error viene cuando cambia la dddw. Otra cosa la columan que contiene la dddw es de tipo long y los datacolumn de cada dddw tambien son de tipo long.
Ya no sé que hacer para solucionar esto, espero me puedan echar una mano porque el tema se está alargando demasiado.
Gracias a todos, Miguel Ángel.
//Variables
String Tipo_vehiculo
If (row>0) then
tipo_vehiculo=This.GetItemString(row,"tpvh")
Choose case tipo_vehiculo
case "T"
This.Modify("codtip.dddw.PercentWidth=430")
This.Modify("codtip.dddw.ShowList=No")
This.Modify("codtip.dddw.Datacolumn='codtrac'")
This.Modify("codtip.dddw.Displaycolumn='codtrac'")
This.Modify("codtip.dddw.Name='dwl_tract'")
case "R"
This.Modify("codtip.dddw.PercentWidth=370")
This.Modify("codtip.dddw.ShowList=No")
This.Modify("codtip.dddw.Datacolumn='codsemi'")
This.Modify("codtip.dddw.Displaycolumn='codsemi'")
This.Modify("codtip.dddw.Name='dwl_semi'")
End Choose
End if
La cuestión es que ahora este código no me funciona, me sale un error que dice: "DataWindow Error" "Expression is not valid", he cambiado el código a este (en el mismo evento):
DataWindowChild dwc
If (dwo.Name='codtip') then
If (row>0) then
tipo_vehiculo=This.GetItemString(row,"tpvh")
If (tipo_vehiculo='T') then
This.Object.codtip.dddw.Name='dwl_tract'
This.Object.codtip.dddw.DataColumn='codtrac'
This.Object.codtip.dddw.DisplayColumn='codtrac'
else
This.Object.codtip.dddw.Name='dwl_semi'
This.Object.codtip.dddw.DataColumn='codsemi'
This.Object.codtip.dddw.DisplayColumn='codsemi'
end if
This.GetChild('codtip',dwc)
dwc.SetTransObject(SQLCA)
dwc.Retrieve()
end if
end if
pero sigue sin fucionar, me sale el mismo error, aunque lo curioso es que después de darle a aceptar cuando me sale el error, si me cambia la dddw pero el fastidio es que siempre sale la dichosa ventanita con el DataWindow Error Expression is not valid.
Me parece que el error lo da cuando cambia de dddw porque si la fila tiene el mismo valor en la columna tipo y por tanto no tiene que cambiar el dddw no hace nada, ahora el error viene cuando cambia la dddw. Otra cosa la columan que contiene la dddw es de tipo long y los datacolumn de cada dddw tambien son de tipo long.
Ya no sé que hacer para solucionar esto, espero me puedan echar una mano porque el tema se está alargando demasiado.
Gracias a todos, Miguel Ángel.
Valora esta pregunta


0