Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
kubus •->

Anmeldedatum: 12.03.2006 Beiträge: 14
|
Verfasst am: 12.03.2006 - 17:02 Titel: unregelmässige iCal Ereignisse in Rechnung umwandeln |
|
|
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 |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1955 Wohnort: Deiningen
|
Verfasst am: 13.03.2006 - 13:07 Titel: |
|
|
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 |
|
 |
kubus •->

Anmeldedatum: 12.03.2006 Beiträge: 14
|
Verfasst am: 13.03.2006 - 14:04 Titel: |
|
|
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 |
|
 |
kubus •->

Anmeldedatum: 12.03.2006 Beiträge: 14
|
|
Nach oben |
|
 |
iScript •---->


Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 13.03.2006 - 21:37 Titel: |
|
|
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 |
|
 |
till •--->


Anmeldedatum: 21.04.2005 Beiträge: 187 Wohnort: q-town (R-P)
|
Verfasst am: 14.03.2006 - 01:09 Titel: |
|
|
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 |
|
 |
kubus •->

Anmeldedatum: 12.03.2006 Beiträge: 14
|
Verfasst am: 14.03.2006 - 19:45 Titel: |
|
|
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 |
|
 |
till •--->


Anmeldedatum: 21.04.2005 Beiträge: 187 Wohnort: q-town (R-P)
|
Verfasst am: 14.03.2006 - 20:39 Titel: |
|
|
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 |
|
 |
till •--->


Anmeldedatum: 21.04.2005 Beiträge: 187 Wohnort: q-town (R-P)
|
Verfasst am: 14.03.2006 - 20:52 Titel: |
|
|
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 |
|
 |
till •--->


Anmeldedatum: 21.04.2005 Beiträge: 187 Wohnort: q-town (R-P)
|
Verfasst am: 14.03.2006 - 21:09 Titel: |
|
|
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 |
|
 |
iScript •---->


Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 14.03.2006 - 21:48 Titel: |
|
|
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 |
|
 |
iScript •---->


Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 14.03.2006 - 22:08 Titel: |
|
|
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 |
|
 |
kubus •->

Anmeldedatum: 12.03.2006 Beiträge: 14
|
Verfasst am: 15.03.2006 - 01:16 Titel: |
|
|
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 |
|
 |
till •--->


Anmeldedatum: 21.04.2005 Beiträge: 187 Wohnort: q-town (R-P)
|
Verfasst am: 15.03.2006 - 01:31 Titel: |
|
|
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 |
|
 |
kubus •->

Anmeldedatum: 12.03.2006 Beiträge: 14
|
Verfasst am: 15.03.2006 - 10:09 Titel: |
|
|
@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 |
|
 |
|