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.
Por ejemplo,
es el valor del campo name_first en el registro actual.
Por ejemplo,
record.related["ubicación"]
proporciona los registros relacionados con el registro actual.
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).
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")
.
La manera de probar para valores vacíos depende del tipo de campo:
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"]
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"]
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";
Acerca de
Copyrights
- Copyright © 2004 Murray Cumming
- Copyright © 2008-2013 Daniel Mustieles
- Copyright © 2007 Jorge González
- Copyright © 2008 QA: Jorge González
Aviso legal
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:
-
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
-
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.
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.