GrialCombo
De GrialWIKI
(→Otras Propiedades del Combo en formato Grilla) |
(→Otras Propiedades del Combo en formato Grilla) |
||
Línea 204: | Línea 204: | ||
;Metodo SetOperationColumns:Permite establecer que columnas que se totalizan cuando la grilla es agrupada e impresa. | ;Metodo SetOperationColumns:Permite establecer que columnas que se totalizan cuando la grilla es agrupada e impresa. | ||
- | |||
{{hierarchy footer}} | {{hierarchy footer}} |
Revisión de 13:46 22 abr 2010
Introducción al Framework Grial |
|
Contenido
|
Grial Combo
Controles con sufijo: _Scb
Descripción General
El GrialCombo tiene tres formas principales de utilización:
- Como selector de registro para la transacción, en formato combo desplegable.
- Como selector de registro para un campo RELA, dentro de la transacción.
- Como Grilla para la edición de Datos, en formato DisplayFullGrid
El Combo como selector del Registro principal de la Transacción
Como selector de registro, el GrialCombo representa visualmente la elección de un registro dentro de una vista. Se utiliza en la zona de selección de registro (Sobre la TopBar de un GrialCont), para permitir elegir el registro sobre el que va a ser realizada la transacción. También se utiliza para elegir un registro relacionado con un campo RELA dentro de la transacción.
El Combo identifica al registro mediante el valor del campo ID. La propiedad CurrentValue del objeto combo contendrá el ID del registro elegido o null en caso de no existir ninguna selección. Los controles tipo Combo se nominan con el nombre de la Tabla Troncal representada + “_Scb”; por ejemplo: PreForm08_scb
Visualmente, dentro de un GrialCombo, según su configuración registrada, puede encontrarse una lista de valores (representación directa del recordset de datos) o un árbol (representación de datos mediante un GrialTree interno).
En ambos casos, la propiedad Rst del control, retornará un recordset con los datos del registro actualmente seleccionado por el usuario.
Descripción de la operatoria
Para realizar una selección de registro para una transacción, se coloca un GrialCombo sobre la zona de la TopBar de un GrialCont, a la izquierda de los botones de Alta, Baja y Modificación. El combo representará el registro sobre el cual se realizará la operación de modificación o baja.
En la inicialización del módulo (UserDocument_Show), se cargan los datos del combo…
GrialCont.LoadData PreForm08_Scb
En el momento de inicio de la transacción (ButtonClick), se utiliza para obtener el ID del registro seleccionado por el usuario…
Private Sub GrialCont_ButtonClick(ByVal GrialButtonCode As GrialApp.GrialButtons, Cancel As Integer, NewState As GrialApp.Operation_States) On Error GoTo ErrH Select Case GrialButtonCode Case BUTTON_NEW PreForm08_Scb.PrepareAddnew 'Nuevo registro. Hago un espacio en blanco en el combo IDPreform08 = -1 PrepararTansaccion Case BUTTON_MODIFICATION, BUTTON_DELETE 'Si no se ha elegido ningún registro, se cancela If NoDataIn(ID_PreForm08_Scb.CurrentValue) Then MsgBox "Debe elegir una partida", vbCritical Cancel= True Exit Sub End if IDPreform08 = ID_PreForm08_Scb.CurrentValue PrepararTansaccion . . .
Luego, al actualizar los datos (BottomButtonClick, BUTTON_ACCEPT), se recarga el registro modificado para reflejar los últimos cambios …
Private Sub GrialCont_BottomButtonClick(ByVal GrialButtonCode As GrialApp.GrialButtons, Cancel As Integer, NewState As GrialApp.Operation_States) On Error GoTo ErrH If GrialButtonCode = BUTTON_ACCEPT Then Dim Txn As New [[GrialTransaction]] Select case GrialCont.LastButtton Case BUTTON_MODIFICATION, BUTTON_NEW 'Actualizo el recordset troncal GrialCont.ChangeMainRst _ PreForm08_grq.Rst, PreForm08GridView_grq.Rst, "ID_PREFORM08" 'Preparo la transacción Txn.Cmd PreForm08_grq.Rst 'Aplico la transacción en el Servidor GrialCont.Apply Txn If GrialCont.LastButton = BUTTON_NEW then ‘ Era un Alta IDPreForm08 = SqlArea.NewID ‘ recupero el nuevo ID End if 'Refresco los datos del combo PreForm08_Scb.LoadOnCurrentRecord IDPreForm08 Case BUTTON_DELETE PreForm08_grq.Rst.Delete 'Elimino el registro en el troncal Txn.Cmd PreForm08_grq.Rst 'Preparo la transacción GrialCont.Apply Txn 'Aplico la transacción en la BD (delete) PreForm08_Scb.DeleteRecord 'Elimino el registro del combo. . . ErrH: MsgError GrialCont If Txn.Commited then Resume Next 'Continuo si ya esta aplicada la txn Cancel = True End Sub
Uso del GrialCombo como selección de valor para un campo RELA
En este caso, el Combo se utiliza como una parte de los datos de la transacción (dentro del Container_Frm).
La secuencia normal de uso es la siguiente:
Ejemplo: En el comienzo del módulo, se cargan los datos del control
GrialCont.LoadData PreForm23_Scb
(Nota: Si el combo muestra siempre un conjunto de datos diferente, dependiendo del registro elegido para cada transacción, debe cargarse cada vez que se inicia una transacción, en PrepararTransaccion)…
En el momento de preparación de la transacción, una vez recuperados los datos principales, posicionamos el combo según el valor del campo RELA asociado…
Private Sub PonerEnPantalla() 'Posiciono el combo según el valor del campo RELA With PreForm20_grq.Rst PreForm23_Scb.CurrentValue=.Rst!RELA_PREFORM23.Value ...
Al actualizar los datos (BottomButtonClick, BUTTON_ACCEPT), tomamos el valor para el campo RELA desde el Combo…
Private Sub TomarDatosDePantalla 'Actualizo el recordset troncal con los datos With PreForm20_grq.Rst UpdateField !RELA_PREFORM23, PreForm23_Scb.CurrentValue, "la unidad de medida" ...
Uso del GrialCombo como Grilla ( DisplayMode = CDM_DisplayFullGrid)
En este caso, el Combo se utiliza para mostrar y opcionalmente editar varios registros de detalle dentro de una transacción (dentro del Container_Frm). Para utilizar un Combo en modo Grilla debe establecerse la propiedad DisplayMode con el valor: CDM_DisplayFullGrid
La secuencia normal de uso es la siguiente:
Al preparar la transacción, se cargan los datos del detalle:
Ejemplo:
Private Sub PrepararTransaccion 'Preparo el registro Troncal PreForm20Grq.Init _ "Select * From Pre_Form_20" & _ " Where ID_PREFORM20 = " & IDPreForm20 'Preparo el troncal de los detalles PreForm21Grq.Init _ "Select * From Pre_Form_21" & _ " Where RELA_PREFORM20 = " & IDPreForm20 'Pongo el Filtro para traer los detalles de la cabecera seleccioanda PreForm21_scb.ExtraFilterCondition = "RELA_PREFORM20 = " & IDPreForm20 'Recupero los datos GrialCont.LodaData PreForm20grq, PreForm21Grq, PreForm21_Scb
Al actualizar los datos (BottomButtonClick, BUTTON_ACCEPT), tomamos los datos desde el Combo en formato Grilla…
Private Sub TomarDatosDePantalla 'Actualizo el recordset troncal con los datos UdpateField PreForm20Grq.Rst!PREFORM20_DESCRI,DescriTxt ... 'Actualizo los detalles desde el Combo-Grilla PreForm21_scb.Grid_UpdateUserInput GrialCont.ChangeMainRst PreForm21_scb.Rst, PreForm21Grq.Rst, "ID_PREEJEC21" End Sub
Para permitir al Usuario modificar los datos, agregar o eliminar registros de un Combo–Grilla, debe establecer las propiedades: GridAllowEdit, GridAllowAddNew y GridAllowDelete
Otras Propiedades del Combo en formato Grilla
- GridValue(FieldName As String) as Variant
- Para acceder a los datos de una columna de la fila actualmente seleccionada
- Function Grid_DataRowSelected () as Boolean
- Para verificar si el usuario está posicionado sobre una fila de datos. Esta propiedad da False si no hay filas en la grilla, o si el usuario esta posicionado sobre una fila de agrupamiento. Se utiliza como control antes de operar sobre los datos.
- ColumnLocked(FieldName As String) As Boolean
- Para bloquear la edición de una columna en particular
- ColumnVisible(FieldName As String) As Boolean
- Para hacer visible / invisible una columna en particular
- ColumnWidth(FieldName As String) As Integer
- Para establecer manualmente el ancho de una columna
- ColumnHeader(FieldName As String) As String
- Para establecer manualmente el titulo de una columna
- ColumnFormat(FieldName As String) As String
- Para establecer manualmente el fromateo de datos de una columna. Por ejemplo "Short Date", "General Number", "yyyy-mm-dd", etc.
- Event DblClickFullGrid()
- Para responder cuando el usuario haga doble-click en la grilla
- Event GridRowColChange(LastRow As Long, LastCol As Integer)
- Para responder cuando el usuario se mueva dentro de la grilla
- Event BeforeUpdate(Cancel As Boolean)
- Para verificar los datos al momento que el usuario modifica los datos de una fila
- Event BeforeDelete(Cancel As Boolean)
- Para controlar antes que el usuario elimine una fila
- Propiedades ReportTitle, ReportSubTitle y ReportSecondaryTitle
- Para establecer los títulos en caso que el usuario decida imprimir la grilla
- Metodo ClearAllOperationColumns
- Permite eliminar las columnas que se totalizan por default cuando la grilla es agrupada e impresa.
- Metodo SetOperationColumns
- Permite establecer que columnas que se totalizan cuando la grilla es agrupada e impresa.
GrialTransaction <<< >>> GrialWorkflow