# Manual del usuario de Glom V0.2

para Glom v1.6
2004
Murray Cumming
2008-2010
Daniel Mustieles (daniel.mustieles@gmail.com)
2007
Jorge González (jorgegonz@svn.gnome.org)
2008
QA: Jorge González (jorgegonz@svn.gnome.org)
Equipo de desarrollo de Glom

Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Puede encontrar una copia de la licencia GFDL en este enlace o en el archivo COPYING-DOCS distribuido con este manual.

Este manual es parte de una colección de manuales de GNOME distribuido bajo la GFDL. Si quiere distribuir este manual por separado de la colección, puede hacerlo añadiendo una copia de la licencia al manual, tal como se describe en la sección 6 de la licencia.

Muchos de los nombres usados por compañías para distinguir sus productos y servicios son mencionados como marcas comerciales. Donde esos nombres aparezcan en cualquier documentación de GNOME, y los miembros del Proyecto de Documentación de GNOME están al corriente de esas marcas comerciales, entonces los nombres se pondrán en mayúsculas o con la inicial en mayúsculas.

ESTE DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN SEGÚN LAS CONDICIONES ESTABLECIDAS EN LA LICENCIA DE DOCUMENTACIÓN LIBRE DE GNU (GFDL) Y TENIENDO EN CUENTA QUE:

1. EL DOCUMENTO SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, NI EXPLÍCITA NI IMPLÍCITA INCLUYENDO, SIN LIMITACIÓN, GARANTÍA DE QUE EL DOCUMENTO O VERSIÓN MODIFICADA DE ÉSTE CAREZCA DE DEFECTOS COMERCIALES, SEA ADECUADO A UN FIN CONCRETO O INCUMPLA ALGUNA NORMATIVA. TODO EL RIESGO RELATIVO A LA CALIDAD, PRECISIÓN Y UTILIDAD DEL DOCUMENTO O SU VERSIÓN MODIFICADA RECAE EN USTED. SI CUALQUIER DOCUMENTO O VERSIÓN MODIFICADA DE AQUÉL RESULTARA DEFECTUOSO EN CUALQUIER ASPECTO, USTED (Y NO EL REDACTOR INICIAL, AUTOR O CONTRIBUYENTE) ASUMIRÁ LOS COSTES DE TODA REPARACIÓN, MANTENIMIENTO O CORRECCIÓN NECESARIOS. ESTA RENUNCIA DE GARANTÍA ES UNA PARTE ESENCIAL DE ESTA LICENCIA. NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DE ÉSTE POR EL PRESENTE, SALVO DENTRO DEL CUMPLIMIENTO DE LA RENUNCIA;Y

2. BAJO NINGUNA CIRCUNSTANCIA NI BAJO NINGUNA TEORÍA LEGAL, SEA POR ERROR (INCLUYENDO NEGLIGENCIA), CONTRATO O DE ALGÚN OTRO MODO, EL AUTOR, EL ESCRITOR INICIAL, CUALQUIER CONTRIBUIDOR, O CUALQUIER DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN MODIFICADA DEL DOCUMENTO, O CUALQUIER PROVEEDOR DE CUALQUIERA DE ESAS PARTES, SERÁ RESPONSABLE ANTE NINGUNA PERSONA POR NINGÚN DAÑO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL O DERIVADO DE NINGÚN TIPO, INCLUYENDO, SIN LIMITACIÓN DAÑOS POR PÉRDIDA DE MERCANCÍAS, PARO TÉCNICO, FALLO INFORMÁTICO O MAL FUNCIONAMIENTO O CUALQUIER OTRO POSIBLE DAÑO O PÉRDIDAS DERIVADAS O RELACIONADAS CON EL USO DEL DOCUMENTO O SUS VERSIONES MODIFICADAS, AUNQUE DICHA PARTE HAYA SIDO INFORMADA DE LA POSIBILIDAD DE QUE SE PRODUJESEN DICHOS DAÑOS.

Murray
Cumming
Equipo de desarrollo de Glom

     murrayc@murrayc.com

Glom 1.6
20 de junio de 2004

Murray Cumming

Murray Cumming

Este manual describe el uso de la versión 1.6 de Glom

## Comentarios

Para informar sobre un error o hacer sugerencias sobre Glom o sobre éste manual, puede enviarlas en la página Gnome Bugzilla, seleccionando el producto Glom. Para asegurarse de que otros no han informado antes del mismo fallo, busque en Bugzilla antes de enviar su error.

Manual del usuario de Glom.

## Introducción

Glom le permite diseñar y usar sistemas de bases de datos.

## Inicio

### Iniciar Glom

Puede iniciar Glom de las siguientes maneras:

Menú de Aplicaciones

  Elija Oficina Glom.

### Al iniciar Glom

Se mostrará la siguiente ventana al iniciar Glom.

#### Ventana de inicio de Glom

Muestra la ventana principal de Glom.

## Uso de Glom como un operador

Para abrir un documento existente de Glom puede hacerlo con el administrador de archivos o bien puede seleccionar Glom en el menú de Aplicaciones, y después escoger el documento cuando se le pregunte. Glom le pedirá un nombre de usuario y una contraseña para acceder a la base de datos. El administrador le proporcionará su nombre de usuario y su contraseña.

Cuando abra un documento existente, Glom estará ejecutándose a `nivel de usuario` `Operador`. Éste nivel le permite buscar y editar registros pero no le permite cambiar la estructura fundamental de la base de datos.

### Navegación

Cada base de datos tiene varias tablas. Para ver una tabla diferente, escoja `Tablas` del menú de `Navegación`. Después pulse dos veces sobre la tabla o bien selecciónela y pulse el botón `Abrir`.

#### Navegar a una tabla

Navegar a una tabla.

### Ver e introducir datos

Cuando trabaje en el `Modo de datos`, puede introducir información en la `Lista` o en la vista de `Detalles`.

#### La vista de lista

La vista de lista muestra cuántos registros a la vez y habitualmente muestra sólo los campos más importantes.

Cuando introduzca datos en un campo se guardarán en la base de datos inmediatamente después de que termine de editarlo. Si es un campo de fecha u hora el formato se comprobará automáticamente.

Para crear un nuevo registro simplemente pulse el botón `Nuevo`, o empiece a escribir en un campo en la última fila vacía. Se creará un nuevo registro con los campos en blanco para que los rellene.

##### La vista de lista

La vista de lista.

Para ordenar los registros, simplemente pulse en la cabecera de una columna. Por ejemplo, puede querer pulsar sobre una columna de fecha para listar facturas por su fecha, y pulsar de nuevo para listarlas en orden inverso.

#### La vista de detalles

La vista de detalles muestra un único registro, y habitualmente muestra todos los campos ordenados adecuadamente.

Cuando introduzca datos en un campo se guardarán en la base de datos inmediatamente después de que termine de editarlo. Si es un campo de fecha u hora el formato se comprobará automáticamente.

Para crear un nuevo registro pulse el botón `Nuevo`. Se creará un nuevo registro con los campos vacíos para que los pueda rellenar.

##### La vista de detalles

La vista de detalles.

### Buscar datos

Elija `Modo de búsqueda` del menú. Los campos en la lista y vista detallada estarán vacíos y un botón de búsqueda aparecerá en la parte inferior de la ventana.

Introduzca la información, o parte de la información, en el campo para buscar registros que contengan esa información en ese campo. Por ejemplo, introduzca Javi en un campo de nombre para buscar registros con «Javi» o «Javier» en el campo «Nombre».

Al pulsar el botón `Buscar`, Glom buscará los registros y después los mostrará.Si sólo se encuentra un registro entonces se mostrará con la vista de «Detalles». Si se encuentran varios registros, entonces se mostrarán con la vista de «Lista».

### Imprimir informes

Si el desarrollador de su base de datos ha definido algunos informes para una tabla entonces los verá listados en el menú `Informes`. Simplemente seleccione el informe del menú para crearlo. Si ha realizado previamente una búsqueda, el informe contendrá únicamente los datos encontrados. De otro modo, contendrá todos los datos del informe actual. Recuerde que cada tabla tiene sus propios informes, por lo que puede tener que cambiar a la tabla oportuna para utilizar un informe concreto.

#### Un informe

Un informe.

## Uso de Glom como desarrollador

Cuando cree un nuevo documento, Glom estará ejecutándose a `nivel de usuario` `Desarrollador`. También puede cambiar al nivel de usuario «Desarrollador» después de abrir un documento existente, desde el menú `Nivel de usuario`. Glom permitirá este cambio sólo si el administrador también lo permite.

### Añadir tablas

Puede ver la lista de las tablas existentes escogiendo `Tablas` del menú de `Navegación`. También verá esta ventana después de conectarse a un servidor de bases de datos, después de crear un documento nuevo. Para crear una tabla nueva, pulse en el botón `Añadir` e introduzca un nombre para la tabla nueva. Éste nombre no debería contener espacios ni caracteres especiales. Glom le sugerirá un título legible por humanos para esta tabla. Los `Operadores` verán éste título en lugar del nombre actual de la tabla. También puede marcar una tabla como `oculta` para los Operadores. Por ejemplo, los Operadores deberían ver «Lista de facturas» como un registro relacionado de la tabla «Facturas», pero nunca deberán poder navegar directamente por la tabla «Lista de facturas».

Puede especificar una tabla como la `tabla predeterminada`. Esta tabla e mostrará siempre que un operador abra un documento existente, sin preguntarle que seleccione una tabla de la lista.

También puede usar esta ventana para renombrar una tabla existente.

Pulse el botón de `Abrir` para ver las tablas seleccionadas.

### Editar campos

Elija `Campos` del menú de `Desarrollador`. Esto mostrará la lista de campos en la tabla. Las tablas nuevas tienen un campo de clave primaria automáticamente, pero puede cambiar el campo si es necesario.

Para añadir un campo nuevo pulse el botón `Añadir` e introduzca el nombre del campo nuevo. Glom supondrá un título apropiado y legible por humanos para este campo, pero puede editarlo. Los `Operadores` verán este nombre en lugar del nombre actual del campo.

Para especificar más detalles de un campo, seleccione el campo y pulse en el botón de `Detalles`.

#### Editar campos

Editar los campos de tabla.

#### Claves primarias

Cada tabla debe tener una, y solamente una, `Clave primaria`. El valor en este campo debe ser único, lo que quiere decir que cada valor en este campo sólo aparecerá en un sólo registro de la tabla. Por ejemplo, cada registro de la tabla «Clientes» tendrá también un campo «ID del cliente». Este valor se usará para referirse a este cliente en otras tablas, tales como los registros «Proyectos» y «Facturas». Lea la sección Creando relaciones para obtener más información acerca de cómo relacionar tablas entre si.

#### Tipos de campos

Glom ofrece algunos tipos simples de campos:

1. Número

2. Texto

3. Fecha

4. Hora

5. Booleano - tanto cierto como falso

6. Imagen

#### Campos calculados

El valor de los campos se puede calcular con términos de otros campos, usando el lenguaje de programación Python. Éste cálculo debería ser la implementación de una función en Python y debería devolver un valor. El valor devuelto se usará como el valor del campo. Este valor se volverá a calcular cada vez que cambie alguno de los campos de los que obtiene sus datos. Por desarrollar: Por ahora ésto sólo funciona para valores predeterminados, y tampoco se pueden usar los valores de los campos en el cálculo.

También puede hacer cálculos para especificar el valor predeterminado de los campos, seleccionado la solapa `Valor predeterminado` de la ventana `Detalles del campo`, pulsando sobre la casilla `Calcular valor` e introduciendo un cálculo en Python. Puede comprobar este cálculo en la ventana `Editar`.

### Ordenando las distribuciones

Cada tabla tiene una vista de `Lista` y de `Detalles`, por omisión ambas muestran todos los campos de la tabla por fecha de creación. Puede editar la distribución escogiendo `Distribución` del menú de `Desarrollador`.

#### Ordenar la vista de lista

Para la vista de `Lista`, puede especificar la secuencia de los campos columna, y también si hay algún campo oculto.

##### Editar la disposición de la lista

Editar la disposición de la lista.

#### Ordenar la vista detalles

Para la vista de `Detalles`, puede crear grupos o campos y darlos títulos. Después puede colocar campos en esos grupos y especificar la secuencia de los campos en los grupos. También puede especificar la secuencia de los grupos. Por ejemplo, en una tabla de «Contactos» puede crear un grupo llamado «Nombre», y colocar los campos «Título», «Nombre» y «Apellido» en ese grupo. Puede tener otros grupos para los campos «Direcciones».

##### Editar la disposición de los detalles

Editar la disposición de los detalles.

### Crear relaciones

Muchas veces las tablas de una base de datos están relacionadas entre sí. Por ejemplo, una tabla de «Facturas» podrá tener un campo «ID del cliente». El valor de ese campo especifica un registro en la tabla «Clientes» el cual tiene el mismo valor. Glom puede mostrar información adicional, como el nombre del cliente, de ese registro relacionado. O puede mostrar una lista de varios registros relacionados - por ejemplo, algún registro de la «Lista de facturas» que está relacionado con otro registro de «Facturas».

Para crear relaciones, escoja `Relaciones` del menú de `Desarrollador`. Esto le mostrará la lista de relaciones existentes. Para crear una nueva relación pulse el botón de `Añadir` e introduzca un nombre para ella. Debe elegir un campo de la tabla actual y un campo de otra tabla con el que se creará la relación. Esta relación buscará cualquier registro en la otra tabla para los que los valores de ambos campos sean iguales.

Puede usar las relaciones en los siguientes lugares.

1. Para mostrar un campo relacionado en la lista o en la vista detallada.

2. Para mostrar una lista de registros relacionados en la vista detallada.

3. Para buscar un valor de un campo en un registro relacionado. Por ejemplo, copie el precio de un «Producto» en el campo «Precio» de un registro de «Facturas».

4. Para calcular el valor de un campo.

### Administración de usuarios

Para definir los `Operadores` que pueden utilizar su base de datos y para especificar que acceso tienen a las distintas tablas, seleccione `Usuarios` del menú `Desarrollador`.

### Traducciones

La interfaz de usuario de Glom (y este documento) está traducido a varios idiomas, como ya debería poder ver si utiliza un equipo con un interfaz de usuario que no esté en inglés. Además, Glom entiende y muestra automáticamente números y fechas de acuerdo a las convenciones actuales de localización del usuario. Por ejemplo, un usuario en EE. UU. debe introducir un precio como 1.99 y una fecha como 1/13/2008, pero un usuario alemán de la misma base de datos lo verá más adelante como 1,99 y 13.1.2008.

Sin embargo, el sistema Glom que crea contiene también texto que debe traducirse si personas que hablan diferentes idiomas lo van a usar.Por ejemplo, puede proporcionar traducciones para los títulos de sus tablas, campos e informes. Todos estos elementos de texto se pueden ver en una lista cuando selecciona `Traducciones` en el menú `Desarrollador`. En esta ventana puede especificar el idioma que ha utilizado para el texto original, e introducir las traducciones adicionales en cada idioma para cada elemento de texto. Cuando un usuario de ese idioma abre el sistema Glom, se mostrarán esos elementos de texto en la interfaz de usuario.

#### Traducciones

Traducciones.

Los traductores experimentados pueden estar más familiarizados con el formato .po, o puede desear utilizar la mayoría de las herramientas que funcionan con el formato .po. Al usar el botón `Exportar` puede crear un archivo .po para utilizarlo en una herramienta aparte o para enviárselo a un traductor. Puede importar la traducción resultante usando el botón `Importar`.

### Definir informes

#### Añadir o editar informes

Glom puede generar informes para mostrar campos específicos o conjuntos de registros, ordenados y agrupados. Por ejemplo, una tienda puede necesitar un informe que liste todos los productos vendidos en un mes, agrupados por tipo de producto, y ordenados por precio dentro de cada grupo. Cada tabla tiene sus propios informes, que están a disposición del operador en el menú `Informes`.

Para definir un informe, o para cambiar la definición de un informe existente, seleccione `Informes` en el menú `Desarrollador`.

##### Crear o editar informes

Crear o editar informes.

Tenga en cuenta que cada informe tiene un ID, así como un nombre legible por humanos. Esto permite que su informe tenga un título traducido cuando se utiliza en un ordenador que trabaja con un idioma diferente.

#### Editar un informe

Un informe de Glom tiene tres áreas:

1. La cabecera, que aparecerá al principio del informe

2. El área principal, donde se muestran los registros y las líneas de resumen, con los datos actuales de la base de datos.

3. El pie, que aparecerá al final del informe.

Dentro de un área, como la parte principal, puede añadir `Partes` de un informe, tales como campos, texto o imágenes. Habitualmente aparecerán en una fila en el informe impreso, con una fila para cada registro. En el caso simple, se parecerá mucho a la vista de lista de Glom. Puede añadir partes a su informe seleccionándolas de la lista `Partes disponibles` y pulsando en el botón `Añadir`. Se añadirá la parte a la lista `Partes`, en el área seleccionada.

Para especificar los detalles de las partes, tales como el texto o la imagen que mostrar, o seleccionar el campo que mostrar, seleccione la parte en la lista `Partes` y pulse el botón `Editar`. También puede especificar el formato del campo pulsando el botón `Formato`, simplemente como lo haría cuando define la disposición de los detalles o la disposición de una lista.

##### Editar un informe

Editar un informe.

Algunas partes pueden contener otras partes y tener propiedades adicionales para controlar como se presentan su partes hijas. Por ejemplo, la parte `Agrupar por` agrupa registros juntos por un campo. Por ejemplo, un informe de productos debe agrupar una lista de productos por tipo de producto. También puede añadir una segunda agrupación dentro de la parte `Agrupar por` principal, seleccionando la primera parte `Agrupar por` en la lista `Partes` mientras añade una nueva parte `Agrupar por` de la lista `Partes disponibles`. Por ejemplo, puede agrupar sus productos por fabricante, dentro de cada grupo de tipo de producto.

Para especificar el campo por el que se agruparán los registros, seleccione su parte `Agrupar por` en la lista `Partes` y pulse el botón `Editar`. Entonces puede seleccionar el campo por el que quiere que se ordenen los registros, y seleccionar los campos por los que esos registros deberán ordenarse dentro del grupo. También debe especificar algunos campos adicionales para mostrar en el título de la fila del grupo. Por ejemplo, puede querer agrupar productos por ID de fabricante, pero mostrar también el nombre del fabricante.

##### Editar un grupo por partes

Editar un informe.

La parte `Grupo vertical` puede contener otros elementos. Por ejemplo, le permite ordenar campos junto a otros en lugar de uno detrás de otro en la fila horizontal. Ésto es útil para agrupar campos relacionados tales como direcciones, o simplemente apretar más información dentro de la fila del registro del informe.

##### Un informe con grupos verticales

Un informe con grupos verticales.

Cuando haya acabado, pulse el botón `Cerrar` para guardar la definición del informe. Puede seleccionar su informe desde el menú `Informes`. Para obtener más detalles vea la sección

## Diálogos

### Diálogo: Diálogo inicial

Este diálogo permite al usuario seleccionar un documento existente o crear un documento nuevo. Los documentos existentes se deben seleccionar de la lista de documentos abiertos recientemente, o seleccionando un archivo con el diálogo de selección de archivos. También se pueden abrir los documentos a través de la red, si otros usuarios están ejecutando Glom en la red local. Finalmente, se puede crear un documento nuevo abriendo una plantilla que ya contenga algunas tablas o registros iniciales, o creando un documento vacío.

### Diálogo: Nueva base de datos

### Diálogo: Crear base de datos

### Diálogo: Conexión

Este cuadro de diálogo solicita un nombre de usuario y una contraseña para conectar a un servidor de bases de datos. Normalmente no es la misma combinación de usuario y contraseña que utiliza para autenticarse en su sistema. Todos los sistemas Glom requieren un servidor de bases de datos en el que almacenar los datos actuales. Si el servidor de bases de datos no se está ejecutando en el equipo local («localhost»), debe proporcionar el nombre del equipo, tal como "glomserver.openismus.com", aunque su nombre del equipo sea diferente.

Su administrador de sistemas puede proporcionarle esos detalles de conexión a la base de datos.

Si es el administrador del sistema. lea la página web de Glom Configuración de Postgres para obtener ayuda con la instalación y configuración del servidor de bases de datos.

### Diálogo: Error de conexión

Este diálogo se muestra cuando Glom no puede conectar con el servidor de bases de datos especificado. O el servidor de bases de datos no está funcionando en el equipo especificado, o el servidor de bases de datos no aceptó el nombre de usuario y la contraseña. Para obtener más detalles consulte la sección Diálogo de conexión.

### Diálogo: Preferencias de la base de datos

### Diálogo: Cambiar idioma

### Ventana: Objeto de texto

### Ventana: Objeto de imagen

### Diálogo: Cuaderno de notas

### Diálogo: Formato de datos inválido

### Diálogo: Descripción de la relación

### Ventana: Grupos

### Diálogo: Agrupar por campos ordenados

### Diálogo: Agrupar por campos secundarios

### Ventana: Botón de script

### Ventana: Cálculo de campos

### Diálogo: Grupo nuevo

### Diálogo: Elegir usuario

### Diálogo: Usuario

### Diálogo: La traducción identifica al original

### Diálogo: Copia de la traducción

### Diálogo: Elegir fecha

### Diálogo: Importar a una tabla

Este diálogo permite al usuario importar un archivo CSV (valores separados por comas) en la tabla de la base de datos actual. Muestra las primeras filas del archivo para importar y permite al usuario seleccionar el campo destino en la base de datos para cada columna del archivo CSV. Para autoincrementar las claves primarias, el campo de la clave primaria no se puede utilizar como campo destino, de lo contrario se debe importar una columna en el campo de la clave primaria.

## Acerca de Glom

Glom y la comunidad de voluntarios de Glom se encargan de mantener Glom. Para obtener más información acerca de Glom, visite la página web de Glom.

Para informar sobre un error o hacer sugerencias sobre esta aplicación o sobre éste manual, puede enviarlas usando Bugzilla.

Otra excelente fuente de información son las listas de correo de Glom.

Este programa se distribuye bajo los términos de la Licencia Pública General GNU (GPL) tal y como fue publicada por la Free Software Foundation, en la versión 2 ó (a su elección) cualquier versión posterior. Una copia de esta licencia puede encontrarse en este enlace, o en el archivo COPYING incluido con el código fuente de este programa.

## Conceptos

Glom es fácil de usar, pero debe entender los siguientes conceptos básicos.

1. `Base de datos`: Cada documento de Glom permite el acceso a una base de datos.

2. `Tabla`: Cada base de datos contiene varias tablas, tales como, por ejemplo, las tablas «Clientes» y «Facturas».

3. `Campo`: Cada tabla tiene varios campos, tales como «ID del cliente», «Nombre» y «Fecha de nacimiento», en otros documentos y aplicaciones, se suele denominar a estos campos «columnas».

4. `Registros`: Cada tabla tiene varios registros, cada uno de los cuales contiene valores para cada uno de los campos. Por ejemplo la tabla de «Clientes» tendrá un registro para cada cliente. En otros documentos y aplicaciones, a los registros se los suele denominar `filas`.

5. `Relaciones`: Cada tabla puede estar relacionada con otras tablas, por medio de los campos de ambas tablas. Por ejemplo, la tabla «Clientes» puede tener relación con la tabla «Facturas», de tal manera que se pueden ver todas las facturas de ése cliente. Sólo los desarrolladores necesitan entender éste concepto. En otros documentos y aplicaciones, a las relaciones se las suele denominar «uniones» o «joins».

## Campos calculados y botones de script

Los campos calculados y los botones de scripts usan el lenguaje de programación Python.El cálculo o el script es la implementación de una función cuya firma se le proporciona.

### Editar la definición de un campo calculado

Editar la definición de un campo calculado.

### Valores de campo

Por ejemplo,

    record["name_first"]

es el valor del campo name_first en el registro actual.

### Registros relacionados

Por ejemplo,

    record.related["ubicación"]

proporciona los registros relacionados con el registro actual.

#### Un sólo registro relacionado

Para relaciones que especifican un único registro puede obtener el valor de un campo en ese registro. Por ejemplo,

    record.related["ubicación"]["nombre"]

es el valor del nombre del campo en la tabla indicada por la relación de ubicación (habitualmente denominada ubicación::nombre).

#### Múltiples registros relacionados

Para relaciones que especifican múltiples registros, puede utilizar las funciones de adición (sum, count, average) para obtener todos los valores. Por ejemplo,

    record.related["lineas_de_factura"].sum("precio_total")

.

### Probando para valores vacíos

La manera de probar para valores vacíos depende del tipo de campo:

#### Campos que no son de texto

Los campos que no sean de texto deben estar vacíos, indicando que el usuario no ha introducido ningún valor en el campo. Por ejemplo, Glom no asume que un valor vacío en un campo numérico deba valer 0.

Puede probar si un campo está vacío usando el código Python «None». Por ejemplo:

      if(record["contact_id"] == None):
        return "Sin contacto"
      else:
        return record.related["contacts"]["name_full"]

También puede comprobar si hay algunos registros relacionados. Por ejemplo:

      if(record.related["contacts"] == None):
        return "Sin contacto"
      else:
        return record.related["contacts"]["name_full"]

#### Campos de texto

Para campos de texto debe comprobar las cadenas de longitud cero. En Glom no es posible distinguir entre cadenas de longitud cero y ausencia de cadena, ya que no hay diferencia. Por ejemplo:

      if(record["name_full"] == ""):
        return "Sin nombre"
      else:
        return record["name_full"]

### Usando la API pydga completa

pygda es una API de Python para la API libgda. Los atributos de los registros `connection` proporcionan una conexión gda que puede usarse para acceder directamente a la base de datos actual. Esto le permite ejecutar cualquier consulta SQL, por ejemplo para leer datos de la base de datos con un SELECT o cambiar valores en la base de datos con un UPDATE. Nótese que la conexión ya está abierta, por lo que puede evitar el difícil trabajo de especificar los detalles de la conexión.

El atributo del registro `table_name` también proporciona el nombre de la tabla actual.

Este ejemplo lee todos los datos de la tabla actual e imprime los valores en la terminal:

    # Usar la conexión actual a la base de datos
    # para obtener todos los datos de la tabla actual.
    #
    # la conexión de registros es un objeto gda.connection ya abierto,
    # evitando la incomodidad de abrir la conexión,
    # o incluso conociendo el nombre de la base de datos.

    query = "SELECT * FROM %s" % record.table_name
    data_model = gda.gda_execute_select_command(record.connection, query)

    rows = data_model.get_n_rows()
    columns = data_model.get_n_columns()
    print "    Número de columnas: ", columns

    for i in range(columns):
        print "      columna ", i;
        print "        nombre=", data_model.get_column_title(i)

        # Comprueba si es la clave primaria:\n"
        field = data_model.describe_column(i)
        if field.get_primary_key():
            print "        (clave primaria)"

        print "\n";

    print "    Número de columnas: ", rows

    for row_index in range(rows):
        print "      fila ", row_index;

        for col_index in range(columns):
            print "        valor=", data_model.get_value_at(col_index, row_index).get()

        print "\n";