BUSCADOR |
---|
INDICE |
---|
INDICE PÁGINA ACTUAL |
---|
Tabla de Contenidos
BUSCADOR |
---|
INDICE |
---|
INDICE PÁGINA ACTUAL |
---|
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.
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.
<mensajes show-wait-dialog="false"> <action name="runscript"> <script language="VBScript"> Dim vResult Select Case this("MAP_TIPO_MENSAJE") Case "MsgBox0" ui.MsgBox "Mensaje Informativo solo con OK","Titulo Ventana",0 Case "MsgBox1" 'Si pulsa ACEPTAR vale 1 y si pulsa CANCELAR vale 2 vResult =ui.MsgBox ("Pregunta si ACEPTAR o CANCELAR","Advertencia",1) ui.MsgBox "Ha pulsado el botón con valor: "+cstr(vResult),"Titulo Ventana",0 Case "MsgBox4" 'Si pulsa SI vale 6 y si pulsa NO vale 7 vResult =ui.MsgBox ("Pregunta SI ó NO","Advertencia",4) ui.MsgBox "Ha pulsado el botón con valor: "+cstr(vResult),"Titulo Ventana",0 End Select </script> </action> </mensajes>
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", ""
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
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.
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.
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.
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.
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.
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.
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.
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.
Arranca un contador de tiempo.
Tipo | Función |
---|---|
Sintáxis | |
Plataforma | Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed) |
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) |
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) |
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.
Parámetro 2 (opcional): tipos de código.
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:
<button name="ScannerCamera" group="1" caption="Lanzar scanner" visible="1" labelwidth="10" lmargin="6" method="ExecuteNode (StartScanner)” /> <StartScanner> <action name="runscript"> <script language="VBScript"> <!-- Este comando lee TODOS los tipos de códigos soportados --> ui.StartScanner "zxing", "", "MAP_CODIGOBARRAS" <!-- Sólo para leer códigos QR y ponemos la lectura en el campo "MAP_CODIGO --> ui.StartScanner "zxing", "QRCODE", "MAP_CODIGO" <!-- Sólo para leer códigos ISBN --> ui.StartScanner "zxing", "ISBN" <!-- Sólo para leer códigos QR, EAN e ISBN --> ui.StartScanner "zxing", "QRCODE,EAN,ISBN" </script> </action> </StartScanner>
Tipo | Función |
---|---|
Parámetros | NombreFichero: Será, o bien el nombre de un fichero (en ese caso se busca dentro de la carpeta Files de la aplicación), o una ruta, que se tomará como absoluta. Se puede usar la macro ##APP## que se sustituye por la ruta donde está instalada la aplicación. Caché: Indica al framework si al descargar ficheros con este método no debe buscarlo antes en la caché y bajarlo de nuevo. Valores posibles: “donotcachethefile”, “cache” |
Tipo de valor devuelto | Ninguno. |
Sintáxis | appdata.userinterface.OpenFile string NombreFichero |
Plataforma | Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed), Android |
Abre el fichero que se pasa por parámetro.
Ejemplo 1: appdata.userinterface.OpenFile "##APP##\Files"+this("FICHATECNICA") Ejemplo 2: appdata.userinterface.OpenFile "http://www.xone.es/XOneAndroidFramework.apk", "donotcachethefile"
Tipo | Función |
---|---|
Parámetros | Texto con la URL |
Tipo de valor devuelto | Ninguno. |
Sintáxis | appdata.userinterface.string url |
Plataforma | iPhone, Android, Windows Phone |
Abre la URL que se pasa por parámetro.
AppData.UserInterface.OpenUrl strURL ui.OpenUrl strURL
Tipo | Función |
---|---|
Parámetros | XoneDataObject |
Tipo de valor devuelto | XoneWindow |
Sintáxis | ui.GetView(obj) |
Plataforma | iPhone, Android |
Devuelve el objeto ventana asociada al objeto que se le pasa como parámetro. Si el objeto no tiene ventana aún, devuelve NULL.
Las posibles acciones sobre dicha ventana son: Refresh, Bind, SetFocus, PickFile.
Ejemplo de uso:
Set mViewEdit = ui.GetView(objMain) If Not mViewEdit = nothing Then mViewEdit.Refresh "MAP_PROPIEDAD" End If
Tipo | Función |
---|---|
Tipo de valor devuelto | Valor Numérico: 0: Bluetooth OFF/ 1: Bluetooth ON/ 2: Bluetooth Visible |
Sintáxis | Int appdata.userinterface.BthGetMode ( ) |
Plataforma | Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed) |
Retorna el estado del bluetooth.
Tipo | Función |
---|---|
Parámetros | NuevoEstado [in]Indica el nuevo estado al que se cambiará el bluetooth. Los valores posibles son:0: Bluetooth OFF/ 1: Bluetooth ON/ 2: Bluetooth Visible |
Tipo de valor devuelto | Ninguno |
Sintáxis | appdata.userinterface.BthSetMode int NuevoEstado |
Plataforma | Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed) |
Asigna el nuevo estado del bluetooth.
Tipo | Función |
---|---|
Parámetros | (*) |
Tipo de valor devuelto | Ninguno |
Sintáxis | appdata.usertinterface.showgroup “#group”,“animación de entrada”,duración entrada,“animación de salida”,duración salida |
Plataforma | Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed), Android |
Esta función muestra un grupo o un frame de la colección con una transición mediante script.
(*)Los tipos de animaciones que pueden ponerse en los parametros de “animación de entrada” y “animación de salida:
Ejemplos de Uso:
<action name="runscript"> <script language="VBScript"> <!-- Entrada del group id="3" con rotación 3D y tiempo de espera de 1000 ms --> AppData.UserInterface.ShowGroup "3","##ROTATE3D_IN##",1000,"##ROTATE3D_OUT##",1000 <!-- Entrada del group id="1" con difuminado con duración de 600 milisegundos --> AppData.UserInterface.ShowGroup "1","##ALPHA_IN##",600,"##ALPHA_OUT##",600 <!-- Entrada del group id="2" con Zoom de entrada y salida y duración de 1000 ms --> AppData.UserInterface.ShowGroup "2","##ZOOM_IN##",1000,"##ZOOM_OUT##",1000 </script> </action>
También se puede definir en la cabecera de los grupos o en los frames el efecto de entrada que se quiere por defecto para el grupo,
<group name="General" id="1" height="100%" animation-out="animación de salida" animation-in="animación de entrada" > <frame name="frmFlotante" floating="true" top="300px" left="200px" width="600px" height="300px" class="FrameAnimateFromRight" >
.FrameAnimateFromTop { animation-in-delay:500; animation-out-delay:500; /* Entra y sale por arriba. */ animation-in:##PUSH_DOWN_IN##; /* Aparece por arriba */ animation-out:##PUSH_OUT##; /* Se va por arriba */ } .FrameAnimateFromBottom { animation-in-delay:500; animation-out-delay:500; /* Entra y sale por abajo. */ animation-in:##PUSH_IN##; /* Aparece por abajo */ animation-out:##PUSH_DOWN_OUT##; /* Se va por abajo */ } .FrameAnimateFromRight { animation-in-delay:500; animation-out-delay:500; /* Entra y sale por la derecha. */ animation-in:##RIGHT_IN##; animation-out:##LEFT_OUT##; } .FrameAnimateFromLeft { animation-in-delay:500; animation-out-delay:500; /* Entra y sale por la izquierda. */ animation-in:##LEFT_IN##; animation-out:##RIGHT_OUT##; } .FrameAnimateRotate3D { animation-in-delay:500; animation-out-delay:500; /* Entra y sale rotando en 3D. */ animation-in:##ROTATE3D_IN##; animation-out:##ROTATE3D_OUT##; } .FrameAnimateAlpha { animation-in-delay:500; animation-out-delay:500; /* Aparece y desaparece;. */ animation-in:##ALPHA_IN##; animation-out:##ALPHA_OUT##; /* ZOOM. */ animation-in:##ZOOM_IN##; animation-out:##ZOOM_OUT##; } .FrameAnimateZoom { animation-in-delay:500; animation-out-delay:500; /* ZOOM. */ animation-in:##ZOOM_IN##; animation-out:##ZOOM_OUT##; }
Cumple las mismas macros que el script.
También puedes ocultar la ventana de espera que sea por defecto en la ejecución de los script para que el efecto sea más limpio.
En la cabecera del nodo de script pones los atributos:
show-wait-dialog="false" refresh="false"
Eso permite que no se muestre el diálogo de espera y que tampoco se refresque la pantalla. Ya lo hará la animación de forma automática.
Ejemplo de Uso:
<button1_Click show-wait-dialog="false" refresh="false"> <action name="runscript"> <script language="vbscript"> AppData.UserInterface.ShowGroup "3","##ROTATE3D_IN##",1000,"##ROTATE3D_OUT##",1000 </script> </action> </button1_Click>
Sirve para saber si una aplicación está instalada en el dispositivo, devuelve 0 si está instalada.
Ejemplo:
ui.isApplicationInstalled("com.google.android.apps.maps");
Tipo | Función |
---|---|
Tipo de Dato devuelto | Entero |
Sintáxis | ui.IsWifiEnabled |
Plataforma | Android |
Esta función comprueba si está habilitado el adaptador inalámbrico. Esto no significa que se haya conectado a una red. Devuelve 1 si es cierto, 0 en caso contrario.
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.StartWifi |
Plataforma | Android |
Esta función activa el wifi. Debe usarse con muchísimo cuidado el usuario puede considerar esta función bastante intrusiva.
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.StopWifi |
Plataforma | Android |
Esta función desactiva el wifi. Lo mismo que la anterior, pero ésta incluso, podría cortar alguna descarga en curso.
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.startGPS |
Plataforma | Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed) |
Inicializa y conecta el GPS del dispositivo para capturar las coordenadas GPS para su posterior tratamiento en un script.
Ejemplo de uso:
<!-- El onlogon es un nodo "especial" de la colección Empresas, y se ejecuta cuando nos logueamos en la aplicación. --> <onlogon> <action name="runscript"> <script language="VBScript"> AppData.UserInterface.StartGPS </script> </action> </onlogon>
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | appdata.userinterface.stopgps |
Plataforma | Win32, Web, .NET, .NET CF, WM (2003, 2005, 6.0, 6.5) Blackberry (5.0), iPhone, Linux, MC+, Symbian (3ed, 5ed) |
Finaliza y cierra el GPS del dispositivo.
<!-- El onlogoff es un nodo "especial" de la colección Empresas, y se ejecuta cuando finaliza la ejecución del programa. --> <onlogoff> <action name="runscript"> <script language="VBScript"> AppData.UserInterface.StopGPS </script> </action> </onlogoff>
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | appdata.userinterface.makephonecall(ValorTelefono) |
Plataforma | iPhone, Android |
Realiza la llamada desde un Script al numero insertado como parametro en la función.
AppData.UserInterface.MakePhoneCall(This("TELEFONO")) ' O lo que es lo mismo.... ui.MakePhoneCall(This("TELEFONO"))
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.AddCalendarItem(Titulo, Descripción, Lugar del evento, Fecha Inicio], Fecha Fin) |
Plataforma | Android |
Añade un evento al calendario integrado en Android.
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.HideSoftwareKeyboard |
Plataforma | Android |
Si está visible, oculta el teclado en pantalla de android.
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui. “nombreaplicacion”, “true” |
Plataforma | Android |
Cuando se llama a este método, crea un acceso directo a la aplicación que se le pase en el primer parámetro, que puede ser otra distinta a la que se esté ejecutando. El segundo parámetro indica si queremos evitar que se creen duplicados al llamar de nuevo a esta función.
En cualquier caso, esta función es totalmente dependiente de la aplicación de escritorio que tenga instalado el usuario, en algunos casos muestra una notificación “toast” siempre, en otros no, y en otros ni crea el acceso directo. Con la aplicación de escritorio por defecto que viene en Android debería funcionar bien.
Se usará icon.png como icono del acceso directo.
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.UpdateWaitDialog “Título”, aumento |
Plataforma | Android |
Si se define este método en un nodo de botón tal y como se muestra en el ejemplo, se sustituirá la ventana de cargando al ejecutar el script por otra con una barra de progreso y título. Útil cuando se carga un script demasiado pesado.
<AbrirFiltro show-progress-dialog="true"> <action name="runscript"> <script language="VBScript"> ui.UpdateWaitDialog "Ciclo 1",20 [script aqui] ui.UpdateWaitDialog "Ciclo 2",30 [script aqui] ui.UpdateWaitDialog "Ciclo 2.1",50 [script aqui] ui.UpdateWaitDialog "Ciclo 3",70 [script aqui] ui.UpdateWaitDialog "Ciclo 4",90 [script aqui] ui.UpdateWaitDialog "Ciclo 5",100 </script> </action> </AbrirFiltro>
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.SetMaxWaitDialog total |
Plataforma | Android |
Combinado con la función anterior, éste método ajusta el máximo de la barra de progreso. Es útil para no tener que calcular el aumento en cada UpdateWaitDialog.
Si, por ejemplo, quisiéramos recorrer una colección y cada vez que se procese un registro o varios aumentar sólo uno, guardamos primero el número de pasadas que daremos, lo ajustamos como el máximo y después en cada vuelta aumentamos el progreso.
<AbrirFiltro show-progress-dialog="true"> <action name="runscript"> <script language="VBScript"> aumento = 0 ui.SetMaxWaitDialog 50 [bucle aquí] ui.UpdateWaitDialog "Generando PDF...", aumento aumento = aumento + 1 [fin bucle] </script> </action> </AbrirFiltro> <barraprogreso show-progress-dialog="true"> <action name="runscript"> <script language="VBScript"> 'Para poner una barra de progreso en pantalla dim cont cont=0 ui.SetMaxWaitDialog 15000 For i = 1 To 15000 ui.UpdateWaitDialog "Generando lo que sea",cont cont=cont+1 Next </script> </action> </barraprogreso>
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.ExecuteActionAfterDelay “Nodo_A_Ejecutar”, Segundos |
Plataforma | Android - Iphone |
Este método sirve para ejecutar un nodo tras esperar un cierto tiempo. El tiempo se especifica en segundos y el nodo debe estar en la colección donde se encuentre el script con la llamada a este método. Se pueden poner decimales, por ejemplo 0.3 que vienen a ser 300 milisegundos. No poner 0.
<before-edit> <!-- O en cualquier otra parte --> <action name="runscript"> <script language="VBScript"> ui.ExecuteActionAfterDelay "Nodo_A_Ejecutar", 20 <!-- Ponemos que se ejecute cuando pasen 20 segundos --> </script> </action> </before-edit> .............. <Nodo_A_Ejecutar> <action name="runscript"> <script language="VBScript"> ...... Hacemos lo que sea ....... <!-- ui.ExecuteActionAfterDelay "Nodo_A_Ejecutar", 20 --> Si queremos que sea repetitivo </script> </action> </Nodo_A_Ejecutar>
Si queremos que este nodo sea repetitivo, en el nodo al que se llama tendríamos que hacer una llamada para que se ejecute a sí mismo.
Tipo | Función |
---|---|
Tipo de Dato devuelto | Entero |
Sintáxis | ui.SetLanguage “Código_de_idioma_2_letras” |
Plataforma | Android |
Este método permite cambiar el idioma de los mensajes del framework y de la aplicación XOne en tiempo de ejecución. Es necesario reiniciar la aplicación para que los cambios surtan efecto.
<prop name="BTNESPANOL" type="B" frame="frm1" group="1" class="buttonlogin" title="Español" visible="1" labelwidth="5" fontsize="10" onchange="refresh" method="ExecuteNode(idioma(es))" /> <prop name="BTNINGLES" type="B" frame="frm1" group="1" class="buttonlogin" title="Inglés" visible="1" labelwidth="5" fontsize="10" onchange="refresh" method="ExecuteNode(idioma(en))" /> <idioma> <action name="runscript"> <param name="idioma" /> <script language="VBScript"> Dim resp resp = ui.MsgBox("Cambiar el idioma reiniciará la aplicación. ¿Desea continuar?", "Mensaje", 4) if resp = 6 then ui.SetLanguage idioma end if </script> </action> </idioma>
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.PlaySoundAndVibrate “Sound.mp3”,Vibrate,numRepeat |
Plataforma | Android, IOS |
Este método permite lanzar un sonido con o sin vibración, y hacer que se repita n veces. El sonido puede ser cualquiera que pueda reproducir el dispositivo, mp3, wav, etc. Por defecto, el sonido se busca en la carpeta files del proyecto. También se puede reproducir el tono de notificación que se tenga configurado en el dispositivo así como si está activa la vibración o no con la macro ##DEFAULT##.
'El archivo de sonido tiene que estar en la carpeta files del proyecto ui.PlaySoundAndVibrate "bultonoencontrado.wav", "###DEFAULT##",1 'Ejecuta el tono que tenga configurado el dispositivo 5 veces. ui.PlaySoundAndVibrate "##DEFAULT##", "##DEFAULT##", 5 'Lo mismo que el anterior pero sin vibración ui.PlaySoundAndVibrate "##DEFAULT##", "", 5
<detenersonido> <action name="runscript"> <script language="VBScript"> 'Detiene la reproducción. No pasa nada si no hay nada reproduciéndose. ui.StopPlaySoundAndVibrate </script> </action> </detenersonido>
Este método permite dibujar una ruta entre 2 puntos en un mapa incrustado en la aplicación.
Tipo | Función |
---|---|
Tipo de Dato devuelto | Ninguno |
Sintáxis | ui.drawMapRoute(“MAP_MAPA”, self.LATITUD, self.LONGITUD, 43.0069, -7.5699, “driving”, ”#FF0000“) |
Plataforma | Android |
Parámetros |
|
Modifica el color del led de los dispositivos que lo tengan, este led solo se verá si tiene una notificación en la barra de notificaciones y si está el dispositivo bloqueado.
Parámetros:
Ejemplo:
ui.setNotificationLed "#00FF00", 1000, 1000
Muestra una notificación en la barra de notificaciones de los dispositivos.
Parámetros:
Ejemplos:
Ej1: ui.showNotification 1, "Título", "Notificación #1"
Ej2: ui.showNotification 1, "Título", "Notificación #1", “Mensaje nuevo” Ej3: ui.showNotification 3, "Título", "Notificación #3", "Mensaje nuevo", self, "mensajeria"
Método que mostrará por pantalla un calendario.
Parámetros:
Ejemplos:
Ej2: var params = initialYear: 2038, initialMonth: 2, initialDay: 15, title: "Seleccione fecha", onDateSet: function(nYear, nMonth, nDay) /*Aquí ponemos el script que queramos ejecutar*/ ui.showDatePicker(params)
Ej3: var params = targetProperty: "MAP_TEXTO_FLOAT_TOOLTIP_USUARIO", initialYear: 2038, initialMonth: 2, initialDay: 15, title: "Seleccione fecha" ui.showDatePicker(params)
Se han implementado desde hace algún tiempo los métodos del Widget del XOneLive para tenerlos disponibles mediante script para su uso en la aplicación.
Métodos de XOneLive con Script (Objeto Debugtool) | Definición |
---|---|
GetDeviceID | Obtiene el PIN del dispositivo (IMEI) |
SendLog | Envía el Log del dispositivo |
SendDatabase | Envía la base de datos |
SendReplicaDebugDatabase | Envía el log de operaciones de base de datos, siempre que esté activado el sql-debug=”true” a nivel de colección ó debug=”true” en el nodo APP. |
SendReplicaFilesDatabase | Envía la base de datos de réplica de ficheros. |
Ejemplo:
Set obj = CreateObject("DebugTools") ui.showtoast "Enviando Logs del sistema" 'Para obtener el IMEI del dispositivo\\ ui.MsgBox "PIN dispositivo: " + obj01.GetDeviceID, "Mensaje", 0 'Para obtener el log de operaciones del dispositivo \\ ' (La dirección es opcional) a=obj.SendLog("http://www.xone.es/XoneLogRec/reclog.aspx") if a=-1 then ui.showtoast "No se pudo enviar el log de operaciones" 'Para obtener la base de datos del dispositivo\\ '(La dirección es opcional) b=obj.SendDatabase("http://www.xone.es/XoneLogRec/reclog.aspx") if b=-1 then ui.showtoast "No se pudo enviar la base de datos" 'Para obtener log de réplica de la base de datos del dispositivo\\ '(La dirección es opcional) c=obj.SendReplicaDebugDatabase("http://www.xone.es/XoneLogRec/reclog.aspx") if c=-1 then ui.showtoast "No se pudo enviar el log de replica de operaciones" 'Para obtener la base de datos de réplica de \\ '(La dirección es opcional) d=obj.SendReplicaFilesDatabase("http://www.xone.es/XoneLogRec/reclog.aspx") if d=-1 then ui.showtoast "No se pudo enviar la base de datos de replica de ficheros" if a=0 and b=0 and c=0 and d=0 then ui.showtoast "Logs Enviados Correctamente" Set obj = nothing
Abre una colección en modo edición sin necesidad de hacer un create object y un pushvalue.
Parámetro 1 | Se le puede pasar un dataObject o el nombre de la colección. |
Ejemplo:
ui.openEditView(“miColeccion”);
Con éste código mostramos únicamente un mapa embebido con los POI que tengamos en la tabla correspondiente.
<prop name="MAP_MAPA" zoom-to-my-location="false" visible="1" type="Z" contents="ClientesCoord" onchange="Refresh" mask="2" viewmode="mapview" mapview-embedded="true" width="80%" height="80%" zoom="true" /> <contents name="ClientesCoord" src="ClientesCoord" />
El siguiente código lo ponemos dentro de la colección del contents que contiene los datos con las direcciones de los POI, si bien podríamos ponerlo también en un botón ó en cualquier otra parte.
Código javascript:
<selecteditem refresh="false"> <action name="runscript"> <script language="javascript"> /* ui.showToast("Soy el selecteditem del mapview: " + self.DIRECCION) */ /* Esto pinta una ruta desde la ciudad de Lugo (43.0069, -7.5699) hacia la posición del POI que se ha pulsado */ ui.drawMapRoute("MAP_MAPA", self.LATITUD, self.LONGITUD, 43.0069, -7.5699, "driving", "#FF0000") </script> </action> </selecteditem>
Código vbscript:
<selecteditem refresh="false"> <action name="runscript"> <script language="vbscript"> 'ui.ShowToast "Soy el selecteditem del mapview: " + this("DIRECCION") 'Esto pinta una ruta desde Lugo hasta la posición del POI que se ha pulsado ui.DrawMapRoute "MAP_MAPA", this("LATITUD"), this("LONGITUD"), 43.0069, -7.5699, "driving", "#FF0000" </script> </action> </selecteditem>
Son métodos asociados al control del GPS pero son llamados por el U.I
Método 1 | getLastKnownLocation: obtiene la última localización (Latitud, Longitud). |
Método 2 | getLastKnownLocationLatitude: obtiene la última latitud. |
Método 3 | getLastKnownLocationLongitude: obtiene la última Longitud. |
Método 4 | getLastKnownLocationAltitude: obtiene la última Altitud. |
Método 5 | getLastKnownLocationSpeed: obtiene la última Velocidad. |
Método 6 | getLastKnownLocationAccuracy: obtiene la última precisión. |
Método 7 | getLastKnownLocationBearing: obtiene el último rumbo. |
Método 8 | getLastKnownLocationProvider: obtiene el último proveedor. |
Método 9 | getLastKnownLocationDateTime: obtiene la última fecha y hora. |