Sondertext einfügen; wie ohne Formatierung

In meinem Fall füge ich mit einem Kürzel den kurzen Datumsstempel in Rechenblattzellen ein. Wenn der Rechenblattspalte ein Format mit Datum und Uhrzeit zugeordnet ist, bekomme ich sogar die Uhrzeit angezeigt. Eine klasse Sache!
Aber: Der Datumstempel (kurz) im Bearbeiten-Menü Sondertext füllt sein eigenes Format ein (Textdatum kurz). Und das Textdatum zeigt keine Uhrzeit. Ich muß also zum Sehen der Uhrzeit jedesmal das Werteformat ändern.

Nun dazu 2 Fragen:
Wie kann ich dem Sondertext Textdatum kurz mein eigenes oder kein Format mitgeben?
Oder
Kann ich Ragtime einen eigenen Sondertextbefehl beibringen (dem ich dann mein eigenes Format zuordne, oder keins)?

Re: Sondertext einfügen; wie ohne Formatierung

#10286 On 1 September, 2011 00:19 Thomas Kaegi said,

Hallo Norbert

Mit GUI-Scripting lässt sich das im Prinzip lösen. Das folgende Script (im Skript-Editor ausführen, nicht im RagTime-Script-Fenster) löst bei mir die Aufgabe:

activate application "RagTime 6.5"
tell application "System Events"
tell process "RagTime"
click menu item "Datumstempel (kurz)" of menu 1 of menu item "Sondertext einfügen" of menu 1 of menu bar item "Bearbeiten" of menu bar 1
click menu item "3.4.1995 9:30:04" of menu 1 of menu item "Werteformat" of menu 1 of menu bar item "Format" of menu bar 1
end tell
end tell

Aber dann bleibe ich leider stecken. Im Beitrag

http://experts.ragtime.de/experts/node/2738

schrieb Detlef Schulz:
--
GUI-Scripting funktioniert tatsächlich nicht direkt aus RagTime. Die Welt von RagTime sieht wohl von innerhalb anders aus als von außerhalb.

Aber mit einem kleinen Trick geht es doch:
Das Skript außerhalb RagTimes mit dem Skripteditor als Programm absichern (ohne Startbildschim oder andere Optionen), zum Beispiel als "Hyper.app" auf dem Schreibtisch.
In RagTime dann ein Skript anlegen und dieses Programm auf eine der folgenden Arten aufrufen:

tell application "System Events" to open "/Users/Detlef/Desktop/Hyper.app"

Damit wird das Skript von innerhalb RagTimes gestartet aber von außerhalb ausgeführt.
--
Ich habe das versucht (nur erste Variante), aber leider ohne Erfolg. Der Skriptbefehl wurde so nicht akzeptiert ("es wurde ein Zeilenende erwartet, aber ein 'end tell' wurde gefunden"). Ich habe dann das "to" durch ein Zeilenende ersetzt, so dass der open-Befehl als eigenständiger Befehl interpretiert wird. Das wurde akzeptiert. Aber bei der Ausührung heisst es, dass das Dokument "Hyper.app" nicht geöffnet werden konnte, weil System-Events Dateien im Format "Programm" nicht öffnen könne. Auch mit der Endung "scpt" erhielt ich die analoge Meldung.

Lutz Bornemann scheint es damals mit Detlefs Hilfe geschafft zu haben.

Gruss, Thomas

Re: Sondertext einfügen; wie ohne Formatierung

#10300 On 3 September, 2011 09:25 djschulz said,

Hallo,

um ein externes Skript innerhalb RagTimes aufzurufen verwende ich folgendes Skript. Das hat bei einer Lösung letztens problemlos funktioniert. Das Skript muss in RagTime liegen und macht nichts anderes als ein externes Script (als app gespeichert) über das Terminal aufzurufen.

Gruß,
Detlef

-- Script "scriptName" muss in folgendem Ordner liegen:
-- /Library/Scripts/

-- Script muss als Programm mit der Endung ".app" dort abgespeichert sein:
set scriptName to "Drucken1.app"

--Pfad zum Skript "scriptName" zusammenbauen: (/Library/Scripts/SCRIPTNAME/Contents/MacOS/applet)
set thePath to (POSIX path of (path to library folder from local domain as text)) & "Scripts/" & scriptName & "/Contents/MacOS/applet"

-- scriptName über die Shell aufrufen und stdout und stderr in dev/null umleiten damit das Terminal nicht aufgeht:
set x to do shell script (quoted form of thePath) & "> /dev/null 2> /dev/null &"

Re: Sondertext einfügen; wie ohne Formatierung

#10287 On 1 September, 2011 07:44 Jürgen Schell said,

Wenn ich noch einen ganz dummen Trick beitragen darf:

Ändere in Dokument die Definition von dem Werteformat »Textdatum (kurz)«, zum Beispiel in etwas wie »TT'.'MM'.'JJJJ' 'hh':'mm':'ss«

Ist ein entsprechend benanntes Format im Dokument vorhanden, wird es von den Sondertext-Anweisungen benutzt.

Gruß

Jürgen

www.j-schell.de

Re: Sondertext einfügen; wie ohne Formatierung

#10288 On 1 September, 2011 08:24 Thomas Kaegi said,

Hallo Jürgen

OK! Klar! Da hätte ich auch drauf kommen müssen.

Irgendwie hatte ich mich einfach darauf versteift, es zum ersten Mal mit einem GUI-Script zu versuchen. Vielleicht schaut Detelf ja doch mal rein und hilft mir auf die Sprünge, wie so ein externes Script von RagTime aus aufgerufen werden kann (ich arbeite mit OS X 10.6.8 und RT 6.5.2).

Gruss, Thomas

Re: Sondertext einfügen; wie ohne Formatierung

#10289 On 1 September, 2011 08:03 Listenteilnehmer said,

Die Lösungsansätze von Jürgen und Thomas sind brauchbar.

Wenn ich in RagTime entwickele, dann kommen öfters Ideen auf, die in
FileMaker entwickelt werden könnten. In diesem Fall ist RagTimes
Stärke das Rechenblatt. Thomas' Hinweise auf und Vorführungen von
Suchläufen zeigen enormes Potential. Nun kommt von RagTime die Dateien-
Hochladerei und die gemeinsame Datei-Nutzung hinzu (RagTime Team-
Worker). Und »meine« Zeichenmaschine kann mittels AppleScript aus
Bezierkurven (alle Objektkonturen sind möglich) SVG-Konturen im
browser (Opera, Safari) darstellen.

Ach, man müßte einfach mehr Zeit haben!

Norbert Lindenthal

Re: Sondertext einfügen; wie ohne Formatierung

#10290 On 1 September, 2011 10:29 Thomas Kaegi said,

Da habe ich noch eine weitere Lösung - aber sie setzt QuicKeys voraus. QuicKeys ist eine Software, die eine Art GUI-Scripting ermöglicht, aber viel einfacher zu programmieren ist. Ich benutze QuicKeys praktisch seit ich mit Macs arbeite (angefangen somit bei Mac Plus mit System 4). Detelf Schulz sagt in seinem AppleScript-Buch eingangs des Kapitels über GUI-Scripting, der "Dinosaurier" QuicKeys sei mit OS X obsolet geworden. Ich finde das gar nicht. Ich präsentiere die Lösung hier, um vielleicht andere zu animieren, "GUI-Scripting" ebenfalls mit dieser komfortablen Methode zu versuchen.

Im QK-Editor wird ein neuer "Shortcut" für RagTime angelegt.
Danach sind im Shortcut-Fenster mit "Add Step" zwei "Steps" vom Typ "Menu Selection" zu definieren:

Step 1:
Menu: Bearbeiten
Submenu: Sondertext einfügen
Menu Item: Datumstempel (kurz)
In Application: RagTime 6.5

Step 2:
Menu: Format
Submenu: Werteformat
Menu Item: 3.4.1995 9:30:04
In Application: RagTime 6.5

Die Definition dieser "Steps" muss nicht etwa eingetippt werden. Nachdem die Art des einzufügenden "Steps" angegeben wurde, kann auf den Button "Set Menu for Action..." geklickt werden. Der gewünschte Menübefehl wird danach einfach in RagTime angeklickt, womit die vollständige Definition in den "Step" eingefügt wird.

Am Schluss muss nur noch angegeben werden, wie der "QK-Shortcut" aufgerufen werden soll. Normalerweise ist das mit einer Tastenkombination, dem "hot key". Andere Aufrufmöglichkeiten habe ich noch nie ausprobiert - "app event", "day & time" und diverse andere würden auch noch zur Verfügung stehen.

Sicher laufen QK-Shortcuts nicht gleich rasch ab wie AppleScripts, wahrscheinlich auch als GUI-AppleScripts. Aber die Art ein Skript zu programmieren ist viel eleganter. Die Geschwindigkeit war bisher für mich noch nie ein Problem.

Natürlich ist die Lösung von Jürgen für dieses Probem viel eleganter und einfacher. Aber darum ging es mir hier nicht. Ich wollte nur anhand dieses einfachen Beispiels zeigen, wie elegant GUI-Scripting mit QuicKeys funktioniert.

Gruss, Thomas

Re: Sondertext einfügen; wie ohne Formatierung

#10291 On 1 September, 2011 10:10 Lutz-Dieter Bornemann said,

Hallo Thomas,

hat er leider nicht wirklich.

Ich rufe meine Skripts mit QuicKeys auf.

Ich glaube, mit dem Wechsel OS von 10.5 auf 10.6
hörten diese Mittel auf zu funktionieren.

Gruß
Lutz

Am 01.09.2011 um 01:21 schrieb Thomas Kaegi:

> Hallo Norbert
>
> Mit GUI-Scripting lässt sich das im Prinzip lösen. Das folgende Script (im Skript-Editor ausführen, nicht im RagTime-Script-Fenster) löst bei mir die Aufgabe:
> (...)
> Aber dann bleibe ich leider stecken. Im Beitrag
>
> http://experts.ragtime.de/experts/node/2738
>
> schrieb Detlef Schulz:
> (...)
> Lutz Bornemann scheint es damals mit Detlefs Hilfe geschafft zu haben.
>
> Gruss, Thomas
>
>
>

Re: Sondertext einfügen; wie ohne Formatierung

#10292 On 1 September, 2011 12:06 Jürgen Schell said,

Wenn Ihr AppleScripts an der Stelle liebt, schlage ich folgendes vor:

set n to current date
tell application "RagTime 6.5"
	tell window 1
		set s to selection as reference
		tell s
			set sylk formula to my sylk_string(n)
		end tell
	end tell
end tell

on sylk_string(d)
	set sd to (day of d) as text
	set sm to ((month of d) as integer) as text
	set sy to (year of d) as text
	set t to time of d
	set sHour to (t div 3600) as text
	set t to t mod 3600
	set sMin to (t div 60) as text
	set t to t mod 60
	set sSec to t as text
	return "DATE(" & sy & "," & sm & "," & sd & "," & sHour & "," & sMin & "," & sSec & ")"
end sylk_string

Das Script macht schon ziemlich dasselbe wie der Datums- und Zeitstempel, setzt aber eben keine Formate. (Ausprobiert unter Lion für Einfügemarke im Text und Rechenblattzelle, es sollte aber auch mit älteren Systemen arbeiten.)

Der Trick mit der SYLK formula statt formula bewirkt, dass das Script nicht von Landesformateinstellungen abhängt.

Gruß,

Jürgen

www.j-schell.de

Re: Sondertext einfügen; wie ohne Formatierung

#10293 On 1 September, 2011 12:42 Thomas Kaegi said,

Hallo Jürgen

Wow! Sieht super aus! Und aus dem Skript-Editor (also von ausserhalb RagTime ausgeführt), funktioniert das auch bei mir unter OS X 10.6.8 bestens.

Aber leider funktioniert das nicht, wenn das Skript dann in RagTime übernommen wird.

Bei der Übertragung des Skripts in RagTime gibt es folgende Probleme:
"hours of d", "minutes of d", "seconds of d" werden bei der Script-Prüfung nicht akzeptiert. Fehlermeldung: "'hours of d' kann nicht gelesen werden. Zugriff nicht erlaubt."

Ich habe dann geändert in "hour" und "minute", was akzeptiert wurde. Aber nicht bei "second". Fehlermeldung "Es wurde ein 'Klassenname' erwartet, aber ein 'of' wurde gefunden." So habe ich es mit "sec" versucht, was auch akzeptiert wurde. Das so abgeänderte Script produziert dann aber bei der Ausführung einen Fehler: "Hour of date 'Donnerstag, 1. September 2011 12:35:05' kann nicht in Typ text umgewandelt werden."

Somit wären wieder gleich weit wie beim GUI-Script: Wie lässt sich ein externes Skript aus RagTime auslösen?

Gruss
Thomas

Re: Sondertext einfügen; wie ohne Formatierung

#10294 On 1 September, 2011 17:39 Jürgen Schell said,

OK, hatte mal wieder vergessen, dass es da Überschneidungen in der Terminologie gibt.

Rechnen wir also Stunden, Minuten und Sekunden zu Fuß aus, wie früher in AppleScript.

Hab den Code geändert.

Gruß,

Jürgen

www.j-schell.de

Re: Sondertext einfügen; wie ohne Formatierung

#10295 On 1 September, 2011 20:03 werkwelt said,

Danke, Jürgen. Das Skript klappt in meinem Fall auf Anhieb. Und gut ist in RagTime, daß das integrierte Skript sofort in jeder RagTime-Datei zur Verfügung steht, wenn nur das Skript/der Befehl in der Spalte nach oben in die RagTime-6-Hilfsmittel geschoben wird. Sehr nützlich, und mit demselben Kürzel wie in FileMaker belegt: Befehl + Trennstrich.

RagTime, FileTime, FileMaker, AppleScript, Spell Catcher X, Zeichenmaschine, SVG und der Arc FritzSchreiber geben Flügel.

Mit freundlichen Grüßen,
Norbert Lindenthal

Re: Sondertext einfügen; wie ohne Formatierung

#10296 On 2 September, 2011 09:59 Jürgen Schell said,

Weshalb meine ursprünglichen Script-Variante mit hours, minutes und seconds im Script-Editor, aber nicht in RagTime funktioniert, ist übrigens ein spannendes Detail für RagTime-Scripter.

Weil es mit der Frage hier nicht direkt zu tun hat und auch ziemlich abstrakt ist, hab ich auf

http://www.j-schell.de/node/394

versucht, ausführlicher zu klären, weshalb das daneben geht (und wie man das allgemein lösen kann).

Gruß

Jürgen

www.j-schell.de