Como poner un
Campo Calculado dentro de un Grid
por Peter Rorlick (el autor es un co-fundador de Montreal Business Software. Ha desarrollado soluciones en xbase desde 1981).
Traducción : Juan Manuel Espinosa G.,  Desarrollador de Software

AQUÍ ESTÁ un ejemplo gradual de cómo crear un campo calculado y cómo conseguir ese campo para presentarlo en un Grid. (Nota: una técnica similar puede usarse para calcularse campos en los reportes.)

Empiece diseñando una nueva forma. Usando al navegador, cambie al directorio de \Samples\Fleet\Tables. Pulse el botón en la etiqueta de las tablas y arrastre y deje caer Aircraft.dbf hacia su forma. Esto creará un objeto query en la forma, llamado Aircraft1.

Usando al inspector, vaya la etiqueta de Eventos por el objeto query y pulse el botón en el botón de la herramienta del evento de OnOpen.

En la función llamada Aircraft1_OnOpen, teclee:
 
 
oField=new Field()
oField.FieldName := "Make and model"
This.Rowset.Fields.Add(oField)
oField.BeforeGetValue := {; Return Trim(This.Parent["Make"].Value) + space(1) + This.Parent["Model"].Value }
   

Usted ha instruido simplemente el query para agregar un campo calculado y ha mostrado Make and Model en una sola columna.

Note que usted puede crear más simplemente campos calculados, en la declaración de SQL "SELECT...FROM". Pero la manera nosotros estamos haciéndolo aquí es mucho más poderosa, porque el .BeforeGetValue es manejado por VdB en lugar del motor de SQL. Esto significa que usted puede usar las funciones de xbase y UDFs para construir sus campos calculados - y ésta es una diferencia vital. SQL es bueno pero a veces no es lo bastante flexible.

De la Paleta de Componentes, deje caer un Grid hacia la forma, y agrándelo. Seleccione el Grid, y usando el inspector, pulse el botón descendente de la propiedad DataLink, y direccionelo a Aircraft1.

En cuanto usted haga esto, notará que la Grid se puebla con filas de la tabla.

Ahora, nuestra meta es conseguir el campo calculado hacia el Grid. Para hacer esto usted necesitará ejecutar el query de nuevo para que "Make and Model" este disponible en la herramienta de Seleccionador de Columnas. Desafortunadamente, si usted intenta poner la propiedad Active del  query a false y despues regresar a true, usted obtendrá a un error. Pero usted puede ejecutar eficazmente de nuevo el query salvando la forma (llámelo MyGrid.WFM) y entonces ábralo de nuevo con el diseñador. Una vez que usted lo haya hecho, haga clic en el Grid, llame al inspector, y pulse el botón de la herramienta de la propiedad de las Columnas. Haga doble-clic sobre el campo "Make and Model", y entonces haga doble-clic sobre el campo "Layout Image". Pulse el botón en el botón de OK.

Salve su forma y ejecútela. Voilà!


Traducción por : Juan Manuel Espinosa, Desarrollador de Software en México, D.F.
Administrador de la Comunidad de dBASE en Español
puede contactarlo por e-mail en: juan_espinosa_mx@yahoo.com ó db2kSistemas@netscape.net