Power Builder - Como cuento cuantos Compute Fields tiene DW

 
Vista:

Como cuento cuantos Compute Fields tiene DW

Publicado por Keylen (1 intervención) el 24/02/2006 23:37:37
Necesito cargar los campos de un dw pero ese lleva columnas y compute, si quiero contar las columnas del dw utilizo: dw_1.object.datawindow.column.count ,pero este no me cuenta los compute solo las columnas. Como puedo contar todas las columnas incluyendo los compute y traerme el nombre de cada una de las columnas y compute?
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:Como cuento cuantos Compute Fields tiene DW

Publicado por Oscar (1178 intervenciones) el 26/02/2006 00:49:36
La clave estar en usar: dw_1.Describe("DataWindow.Objects")

Ejemplo 1: (Un ejemplo sencillo para que le pilles el truco)
//mostrar las etiquetas y los campos de las columnas y computes en un mle_1:
String ls_objetos
Long p

ls_objetos=dw_1.Describe("DataWindow.Objects")
p=pos(ls_objetos,"~t")
Do while (p>0)
ls_objetos=Replace(ls_objetos,p,1,"~r~n")
p=pos(ls_objetos,"~t")
Loop
mle_1.text=ls_objetos

Ejemplo 2: (lo que pides)
//Mostrar los nombres de las columnas y de los computes en un lb_1
//y el número total de columnas y computes.

String las_campos_y_computes[]
int li_campos_y_computes = 0
String ls_objects, ls_obj

ls_objects = dw_1.Describe( "datawindow.objects" )

int pos1=0, pos2
do while pos1 < Len(ls_objects)
ls_objects=Replace(ls_objects,pos1,1,"~r~n")
pos2 = Pos(ls_objects, "~t", pos1+1)

if pos2 = 0 then pos2 = Len(ls_objects)+1
ls_obj = mid(ls_objects,pos1+1,pos2 - pos1 - 1)
pos1 = pos2

if dw_1.Describe( ls_obj+".type" ) = "column" or &
dw_1.Describe( ls_obj+".type" ) = "compute" then
li_campos_y_computes ++
las_campos_y_computes[li_campos_y_computes] = ls_obj
//Mostramos los nombres de los campos y computes en un lb_1
lb_1.ADdItem(las_campos_y_computes[li_campos_y_computes] )
end if
loop
//Numero de campos y computes
messagebox("Cuenta",string (li_campos_y_computes))
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