===== USERINTERFACE ===== \\ \\ Este elemento, **UserInterface**, forma parte del objeto **appData**, disponiendo de características propias que hacen que sea descrito a continuación.\\ \\ Dentro de este ámbito, podemos encontrar funciones que nos permiten interactuar con el usuario o con el dispositivo físico, permitiendo activación/desactivación de periféricos, impresión, notificaciones sonoras, o funcionalidades más básicas como un msgbox. \\ \\ Es posible llamar a los métodos con **ui.nombremetodo**, en vez de usar el antiguo **appdata.userinterface**.\\ \\ ==== MsgBox ==== \\ ^ Tipo |Método/Función| ^ Parámetros |**Message**:Mensaje que se quiere mostrar.\\ **Caption**: Título de la venta de mensaje.\\ **Options**:Parametro que especifica el tipo de msgbox a mostrar. Son las siguientes: \\ 0 - Muestra un mensaje informativo con botón "Ok". No retorna ningún valor. \\ 1 - Mensaje para petición de confirmación "Aceptar"/"Cancelar". \\ 4 - Mensaje para petición de confirmación "Si"/"No". | ^ Tipo de Dato devuelto |Para Options=0 - No hay retorno \\ Para Options=1 - Retorna 1 si el usuario pulsa "Aceptar" y 2 si pulsa "Cancelar" \\ Para Options=4 - Retorna 6 si el usuario pulsa "Si" y 7 si pulsa "No"| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ Muestra una ventana de mensaje en el UI correspondiente. \\ \\ En dependencia de la plataforma también se puede sacar un texto por la consola del sistema como traza. \\ \\ Los valores de las opciones se han normalizado según los que se definen para Windows, así que se pueden usar en cualquiera de las plataformas con idéntico significado, ya que la maquinaria se encarga de traducir los significados. \\ \\ \\ ==== SendMail ==== \\ ^ Tipo | Método | ^ Parámetros | "direcciondestino@correo.es", "direccionencopia@correo.es", "Asunto", "Texto del mensaje", "ficheroadjunto.zip" | ^ Tipo de Dato devuelto | Ninguno | ^ Plataforma | Android | \\ Sólo Android. Este método permite enviar un email rellenando los campos en el gestor de correo que tenga instalado el cliente. El usuario es responsable de pulsar el boton de enviar. Se puede adjuntar un fichero que esté en la carpeta files o en cualquier otra ruta si se le especifica completa.\\ Ejemplo: ui.SendMail "direcciondestino@correo.es", "direccionencopia@correo.es", "Asunto", "Texto del mensaje", "" \\ ==== OpenMenu ==== \\ ^ Tipo |Método| ^ Parámetros |**CollName**:Nombre de la colección a mostrar./ **Mask**:Mask del appwizard./ **Mode**:Mode del appwizard | ^ Tipo de Dato devuelto |Ninguno| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), Android, iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ Muestra una colección en pantalla. \\ \\ En función de la forma en que esté definido el UI de la colección en el mappings, se puede usar un control especial o en caso de no tener nada definido, se muestra en modo grid. \\ \\ Esta función solamente está definida en determinados frameworks, independientemente de la plataforma, pero la idea es que se vaya generalizando. \\ \\ De todas maneras el uso de las nuevas reglas de UI harán que este tipo de funcionalidad se vaya sustituyendo.\\ \\ Ejemplo: \\ ui.OpenMenu "ColeccionQueSea",31,1 ==== GetInputString ==== \\ ^ Tipo |Método| ^ Parámetros |**Message**:Mensaje que se quiere mostrar./**Caption**: Título de la venta de mensaje./ **Options**:Opciones de botones, iconos y demás | ^ Tipo de Dato devuelto |Texto| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ Muestra una ventana para pedir un dato al usuario.\\ \\ La forma que tenga esta petición de dato depende de la plataforma.\\ \\ En determinadas plataformas incluso puede que esté disponible o no dependiendo del framework usado, como puede pasar en el caso de PC.\\ \\ ==== StartPrint ==== \\ ^ Tipo |Función| ^ Parámetros |**IndexPrinter**:Es el índice de las entradas del fichero printer.bin que se va a usar. Usa índice cero, es decir, la primera opción, de las disponibles en printer.bin, sería 0. | ^ Tipo de Dato devuelto |Ninguna, si la conexión es correcta, en caso contrario un código de Error| ^ Sintáxis WM |string appdata.userinterface.StartPrint ( int IndexPrinter ) | ^ Sintáxis Android |string appdata.userinterface.StartPrint "zebra" | ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Android, Linux, MC+, Symbian (3ed, 5ed)| \\ Inicializa y conecta con la impresora que se indica por parámetro.\\ \\ ==== EndPrint ==== \\ ^ Tipo |Función| ^ Tipo de Dato devuelto |Ninguno| ^ Sintáxis |appdata.userinterface.EndPrint | ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ Finaliza la conexión a la impresora.\\ \\ ==== Print ==== \\ ^ Tipo |Función| ^ Parámetros |**Texto** [in]:El texto que se mandará imprimir.| ^ Tipo de valor devuelto |Ninguno, si la impresión es correcta, en caso contrario devuelve Error.| ^ Sintáxis |int appdata.userinterface.Print (string Texto )| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ Imprime la cadena que recibe por parámetro.\\ \\ ==== PrintLine ==== \\ ^ Tipo |Función| ^ Parámetros |**Texto** [in]:El texto que se mandará imprimir.| ^ Tipo de valor devuelto |Ninguno, si la impresión es correcta, en caso contrario devuelve Error.| ^ Sintáxis |int appdata.userinterface.PrintLine(string Texto )| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ Imprime la cadena que recibe por parámetro y provoca un salto de línea.\\ \\ ====LineFeed==== \\ ^ Tipo |Función| ^ Parámetros |**Saltos** [in]:Números de saltos de línea.| ^ Tipo de valor devuelto |Ninguno| ^ Sintáxis |appdata.userinterface.LineFeed int Saltos | ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ Realiza tantos saltos de línea como se indiquen por parámetro.\\ \\ ====PrintCommand==== \\ ^ Tipo |Función| ^ Parámetros |**Texto** [in]:El texto que será enviado a la impresora como comandos ascii a no ser que se especifique la macro ##**TEXT**##. (*)| ^ Tipo de valor devuelto |Ninguno, si la impresión es correcta, en caso contrario devuelve Error.| ^ Sintáxis |Int appdata.userinterface.PrintCommand (int String )| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ (*)La Sintáxis puede ser: 1) Para escribir texto normal y que el control los interprete como ASCII, sería:\\ appdata.userinterface.PrintCommand "##TEXT##hola 130 15 ##END_TEXT##" appdata.userinterface.PrintCommand "##TEXT##! 0 200 200 210 1##END_TEXT##" 2) Cualquier valor que vaya entre comas sin las macros anteriores, será interpretado como un valor ASCII: appdata.userinterface.PrintCommand "32,35,104,111,108,97,10" sería igual a: appdata.userinterface.PrintCommand "32,35,##TEXT##hola##END_TEXT##,10" \\ Imprime comandos específicos de la impresora, mediante la cadena que recibe por parámetro.\\ \\ ==== PrintBarCode ==== \\ ^ Tipo |Función| ^ Parámetros |**Tipo** [in]:El tipo de código de barras que se mandará imprimir. Tipos disponibles: "EAN13","EAN8","CODE39",”CODE128","PDF417”,"UPCA","UPCE". \\**Valor** [in]: El valor que formará el código de barras. | ^ Tipo de valor devuelto |Ninguno, si la impresión es correcta, en caso contrario devuelve Error.| ^ Sintáxis |int appdata.userinterface.PrintBarCode (string Tipostring Valor )| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ Imprime un código de barras del tipo especificado por parámetro.\\ \\ ==== ChronoStart ==== \\ Arranca un contador de tiempo.\\ \\ ^ Tipo |Función| ^ Sintáxis |objeto.ChronoStart ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ ====ChronoStop==== \\ Para el contador de tiempo.\\ \\ ^ Tipo |Función| ^ Sintáxis |Objeto.ChronoStop| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ ====ChronoValue==== \\ Retorna el tiempo transcurrido, en milisegundos, desde que se arrancó el temporizador o desde la última llamada a ChronoValue.\\ \\ ^ Tipo |Función| ^ Sintáxis |long objeto.ChronoValue| ^ Tipo de valor devuelto | Los milisegundos transcurridos desde la última llamada a ChronoValue. La primera vez que es llamada retorna el total de tiempo transcurrido.| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ /* ====WriteString==== \\ Escribe la cadena de texto, que se pasa por parámetro, a la pantalla de depuración. En el caso de Windows Mobile esta pantalla es la ventana de resultados de Visual Studio. \\ \\ ^ Tipo |Función| ^ Parámetros | Cadena (in)El mensaje que se va a mostrar en pantalla.| ^ Sintáxis |objeto.ChronoValue (string Cadena)| ^ Tipo de valor devuelto | No retorna valor.| ^ Plataforma |Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ Ejemplo\\ \\ set xcrn = CreateObject("System.Debug") xcrn.WriteString "INICIO CALCULOS" xcrn.ChronoStart REALIZAR TRABAJO 1 ... xcrn.WriteString "El tiempo trabajo 1: " + CStr(xcrn.ChronoValue) 'REALIZAR TRABAJO 2 ... xcrn.ChronoStop xcrn.WriteString "El tiempo trabajo 2: " + CStr(xcrn.ChronoValue) xcrn.WriteString "FIN" \\ */ ==== StartScanner ==== \\ Lanza o conecta el scanner para la lectura de códigos 2d, al realizarse la lectura se asignara el valor a la propiedad con atributo barcode =”true”.\\ Se ha implementado posteriormente un tercer parámetro que nos permite especificar la propiedad destino de la lectura del código de barras, tenga ésta o no el atributo barcode="true". Este comando, para su correcto funcionamiento buscará una aplicación llamada "Barcode Scanner" by ZXing. Si no está instalada, nos abrirá el market para que la instalemos.\\ \\ ^**Tipo**|Función| ^**Parámetros**|//__**Parámetro 1: aplicación de scanner a usar.**__// * **quickmark1d**: Usar QuickMark para códigos unidimensionales. * **quickmark**: Usar QuickMark con escaner genérico. * **zxing**: Usar Zxing. Esta es la preferida. //__**Parámetro 2 (opcional): tipos de código.**__// * Si este parámetro no esta presente o su valor es vacío, se intentará identificar todos los códigos soportados. * Los valores irán separados por comas. P.Ej: "QRCODE,EAN,ISBN". * **EAN**: "European article number" incluye (EAN2,EAN5,EAN8,EAN13). * **UPC**: "Uniform product code" incluye (UPC-A, UPC-E). * **ISBN**: "International Standart Book Number" incluye (ISBN-10, ISBN-13). * **COMPOSITE**: EAN/UPC composite. 125: Interleaved 2 of 5. * **DATABAR**: GS1 DataBar (RSS). * **CODE 39**: Code 39. * **PDF417**: PDF417. * **QRCODE**: QR Code. * **CODE93**: Code 93. * **CODE128**: Code 128. //__**Parámetro 3 (opcional): Propiedad destino de la lectura.**__//| ^ Tipo de valor devuelto|Ninguno, si la impresión es correcta, en caso contrario devuelve Error.| ^ Plataformas|Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed)| \\ **Ejemplo de uso:**\\