Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

unregelmässige iCal Ereignisse in Rechnung umwandeln
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
kubus
•->
•->


Anmeldedatum: 12.03.2006
Beiträge: 14

BeitragVerfasst am: 12.03.2006 - 17:02    Titel: unregelmässige iCal Ereignisse in Rechnung umwandeln Antworten mit Zitat

Hallo Forumsmitglieder,
ganz zu Anfang meiner beteiligung in diesem Forum, muss ich sagen, dass ich von scripten keine Ahnung habe. Gesichtet habe ich einige, aber nichts so richtig verstanden. Das kann sich ja vielleicht mit Eurer Hilfe ändern.
Die Frage ist, ob es ein AS gibt, welches die in iCal penibel eingetragenen Arbeitstermine, mit entsprechenden Variabeln wie €/Std., in eine vorgefertigte Textdatei (mit Adresse, Datum,Kontonummer u.s.w.)übertragen lassen?
Zur Erläterung: Ich arbeite in einem Museum und mache Führungen, die unterschiedlich lange dauern und verschieden Entlohnt werden. Monatlich muss ich die unregelmässigen Termine, die ich ja schon in iCal eigegeben habe, mit copy&paste in eine Textdatei übertragen. Es ist eine ziemlich monotone Arbeit bei der mir die Frage kam, ob man diese Prozedur automatisiern kann? Auf der Suche nach der Antwort bin ich auf dieses Forum gestoßen.
Wer kann mir an dieser Stelle weiterhelfen?
kubus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 13.03.2006 - 13:07    Titel: Antworten mit Zitat

Falls du in iCal für diese Termine einen separaten Kalender verwendest, dürfte es keine große Probleme bereiten, die Termine monatsweise auszulesen und in eine Textdatei zu verfrachten.

Wie sollen denn die Daten (in der Textdatei) letztendlich aussehen?
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
kubus
•->
•->


Anmeldedatum: 12.03.2006
Beiträge: 14

BeitragVerfasst am: 13.03.2006 - 14:04    Titel: Antworten mit Zitat

Danke für die schnelle Rückmeldung Snow.
Ja, für die Einträge existiert ein separater Kalender.
Ich habe vorgefertigte Rechnungen in Word, da ich die Daten hin und wieder an PC-User schicke und sie AppleWorks bzw. cws-Dateien nicht lesen können. Enthalten sind: Meine Adresse, Ort, Datum, Anschrift Adresse, Rechnungsnummer und dann sollten die Kalendereinträge aus iCal aufgelistet werden. Sprich: Führungstitel, Datum, Uhrzeit und €.
Weiter unten steht die Summe €-Beträge und meine Bankverbindung.
Hier ein Bild:
[img]http://Users/jakobbartnik/Desktop/Beispiel-Rechnung.tiff[/img]
Kann es sein, dass in der Vorschau die Bilder nicht gezeigt werden? Oder mache ich was falsch?

Über ein Vorschlag-Skript, würde ich mich sehr freuen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kubus
•->
•->


Anmeldedatum: 12.03.2006
Beiträge: 14

BeitragVerfasst am: 13.03.2006 - 18:06    Titel: Antworten mit Zitat

Bezüglich des Bildes:FAQ nachgelesen und geändert:
oder http://www.objekttheater.de/index.php?id=35
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 13.03.2006 - 21:37    Titel: Antworten mit Zitat

Habe mir mal die Mühe gemacht, ein iCal-Script von der Apple-Seite ein wenig zu modifizieren, so dass Du es verwenden könntest (weil mich das Thema auch interessiert hat). Die Formatierung ist natürlich noch nicht so klasse. Das müsstest Du an deine Bedürfnisse anpassen. Ich weiß ja auch nicht, wie Du deine Termine eingetragen hast (welche Info in welchen Feldern). Viel Spass beim ausprobieren. Jetzt kommt das Script-Monster:

set start_day to date (text returned of (display dialog "Führung vom:" default answer ""))
set end_day to date (text returned of (display dialog "bis zum:" default answer ""))
try
   tell application "iCal"
      activate
      set the calendar_list to the title of every calendar
      set the beginning of the calendar_list to "*All Calendars*"
      set the source_calendar to (choose from list calendar_list with prompt "Bitte Kalender auswählen:")
      if the source_calendar is false then error number -128
      if the source_calendar is {"*All Calendars*"} then
         set the calendar_list to the title of every calendar
      else
         set the the calendar_list to the source_calendar
      end if
      -- set start_day to date (starttag)
      -- set end_day to date (endtag)
      set range_text to "(Führungen vom " & start_day & " bis zum " & end_day & ") "
      display dialog "Wohin soll die Liste kopiert werden?" buttons {"Zwischenablage", "TextEdit", "Mail"}
      set the summary_destination to the button returned of the result
   end tell
   
   set the master_data to ""
   repeat with i from 1 to the count of the calendar_list
      set the calendar_title to item i of the calendar_list
      if the master_data is "" then
         set the master_data to my calendar_events(calendar_title, start_day, end_day, range_text)
      else
         set the master_data to the master_data & return & return & my calendar_events(calendar_title, start_day, end_day, range_text)
      end if
   end repeat
   
   if the summary_destination is "Clipboard" then
      set the clipboard to the master_data
   else if the summary_destination is "TextEdit" then
      tell application "TextEdit"
         activate
         make new document at the beginning of documents
         set the text of document 1 to the master_data
      end tell
   else
      tell application "Mail"
         activate
         set this_message to make new outgoing message at the beginning of outgoing messages
         set the content of this_message to the master_data
         set visible of this_message to true
      end tell
   end if
   beep 2
on error error_message number error_number
   if the error_number is not -128 then
      display dialog error_message buttons {"OK"} default button 1
   end if
end try

on calendar_events(source_calendar, start_day, end_day, range_text)
   tell application "iCal"
      set this_calendar to the first calendar whose title is the source_calendar
      set the returned_events to every event of this_calendar whose start date is greater than or equal to start_day and start date is less than or equal to the end_day
      set these_events to {}
      repeat with i from 1 to the count of the returned_events
         set this_item to item i of the returned_events
         if the class of this_item is event then
            set the end of these_events to this_item
         else if the class of this_item is list then
            repeat with z from 1 to the count of this_item
               set this_event to item z of this_item
               if the class of this_event is event then
                  set the end of these_events to this_event
               end if
            end repeat
         end if
      end repeat
      set the event_count to the count of these_events
      set the event_summary to "KALENDER: " & source_calendar & return & range_text & return & "TERMINE TOTAL: " & (the event_count as string)
      if the event_count is 0 then
         return the event_summary
      else
         set the event_summary to the event_summary & return
      end if
      repeat with i from 1 to the event_count
         set this_event to item i of these_events
         set the event_properties to the properties of this_event
         --set this_description to description of the event_properties
         set this_summary to the summary of the event_properties
         set this_location to the location of the event_properties
         if this_location is missing value then set this_location to "N/A"
         set start_date to short date string of (get start date of the event_properties)
         set start_time to time string of (get start date of the event_properties)
         set end_date to short date string of (get end date of the event_properties)
         set end_time to time string of (get end date of the event_properties)
         set event_description to the description of the event_properties
         set event_URL to the url of the event_properties
         if event_URL is missing value then set event_URL to "N/A"
         set the event_status to the status of the event_properties
         if the event_status is none then
            set the event_status to "none"
         else if the event_status is confirmed then
            set the event_status to "confirmed"
         else if the event_status is tentative then
            set the event_status to "tentative"
         else
            set the event_status to "cancelled"
         end if
         set the event_recurrence to recurrence of the event_properties
         set the summary_text to "FÜHRUNG:" & tab & this_summary
         set the location_text to "ORT:" & tab & tab & this_location
         set the startdate_text to "Start Date:" & tab & start_date
         set the enddate_text to "End Date:" & tab & end_date
         set the starttime_text to "Start Time:" & tab & start_time
         set the endtime_text to "End Time:" & tab & end_time
         set the URL_text to "URL: " & event_URL
         set the status_text to "Status: " & event_status
         set the date_text to "TERMIN:" & tab & "Datum: " & start_date & " bis " & end_date
         set the time_text to " / Uhrzeit: " & start_time & " bis " & end_time
         set the description_text to "Bemerkung:" & tab & event_description
         set the event_text to the summary_text & tab & the status_text & return & the date_text & the time_text & return & the location_text & tab & return & the URL_text & tab & tab & the description_text
         set the event_summary to event_summary & return & "TERMIN " & (i as string) & " VON " & (event_count as string) & return & event_text & return
      end repeat
      return the event_summary
   end tell
end calendar_events

_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
till
•--->
•--->


Anmeldedatum: 21.04.2005
Beiträge: 187
Wohnort: q-town (R-P)

BeitragVerfasst am: 14.03.2006 - 01:09    Titel: Antworten mit Zitat

RESPEKT gude arbeit iscript ..wie immer!
ich hab die ganze zeit mit attendees versucht soen müll!

ich bin sogar so verzweifelt dass ich gestern entgültig zum beschluss gekommen bin mir das neue o'reilly : AppleScript The Definitive Guide zu bestellen - endgültig .. so punkt jetzt gehts los ab jetzt wird gerockt.. .hoff ich doch sofern mein eng ausreicht*g*
_________________
ein berühmter Philosoph (<-Ich) sagte einmal:
" es ist nicht das Problem was uns Kopfzerbrechen macht,
es ist der Kopf selbst, der sich erdrückt"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kubus
•->
•->


Anmeldedatum: 12.03.2006
Beiträge: 14

BeitragVerfasst am: 14.03.2006 - 19:45    Titel: Antworten mit Zitat

Danke für deinen Beitrag iScript.
Für einen absoluten Beginner in AS war das wirklich ein Monster-Script. Musste es heute erst verdauen. Aber so ganz ohne deine/eure hilfe schaffe ich es nicht.
1. Habe folgendes geringfügig umgeschrieben:
Code:
else if the summary_destination is "AppleWorks 6" then--war ursprünglich TextEdit
      tell application "AppleWorks 6"
         activate
         open file "users:meinname:Desktop:beispielrechnung.cwk"
         set the text of document 1 to the master_data --mit dieser Zeile komme ich nicht klar
      end tell

Habe die beispielrechnung.cwk, wie im vorherigen Beitrag eingerichtet. Wenn ich das gesamte script starte, werden die Adressen überschrieben. Was tun damit der Auszug aus iCal im mittleren Bereich des Blattes erscheint und alle anderen Einträge des AW-Dokuments erhalten bleiben???

2. Diese Zeile wollte ich deaktivieren:
Code:
set the event_summary to event_summary & return & "TERMIN " & (i as string) & " VON " & (event_count as string) & return & event_text & return
da ich diese Angaben in einer Rechnung nicht brauche.
Es genügt wahrscheinlich nicht nur die Zeile auszuschalten. Was tun?

3. Wie baue ich €/pro Führung ein? Kann ich dafür ein Feld in iCal nutzen um es mit AS auslesen zu lassen, oder kann ich
Code:
if standard then 26 €
--oder
if standard2 then 39 €
Bitte nicht lachen, wenns total daneben ist. Lassen sich die Beträge als Summe in einer Textzeile zusammenfassen?

Dieses Forum ist grandios!!!! Auch wenn ich bisher nur die hälfte von AS verstehe! Das soll sich nun ändern.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
till
•--->
•--->


Anmeldedatum: 21.04.2005
Beiträge: 187
Wohnort: q-town (R-P)

BeitragVerfasst am: 14.03.2006 - 20:39    Titel: Antworten mit Zitat

hi zu frage 1

Zitat:

else if the summary_destination is "AppleWorks 6" then --war ursprünglich TextEdit
      tell application "AppleWorks 6"
         activate
         open file "users:meinname:Desktop:beispielrechnung.cwk"
         set alt to text of document 1
         set the text of document 1 to the alt & "
" & master_data
      end tell


_________________
ein berühmter Philosoph (<-Ich) sagte einmal:
" es ist nicht das Problem was uns Kopfzerbrechen macht,
es ist der Kopf selbst, der sich erdrückt"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
till
•--->
•--->


Anmeldedatum: 21.04.2005
Beiträge: 187
Wohnort: q-town (R-P)

BeitragVerfasst am: 14.03.2006 - 20:52    Titel: Antworten mit Zitat

zu 2

frage:
- willst du das termin von usw weg haben ?
wenn ja dann kannst du diese zeile löschen!

einfach austesten!
_________________
ein berühmter Philosoph (<-Ich) sagte einmal:
" es ist nicht das Problem was uns Kopfzerbrechen macht,
es ist der Kopf selbst, der sich erdrückt"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
till
•--->
•--->


Anmeldedatum: 21.04.2005
Beiträge: 187
Wohnort: q-town (R-P)

BeitragVerfasst am: 14.03.2006 - 21:09    Titel: Antworten mit Zitat

zu 3

du könntest es in die beschreibung in ical reinschreiben
oder in eingabefelder die du nicht brauchst!

oder manuel eingeben oder so:




Zitat:

set preis to (text returned of (display dialog "Preis pro Stunde" default answer "")) & " €/std" -- <- in 3 zeile einsetzten



Zitat:

   -- stellvertreten für alle auswahl progs   
   else if the summary_destination is "AppleWorks 6" then --war ursprünglich TextEdit
      tell application "AppleWorks 6"
         activate
         open file "users:meinname:Desktop:beispielrechnung.cwk"
         set alt to text of document 1
         set the text of document 1 to the alt & return & master_data & return & preis -- hier wird aufgerufen
      end tell


_________________
ein berühmter Philosoph (<-Ich) sagte einmal:
" es ist nicht das Problem was uns Kopfzerbrechen macht,
es ist der Kopf selbst, der sich erdrückt"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 14.03.2006 - 21:48    Titel: Antworten mit Zitat

hi, kubus
wo hast du denn in iCal einen eintrag gemacht, an dem man unterscheiden könnte, ob's sich um eine 26- oder eine 39-eurinchen-tour handelte?
klar kann man dann aus dem zeitraum des termins gleich in applescript den betrag berechnen lassen. und natürlich auch die gesamtsumme.

ich persönlich würde komplett den mittleren teil deiner rechnung vom script erstellen lassen. in deinem rechnungsdokument kannst du ja ein paar spezielle zeichen eingeben, z.B. ########, und diese dann durch den script-output ersetzen lassen.

wenn du's gar nicht hinbekommst, müsstest du mir mal einen beispielkalender zukommen lassen, und evtl. deine rechnungsdatei, wobei ich kein works habe. vielleicht nimmst du der einfachheit halber dann doch lieber textedit (so besonders hochwertig sieht deine beispielrechnung ja eh noch nicht aus, wenn ich das mal so sagen darf, und da wär's ja nicht so viel arbeit, sie in textedit neu zu erstellen).

@till: vielen dank für die blumen, aber ich hab ja nur vom grossen nachbarn abgeschrieben, und damit's nicht so auffällt, ein bisschen modifiziert.
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 14.03.2006 - 22:08    Titel: Antworten mit Zitat

achja, und wenn du einfach mal ausprobieren willst, ob eine zeile gelöscht werden könnten, dann machst du sie mit -- am anfang der zeile zu einem kommentar (besser, als gleich zu löschen).
der code dieser zeile wird dann nicht ausgeführt (wird im scripteditor dann grau).
wenn du ganz blöcke eines sripts zum kommentar machen willst, dann so:(*der code der nicht ausgeführt werden soll*)
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
kubus
•->
•->


Anmeldedatum: 12.03.2006
Beiträge: 14

BeitragVerfasst am: 15.03.2006 - 01:16    Titel: Antworten mit Zitat

iScript hat Folgendes geschrieben:

ich persönlich würde komplett den mittleren teil deiner rechnung vom script erstellen lassen. in deinem rechnungsdokument kannst du ja ein paar spezielle zeichen eingeben, z.B. ########, und diese dann durch den script-output ersetzen lassen.


Diese Idee finde ich super.

iScript hat Folgendes geschrieben:
wenn du's gar nicht hinbekommst, müsstest du mir mal einen beispielkalender zukommen lassen, und evtl. deine rechnungsdatei, wobei ich kein works habe. vielleicht nimmst du der einfachheit halber dann doch lieber textedit (so besonders hochwertig sieht deine beispielrechnung ja eh noch nicht aus, wenn ich das mal so sagen darf, und da wär's ja nicht so viel arbeit, sie in textedit neu zu erstellen).

Mit der Rechnung muss ich dir Recht geben.
Beispieldateien werde ich dir zukommen lassen.

Man kann doch dem Eintrag in iCal z.B.: Standard, einen €-Betrag mit AS zuordnen. Wir werden nicht nach Stunden bezahlt. Jede Führung wird Pauschal abgerechnet. Wenn du mir in einer Beispieldatei zeigen könntest wie man das macht, könnte ich die übrigen Einträge selbst vervollständigen. Ziel:Lerneffekt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
till
•--->
•--->


Anmeldedatum: 21.04.2005
Beiträge: 187
Wohnort: q-town (R-P)

BeitragVerfasst am: 15.03.2006 - 01:31    Titel: Antworten mit Zitat

also bei mir in der schule nennt man sowas
wie ich da oben hingeschrieben hab:
thema verfehlt 2pkt/note 5 *nur in der schule passiert mir des nid* *g*
_________________
ein berühmter Philosoph (<-Ich) sagte einmal:
" es ist nicht das Problem was uns Kopfzerbrechen macht,
es ist der Kopf selbst, der sich erdrückt"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kubus
•->
•->


Anmeldedatum: 12.03.2006
Beiträge: 14

BeitragVerfasst am: 15.03.2006 - 10:09    Titel: Antworten mit Zitat

@till
sorry till das thema hast du nicht verfehlt. deine zeilen:

tell application "AppleWorks 6"
activate
open file "users:meinname:Desktop:beispielrechnung.cwk"
set alt to text of document 1
set the text of document 1 to the alt & return & master_data & return & preis -- hier wird aufgerufen
end tell

funktionieren wunderbar. damit war ich einen schritt näher an dem was ich haben wollte. mit dem preis hat es leider nicht funktioniert. trotzdem, besten dank
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter