hdolder.com srl

  hdc Home    |    Contenido    |    KO1    |    Director    |    Direcciones    |    email
  Clase OB

 

 

 

 *** 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

Registración de Servicios y Eventos BScript
Invocación de Servicios BScript
Tratamiento de Eventos BScript
Tratamiento de Errores BScript
Relaciónados con VIEWS/Forms
Dialog Boxes
Utilitarios
Soporte de BScript
 

Registración de Servicios y Eventos BScript

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.

Invocación de Servicios BScript

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"))

Tratamiento de Eventos BScript

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 TN02Ejemplos 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);

Tratamiento de Errores

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.

Relaciónados con VIEWS/Forms

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).

Dialog Boxes

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.

Utilitarios

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");

Soporte de BScript

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.
 

  TBW The BLOCKS World

©2012 hdolder.com srl  

C1006
2011-12-16