Files
harbour-core/harbour/doc/es/browse.txt
2003-07-13 14:51:56 +00:00

401 lines
16 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2000 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de: BROWSE(), DBEDIT(), TBROWSEDB(), DBSKIPPER()
*
* Copyright 1999 Chen Kedem <niki@actcom.co.il>
* Documentaci¢n en Ingls de: BROWSE(), DBEDIT(), TBROWSEDB(), DBSKIPPER()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* DBEDIT()*
* $CATEGORY$
* Entrada y salida de datos
* $ONELINER$
* Despliega registros en una tabla
* $SYNTAX$
* DBEDIT( [<nSup>], [<nIzq>], [<nInf>], [<nDer>], [<acColumnas>], ;
* [<xFuncionUsuario>], [<xColumnSayPictures>], ;
* [<xCabeceraColumna>], ;
* [<xSeparadorCabecera>], [<xSeparadorColumna>], ;
* [<xSeparadorPie>], [<xPieColumna>] ) --> lExito
* $ARGUMENTS$
* <nSup> coordenada para la fila Superior de visualizaci¢n. El rango
* para <nSup> va de cero a MAXROW(), por defecto es cero.
*
* <nIzq> coordenada para la columna izquierda de visualizaci¢n. El
* rango para <nIzq> va de cero a MAXCOL(), por defecto es cero.
*
* <nInf> coordenada para la fila inferior de visualizaci¢n. El rango
* para <nInf> va de cero a MAXROW(), por defecto es MAXROW().
*
* <nDer> coordenada para la columna derecha de visualizaci¢n. El rango
* para <nDer> va de cero a MAXCOL(), por defecto es MAXCOL().
*
* <acColumnas> es un array de expresiones de caracteres que contienen
* los nombres de los campos de la base de datos, ¢ expresiones para la
* visualizaci¢n en cada columna.
* Si no es especificada, por defecto es la visualizaci¢n de todos los
* campos de la base de datos en el  rea de trabajo actual.
*
* <xFuncionUsuario> es el nombre de una funci¢n ¢ un bloque de c¢digo
* que podr¡a ser llamado cada vez que una tecla no reconocida ha sido
* presionada ¢ cuando no hay m s teclas para ser procesadas y DBEDIT()
* va al modo inactivo. Si <xFuncionUsuario> es una cadena de caracteres
* sta debe contener el nombre de una funci¢n de usuario definida, que
* sea v lida y sin parntesis.
* Ambos la funci¢n definida por el usuario ¢ el bloque de c¢digo
* deber n aceptar dos par metros: nModo y nActualColumna.
* Ambos deber¡an devolver un valor numrico que corresponda a uno de
* los c¢digos de retorno esperados.
* (Vea la tabla m s abajo con la lista de nModo y los c¢digos de
* retorno).
*
* <xColumnSayPictures> es un molde (picture) opcional.
* Si <xColumnSayPictures> es una cadena de caracteres, todas las
* columnas pueden usar el mismo valor como cadena de molde (picture).
* Si <xColumnSayPictures> es un array, cada elemento debe ser una
* cadena de caracteres que corresponde a la cadena (picture) usada de
* molde para la columna con el mismo ¡ndice. Vea la ayuda para @...SAY
* para tener m s informaci¢n acerca de los valores de molde (picture).
*
* <xCabeceraColumna> contiene los t¡tulos de cabecera para cada columna
* si ste es una cadena de caracteres, todas las columnas tendr n el
* mismo encabezado, si ste es un array, cada elemento es una cadena
* de caracteres que contienen el titulo de cabecera para cada campo.
* La cabecera puede ser dividido en m s de una l¡nea al poner un punto
* y coma (;) en los lugares donde Ud. desea romper la l¡nea.
* Si es omitida el valor por defecto para cada cabecera de columna es
* tomado de <acColumnas> ¢ el nombre del campo de la base de datos, si
* <acColumnas> no fue especificado
*
* <xSeparadorCabecera> es un array que contiene caracteres que dibujan
* las l¡neas que separan las cabeceras y los datos de los campos .
* En lugar de un array Ud. puede usar una cadena de caracteres que
* podr¡a ser usada para la visualizaci¢n de la misma l¡nea para todos
* los campos.
* El valor por defecto es una l¡nea doble.
*
* <xSeparadorColumna> es un array que contiene caracteres que dibujan
* las l¡neas que separan las columnas visualizadas. En lugar de un
* array Ud. puede usar una cadena de caracteres que podria ser usada
* para la visualizaci¢n de la misma l¡nea para todos los campos.
* El valor por defecto es una l¡nea simple.
*
* <xSeparadorPie> es un array que contiene caracteres que dibujan
* las l¡neas que separan el  rea de datos de los campos y el pie.
* En lugar de un array Ud. puede usar una cadena de caracteres que
* podr¡a ser usada para la visualizaci¢n de la misma l¡nea para todos
* los campos. El valor por defecto es ning£n separador de pie.
*
* <xPieColumna> contiene el pie para ser visualizado al final de
* cada columna, si este es una cadena de caracteres, todas las columnas
* tendr n el mismo pie, si este es un array, cada elemento es una
* cadena de caracteres que contienen el pie para cada campo. El pie
* puede ser dividido en m s de una l¡nea al poner un punto y coma (;)
* en los lugares donde Ud. desea romper la l¡nea. Si es omitido, ning£n
* pie es visualizado.
* $RETURNS$
* DBEDIT() retorna .F. si no hay una base de datos abierta en ese  rea
* de trabajo, ¢ si el n£mero de columnas para la visualizaci¢n es cero,
* en caso contrario DBEDIT() devuelve .T.
* $DESCRIPTION$
* DBEDIT() visualiza y permite editar registros de una ¢ m s  reas de
* trabajo en una grilla en pantalla. Cada columna es definida por los
* elementos de <acColumnas> y es el equivalente de un campo.
* Cada fila es el equivalente de un registro de la base de datos.
*
*
* A Continuaci¢n estan las teclas manejadas por DBEDIT(): </par>
* -------------------------------------------------------
*
* Tecla Significado
*
* Izquierda Mueve una columna a la izquierda (campo previo)
* Derecha Mueve una columna a la derecha (proximo campo)
* Arriba Mueve arriba una fila (registro previo)
* Abajo Mueve abajo una fila (proximo registro)
* Pag-Arriba Mueve a la pantalla previa
* Pag-Abajo Mueve a la pantalla pr¢xima
* Ctrl Pag-Arriba Mueve al inicio del archivo
* Ctrl Pag-Abajo Mueve al final del archivo
* Inicio Mueve a la columna visible m s a la izquierda
* Fin Mueve a la columna visible m s a la derecha
* Ctrl Izquierda Desplaza una columna a la izquierda
* Ctrl Derecha Desplaza una columna a la deecha
* Ctrl Inicio Mueve a la columna m s a la izquierda
* Ctrl Fin Mueve a la columna m s a la derecha
*
*
* Cuando <xFuncionUsuario> es omitida, dos teclas m s estan activas:
*
* Tecla significado
*
* Esc Termina BROWSE()
* Enter Termina BROWSE()
*
*
* Cuando DBEDIT() ejecuta <xFuncionUsuario> le pasa los siguientes
* argumentos:
* nModo y el ¡ndice del registro actual en <acColumnas>.
* Si <acColumnas> es omitido, el n£mero de ¡ndice es n£mero de FIELD()
* de la estructura de la base de datos abierta.
*
*
* Valores de los Modos en DBEDIT() : </par>
* ---------------------------------
*
* Dbedit.ch Valor Significado
*
* DE_IDLE 0 DBEDIT() esta inactivo, todas la teclas de
* movimiento han sido procesadas.
* DE_HITTOP 1 Intento de mover el cursor m s alla de la parte
* superior del archivo
* DE_HITBOTTOM 2 Intento de mover el cursor despues del final
* del archivo.
* DE_EMPTY 3 No hay registros en el  rea de trabajo, la base
* de datos est  vacia.
* DE_EXCEPT 4 Interrupci¢n de teclado
*
*
*
* La funci¢n definida por el usuario ¢ el bloque de c¢digo debe
* retornar un valor que le indique a DBEDIT() que hacer a continuaci¢n.
*
*
* C¢digos de retorno de la Funci¢n del Usuario: </par>
* --------------------------------------------
*
* Dbedit.ch Valor Significado
*
* DE_ABORT 0 Aborta DBEDIT().
* DE_CONT 1 Continua DBEDIT() como ahora.
* DE_REFRESH 2 Fueza relectura/revisualizaci¢n en pantalla de
* todas las filas de datos
*
*
* La funci¢n del usuario es llamada una vez en cada uno de los
* siguientes casos:
* - La base de datos esta vac¡a.
* - El usuario trata de mover m s alla de la parte superior ¢ de la
* parte inferior del archivo.
* - Interrupci¢n de teclado, el usuario ha presionado una tecla que no
* puede ser manejada por DBEDIT().
* - El buffer de teclado esta vac¡o ¢ un refresco de pantalla acaba
* de ocurrir.
*
* Nota Importante:
* ---------------
* DBEDIT() es una funci¢n de compatibilidad, esta fu superada por la
* clase TBrowse y no es recomendada para nuevas aplicaciones.
* $EXAMPLES$
* <fixed>
* // Despliega un archivo DBF usando valores por defecto
* USE Test
* DBEDIT()
* </fixed>
*
* $STATUS$
* S
* $COMPLIANCE$
* <xFuncionUsuario> puede ser tambin un bloque de c¢digo, esta es una
* extensi¢n de Harbour.
*
* CA-Clipper lanzar  un error si no hay una base de datos abierta
* Harbour puede retornar .F.
*
* Clipper es inconsistente y lanzar  un error si el n£mero de columnas
* es cero. Harbour puede retornar .F.
* Las NG de CA-Clipper 5.2 indican que el valor devuelto es NIL,
* esto es err¢neo y deber¡a ser un valor l¢gico.
*
* Hay un c¢digo de retorno (3) indocumentado para las funciones
* definidas por el usuario en Clipper (ambos 87 and 5.x). este es un
* Modo de agregado (Append) el cual:
* "Divide la pantalla para permitir m s que datos sean agregados en el
*  rea de la ventana".
* Este modo no es soportado por Harbour.
* $FILES$
* Los archivos de cabecera son dbedit.ch, inkey.ch
* La librer¡a es rtl
* $SEEALSO$
* @...SAY,BROWSE(),TBrowse class,TRANSFORM()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* BROWSE()*
* $CATEGORY$
* Entrada y salida de datos
* $ONELINER$
* Despliega un archivo de base de datos
* $SYNTAX$
* BROWSE( [<nSup>, <nIzq>, <nInf>, <nDer>] ) --> lExito
* $ARGUMENTS$
* <nSup> coordenada de la fila Superior de visualizaci¢n.
*
* <nIzq> coordenada de la columna izquierda de visualizaci¢n.
*
* <nInf> coordenada de la fila inferior de visualizaci¢n.
*
* <nDer> coordenada de la columna derecha de visualizaci¢n.
* $RETURNS$
* BROWSE() retorna .F. si no hay una base de datos abierta en ese  rea
* de trabajo, en caso contrario devuelve .T.
* $DESCRIPTION$
* BROWSE() es un visualizador de bases de datos de prop¢sito general,
* sin demasiado trabajo ud. puede desplegar un archivo DBF con las
* siguientes teclas:
*
*
* Tecla Significado
*
* Izquierda Mueve una columna a la izquierda (campo previo)
* Derecha Mueve una columna a la derecha (proximo campo)
* Arriba Mueve arriba una fila (registro previo)
* Abajo Mueve abajo una fila (proximo registro)
* Pag-Arriba Mueve a la pantalla previa
* Pag-Abajo Mueve a la pantalla proxima
* Ctrl Pag-Arriba Mueve al inicio del archivo
* Ctrl Pag-Abajo Mueve al final del archivo
* Inicio Mueve a la columna visible m s a la izquierda
* Fin Mueve a la columna visible m s a la derecha
* Ctrl Izquierda Desplaza una columna a la izquierda
* Ctrl Derecha Desplaza una columna a la deecha
* Ctrl Inicio Mueve a la columna m s a la izquierda
* Ctrl Fin Mueve a la columna m s a la derecha
* Esc Termina el BROWSE()
*
*
*
* En la parte superior de la pantalla ud. ve una l¡nea de estado con
* la siguiente indicaci¢n:
*
*
* Registro ###/### N£mero registro actual / N£mero Total de registros.
* <none> No hay registros, el archivo esta vacio.
* <new> Ud.esta en modo de Agregado al final del archivo.
* <Deleted> El registro actual esta borrado.
* <bof> Ud. esta en el comienzo del archivo.
*
*
* Ud. deber¡a pasar las cuatro coordenadas validas, si menos de cuatro
* par metros son pasados al BROWSE() las coordenadas por defecto son:
* 1, 0, MAXROW(), MAXCOL().
* $EXAMPLES$
* <fixed>
* // muestra como desplegar una base de datos
* USE Test
* BROWSE()
* </fixed>
* $STATUS$
* S
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* DBEDIT()*,TBrowse class
* $END$
*/
/* $DOC$
* $FUNCNAME$
* TBrowseDB()
* $CATEGORY$
* Clase TBrowse
* $ONELINER$
* Crea un nuevo objeto TBrowse para ser usado con una base de datos.
* $SYNTAX$
* TBrowseDB( [<nSup>], [<nIzq>], [<nInf>], [<nDer>] ) --> oBrowse
* $ARGUMENTS$
* <nSup> coordenada de la fila superior de visualizaci¢n.
*
* <nIzq> coordenada de la columna izquierda de visualizaci¢n.
*
* <nInf> coordenada de la fila inferior de visualizaci¢n.
*
* <nDer> coordenada de la columna derecha de visualizaci¢n.
* $RETURNS$
* TBrowseDB() retorna un nuevo objeto TBrowse con unas coordenadas
* espec¡ficas y un :SkipBlock, :GoTopBlock y :GoBottomBlock por defecto
* para desplegar una base de datos.
* $DESCRIPTION$
* TBrowseDB() es una forma r pida de crear un objeto TBrowse junto con
* el soporte m¡nimo para desplegar una base de datos.
* Note que el objeto TBrowse devuelto no contiene objetos TBColumn y
* Ud. necesita agregar una columna para cada campo por Ud. mismo
* $EXAMPLES$
* <fixed>
* Para un buen ejemplo, mire en el c¢digo fuente de la funci¢n BROWSE()
* en el subdirectorio ../source/rtl/browse.prg
* </fixed>
* $STATUS$
* S
* $COMPLIANCE$
* TBrowseDB() funciona exactamente como la funci¢n de CA-Clipper
* TBrowseDB().
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* BROWSE()*,TBColumn class,TBrowse class,TBrowseNew()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* dbSkipper()
* $CATEGORY$
* Base de datos
* $ONELINER$
* Funci¢n para ayudar a saltar registros en la base de datos
* $SYNTAX$
* dbSkipper( <nRecs> ) --> nSkipped
* $ARGUMENTS$
* <nRecs> es el n£mero de registros a saltar relativos al registro
* actual. N£meros positivos tratan de mover el puntero de registro
* hacia adelante y N£meros negativos tratan de mover el puntero de
* registro hacia atr s <nRecs> registros.
* $RETURNS$
* dbSkipper() retorna el n£mero actual de registros saltados.
* $DESCRIPTION$
* dbSkipper() es una funci¢n de ayuda usada en el mecanismo de
* despliegue para saltar un n£mero de registros mientras le da al
* llamador una indicaci¢n del n£mero actual de registros saltados.
* $EXAMPLES$
* <fixed>
* // Abre un archivo y chequea si tenemos suficientes registros en el
* USE ventas
* IF dbSkipper( 100 ) == 100
* ? "Buen trabajo!, debes irte de fiesta"
* ELSE
* ? "Muy mal, Ud. deber¡a realmente trabajar m s duro"
* ENDIF
* CLOSE
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* dbSkipper() es una funci¢n de compatibilidad con XBase++ y no existe
* como una funci¢n est ndar en CA-Clipper 5.x
* Esta funci¢n es solamente visible si el archivo:
* ../source/rtl/browdb.prg fue compilado con la bandera HB_COMPAT_XPP.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* DBSKIP(),SKIP
* $END$
*/