In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Ignacio Ortiz de Zuiga Como funciona DBEval() ?

Foro de Xailer profesional en español
Responder
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Ignacio Ortiz de Zuiga Como funciona DBEval() ?

Mensaje por zeasoftware »

Meto mi cuchara, aqui te dejo la ayuda, esta viene desde clipper.
DBEVAL()
Eval£a un bloque de c¢digo para cada registro dentro de un mbito que
cumpla una condici¢n
í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„ í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„ í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„í„
Sintaxis
DBEVAL(<bBloque>,
[<bCondici¢nFor>],
[<bCondici¢nWhile>],
[<nRegistrosSiguientes>],
[<nRegistro>],
[<lResto>]) --> NIL
Argumentos
<bBloque> es el bloque de c¢digo que va a ejecutarse para cada
registro procesado.
<bCondici¢nFor> es una condici¢n opcional especificada como un
bloque de c¢digo, que se eval£a en cada registro del mbito. Realiza la
misma funci¢n que la cl usula FOR de mandatos de tratamiento de
registros.
<bCondici¢nWhile> es una condici¢n opcional especificada como un
bloque de c¢digo, que se eval£a en cada registro del fichero actual,
hasta que la condici¢n devuelva falso (.F.). Realiza la misma funci¢n
que la cl usula WHILE de los mandatos de tratamiento de registros.
<nRegistrosSiguientes> es un n£mero opcional, que especifica el
n£mero de registros que van a procesarse, empezando por el actual. Es
id,ntico a la cl usula NEXT.
<nRegistro> es el n£mero de registro opcional que va a procesarse.
Si se especifica este argumento, <bBloque> se eval£a para el registro
especificado. Este argumento es id,ntico a la cl usula RECORD.
<lResto> es un valor l¢gico opcional, que determina si el mbito de
DBEVAL() es todos los registros del fichero o todos los registros desde
el registro actual. Este argumento corresponde a las cl usulas REST y
ALL de los mandatos de tratamiento de registros. Si es verdadero (.T.),
el mbito es REST; de lo contrario, el mbito es ALL. Si no se
especifica <lResto>, el mbito por defecto es todos los registros.
Devuelve
DBEVAL() devuelve siempre NIL.
Descripci¢n
DBEVAL() es una funci¢n de base de datos, que eval£a un £nico bloque de
c¢digo para cada registro del rea de trabajo actual que cumpla una
condici¢n y/o un mbito especificado. En cada iteraci¢n, DBEVAL()
eval£a el bloque especificado. Se procesan todos los registros dentro
del mbito o que cumplan la condici¢n, hasta alcanzar el final del
fichero.
Por defecto, DBEVAL() act£a en el rea de trabajo actual. Si desea
utilizarla en otra rea de trabajo, debe especificarla con una
expresi¢n de alias.
DBEVAL() es similar a AEVAL(), que aplica un bloque a cada elemento de
una matriz. Al igual que AEVAL(), DBEVAL() puede utilizarse como
primitiva para la creaci¢n de mandatos definidos por el usuario para
ficheros de base de datos. De hecho, existen diversos mandatos de
tratamiento de base de datos de CA-Clipper que se crean por medio de
DBEVAL().
Si desea m s informaci¢n sobre la sintaxis y teor¡a de los bloques de
c¢digo, consulte el apartado Bloques de C¢digo en el cap¡tulo
"Conceptos B sicos" de la Gu¡a de Programaci¢n y Utilidades. Consulte
tambi,n el apartado Sistema de Base de Datos en el mismo cap¡tulo
"Conceptos B sicos" si desea m s informaci¢n sobre el mbito y
condiciones de registros. El fichero de cabecera est ndar de
CA-Clipper, Std.ch, que se encuentra en CLIP53INCLUDE ofrece ejemplos
sobre definiciones de mandatos de base de datos de CA-Clipper, que
utilizan DBEVAL().
Ejemplos
í¾ Este ejemplo utiliza DBEVAL() para crear Contar(), una funci¢n
definida por el usuario, que cuenta el n£mero de registros en un
rea de trabajo comprendidos en un mbito especificado. El mbito se
pasa como una matriz a Contar(). Para que los ejemplos resulten m s
interesantes, existe un mandato definido por el usuario que crea la
matriz de mbito, que permite especificar el mbito de forma
familiar. Adem s, existe un conjunto de constantes declaradas que
definen los atributos del objeto de mbito.
// Definici¢n de mandato de mbito
#command CREATE SCOPE <aAmbito> [FOR <for>] ;
[WHILE <while>] [NEXT <next>] [RECORD <rec>] ;
[<rest:REST>] [ALL];
=>;
<aAmbito> := { <{for}>, <{while}>, <next>, ;
<rec>, <.rest.> }
//
// Constantes de atributos de mbito
#define FOR_COND 1
#define WHILE_COND 2
#define NEXT_SCOPE 3
#define REC_SCOPE 4
#define REST_SCOPE 5
//
// Crear un mbito y contar registros us ndolo
LOCAL miConjunto, miContador
USE Cliente NEW
CREATE SCOPE miConjunto FOR Cliente = "L¢pez" WHILE ;
CodPostal > "90000"
miContador := Contar( miConjunto )
RETURN
FUNCTION Contar( aAmbito )
LOCAL nContador := 0
DBEVAL( {|| nContador++},;
aAmbito[ FOR_COND ],;
aAmbito[ WHILE_COND ],;
aAmbito[ NEXT_SCOPE ],;
aAmbito[ REC_SCOPE ],;
aAmbito[ REST_SCOPE ];
)
RETURN nContador
Ficheros La biblioteca asociada es CLIPPER.LIB
Saludos.
--
Ramón Zea
01.993.194.14.27
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"PEDRO DE LEON RODAS" <deleonpe@terra.com.mx> escribió en el mensaje news:[email=46ba95a6@ozsrv2.ozlan.local...]46ba95a6@ozsrv2.ozlan.local...[/email]
> He buscado en la ayuda de xailer un ejemplo de como funciona DBEval() o la
> sintaxis, pero no he encontrado nada.
>
> Y aún mas no he podido saber como poner totales o sumas de una columna de un
> tdbbrowse con los footers
>
> Perdon por la molestia y la falta de conocimiento en xailer.
> Ya que siempre he programado en foxpro y ahi me hes mas facil.
>
> con el comando sum().
>
> Gracias por toda ayuda.
>
>
--
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Ignacio Ortiz de Zuiga Como funciona DBEval() ?

Mensaje por jfgimenez »

Pedro,
> He buscado en la ayuda de xailer un ejemplo de como funciona DBEval() o la
> sintaxis, pero no he encontrado nada.
>
> Y aún mas no he podido saber como poner totales o sumas de una columna de
> un tdbbrowse con los footers
>
> Perdon por la molestia y la falta de conocimiento en xailer.
> Ya que siempre he programado en foxpro y ahi me hes mas facil.
>
> con el comando sum().
La documentación de DBEval() ya te la ha mostrado Ramón. No obstante, puedes
usar también el comando SUM de dBaseIII, que todavía sigue existiendo y
funciona:
SUM <lista nExp> TO <lista idVar> [<ámbito>] [WHILE <lCondición>] [FOR
<lCondición>]
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

Ignacio Ortiz de Zuiga Como funciona DBEval() ?

Mensaje por Rolando »

Pedro:
En el siguiente link tenes todas las funciones de Clipper.
http://www.itlnet.net/programming/progr ... e/c53g01c/ menu.html
y en el siguiente la de DBEVAL()
http://www.itlnet.net/programming/progr ... e/c53g01c/ ng23f25.html
Saludos.
"PEDRO DE LEON RODAS" <deleonpe@terra.com.mx> escribió en el mensaje
news:[email=46ba95a6@ozsrv2.ozlan.local...]46ba95a6@ozsrv2.ozlan.local...[/email]
> He buscado en la ayuda de xailer un ejemplo de como funciona DBEval() o la
> sintaxis, pero no he encontrado nada.
>
> Y aún mas no he podido saber como poner totales o sumas de una columna de
> un tdbbrowse con los footers
>
> Perdon por la molestia y la falta de conocimiento en xailer.
> Ya que siempre he programado en foxpro y ahi me hes mas facil.
>
> con el comando sum().
>
> Gracias por toda ayuda.
>
Responder