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 Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
till
•--->
•--->


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

BeitragVerfasst am: 15.03.2006 - 18:59    Titel: Antworten mit Zitat

ah k ! danke Wink

der iscript hilft dir da bestimtm weiter
_________________
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: 15.03.2006 - 23:49    Titel: Antworten mit Zitat

hi, kubus

hab mir mal deinen iCal kalender angeschaut und etwas gebastelt.
ich glaube, es ist der einfachste weg, wenn man über's clipboard geht, also nicht direkt die textdatei bearbeitet.
du must einfach nur einen formatierten beispieltext in der mitte haben, bei dem du die tabulatoren vernünftig positionierst.
dann kannst du das folgende script laufen lassen, den beispieltext in deinem rechnungs-dokument markieren und mit apfel-c den inhalt der zwischenablage einfügen. dann bleiben die formatierung erhalten (tabs, schrift, etc.) und es ist egal, welches programm du benutzt.
also hier das modifizierte "monster":

on run
   set start_day to date (text returned of (display dialog "Abrechnung erstellen ab dem (Datum):" default answer ""))
   set end_day to date (text returned of (display dialog "bis zum (Datum):" 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 range_text to my sd(start_day) & " BIS " & my sd(end_day)
      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
      
      
      set the clipboard to the master_data
   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
   tell application "Finder"
      activate
      display dialog "Die Daten für die Rechnung sind in der Zwischenablage"
   end tell
end run

on sd(datum)
   return short date string of datum
end sd

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 "RECHNUNG FÜR FÜHRUNGEN VOM " & range_text & return & "Anzahl im Abrechnungszeitraum: " & (the event_count as string) & " Stk." & return
      if the event_count is 0 then
         return the event_summary
      else
         set the event_summary to the event_summary & return
      end if
      set summe to 0 as integer
      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_summary to the summary of the event_properties
         
         -- HIER PREISE HINTERLEGEN _________________________________
         if this_summary contains "standard" then
            set preis to 26 -- standardpreis
         else if this_summary contains "dampf" then
            set preis to 39
         else if this_summary contains "lampe" then
            set preis to 39
         else if this_summary contains "salzteig" then
            set preis to 30
         else if this_summary contains "vorbereitung" then
            set preis to 10
         else if this_summary contains "fahrt" then
            set preis to 39
         else if this_summary contains "herfort" then
            set preis to 39
         else
            set preis to 0 -- wenn kein preis ermittelbar ist
         end if
         set summe to summe + preis
         -- ______________________________________________________         
         set start_date to start date of the event_properties
         set start_time to start date of the event_properties
         set event_description to the description of the event_properties
         -- display dialog "(" & the description of the event_properties & ")"
         set the event_recurrence to recurrence of the event_properties
         set the summary_text to "• FÜHRUNG: " & this_summary
         set the date_text to "DATUM: " & short date string of start_date
         set the time_text to " / " & time string of start_time
         if event_description is not missing value then
            set event_description to return & "(Bemerkung: " & event_description & ")"
         else
            set event_description to ""
         end if
         set the event_text to the summary_text & return & the date_text & the time_text & tab & tab & preis & ",00 €" & event_description
         set the event_summary to event_summary & return & (i as string) & "/" & (event_count as string) & tab & event_text & return
      end repeat
      set the event_summary to event_summary & return & return & "GESAMTSUMME" & tab & tab & summe & ",00 €"
      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
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 15.03.2006 - 23:51    Titel: Antworten mit Zitat

du solltest aber beachten, das in deiner textdatei natürlich nicht mehr gerechnet wird! sprich wenn du einen preis änderst, ändert sich nicht die summe. du solltest die preise also vorher alle im script hinterlegt haben.
viel erfolg
_________________
- 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: 17.03.2006 - 13:25    Titel: Antworten mit Zitat

besten Dank iScript, respekt

Habe mir das script länger angeschaut und ausprobiert.
Eine Sache verstehe ich nicht: Wenn die Daten, nach dem Ausführen des scripts, in der Zwischenablage sind, warum kann ich sie nicht mit apfel-v in ein Works-Dokument einfügen? Mit Textedit geht das.
Und : ist es irgendwie möglich die Termine chronologisch in der Textdatei zu ordnen. Im Moment kann ich kein Ordnungssystem finden, seltsam.
Und noch wo muss ich eine Änderung vornehmen um Kalendareinträge die wöchentlich wiederkehren von diesem script auslesen zu lassen?
--AS ist genial


kubus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 17.03.2006 - 16:10    Titel: Antworten mit Zitat

hallo kubus. das mit der sortierung ist mir auch schon aufgefallen. hatte gehofft, du störst dich nicht dran oder merkst es nicht Surprised)
das liegt wahrscheinlich an der repeat-schleife, die alle termine des gewählten kalenders durchläuft, die ihren starttermin in dem angegebenen zeitraum haben, (deshalb kommen wahrscheinlich auch nicht die wiederholungstermine mit). die kommen dann sicher in der reihenfolge rein, wie sie angelegt wurden. um das in reihenfolge zu bekommen, müsste man die repeat-schleife anders aufbauen.
habe jetzt aber nicht die muse, dass durchzuprobieren. vielleicht fummelst du ja mal selbst ein bisschen, und versuchst die repeatschleife tageweise durchlaufen zu lassen.
und was das es mit works nicht klappt ist komisch. kann ich leider nicht testen, da kein works vorhanden.
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Stephan786
Gast





BeitragVerfasst am: 31.08.2007 - 10:44    Titel: Antworten mit Zitat

Hey!

ich habe ein ähnliches Problem! Im iCal trage ich meine Arbeitszeiten an und würde gerne eine Monatssumme sehen, wie kann ich das machen?
Entweder direkt irgendwo in iCal oder in einer Exel Datei um es mit meinen "Finanzen" zu verknüpfen. (als Student muss man da ja was drauf achten...)
Danke!
Nach oben
Yian
•->
•->


Anmeldedatum: 17.09.2007
Beiträge: 15

BeitragVerfasst am: 29.10.2007 - 12:00    Titel: Lösung für gesamten Kalender (nicht Monat) Antworten mit Zitat

Zitat:
Im iCal trage ich meine Arbeitszeiten an und würde gerne eine Monatssumme sehen, wie kann ich das machen?


Ich erfasse auch meine Zeiten mit iCal!

Ich hatte daher mal zwei Scripte gebastelt: eines schreibt die Gesamtzeit direkt in iCAls Beschreibung des Kalenders, das andere kopiert die ganzen relevanten Daten tabellenfreundlich in die Zwischenablage. Habe ich hier abgelegt:

http://yian.de/utilities/tracktimewithicalandapplescript.shtml

Es müsste (für Könner, also nicht mich) recht einfach sein, daraus eine monatliche Auswertung abzuleiten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
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 Zurück  1, 2
Seite 2 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