|
*** Documento en elaboración *** v121 v*
La Clase OB es una Helper Class del MPR que
centraliza un conjunto de Constantes, Propiedades y Métodos de uso muy
frecuente en M&P para facilitar su uso.
Constantes
|
NIL
|
NIL de BScript |
|
T
|
T de BScript |
Propiedades
|
GENV
|
public static ENV GENV Contiene la referencia del Global Environment de BScript. |
Métodos
|
GetRH
|
public static int GetRH()
Provee un Identificador unívoco
para ser usado con las Funciones RegEvtSusc,
RegSvc y UnRegByREGH. |
|
RegEvtSusc
|
public static obSvcInfo RegSvc(int
REGH, String eventName, Action<object, ENV, BSX> xdelegate, params object[] a) Registra la Suscripción a un Evento BScript por un Plugin.
REGH: Identificador (Handler) de Registración, >= 0. Se usa
para eliminar la registración posteriormente (si fuere necesario) con
la función UnRegByREGH. Si = 0, la
Registración no se podrá eliminar. Mediante la función GetRH
se puede obtber un Identificador unívoco. eventNamer:
Nombre del Evento al que se suscribe.
xdelegate: Delegate de la Función que procesará el evento (Event
Handler).
a: Reservado para uso futuro.
|
RegRemoteEvtSusc
|
public static bool RegRemoteEvtSusc(
ENV Env,
String PUBP,
// Identificador del Procesador remoto
String EventName, // Nomre del Evento Remoto
String SUSCP, //
Identificador del Procesador que se suscribe
String SUSCEventName) // Nomre del Evento Local
Permite la suscripción a Eventos BScript remotos.
Ver Ejemplo. |
|
RegSvc
|
public static obSvcInfo
RegSvc(int
REGH, String ServiceName, Func<ENV, BSX, BSX> xdelegate, params object[] a)
Registra un Servicio BLOCKS por un Plugin.
REGH: Identificador (Handler) de Registración, >= 0. Se usa
para eliminar la registración posteriormente (si fuere necesario) con
la función UnRegByREGH. Si = 0, la
Registración no se podrá eliminar. Mediante la función GetRH
se puede obtber un Identificador unívoco. ServiceName:: Nombre del Servicio. xdelegate: Delegate de la Función que procesará el Servicio.
a: Reservado para uso futuro.
|
|
UnRegByREGH
|
public static object
UnRegByREGH(int REGH) Para eliminar la Registración de todos los Servicios y Eventos
BLOCKS que fueron registrados con el Identificador REGH.
|
CRS   |
public static object CRS(
String proc, // Identificador del Procesador Remoto BSX sexpr) // BSX s-expression
Permite la invocación Sincronica de un Servicio Remoto.
Ver OBe - BLOCKS Everywhere. |
CRSA   |
public static object CRSA(
String proc, // Identificador del Procesador Remoto BSX sexpr, // BSX s-expression
String reth) // Nombre del Servicio que debe ser invocado
al recibir la respuesta asincrónica Permite la invocación Asincronica de un
Servicio remoto.
Ver OBe - BLOCKS Everywhere. |
|
CS
|
public static object CS(params
object[] argL)
Invoca un Servicio BScript.
argL: contiene el ServiceName y los parámetros requeridos.
Ejemplo:
String VBL = "-345.67";
object res = OB.CS("regexpMatch", "real", VBL);
|
|
CSA
|
public static void CSA(ENV Env,
BSX se1, String se2) Permite la invocación Asincronica de un Servicio local.
se2: nombre del servicio que debe ser invocado al recibir la respuesta
asincrónica |
|
CSAsync
|
public static object CSAsync(BSX
BScriptExpr, BSX AtEndBScriptExpr) Ejecuta asincrónicamente (en un worker Thread separado) la expresión
BScriptExpr y al finalizar ejecuta la expresión AtEndBScriptExpr.
Devuelve OB.T.
Ejemplo:
OB.CSAsync(new BSX(OB.BL("alert", "BScriptExpr")),
new BSX(OB.BL("alert",
"AtEndBScriptExpr")));
Como Comando de Consola:
(obCSAsync `(alert "BScriptExpr") `(alert "AtEndBScriptExpr")) |
|
ConvertEvent
|
Obsoleta,
usar onEventEval.
public static void
ConvertEvent(Form form, object ctrl, String NETEventName, String
OBEventName)
Especifica declarativamente la conversión del un Evento .NET en un Evento BScript. Cada
vez que se produzca el Evento .NET se generará el Evento
BLOCKS especificado . Se usa en los VIEWS.
form: Form donde se produce el Evento .NET.
ctrl: Control de form que produce el Evento .NET.
NETEventName: Nombre del Evento .NET.
OBEventName: Nombre del Evento BScript. Ver ejemplo completo x07. |
|
onEventCall
|
Obsoleta,
usar onEventEval.
public static void onEventCall(object
ctrl, String NETEventName, String OBEventFN, Form form, Control pos) Permite especificar declarativamente la invocación de un Servicio cuando se produce un determinado Evento
.NET en un Form. Ver TN02 y Ejemplos
de codificación de Componentes. |
|
onEventEval
|
public static void onEventEval(object ctrl, String NETEventName, String SExpression, Form form, Control pos)
Cuando se produce el evento especificado en NETEventName, evalua la expression
BScript SExpression.
Permite usar expresiones BScript que pueden ser complejas. Por ejemplo, las expresiones pueden invocar servicios remotos y usar
Reflexion. Permite pasar argumentos.
|
onEventEval puede ser usada fuera del contexto de un VIEW/Form con cualquier objeto que publique un evento, en este caso debe asignarse una referncia al objeto en el parametro ctrl y null a los paramtros
Form y pos. |
Ejemplo 1 - :Invocación deun Servicio: OB.onEventEval(btnReminder, "Click", "(ko1SetReminderTS)",
this, picBoxMC);
Ejemplo 2 - Publicación de Evento: OB.onEventEval(btnReminder, "Click", "(obPE \"onKO1Reminder\")",
this, picBoxMC);
|
|
PE
|
public static object PE(params
object[] argL) Publica un Evento BScript.
argL: contiene el eventName y los parámetros requeridos.
Ejemplo: OB.PE("onModelChanged", null, null);
|
|
ContainsErrors
|
public static bool ContainsErrors(BL rets, bool silent)
Analiza la lista de objetos rets y si encuentra un objeto
de clase BERROR devuelve true
y false en caso contrario. Si silent=false y si encuentra un objeto de clase BERROR
se despliegan los correspondientes Mensajes de Error al usuario. Ver
ejemplo Transactions.
|
FillMenu
|
public static void FillMenu(String obEVT, Form FRM, object MenuItemBase) Solicita a los Plugins que provean sus entradas para el Menú Addins. Se utiliza en
el proceso la Clase obMenuItem.
obEVT: Nombre de Evento ("chfMainFillAddinsMenu" por
ejemplo) al cual los Plugins deben suscribirse. FRM: Form del Menú MenuItemBase: MenuItem, o MenuStripItem, correspondiente a la Opción
"Addins"
Internamente el Método publica un Evento: OB.PE(obEVT, MenuItemsBL);
en el que MenuItemsBL es un BL al cual los Plugins deben agregar los obMenuItem
correspondientes.
Ejemplo: OB.FillMenu("obOnFillAddinsMenu", this,
menuItemPlugIns);
Ver ejemplo completo x07. |
| SetAppBackColor |
public static void
SetAppBackColor(Control ctrl)
Pone el color especificado para la Aplicación ( en el
Starter Plugin) en el BackColor del Control y de sus Child Controls. El
Control puede ser un Form (VIEW).
|
ShowHelp
|
public static void ShowHelp()
Muestra el archivo de Help especificado en el Modelo de Configuración
(Starter File) con el que se inició la Aplicación.
|
| ShowMessage |
public static void
ShowMessage(String msg, String title) Despliega el Mensaje msg con el titulo title.
|
|
AUTOKEY
|
public static String AUTOKEY()
Genera al azar strings alfanuméricos de ocho caracteres de longitud con un algoritmo que asegura una repetitividad mínima. Se utiliza para crear identificadores de instancias, pero también puede ser utilizado para otros
fines (ver por ejemplo TN09). |
Run
|
public static int Run(String file) Ejecuta un archivo o comando.
Ejemplo: OB.Run(@"C:\abc.txt"); |
|
BL
|
public static BL BL(params object[] argL) Crea un BL que contiene a sus argumentos. Más
... |
|
ENV
|
public static ENV ENV(String Name) Permite crear un Environment BScript. |
QUOTE
|
public static object QUOTE(object arg)
Provee la función quote en las invocaciones de Servicios
Así la expresión BScript
(uiAskValues_2 "IID Value" `(sIDD))
se escribe en C#
BL BL = (BL) OB.CS("uiAskValues_2", "IID
Value", OB.QUOTE(OB.BL("sIID"))); |
SAPPLY
|
public object SAPPLY(String SLAMBDA, BL ARGL)
Permite aplicar una expresión lambda suministrada con formato String a una lista de argumentos. Es útil para ejecutar expresiones lambda almacenadas previamente en Bases de Datos o en archivos de texto.
Ejemplo:
String SDB = "(lambda (x) (add1 x))"
BL ARGL = OB.BL(10);
int ret = (int) OB.SAPPLY(SDB, ARGL); |
|
Symbol
|
internal static cmFUNCTOR Symbol(String name) Permite crear un Symbol Object a partir de un String que contiene su nombre. |
|