RE:Como cuento cuantos Compute Fields tiene DW
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))