Etiqueta

01 marzo 2012

AppleScrip para montar y desmontar discos


set diskName to "NombreDelDisco"
tell application "Finder"
if disk diskName exists then
    eject disk diskName
else
    tell current application
        set deviceLine to (do shell script "diskutil list | grep \"" & diskName & "\" | awk '{ print substr($0,69,9) }'")
        if deviceLine = "" then
            display dialog "El disco \"" & diskName & "\" no pudo encontrarse." buttons {"OK"} default button 1 with title "Error" with icon caution
        end if
        set foundDisks to paragraphs of deviceLine
        repeat with i from 1 to number of items in foundDisks
            set this_item to item i of foundDisks
            if this_item contains "disk" then
                do shell script "diskutil mountDisk/dev/" & this_item
            end if
        end repeat
    end tell
end if
end tell

06 febrero 2012

Error. Code # 801: , in worng place


El título de ésta entrada, obedece a un problema que se presenta cuando usamos OMSQLDAM, consultando una tabla, que contiene a su vez una columna numérica con decimales (usando "," como separador de decimales) y al ejecutar sobre ella la sentencia SQL indicada a continuación desde la ventana del "Interactive SQL":

SELECT SUM(ColumnaDecimal) FROM Tabla

El resultado de ésta consulta es el descrito, como título de ésta entrada ¿Cuál es la solución?

En un principio podría pensarse, que cambiando el parámetro de sesión $sqldecimalseparator sería suficiente, pero cual será nuestra sorpresa al ver que, tras cambiar éste parámetro obtenemos el mismo mensaje de error.

La solución nos llega por gentileza de un avezado desarrollador Omnis, Elías Gil de Caceres (España), la solución reside en el uso del método $root.$prefs.$separators.

Este método nos permite conocer o fijar los caracteres de separación que OMNIS deberá usar, su único parámetro será una cadena de 5 caracteres (dp,thou,func,imdp,imsep), si se omite el parámetro el método nos devolverá su estado actual, de otro modo se fijaran los que especifiquemos.

Método: $separators([cSeps])

Parámetro:

Carácter 1 (dp): carácter usado como separador de decimales
Carácter 2 (thou): carácter usado como separador de miles
Carácter 3 (func): carácter usado como separador entre los parámetros de una función 
Carácter 4 (imdp): carácter usado a la hora de importar/exportar cifras decimales 
Carácter 5 (imsep): carácter usado como delimitador durante una importación/exportación


De modo que: $root.$prefs.$separators('.,,.,') nos permitirá, fijar el modo de uso anglosajón y evitar así que se produzca el error ya mencionado. Usaríamos: $root.$prefs.$separators(',.,,,') para fijar de nuevo el modo español, donde la "," es usada como separador de decimales.


Los argumentos de éste método serán guardados en el archivo omnis.cfg, desde el cual Omnis tomará su estado inicial. Damos las gracias, en especial a Elías Gil de Caceres (España) por su aportación a éste blog.

13 enero 2012

Manual de Programación

Obtenga el Manual de Programación Omnis Studio en Casellano

¡¡ Gratis !! 

Adquiriendo una licencia o una actualización de cualquier producto Omnis Studio a través del distribuidor oficial (http://www.softpi.com), recibirá una copia en formato PDF.

Si desea más información, mande un e-mail a: framosmu@softpi.com