Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit TeamsCambios recientesSend via e-MailImprimirEnlace permanente × Tabla de Contenidos Type PH-FOTO Para personalizar los iconos Enviar FOTO Límites Subida de Archivos Type PH-FOTO Propiedad de tipo FOTO <prop name="FOTO" type="PH" labelwidth="0" width="70%" height="50%"/> Para personalizar los iconos Se han definido algunos atributos para personalizar la apariencia de los iconos al definir un type=“IMG” con readonly=“false”. (Firma vieja, para mayor personalización utilizar el type=“DR”) Atributos: Atributo Descripción img-camera Icono de la foto. img-camera-sel Icono cuando pulsamos sobre el icono de la foto. img-delete Icono para descartar la foto. img-delete-sel Icono para cuando pulsamos en descartar la foto. Apariencia de un campo type=“PH” Enviar FOTO Para que una foto se replique, lo único que se necesita es rellenar un campo con el nombre de la foto que se ha tomado y que este campo esté definido en la tabla MASTER_REPLICA_FIELDS. A través de script, podemos invocar a la cámara y rellenar de valor un campo type=“T” (ui.startCamera(NOMBRE_CAMPO,“photo”)), pudiendo hacer el diseño de pantalla que queramos y llamando a la función con algún botón. En el código siguiente, combinamos el uso de un campo type=“T” que contendrá el nombre del fichero a transmitir con un campo de type=“IMG” para tener una previsualización del fichero, para ello hacemos uso de un botón que instancia a la cámara y deja el resultado de la foto en el campo FOTO1 (type=“T) y cuando cambia éste (evento onchange), asociamos a su vez dicha foto a un campo type=“IMG” para previsualizarla. Apariencia visual del código desarrollado a continuación Ejemplo de código: <prop name="FOTO1" title="Foto 1" width="74%" labelwidth="6" text-border="true" locked="true" type="T" tmargin="20p" /> <prop type="B" name="MAP_BTNFOTO1" img="camera.png" width="64p" height="64p" method="ExecuteNode(camera('FOTO1'))" newline="false" tmargin="10p" title=" " /> <prop type="B" name="MAP_BTNDELFOTO1" img="deshacer.png" width="64p" height="64p" method="ExecuteNode(delcamera('FOTO1'))" newline="false" tmargin="10p" title=" " /> <prop name="FOTO2" title="Foto 2" width="74%" labelwidth="6" text-border="true" locked="true" type="T" tmargin="20p" /> <prop type="B" name="MAP_BTNFOTO2" img="camera.png" width="64p" height="64p" method="ExecuteNode(camera('FOTO2'))" newline="false" tmargin="10p" title=" " /> <prop type="B" name="MAP_BTNDELFOTO2" img="deshacer.png" width="64p" height="64p" method="ExecuteNode(delcamera('FOTO2'))" newline="false" tmargin="10p" title=" " /> <prop name="FOTO3" title="Foto 3" width="74%" labelwidth="6" text-border="true" locked="true" type="T" tmargin="20p" /> <prop type="B" name="MAP_BTNFOTO3" img="camera.png" width="64p" height="64p" method="ExecuteNode(camera('FOTO3'))" newline="false" tmargin="10p" title=" " /> <prop type="B" name="MAP_BTNDELFOTO3" img="deshacer.png" width="64p" height="64p" method="ExecuteNode(delcamera('FOTO3'))" newline="false" tmargin="10p" title=" " /> <prop name="MAP_FOTO1" type="IMG" tmargin="1%" readonly="true" locked="true" width="30%" height="20%" file-maxwidth="800" file-maxheight="600" /> <prop name="MAP_FOTO2" type="IMG" tmargin="1%" readonly="true" locked="true" width="30%" height="20%" file-maxwidth="800" file-maxheight="600" newline="false" /> <prop name="MAP_FOTO3" type="IMG" tmargin="1%" readonly="true" locked="true" width="30%" height="20%" file-maxwidth="800" file-maxheight="600" newline="false" /> <onchange> <field name="FOTO1"> <action name="runscript"> <script language="javascript"> self.MAP_FOTO1 = self.FOTO1; ui.refresh("MAP_FOTO1"); </script> </action> </field> <field name="FOTO2"> <action name="runscript"> <script language="javascript"> self.MAP_FOTO2 = self.FOTO2; ui.refresh("MAP_FOTO2"); </script> </action> </field> <field name="FOTO3"> <action name="runscript"> <script language="javascript"> self.MAP_FOTO3 = self.FOTO3; ui.refresh("MAP_FOTO3"); </script> </action> </field> </onchange> <camera show-wait-dialog="false"> <action name="runscript"> <param name="CAMPO" /> <script language="javascript"> ui.startCamera(CAMPO,"photo"); </script> </action> </camera> <delcamera show-wait-dialog="false"> <action name="runscript"> <param name="CAMPO" /> <script language="javascript"> self[CAMPO] = ""; </script> </action> </delcamera> Límites Subida de Archivos Se han incorporado ciertos atributos para “limitar” la subida de ficheros en los type “AT” (Adjuntar fichero), “IMG” (Firma), “VD” (Vídeo) y “PH” (Foto). Atributos: Atributo Descripción file-maxsize=“XXX” Tamaño en bytes, tamaño máximo del fichero a subir. file-msgfail=“Mensaje Error” Personalizamos el error si se intenta subir un fichero muy grande. file-maxwidth=“800” Ancho máximo de la foto que se tome. file-maxheight=“600” Alto máximo de la foto que se tome. Se debe implementar file-maxwidth y file-maxheight para los campos de tipo foto y firma para que los distintos dispositivos repliquen todos las fotos y firmas siempre con la misma resolución. Esto hará que el tamaño de las fotos sea más predecible y de pequeño tamaño, y evitará problemas de memoria en dispositivos de gama baja.