Comunidad Macuarium: FileMaker y AppleScript - Comunidad Macuarium

Ir a contenido

Página 1 de 1
  • No puedes empezar un nuevo tema
  • No puedes responder a este tema

Options
FileMaker y AppleScript El Tutorial Perdido IV - Por Zenaida

#1 Usuario offline   Zenaida 

  • Usuario Activo
  • PipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 270
  • Registrado: 24-March 03

Publicado 26 September 2005 - 09:56 PM

Hola de nuevo a tod@s!

Tras esta semana de "tragarse lo que te dan", y si todavía no has empezado a animarte, vamos a "arrancar" ya. Para ello, vamos a desarrollar un pequeño AppleScript que mostrará un cuadro de diálogo. Aunque esto está disponible a partir de la versión 6, hay diferencias entre los cuadros de diálogo que puedes hacer con AppleScript y los que puedes hacer con FileMaker. Sobre todo, si, además, y al final de este tutorial, te animas a "meterte" con XCode para desarrollar tu AppleScript. La potencia que le puedes dar a tu base de datos FileMaker será, incluso, muchísimo mayor que la obtienes con la reciente versión 8, ¡y usando versiones a partir de la 3!.

Espero que a partir de ahora, que empezamos "a lo práctico" te animes más de lo que puedas estar ahora. La "teoría" ya está casi terminada. A partir de ahora vamos a "poner en práctica" lo que hemos visto antes, y a ampliar estos conocimientos.

*********************************************************************

Plugin, y mis “plugout” con AppleScript
La tendencia actual de FileMaker está encaminada hacia los plugin, que son pequeños programas creados en C, con cualquiera de las herramientas existentes, para poder desarrollar distintas acciones (para ver una lista detallada de plugin disponibles, vea la web de FileMaker (www.filemaker.com). En cambio, AppleScript está un poco dejada de lado (¿con la esperanza que, quien trabaje con FileMaker, se introduzca en el mundo del desarrollo profesional?) en contra de la interfaz y herramientas que convierten a FileMaker en una base de datos muy intuitiva a la vez de fácil de usar por gente nada experta en bases de datos ni en programación.

En muchos casos, el uso de un plugin para Mac estaría justificado cuando se implantan acciones que, bien por su rapidez, bien por la falta de medios, se obtengan unos beneficios amortizables con la inversión a realizar en la adquisición de este. Recordemos que, al igual que AppleScript en un Mac, se pueden implantar acciones semejantes con VisualBasic en un PC, aunque la versión para Mac, en cuanto a este punto se refiere, es más potente. (Este sería el caso donde se justificara el uso de un plugin ya que nos evitaría tener que desarrollar dos códigos distintos si se usara mac o PC, ya que el uso de un único código implementaría las acciones que deseamos utilizar.) La mala noticia es que la mayoría de los plugin, a dia de hoy, que se hacen para FileMaker está optimizado para Mac, por no hablar de los costes que tienen algunos, sobre todo si se adaptan en un sistema multipuesto.

Muchos de los plugin que existen ofrecen acciones que se pueden crear fácilmente, y de forma más legible con AppleScript. Por esta razón, yo he pasado a denominarlos “plugout”. Por ejemplo:
External ("file-Append", "0|archivo.txt|Datos - " & CampoNombre)

sería lo mismo que
write (“Datos - " & CampoNombre) to file archivo.txt starting at eof


En ambos casos, tanto utilizando el plugin gratuito (se ha escogido un plugin gratuito en beneficio del lector) File Toolbox como utilizando AppleScript, y teniendo en cuenta que el campo CampoNombre contiene el nombre “Pepe”, se añade el texto “Datos - Pepe” al final del archivo “archivo.txt”.

En algunos casos será necesario el uso de algunas adiciones de script. Aunque algunas de ellas ya se incorporan durante la instalación de el sistema operativo, otras será necesario obtenerlas, por ejemplo, a través de internet, en la dirección http://www.osaxen.com se podrá obtener más información acerca de las adiciones de script más comunes (en tanto que las adiciones de script se pueden crear por cualquier programador, no sólo por Apple, van apareciendo cada vez más adiciones de script, por lo que, obtener una relación completa de las adiciones de script existentes será complicado. Asimismo, la mayoría de las adiciones de script se podrán encontrar gratuitas y otras con algún coste adicional. No obstante, algunas adiciones de script van introduciendo nuevas características, parámetros, etc. por lo que es recomendable comprobar el diccionario de las adiciones de script que se utilizan en este texto para comprobar que las tiene disponibles en su sistema.

Antes de empezar
Hay que tener en cuenta los siguientes aspectos para poder crear nuestros guiones manejando AppleScript:

Variables o “flags”: En muchos casos, tanto manejando AppleScript, como si sólo manejamos FileMaker, necesitamos apoyarnos en unos valores que pueden ser iguales durante el uso de nuestra base de datos. Estos pueden ser únicos para cada usuario, o el mismo para todos los usuarios, así como para los registros de nuestra base de datos. Por esta razón, definiremos un campo de texto para cada variable distinta que podamos manejar si se trata de la misma para todos los usuarios, y un campo global, accesible por cada archivo que constituye nuestra aplicación, si es una variable distinta para cada usuario. En nuestro caso, este campo lo denominaremos gAS con un número, para identificarlos, así tendremos gAS1, gAS2, gAS3, … (ello nos indicará que se trata de un campo global utilizado para nuestros AppleScript) para que cada usuario pueda obtener su valor después de ejecutar el AppleScript sin interferir en los valores del resto de los usuarios.

Cita

NOTA:
Es importante vaciar las variables siempre que no la necesitemos más incluyendo el paso de guión “Establecer Campo [“gAS1” , “""”]“

Comillas. Las comillas se utilizan mucho en los guiones creados con AppleScript, sobre todo cuando se pasan valores a una variable en forma de texto, por ejemplo, set MiValor to “Esto es un valor de texto”. Por ello hay que tener en cuenta los siguientes aspectos a la hora de, por ejemplo, crear un campo donde introduzcamos nuestro guión de AppleScript:
Una comilla sencilla (“) la obtendremos mediante cuatro comillas ( """" ),
Una comilla, al iniciar o al terminar un texto, la obtendremos mediante tres comillas y el texto correspondiente ( """texto"),
Una comilla, dentro de un texto, la obtendremos mediante dos comillas ( "Este es ""mi texto entre comillas""" )
Por último, recordar que el salto de línea entre el código de AppleScript se debe obtener a través del carácter especial ( "¶") que nos ofrece FileMaker.Diálogos (Adiciones Estándard)

Un segundo ejemplo, más ilustrativo (e impactante) sería el de los diálogos. Hasta la versión 6, donde los diálogos pueden personalizarse, FileMaker nos permite hacer dos tipos de diálogos esperando la interacción del usuario, y contra los cuales podremos actuar para afrontar nuestras acciones en base a uno u otro resultado. Por ejemplo, Muchas veces he llegado a ver gente que borra archivos, datos, etc… sin caer en la cuenta de los datos que existen en el mismo. Así podríamos avisar al usuario con cualquiera de los diálogos siguientes:

La diferencia entre ambos estriba en la forma en que se preparan los diálogos. El primer diálogo de borrar está creado por FileMaker, y el segundo está creado por AppleScript. En ambos, se otiene un parámetro que se podrá manejar posteriormente, de forma automática, en FileMaker, o definiéndolos en AppleScript. Así, nuestro código sería:

Este es el cuadro donde se introduce el mensaje a mostrar. Los parámetros de retorno los maneja FileMaker, por lo que se deben incluir las instrucciones correspondientes inmediatamente después a la ejecución de este paso de guión extrayendo éste con un cáculo, ya sea lógico o de cualquier otro tipo, donde se incluya “Status (CurrentMessageChoice)”.
El cuadro siguiente muestra nuestro código de AppleScript dentro de un cuadro creado con el paso de guión “Ejecutar AppleScript”.
En este código observamos los siguientes pasos:
se toma el valor que queremos mostrar en base al contenido del campo del registro actual
“ set x to cell "Campo A" of current record “,
asignamos a un campo del parámetro de retorno en base al valor contenido por el botón que se seleccione, veremos más adelante que los valores de los botones también se los definimos nosotros
“ set cell "gAS1" of current record to button returned of “,
definimos el mensaje que queremos mostrar
“ (display dialog "¿Desea borrar la ficha de " & x & "?" …) “,
le indicamos el texto de los botones que se mostrarán y el botón que marcamos por defecto
“ …buttons {"No Borrar","Borrar"} default button {"No Borrar"}… “
asímismo, podremos añadir algo de adorno a nuestro diálogo
“ …with icon 2) “.

En este caso, sólo se pasa a un campo, que puede ser de cualquier tipo, para mostrar la ventaja obtenida frente al correspodiente paso/s que deberíamos crear con ScriptMaker, aunque con AppleScript también se pueden desarrollar guiones más complejos, estos podrán necesitar igualmente la ayuda de algún paso de ScriptMaker para concluir la tarea que deseamos realizar con el guión que estamos preparando.

Esta forma de diálogo nos evita tener un manejo a posteriori y de forma inmediata del parámetro de retorno pudiendo dar preferencias a otros casos, por ejemplo, si implantamos un sistema de gestión de errores en nuestra base de datos.

En este último cuadro podemos observar, además, que FileMaker nos da la la opción de pasar el código del AppleScript que queremos ejecutar a partir del valor de un campo, lo cual, aumenta aún más la potencia de este paso de guión ya que, por ejemplo, podríamos crear un diálogo distinto cada vez, según la necesidad de nuestra tarea. Por ejemplo, al desarrollar una base de datos donde llevemos un control de nuestras cuentas, podremos crear un diálogo para indicar el saldo actual en el momento conveniente cambiando el icono a mostrar según la importancia que queramos dar al mismo, y ofreciendo por defecto distintos botones; todo ello sin tener que crear un guión de AppleScript muy complejo ya que lo podemos incorporar en un campo de cálculo de FileMaker.

Otros parámetros opcionales son:
[default answer “Respuesta por defecto”] -- El texto por defecto, en una caja editable
[buttons {“Botón 1”,”Botón 2”,”Botón 3”}] -- una lista de hasta tres botones
[default button 1 o “Botón 1”] -- el número o texto del botón por defecto
[with icon stop/note/caution 0/1/2…] -- …el icono que se muestra en el diálogo, indicado por nombre o número.

El icono que podemos mostrar puede ser cualquiera de los incuidos en el programa creado en AppleScript, el programa al cual o desde el cual se ejecuta el AppleScript, y, por último, uno de los del Finder. Para localizarlos, AppleScript los busca en este mismo orden. Para poder ver los iconos que tiene un programa se puede utilizar un programa de edición de recursos, como es Resedit. A continuación podemos observar los iconos propios de FileMaker 4, junto con su número, que es el que podemos indicar en este parámetro.

[giving up after 10] -- número de segundos tras el cual, el diálogo desaparecerá.

#2 Usuario offline   fre 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios Recientes
  • Mensajes: 4
  • Registrado: 21-May 05

Publicado 02 October 2005 - 01:36 PM

Voy a empezar reconociendo mi gran torpeza.
Me gustaria saber como se hace un scripts de quark, para impimir un simple a4, alguien puede explicarmeloo:
f.manzanares@auna.com :blink:

#3 Usuario offline   Zenaida 

  • Usuario Activo
  • PipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 270
  • Registrado: 24-March 03

Publicado 14 October 2005 - 08:29 AM

Hola, fre!

Disculpa por el retraso, pero pensé que alguien iba a responderte antes.

Anticipándote que no conozco mucho Quark, intento darte una respuesta.
Las "tareas" más comunes las tienen TODAS las aplicaciones del Mac (aún no siendo "AppleScriptables" -Quark sí lo es-).

Así, cuando quieras imprimir un documento, como es tu caso, lo podrías incluso hacer desde el propio Finder.

Seguro que Quark dispone de opciones más avanzadas para imprimi (las tendrás que ver en su "Diccionario").

Una forma rápidad e "iniciarte" es, por ejemplo, imprimiendo este documento desde el Finder, ya que, el Finder es, incluso "Record-able" (es decir, que te dice lo que está haciendo). Para ello, haz lo siguiente:

- Abre la aplicación "Editor de Scripts"
- Haz click sobre "Grabar"
- Arrastra el documento que quieras imprimir sobre la impresora donde lo quieras hacer
- En el editor de Scripts, haz click sobre "Detener"

Ahora, que ya tienes tu AppleScript, podrás leerlo, ver cómo se ha hecho (intentar entenderlo) y modificarlo.

Para empezar no está mal. Ahora intenta atreverte a abrir el diccionario de Quark (desde Editor de Script Archivo->Abrir Diccionario) e intentar modificarlo para que te funcione desde Quark

Un saludo,

Zenaida

Compartir este tema:


Página 1 de 1
  • No puedes empezar un nuevo tema
  • No puedes responder a este tema