Campos e Elementos de Deseño

Ao longo dos posts que se vaian publicando verase como para poder programar un módulo de OpenERP será necesario coñecer os distintos tipos de campos e elementos de deseño para as vistas. Na seguinte lista os que eu empreguei, que non quere decir que sexan todos os que hai, pero si alo menos os mais sinxelos que nunha boa combinación permiten múltiples posibilidades.

Campos básicos e relacionais.


Os obxetos en Open ERP conteñen campos que permiten introducir datos na base, estes campos van definidos no atributo columnas. Hai dous tipos de campos, os básicos e os relacionais, os básicos solos serven para introducir datos básicos e os relacionais (ver tipos de relación) permiten establecer relacións entre os obxectos.

1 . Campos básicos.


Boolean: O tipo de dato lóxico, o booleán é aquel que pode representar valores de lóxica binaria, isto é 2 valores, valores que normalmente representan falso ou verdadeiro. Por decilo noutras palabras é no que se fai unha “marca”.

Sintaxe:
fields.boolean('Field Name' [, Optional Parameters]),

integer: Un tipo de dato enteiro en computación é un tipo de dato que pode representar un subconxunto finito dos números enteiros. O número maior que pode representar depende do tamaño do espacio utilizado polo dato e a posibilidade (ou non) de representar números negativos. Os tipos de dato enteiro dispoñibles e o su tamaño dependen da linguaxe de programación usado así como a arquitectura en cuestión.

Sintaxe:
fields.integer('Field Name' [, Optional Parameters]),

float: O tipo de dato real é un tipo de dato en programas informáticos que representa a aproximación dun número real.
Ao igual cos números enteiros, o tipo real está limitado superior e inferiormente segundo a cantidade de memoria que este dispoñible para almacenalo. Outro elemento importante a ter en conta neste tipo de datos é a precisión con que poden representar número con decimais (cantos decimais se poden representar), esta característica tamén está directamente relacionada coa cantidade de memoria dispoñible para almacenar un valor real.

Sintaxe:
fields.float('Field Name' [, Optional Parameters]),

Char: Unha cadea de lonxitude limitada. É o campo mais común e  neste proxecto o mais utilizado, non supón restriccións en canto á utilización dos caracteres, solo en canto á lonxitude da súa cadea. O parámetro tamaño requerido determina o su tamaño.

Sintaxe:
fields.char('Field Name',size=n [,Optional Parameters]), # donde ''n'' es un integer, el número de caracteres.

text: Un campo de texto sen límite de lonxitude.

Sintaxe:
fields.text('Field Name' [, Optional Parameters]),

date: Permite seleccionar nun calendario unha data.

Sintaxe:
fields.date('Field Name' [, Optional Parameters]),

datetime: Permite almacenar a data e a hora do día no  mesmo campo.

Sintaxe:
fields.datetime('Field Name' [, Optional Parameters]),

binary: A efectos prácticos será aquel dende o cal poida insertarse unha imaxe ou un arquivo de todo tipo.

Sintaxe:
fields.binary('Field Name' [, Optional Parameters]),
Cando se trate dunha imaxen además haberá que poñer na vista formulario:
widget='image'
Cando se trate dun arquivo, na vista lista ou árbore:
widget='url'

selection: Un campo que permite ao usuario facer unha selección entre varios valores predefinidos.

Sintaxe:
fields.selection((('n','Unconfirmed'), ('c','Confirmed')),'Field Name' [, Optional Parameters]),

2. Campos relacionais.


many2one: Asocia este obxecto a un obxecto primario a través deste campo. Por exemplo se nun campo se quere introducir o nombre dun cliente e xa hai una lista de clientes, seleccionase desa lista. Poñendo o atributo _rec_name no objeto seleccionase que campo se quiere que se vexa.

Sintaxe:
fields.many2one( 'other.object.name', 'Field Name',optional parameters)

one2many: É o campo coa sintaxe mais complexa deste proxecto. É o que expresa unha relación un a moitos entre dous obxectos. Además do propio campo será necesario que haxa un campo many2one no outro obxecto co que teña relación, ainda que non se vaia a utilizar, de feito pode incluso “borrarse” na vista de tal manera que nin siquiera apareza. En resumo o que permite este campo é crear listas dentro dun obxecto.

Sintaxe:
fields.one2many('other.object.name', 'Nome campo relación', 'Nome deste campo', optional parameters)
fields.many2one( 'other.object.name', 'Nome deste campo ',optional parameters)
O “Nome campo relación” debe ser igual que o “Nome deste campo”.

Elementos de deseño

Os elementos de deseño, non confundir coos atributos dos campos se utilizan para mellorar as vistas, poñendo en orden os campos, agrupándoos etc. Utilizanse na vista formulario que é na cal se escriben os datos. A continuación describiranse os elementos de deseño empregados para este proxecto.Como combinar estes elementos é o que realmente lle confire un aspecto ou outro.Será necesario facer múltiples probas ata obter o desexado.

<group>… </group> Permite agrupar os elementos en columnas. Co atributo string  pódeselle poñer un nome, que aparecerá en violeta enriba. En ocasións  utilízase o atributo “colsplan” para o número de filas e o “col” para o de columnas.

<separator string="etiqueta" colspan="4"/> Agrega unha liña de separación no formato. O atributo string define a etiqueta do separador e o atributo “colspan” define o seu tamaño.

<newline/> Serve para forzar un cambio de liña.

<label string="Etiqueta"/> É unha casilla con texto que non se pode modificar.

Placeholder. Escríbese despois do nome dun campo. É o texto que aparece dentro do campo para unha pequea descripción e que cuando se escribe no campo desaparece automáticamente. A súa sintaxe:
<field name="descripción" placeholder= "Para hacer una descripción..."/>

Libreta: Permite distribuir os campos da vista en diferentes pestanas, as libretas poden ter unha ou varias páxinas. Utilizarase o atributo “colspan” para que estén todas na mesma fila e non aparezan en varias, isto se fai poñendolle o número de páxinas. A sintaxe é a seguinte:

<notebook colspan="4">
<page string="Página 1">
</page>
</notebook>

Ningún comentario:

Publicar un comentario