Power Builder - Auxilio!!!!

   
Vista:

Auxilio!!!!

Publicado por Alfredo (8 intervenciones) el 03/11/2010 21:50:48
Buenas tardes, una consultita a ver si alguien se le ocurre, tengo un datawindows con N cantidad de columnas y quiero accesarlas de manera dinamica como por ejemplo

Dw_1.object.columna2[2] = 3

pero por ejemplo quiero un FOR donde yo pueda hacer algo como esto

for i = 1 to X

dw_1.object.'columna' + i [i] = "texto"

next

como lo puedo hacer? gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Auxilio!!!!

Publicado por amilcar (406 intervenciones) el 03/11/2010 23:21:07
mira la ayuda de modify

la sentencia seria algo como este

dw_1.Modify("Dept_t.Text='Dept'")

en tu caso deberas armar la variable

string ls_variable

ls_variable="Dept_t.Text='Dept'"

dw_cust.Modify(ls_variable)

espero te de una idea
saludos desde argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Auxilio!!!!

Publicado por JeinnerH (638 intervenciones) el 04/11/2010 16:09:10
Hay otra opción. Podría ser algo como esto lo que sigue, este código recorre los campos del DW, sin saber los nombres del mismo y te indica el estatus de cada campo, puedes basarte en esto, para que veas cómo se puede acceder a la información. Para modificar la información lo haces como indica amilcar.

$PBExportHeader$f_getitemstatusname.srf
global type f_getitemstatusname from function_object
end type

forward prototypes
global function string f_getitemstatusname (ref datawindow adw_1, string as_campo, integer ai_fila, dwbuffer adwbuf_1)
end prototypes

global function string f_getitemstatusname (ref datawindow adw_1, string as_campo, integer ai_fila, dwbuffer adwbuf_1);Choose Case adw_1.GetItemStatus(ai_fila, as_campo, adwbuf_1)
Case New!
RETURN 'NEW'

Case NewModified!
RETURN 'NewModified'

Case NotModified!
RETURN 'NotModified'
End Choose

RETURN 'DataModified'
end function

$PBExportHeader$f_getrecordstatus.srf
global type f_getrecordstatus from function_object
end type

forward prototypes
global subroutine f_getrecordstatus (ref datawindow adw_datawindow, integer ai_row)
end prototypes

global subroutine f_getrecordstatus (ref datawindow adw_datawindow, integer ai_row);Integer li_Tot_Columnas, li_1
String ls_nombre_campo


li_Tot_Columnas=Integer(adw_datawindow.Describe('DataWindow.Column.Count'))
For li_1=1 to li_Tot_Columnas
ls_nombre_campo=adw_datawindow.Describe('#'+String(li_1)+'.Name')
Messagebox('f_getrecordstatus', 'Campo('+ls_nombre_campo+') Status('+f_GetItemStatusName(adw_datawindow, ls_nombre_campo, li_1, PRIMARY!)+')', Information!)
Next
end subroutine
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Auxilio!!!!

Publicado por Alfredo (8 intervenciones) el 04/11/2010 17:59:41
Muchas gracias por la ayuda!!! ha sido muy util pero una consulta con respecto a la asignacion, si tengo lo siguiente

dw_1.modify("Variable.text = 'Valor'")

como puedo hacer para cuando tengo varias filas?

dw_1.modify("Variable[3].text = 'Valor'") ?

gracias de antemano
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Auxilio!!!!

Publicado por JeinnerH (638 intervenciones) el 08/11/2010 17:27:08
Si lo que quieres es asignarles un valor sería así:

dw_1.SetItem(1, NombreCampo, 'Valor')

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar