OBSOLETO. Usar Formulario Genérico


Es una herramienta muy útil, que se utiliza para generar un formulario de manera dinámica, creando controles por código.
Con ella podemos también capturar los eventos de cada control, desde el propio código de script.
Es ideal para cuando necesitamos pedir una serie de datos por pantalla y luego utilizarlos para lanzar un proceso.

'IMPORTANTE:
'Se recomienda no usar este formulario. Es mas eficiente y eficaz el frmGenerico.
'Se debe de declarar los eventos en el propio script. Este formulario no admite programación de pantallas.
'Si no se declaran los eventos (before, after ...) da error.

'NOTA: A partir de la versión 3.8.900 disponemos de otro formulario similar, llamado "formulario genérico". Es un formulario vacío, al que le podemos dar 'funcionalidad programando sus eventos, como otro formulario estándar de la aplicación.

 Ver código ejemplo


Sub Main()

     frmAux.cntMenu.NoMostrar = True

     frmAux.cntMenu.Ready = True
 

     frmAux.Caption = "Buscar Facturas por Zona y Ruta"

     Set frmAux.Icon = gCn.Obj.Objetos("Facturas").Icono1Icono
 

     frmAux.EnlaceObjetos(0).Caption = "Buscar Facturas por Zona y Ruta"

     frmAux.EnlaceObjetos(0).Visible = True

     frmAux.EnlaceObjetos(0).ZOrder 0

     frmAux.cntPanelUsuario(0).ResizeEnabled = True

     frmAux.cntPanelUsuario(0).ResizeV = 1

 

     frmAux.cntPanelUsuario(0).Visible = True

     frmAux.cntPanelUsuario(0).ResizeEnabled = True

     frmAux.cntPanelUsuario(0).ResizeRestanteV = True

     frmAux.cntPanelUsuario(0).ResizeV = 2

     frmAux.cntPanelUsuario(0).Estilo = 0 'eEst_Panel_Recuadro
 

     frmAux.AnyadirControl frmAux.ComboUsuario
 

     With frmAux.ComboUsuario(0)

         .C1Nombre = "Zona"

         .C2Nombre = "Descrip"

         .C1TipoDato = 3

         .C2TipoDato = 8

         .C1Anchura = 1000

         .C2Anchura = 4000

         .NColumnas = 2

         .Descripcion = "select Zona, Descrip FROM Zonas"

         .CActiva = 1

         .CaptionControl = "Zona"

         .CaptionVisible = True

         .CaptionLink = True

         .CaptionWidth = 800

         .Visible = True

         .ObjPOrigen = "Zona"

         Set .Container = frmAux.cntPanelUsuario(0)

         .Move 100, 100, 5000, 300

     End With

 

     With frmAux.ComboUsuario(1)

         .C1Nombre = "Zona"

         .C2Nombre = "Descrip"

         .C1TipoDato = 3

         .C2TipoDato = 8

         .C1Anchura = 1000

         .C2Anchura = 4000

         .NColumnas = 2

         .Descripcion = "select IdRuta,Descrip FROM Rutas"

         .CActiva = 1

         .CaptionControl = "Ruta"

         .CaptionVisible = True

         .CaptionLink = True

         .CaptionWidth = 800

         .Visible = True

         Set .Container = frmAux.cntPanelUsuario(0)

         .Move frmAux.ComboUsuario(0).Left, frmAux.ComboUsuario(0).Top + frmAux.ComboUsuario(0).Height + 50, frmAux.ComboUsuario(0).Width, frmAux.ComboUsuario(0).Height

     End With
 

     frmAux.Botonera(0).Visible = True

     frmAux.Botonera(0).SeguridadObjeto = 0 'eMenuNinguno

     frmAux.Botonera(0).BotonesMantenimiento = 3 'eBotMant_AceptarCancelar

     frmAux.Botonera(0).ResizeEnabled = True

     frmAux.Botonera(0).ResizeV = 10

    

     frmAux.width = 5500

     frmAux.height = 3000

    

     frmAux.show 1


     frmAux.Descargar 'ATENCIÓN: DEBE ESTAR SIEMPRE QUE NO SE MUESTRE EL FORMULARIO.

End Sub


Public Sub Botonera_ToolClicked(Index, aTool)

     If aTool.name = "botAceptar" Then 

         Dim lCol 'As AhoraSistema.Colecciones


         If "" & frmAux.ComboUsuario(0).text = "" Then

             MsgBox "Introduce una Zona."

             Exit Sub

         End If


         If "" & frmAux.ComboUsuario(1).text = "" Then

             Set lCol = gcn.obj.dameColeccion("Facturas","where IdCliente in (select IdCliente from Clientes_Datos_Comerciales WHERE Zona = " & frmAux.ComboUsuario(0).text & ")",,False)

         Else

             Set lCol = gcn.obj.dameColeccion("Facturas","where IdCliente in (select IdCliente from Clientes_Datos_Comerciales WHERE Zona = " & frmAux.ComboUsuario(0).text & " AND IdRuta = " & frmAux.ComboUsuario(1).text & ")",,False)

         End If


         If Not lCol Is Nothing Then 

             If lcol.Count>0 Then 

                 frmAux.visible = False

                 lCol.show

             Else

                 MsgBox "No se ha encontrado ninguna factura."

             End If

             Set lCol = Nothing

         End If

     Else

         frmAux.visible = False

     End If
End Sub


Public Sub ComboUsuario_BeforeUpdate(Index)

     'If Index = 0 Then 

     ' frmAux.ComboUsuario(1).descripcion = "select IdRuta,Descrip FROM Rutas WHERE Zona = " & frmAux.ComboUsuario(0).text

     'End If
End Sub

Sub TextoAlinDerecha_AfterUpdate(Index)
End Sub

Sub TextoUsuario_AfterUpdate_(Index) 'Declarar
End Sub

Sub TextoUsuario_DblClick_(Index)
End Sub

Sub TextoMultilinea_AfterUpdate(Index)
End Sub

Sub ComboUsuario_DblClick(Index)
End Sub

Sub ComboUsuario_AfterUpdate(Index)
End Sub

Autor: Daniel Ernesto Lutz Llano