Etiqueta

22 enero 2018

Aplicar CSS a las líneas de un pop-menu en Omnis Studio Web

Aún existen esos "tipos raros" que dedican su tiempo libre a investigar como hacer ciertas cosas en programación con Omnis Studio, el reto que me plantee consistía en como conseguir espaciar las líneas que componen un pop-menú en Omnis Studio para la Web, la siguiente imagen describe lo que se pretende conseguir:


Haciendo un poco de investigación, se puede observar que omnis monta una tabla (etiqueta html ≤table≥) a la que asigna un nombre de clase (atributo class) compuesta del siguiente modo: [nombre-del-remoteform]_[id-del-objeto-pop-menu]_clientTable de modo que lo que hice fue incluir un identificador de clase y algunos atributos CSS en el documento "user.css" que Omnis suministra al efecto.

Ejemplo:


.RemoteForm_1001_clientTable {
border-collapse: separate;
border-spacing: 0px 10px;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
}

En el ejemplo, he añadido algo de separación  entre el primero y último elemento del grupo. Les animo a que prueben variantes del código expuesto adaptándolo a sus necesidades.

Otra variante de este CSS podría ser lo siguiente...

.RemoteForm_1001_clientTable td {
     height: 31px; 
}

...esto modificará únicamente las líneas del menú cambian su altura y por tanto también el espacio entre ellas, éste último caso es el que más me gusta y que uso habitualmente para mis menús.

NOTA: Creo que los ingenieros de Omnis se han hecho eco de éste artículo, pues en la versión 8.1.6, ya se incluyen nombres de clases CSS para poder realizar éste tipo de cambios más facilmente, para el caso que nos ocupa, sería cambiar ".RemoteForm_1001_clientTable" por ".omnis-menu-table", de éste modo funcionará para con todos los menús de nuestra aplicación.


18 enero 2018

Notificaciones y diálogos con AppleScript y Omnis Studio 8.1


En esta entrada del blog, quisiera exponer un pequeño ejemplo sobre cómo enviar notificaciones y diálogos al sistema macos, las notificaciones pueden resultar muy útiles, pues permiten enviar mensajes al usuario si esperar a que sean aceptados por éste, por otra parte, los diálogos del sistema mantendrá en suspenso la ejecución de Omnis hasta la aceptación del mismo por parte del usuario, pero salva las limitaciones en cuanto a longitud del texto a mostrar en el mismo.

A continuación un ejemplo de cada caso:

Método: $notificacion

Begin text block
Text: {display notification "Una notificación: Hola"}
End text block
Get text block lScript
Do $runapplescript(lScript;lResultado;lError)

Método: $dialogo

Begin text block
Text: {display dialog "Un texto my largo donde quiero explicar todo lo que hace éste programa, un texto my largo donde quiero explicar todo lo que hace éste programa, un texto my largo donde quiero explicar todo lo que hace éste programa,un texto my largo donde quiero explicar todo lo que hace éste programa, un texto my largo donde quiero explicar todo lo que hace éste programa, un texto my largo donde quiero explicar todo lo que hace éste programa, un texto my largo donde quiero explicar todo lo que hace éste programa, un texto my largo donde quiero explicar todo lo que hace éste programa." buttons {"Aceptar"} default button "Aceptar"}
End text block
Get text block lScript
Do $runapplescript(lScript;lResultado;lError)

Saludos cordiales a todos los seguidores de éste blog.


24 diciembre 2017

Comunicaciones seguras con Omnis Studio

Otra importante característica de la versión 8 de Omnis Studio, es la eliminación de la dependencias con OpenSSL como único medio para dotar de soporte a comunicaciones seguras. Como ya sabemos Omnis Studio aporta una buen catálogo de comandos Web con los que realizar éste tipo de conexiones, los denominados: FTPConnect, HTTPOpen, TCPConnect, POP3Connect, SMTPSend, etc.

El haberse eliminado las antiguas dependencias con OpenSSL, ahora ya no será necesaria su instalación adicional en aquellas plataformas donde no se incluía de serie, en su lugar, se usa la tecnología, que de forma predeterminada incorpora cada plataforma, de modo que en el caso de Windows se usa 'Secure Channel' (Schannel), en macOS se usa 'Secure Transport' y sólo en caso de Linux, se seguirá usando OpenSSL ya que es su tecnología de seguridad predeterminada.

No obstante, quisiera recordar en éste artículo, los pasos a seguir cuando (al usar versiones anteriores de Omnis Studio) necesitamos instalar OpenSSL en plataformas Windows, para su uso con Omnis Studio.

Primero recordamos cuales son las librerías que dan soporte a éstos comandos y que podremos hallar bajo el directorio de instalación de Omnis Studio, las denominadas:

  • wesecure.dll que añade una capa de funcionalidad entre weshared y OpenSSL
  • weshared.dll que da soporte a los comandos Web

Ahora lo que necesitaremos es incorporar a éste mismo directorio las librerías libeay32.dll y ssleay32.dll, las cuales podremos obtener de forma gratuita en internet, seleccionando la correspondiente a nuestra plataforma, por ejemplo, desde la web de "embarcadero" que nos facilita su instalación en: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/OpenSSL

Por último deberemos asegurarnos de que también este presente la carpeta o directorio, incluido con Omnis Studio denominado "secure". Omnis Studio usa las "Autoridades de Certificación" instaladas en el subdirectorio denominado "cacerts" del directorio "secure". Si usa su propia "Autoridad de Certificación" para auto-firmar certificados, deberá incluirá en ésta misma carpeta, Omnis la usará tras ser reiniciado.