El comando AhoraProceso es una función que ejecuta un proceso Ahora_Proceso y puede retornar un valor (dependerá de la implementación del método como function o como sub).
Parámetros de llamada al comando:
- Nombre del proceso: String OBLIGATORIO
- Parámetro de retorno: Booleano OBLIGATORIO.
- Array con los parámetros que pide el proceso, OPCIONAL
Ejemplos de utilización:
Código VB6:
'Ejecución simple sin recuperar retorno: gCn.AhoraProceso "DameUbica", False 'Sin parámetros y retornando un valor: lAux = gCn.AhoraProceso("ComprobarUbic", False) 'Utilización del valor retornado: If gCn.AhoraProceso("Subcuenta_Val", False, lIdSubcuenta) Then … 'Con dos parámetros y retornando un valor: Set lFact = gCn.AhoraProceso("GenFact", False, lSerie, lNum) 'Con dos parámetros y sin recuperar retorno. gCn.AhoraProceso "CargaApuntes", False, lIdEjer, lIdalue
Código C#:
// Ejecución simple sin recuperar retorno: gCn.AhoraProceso("DameUbica", out _, gCn); // Sin parámetros y retornando un valor bool lAux = gCn.AhoraProceso("ComprobarUbicaciones", out _, lObj, false, false)); // Utilización del valor retornado: if (gCn.AhoraProceso("Subcuenta_Val", out _, lIdSubcuenta)) { // ... } // Con dos parámetros y retornando un valor IFactura lFact = gCn.AhoraProceso("GenFact", out _, lSerie, lNum); // Con dos parámketros y sin recuperar retorno gCn.AhoraProceso("CargaApuntes", out _, lIdEjer, lIdalue);
Para utilizar parámetros opcionales, se definen en la implementación del método público. En la tabla Ahora_Procesos no se indica nada al respecto de los parámetros.
Siguiendo con el ejemplo, si deseamos que el formulario nos muestre como título una frase que le pasaremos como parámetro:
En Procesos.cls
Public Sub Metodo_Ejemplo (aFrase as String) Dim lFrm As frmPersVentanaEjemplo Set lFrm = New frmPersVentanaEjemplo lFrm.Carga aFrase End Sub
En frmPersVentanaEjemplo.frm:
Public Sub Carga (aTitulo as String) gForm.Caption = aTitulo gCn.Obj.FormShow Me End Sub
Para ejecutarlo podríamos utilizar:
gCn.AhoraProceso "Ahora_Proceso_Ejemplo", False, "Título formulario"
Los parámetros pueden ser opcionales, en cuyo caso deberemos definirlos como tales en la implementación del método público (prefijo Optional en la definición del parámetro), y para evitar errores asegurarnos que se contemplan todas las
posibilidades. Podemos emplear definiciones por defecto (Optional aTitulo as String = "Nada")
Siguiendo con el ejemplo, si deseamos que la frase de título sea opcional y además añadir otro parámetro también opcional que será un integer:
En Procesos.cls
Public Sub Metodo_Ejemplo ( Optional aFrase as String "por defecto", Optional aNum as int = 1) If (num=0) Then Dim lFrm As frmPersVentanaEjemplo Set lFrm = New frmPersVentanaEjemplo lFrm.Carga aFrase else msgbox aFrase End if End Sub
Para ejecutarlo podríamos utilizar cualquiera de estas Variantes:
' Abrir un msgbox que mostrará "por defecto" gCn.AhoraProceso "Ahora_Proceso_Ejemplo", False ' Abrir formulario frmPersVentanaEjemplo y ponerle título "Tít. formulario" gCn.AhoraProceso "Ahora_Proceso_Ejemplo", False, "Tít. formulario", 0 ' Abrir un msgbox que mostrará "hola" gCn.AhoraProceso "Ahora_Proceso_Ejemplo", False, "hola" ,2
Otro ejemplo de utilización del Ahora_Proceso que hemos creado sería personalizar un formulario cualquiera para que lo llame desde una nueva opción de menú.
Para ello añadiríamos este código a la personalización (Crtl+F10) del formulario desde el que queremos ejecutarlo:
'Añadimos la nueva opción en el menú, 'también podríamos hacerlo insertando en tabla Ahora_Menus Sub Show() gForm.Controls("mnuMain").MenuItemAdd "Ejemplo","mnuPersEj","mnuPrincipal" 'necesario para que se ejecute el Menu_AfterExecute: gForm.Controls("mnuMain").ActivarScripts = True End Sub 'Ejecutamos el Ahora Proceso al seleccionar la opción del menu Sub Menu_AfterExecute(aMenu, aMenuItem) If amenuitem.name = "mnuPersEj" Then gCn.AhoraProceso "Ahora_Proceso_Ejemplo", False, "Título", 0 End If End Sub