0 votes

AppleScript indique à Numbers de créer un menu contextuel à partir des noms des groupes de contacts, d'attendre la saisie, puis d'envoyer une capture d'écran par courrier électronique.

C'est un peu long, mais voilà

En utilisant AppleScript (vanille, s'il vous plaît), je veux automatiser la feuille de calcul Numbers que j'ai créée pour les comptes des cours de musique de ma femme (qu'elle utilise quatre fois par an - elle est la seule utilisatrice).

Ceci est mon premier projet AppleScript. J'ai trouvé quelques éléments individuels, qui fonctionnent partiellement, et j'aimerais avoir de l'aide pour les assembler.

script 1A et script 1B devraient être combinés en UN script, mais je ne sais pas comment faire.

script 1 n'a besoin d'être exécuté qu'une seule fois, après qu'elle ait ouvert (manuellement) la feuille de calcul, mais script 2 sera exécuté pour chaque compte d'étudiant, pour générer un e-mail (donc environ 25 fois individuelles).

script 2 doit obtenir des informations de script 1 - voir ci-dessous.

La séquence globale devrait se dérouler comme suit :

1) L'utilisateur s'assure que les contacts sont à jour sur son ordinateur portable (Catalina) et ouvre manuellement la feuille de calcul des comptes. 2) Exécuter les scripts 1A &1B (qui seront UN scripts) 3) Remplissez les détails 4) Exécuter scripts 2 5) Vérifiez, et envoyez (manuellement) l'email. 6) Répétez le point 3) pour chaque élève. -------------------------------

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

(le résultat est par exemple ) (je ne sais pas si ce résultat est dans un format approprié )

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

script 1B DOIT UTILISER les éléments du résultat ci-dessus dans le script 1A, PAS la liste de menuItems ci-dessous !

-- 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

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

L'utilisateur sélectionne un nom dans le menu contextuel, qui existe maintenant, et remplit les détails de la leçon, les frais, etc.

Puis exécute script 2 probablement en appuyant sur une combinaison de touches sur le clavier - la feuille de calcul s'exécute généralement en plein écran sur l'ordinateur portable, donc une combinaison de touches simplifierait les choses ( pas essentiel, mais pratique. Je peux attribuer la combinaison de touches).

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

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

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

J'espère que cela est suffisamment clair. Merci d'avance pour votre aide.

0 votes

Il semble que les couleurs de mon code ne soient pas correctes à 100 %...

0voto

CNC_Pete Points 1

Quelqu'un sur Stack Overflow a répondu à ma question - elle était trop compliquée, alors je l'ai simplifiée ici. Je n'avais pas besoin de script 1A. Et c'était la solution pour script 1B :

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

Il crée une liste pour les éléments de menu et fonctionne parfaitement.

Je vais utiliser le script 2 tel quel pour le moment.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X