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