El método de entrada debe ser un procedimiento de la clase de Diccionario de Datos de la tabla.

Texto completo

(1)

Guía de Diccionario de Datos

Métodos de entrada y salida

Las propiedades de “Field_Entry_msg” y “Field_Exit_msg” son similares al “Field_Validate_msg” y son enviadas siempre que el cursor entre o salga de un elemento conectado con un campo. Crearía los procedimientos y luego atribuiría los nombres de procedimiento (procedure) a las propiedades de campo. Cuando se llaman se pasa el número de campo y el valor del campo. Al procedimiento (procedure) mientras devuelva un valor distinto a cero se podría parar la navegación, esto sería un uso anormal o poco habitual. Estos procedimientos se emplean, generalmente, para manejar procesos antes de entrar y después de salir.

Método de entrada

Set Field_Entry msg Field Customer.State To EntryCustomerState

“Field_Entry_msg” permite que especifique el nombre de un método que se ejecuta siempre que el cursor se mueve un Form de entrada de datos conectado al campo.

El método de entrada, un procedimiento, puede ser programado para llevar a cabo cualquier acción. Podrá usarlo para mostrar información especial o valores por defecto cada vez que el cursor vaya al campo.

En Visual DataFlex, los procedimientos pueden devolver un valor entero. En el caso de un método de entrada (Entry method), si se devuelve un valor distinto de cero, se aborta la entrada del cursor al Form. Usar los métodos de entrada para controlar la navegación es muy desaconsejable. El método de entrada debe ser un procedimiento de la clase de Diccionario de Datos de la tabla. Por ejemplo si tiene el siguiente procedimiento:

Procedure EntryOrderDate Interger iField Date dDate // Add a default date if the fields is blank

Boolean bChanged

Get Field_Changed_State iField to bChanged If (not (bChanged) AND dDate = 0) Begin SysDate dDate

Set Field_Default_Value iField to dDate End

End_Procedure

Para usar este procedimiento en un campo fecha de una tabla, pondría el método de entrada de campo a “EntryOrderDate”. Estaría asignando el manejador de método “msg_EntryOrderDate” pero si se omite el prefijo "msg" este será proporcionado automáticamente.

(2)

Guía de Diccionario de Datos

El prototipo de declaración para un método de entrada tiene el siguiente formato general.

procedure procedureName integer iField type currentValue

Dónde:

• procedureName es el nombre del procedimiento;

• iField es el número de campo del campo que envió “procedureName”. El número de campo puede usarse para obtener cualquier información sobre el campo.

• Type y currentValue son el tipo y el valor actual del campo que envió “procedureName”. Los parámetros que se pasan al método de entrada permiten que escriba procedimientos generalizados que pueden ser reutilizados en otros campos y tablas.

Método de salida

Set Field_Exit_msg Field Customer.Zip To ExitAdjustZip

“Field_Exit_msg” permite que especifique el nombre de un método que se ejecute siempre que el cursor se va de un Form de entrada de datos conectado al campo.

El método de salida, un procedimiento, puede ser programado para llevar a cabo cualquier acción. Por ejemplo, podría usarlo para ajustar valores de algunos datos calculados que están en función del valor del campo introducido.

En Visual DataFlex, los procedimientos pueden devolver un valor entero. En el caso de un método de salida, si se devuelve un valor distinto de cero se aborta la acción de salir del Form de entrada de datos. No se recomienda utilizar este evento para controlar la navegación.

El método de salida debe ser un procedimiento de clase de Diccionario de Datos de la tabla. Por ejemplo si tiene el siguiente procedimiento:

Procedure AdjustDisplayTotal Interger iField Interger iValue // This updates the extender Price field, which will update any // display balances.This is only done for display purposes.The // actual amount is updated to the field during the save. Interger iQty

Number nAmnt

Get Field_Current_Value Field Orderdtl. Qty_Ordered to iQty Get Field_Current_Value Field Orderdtl.Price to nAmnt Set Field_Current_Value Field Orderdtl. Extended_Price to (nAmnt * iQty) // note we set value, but not changed state!

(3)

Guía de Diccionario de Datos

Para usar este procedimiento sobre el campo apropiado de una tabla, pondría el método de entrada del campo a “AdjustDisplayTotal”. Estaría asignando el manejador de método “msg_AdjustDisplayTotal pero si se omite el prefijo “msg” este será proporcionado automáticamente.

Set Field_Exit_msg Field Orderdtl.Qty_Ordered to Adjust_Display_Total

El prototipo de declaración para un método de salida tiene el siguiente formato general.

procedure procedureName integer iField type currentValue

Dónde:

• procedureName es el nombre del procedimiento;

• iField es el número del campo que envió “procedureName”. El número de campo puede usarse para obtener cualquier información sobre el campo.

• Type y currentValue son el tipo y el valor actual del campo que envió “procedureName”. Los parámetros que se pasan al método de salida permiten que escriba procedimientos generalizados que pueden ser reutilizados en otros campos y tablas.

Consulte lo siguiente

Definir los atributos de campo de Diccionario de Datos.

Autoincremento del campo

Cada registro en una tabla debe contener un campo o juego de campos que proporcionen una identificación única al registro. Esto sería la clave primaria. En algunos casos, el valor de la clave primaria debe ser introducido manualmente por el operador (Ej. Introducir una identificación de cadena única como parte de la entrada de datos). En algunos casos, la base de datos suministrará la calve primaria automáticamente al grabar el registro. En otros casos, el Diccionario de Datos debe suministrar esta identidad única cuando se grabe el registro por primera vez.

El autoincremento (Auto-Incremento) del Diccionario de Datos nos da esta funcionalidad asignando números automáticamente y de forma secuencial a cada nuevo registro.

Para que el Diccionario de Datos sepa cuál es el siguiente número a un nuevo registro debemos almacenar el último número asignado en una tabla externa. Para crear un campo autoincremento, necesitará definir en el Diccionario de Datos la tabla externa y el campo en esa tabla que se va a usar para almacenar ese número así como el campo ID (clave primaria) en su Diccionario de Datos. Para facilitar esta operación existe un comando llamado Define_Auto_Increment

(4)

Guía de Diccionario de Datos

En este ejemplo, el campo Ordesys.Last_Cust_Num tabla sistema se designa para incrementar y suministrar un valor al campo cust_number de la tabla Customer.

El autoincremento funcionará correctamente solo si la tabla externa es una tabla de sistema (un solo registro) o una “Tabla Padre” con la que esté relacionada.

Usará una tabla sistema si el identificador único es de un solo segmento como muestra en el ejemplo anterior con cust_number. Si está usando un campo de una tabla sistema, tiene que registrar esta tabla como una tabla externa de forma que se bloquee correctamente durante operaciones de grabación. Por ejemplo:

Define_Auto_Increment ordsys.last_cust_num to Customer.cust_number Send Add_System_File ordsys.last_cust_num

DD_LOCK_ON_NEW_SAVE_DELETE

Puede usar una “tabla padre” relacionada si su identificador (ID) único es multi - segmento. Por ejemplo el ID de una estructura Cabecera-Detalle como en pedido-detalle pedido. Por ejemplo, el ID de una tabla de Detalle (Order-Detail) en una estructura Cabecera-Detalle (header-detail) podría ser el número del documento (Cabecera) y un número de orden de detalle asignado por una tabla sistema. Si el último número de detalle de cada cabecera fuera almacenado en la tabla Cabecera (OrderHea.Last_Detail_Num) el campo de Autoincremento se definiría como:

Define_Auto_Increment OrderHea.Last_Detail_Num to OrderDtl.Detail_Number

Solamente puede asignar un autoincremento campo por DDO. Si intenta atribuir dos, entonces de autoincremento del primer campo será ignorado. Si tiene que asignar campos de autoincremento adicional dentro de su Diccionario de Datos puede hacerlo fácilmente añadiendo un código personalizado al evento de “Creating” del Diccionario de Datos.

Consulte lo siguiente

Definir los atributos de campo de Diccionario de Datos.

Listas de consultas (Lookup lists)

Set Field_Prompt_Object field Customer.name to Cust_lkup

Las listas de consulta se crean para poder buscar registros de una manera fácil en su aplicación. Típicamente cada tabla tendrá al menos una lista de consulta relacionada con ella. Las columnas en esta lista de consulta contarán, a menudo, con los campos más importantes de su tabla. Estos campos se ponen normalmente en un índice y las listas de consulta se diseñan para dejar buscar registros fácilmente por cualquiera de esos índices.

(5)

Guía de Diccionario de Datos

Habitualmente creará sus objetos de lista de consulta antes de que los asigne a un “Field_Prompt_Object”. Debe saber el nombre del objeto de la lista de consulta antes de asignarlo. Existen asistentes que le permiten crear sus listas de consultas y asignarlos a los campos de Diccionario de Datos apropiados en un solo paso.

Si está usando uno de los tipos de validación (casilla de verificación, rango, tabla de verificación o validación) es capaz de suministrar una lista de consulta por defecto; lo hace si no tiene una asignada explícitamente. Así que si asigna a un campo un “Field_Prompt_Object”, este se usará en vez de la lista suministrada para las validaciones extendidas.

Consulte lo siguiente

Figure

Actualización...

Referencias

Actualización...

Related subjects :