0 votos

AppleScript le dice a Numbers que haga un menú emergente a partir de los nombres de los grupos de contactos, que espere a que los introduzca y que envíe por correo electrónico la captura de pantalla

Esto es un poco largo, pero aquí va

Usando AppleScript (vainilla, por favor), quiero automatizar la hoja de cálculo de Numbers que hice para las cuentas de las clases de música de mi esposa (que usa cuatro veces al año - ella es la única usuaria).

Este es mi primer proyecto AppleScript. He encontrado algunas partes individuales, que funcionan parcialmente, y me gustaría que me ayudaran a encajarlas.

script 1A y script 1B deberían combinarse en UN script, pero no sé cómo hacerlo.

script 1 sólo tiene que ejecutarse una vez, después de que ella (manualmente) abra la hoja de cálculo, pero script 2 se ejecutará para cada cuenta de estudiante, para generar un correo electrónico (así que aproximadamente 25 veces individuales)

script 2 necesita obtener información de script 1 - ver más abajo.

La secuencia general debería ser la siguiente:

1) El usuario se asegura de que los contactos están actualizados en el ordenador portátil (Catalina), y abre manualmente la hoja de cálculo de Cuentas. 2) Ejecutar scripts 1A &1B (que será UN scripts) 3) Rellenar los datos 4) Ejecutar scripts 2 5) Compruebe y envíe (manualmente) el correo electrónico. 6) Repetir desde el punto 3) para cada alumno -------------------------------

script 1A

--returns Contacts group’s names and email addresses

set myList to ""
tell application "Contacts" to repeat with p in people in group "testGroup"
    if emails of p is {} then
        set e to ""
    else
        set e to value of email 1 of p
    end if
    set myList to myList & name of p & ":" & e & linefeed -- gives full names
end repeat

(el resultado de esto es por ejemplo ) (No sé si este resultado está en un formato adecuado )

"Peter" Pan:peterpan@gmail.com Joe Bloggs:joebloggs@gmail.com Molly Mouse:mollymouse@gmail.com " ---------- ---------- ---------- -

script 1B DEBE UTILIZAR los elementos del resultado anterior en script 1A, ¡NO la lista de menuItems de abajo!

-- Make Pop-Up Menu in Numbers spreadsheet which is already open.
set menuItems to {"Joe Bloggs", "Molly Mouse", "Peter Pan"}

tell application "Numbers"
    activate
    tell the first table of the active sheet of document 1
        tell cell "A3"
            -- Set the cell value to the first menu item required. This also selects the cell.
            set value to item 1 of menuItems
            -- THEN set the cell format. This causes the menu to adopt the value just set as a single item instead of having the three default items.
            set the format to pop up menu
        end tell
    end tell
end tell

tell application "System Events"
    tell application process "Numbers"
        set frontmost to true
        tell window 1
            -- The inspector doesn't have to be visible, but its "Cell" pane does have to be selected. (?)
            click radio button "Cell" of radio group 1
            -- Adds the remaining items by clicking the "+" button and inputting the texts the required number of times.
            repeat with i from 2 to (count menuItems)
                click button 1 of group 1 of scroll area -1
                keystroke (item i of menuItems)
            end repeat
        end tell
    end tell
end tell

---------- ---------- ---------- -

El usuario selecciona un nombre del menú emergente, que ahora existe, y rellena los detalles de la lección, los cargos, etc.

Luego ejecuta script 2 probablemente pulsando una combinación de teclas en el teclado - la hoja de cálculo suele ejecutarse a pantalla completa en el portátil, por lo que una combinación de teclas simplificaría las cosas ( no es esencial, pero sí conveniente. Puedo asignar la combinación de teclas).

---------- ---------- ----------

script 2

--Make an email, with a screen captured image of the spreadsheet page, ready to send to the address belonging to the selected name in the Pop-Up Menu 

set thePath to POSIX path of (path to documents folder) & "IMAGE" & ".jpg"
do shell script "screencapture -R20,80,720,880 -tjpg" & space & quoted form of the thePath

tell application "Mail"
    set myMessage to make new outgoing message
    set subject of myMessage to "Music Lessons 1st Term"
    set content of myMessage to " \r \r \r "
    set theAttachedImage to "Macintosh HD:Users:petehunter:Documents:IMAGE.jpg"
    --
    tell myMessage
        make new to recipient at end of to recipients with properties {name:"peterpan@gmail.com “} —Fake name for test purposes! The Script must provide this/these names
        make new attachment with properties {file name:theAttachedImage as alias}
    end tell
    --  
    activate -- brings Mail to front, for checking, and a manual send.
end tell

---------- ---------- ---------- -

Espero que esto sea lo suficientemente claro. Gracias de antemano por su ayuda.

0voto

CNC_Pete Puntos 1

Alguien en Stack Overflow respondió a mi pregunta - era demasiado complicada, así que la simplifiqué allí. No necesitaba script 1A. Y esta fue la solución a script 1B :

--insert at beginning of script
tell application "Contacts" to set menuItems to the name of people in group "testGroup"

Hace una lista para menuItems, y funciona perfectamente.

De momento usaré script 2 tal cual.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X