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

Programme koordinieren FileMaker, Word

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
skl
•->
•->


Anmeldedatum: 17.05.2006
Beiträge: 4

BeitragVerfasst am: 17.05.2006 - 14:26    Titel: Programme koordinieren FileMaker, Word Antworten mit Zitat

Guten Tag,

ich habe versucht ein AppleScript zu schreiben, welches den Inhalt eines Feldes in FileMaker kopiert (die Aktionen in FileMaker sind FileMaker Scripts, die via Tastenkürzel gestartet werden), in Word einfügt, in Word eine "Konversion" via VBA ausführt, das Ergebnis wieder in FileMaker ins entsprechende Feld kopiert.

Die einzelnen Schritte des Skriptes funktionieren, leider kommt es in manchen Fällen zu Problemen bei der Koordination, d.h. bestimmte Schritte werden manchmal zur falschen Zeit ausgeführt, wodurch der Mechanismus durcheinander kommt.

Hier das Skript:

Code:

repeat 30 times
   
   tell application "FileMaker Pro Advanced"
      activate
   end tell
   
   tell application "System Events"
      keystroke "9" using command down
      delay 1
   end tell
   
   delay 1
   
   tell application "Microsoft Word"
      activate
   end tell
   
   tell application "System Events"
      keystroke "v" using command down -- Einfügen
   end tell
   
   tell application "Microsoft Word"
      activate
      do Visual Basic "Application.Run \"MakeMarkup\""
      do Visual Basic "Application.Run \"graeca\""
   end tell
   
   tell application "System Events"
      keystroke "a" using command down -- select all
      keystroke "x" using command down -- kopieren
   end tell
   
   tell application "FileMaker Pro Advanced"
      activate
   end tell
   
   tell application "System Events"
      -- Einfügen des konvertierten Inhalts + gehe zum nächsten Datensatz (FileMakerScript "SelectVitaToPaste")
      keystroke "0" using command down
   end tell
   
   delay 1
   
   tell application "FileMaker Pro Advanced"
      activate
   end tell
   
   tell application "System Events"
      -- Einfügen des konvertierten Inhalts + gehe zum nächsten Datensatz (FileMakerScript "SelectVitaToPaste")
      keystroke "3" using command down
      delay 1
   end tell
   
   delay 1
end repeat


Mit dem Einfügen der delays konnte ich die Funktionsweise des Skripts verbessern, allerdings wusste ich nicht wirklich, was ich damit gemacht habe. Das grundsätzlich Problem ist glaube ich, dass die Anwendungen manchmal nicht warten bis die andere Anwendung "fertig" ist. Lässt sich das irgendwie bewerkstelligen.
(Ansonsten bin ich ziemlich neu in AppleScript und daher auch für grundsätzliche Anmerkungen, zu dem was ich da geschrieben habe, dankbar).

viele Grüße, Stephan
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 17.05.2006 - 16:55    Titel: Antworten mit Zitat

wie du schon richtig erkannt hast, ist das grösste problem beim ui-scripting das timing. es schein so simple, ein script zu schreiben, das einfach exakt das macht, was du selber auch machen würdest, wenn du die prozesse selbst "zu fuss" anstossen solltest.
die frage bei deinem projekt ist allerdings, ob du das, was du über VBA im zusammenspiel mit word erledigen willst, nicht auch über applescript machen könntest!? (hört sich an, als hättest du grad auf den mac geswitched?)
sicher könnte man versuchen, den einen oder anderen mechanis einzubauen, um abzuklopfen, ob dieser oder jener prozess bereits abgelaufen ist, um so die kontrolle über den ablauf zu erhalten, aber murks bleibt's allemal.
du solltest mal schauen, ob die VBA-geschichte nicht anders zu lösen ist.
du kannst natürlich auf unsere hilfe setzen. irgendjemand findet hier sicher einen weg.
also: erzähl doch mal, was abgehen soll.
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 17.05.2006 - 21:57    Titel: Antworten mit Zitat

Nicht ganz vergessen: hier ist Classic oder OS9, die GUI-Scriptings laufen nur über Sändis Additions.
Da ich sehr viel zwischen FileMaker und Word jonglieren muss, meide ich wo ich kann die GUI-ähnlichen. Im Snow-Forum haben sich bisher noch nicht gar viele für FileMaker<-->Word gemeldet, andere Foren kenn ich schlicht nicht.

VisualBasic ist ja sehr einfach unter Vermittlung von AppleSkript vom FileMaker aus steuerbar und alles komplexe in Word überlässt man wohl besser dem VisualBasic, so verschissen diese Sprache auch erscheinen mag gegenüber AppleSkript der Königen der "Sprachen"!
Das Beispiel, welches mir Snow gelöst hat, sollte vor allem das wichtigste dabei aufzeigen, wie man Variablen von FileMaker ins Word befördert mittels AppleSkript und sie auch wieder herausholt.
Damit hättest du die wichtigsten Werkzeuge um dein obiges Skript umzuschreiben:

Ein Beispiel:


property PfFilMUSTER : " Ungemeinsam:BRIEFE-VOR DRUCK:Adressen Tools:BRIEFKOPF PERSÖNLICH"
--
==================================================
set STARTNAME to (first item of (list disks)) as string
set STARTnPfFilMUSTER to STARTNAME & ":" & PfFilMUSTER
set NameMUSTER to "BRIEFKOPF PERSÖNLICH"
--
==================================================
tell application "Finder"
   
open file STARTnPfFilMUSTER
end tell

tell application "Microsoft Word"
   
do Visual Basic " Windows(\"" & NameMUSTER & "\").Activate
ActiveWindow.Close
"
   
activate
   
STARTnPfFilMUSTER --geht auch!!
   
PfFilMUSTER --geht auch!!
   
NameMUSTER --geht auch!!
end tell

Kannst du damit was anfangen?

PS: FileMaker selbst hat hervorragende Copy-Past-Funktion, wenn man sie durch Finder-Funktionen mit AS durch "copy" des "clipboard" ersetzen will, kommt man auf OS9 UND CLASSIC schnell ins Schwimmen weil dabei der Finder ins schwimmen kommt.
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 17.05.2006 - 22:24    Titel: Antworten mit Zitat

sonst versuch doch mal mit diesem tipp (dank an ShooTerKoo!!)
http://www.fischer-bayern.de/phpBB2/viewtopic.php?p=9177#9177
den busy-status deiner VBL-scripte abzufragen.
ich denkma, da hakt's doch am ehesten, weil keine rückmeldung kommt, wann die skripte durchgelaufen sind und das applescript stattdessen einfach weiterläuft, oder?
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
skl
•->
•->


Anmeldedatum: 17.05.2006
Beiträge: 4

BeitragVerfasst am: 20.05.2006 - 15:13    Titel: Antworten mit Zitat

Hallo,

vielen Dank für die Anworten von euch. Als ich den Eintrag geschrieben habe habe ich irgendwie nicht realisiert, dass ich garnicht im richtigen Forum bin Smile (Es handelt sich schon im OS X).
Ich muss die Sachen gerade nochmal ausprobieren, leider bin ich mit dem Vorschlag von spirigwi nicht so richtig weitergekommen. Vielleicht gibt es ja noch neue Idee, wenn ich genauer beschreibe, wozu das ganze dient und was die VBA-Skripte machen. Der Text in der FileMaker Datenbank ist in gewisser Weise formatiert und das eigentliche Ziel ist es die Daten als XML aus der Datenbank zu exportieren. Dabei gehen die Formatierungen verloren.
Einerseits gibt es Text der besondere Zeichen enthält (zB. griechisch) und andererseits sind gewisse Sachen fett oder kursiv gesetzt bzw. unterstrichen. Im FileMaker selbst habe ich keine Möglichkeiten irgendwas mit Skripten systematisch zu suchen und zu ersetzen. Wenn man via Zwischenablage nach Word kopiert, bleiben Formatierungen erhalten und dort ist es dann zB. möglich fetten Text in <b>-Tags zu setzen. Das macht VBA-Skript "MarkUp".
Der griechische Text in der FileMaker-Datenbank ist in einem ASCII-basierten Zeichensatz, d.h. es wird zwar das entsprechende griechische Zeichen dargestellt, aber wenn man die Daten exportiert, kommen nur die entsprechenden lateinischen Buchstaben im ASCII-Zeichensatz raus. Dieses graeca-VBA-Skript wandelt ASCII-Zeichen für den griechischen Text in Unicode. Es ist also eine zeichenweise Ersetzungsroutine und da der Inhalt des jeweiligen Feldes in FileMaker immer verschieden umfangreich ist, ist nicht vorherzusehen, wie lange das Skript brauchen wird.

Insofern hört sich der Tipp von ShooTerKoo auf den iScript verweist sehr vielversprechend an, ich habe es aber noch nicht umsetzen können.

@spirigwi
Zitat:
PS: FileMaker selbst hat hervorragende Copy-Past-Funktion, wenn man sie durch Finder-Funktionen mit AS durch "copy" des "clipboard" ersetzen will, kommt man auf OS9 UND CLASSIC schnell ins Schwimmen weil dabei der Finder ins schwimmen kommt.


Unter OS X gibt es damit aber nicht solche Probleme, oder? Kann denn die Copy-Paste-Funktion von FileMaker per Skript angesprochen werden?

ok, auf jeden Fall nochmal vielen Dank für eure Hilfe.

viele Grüße, Stephan
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 21.05.2006 - 00:21    Titel: Antworten mit Zitat

skl hat Folgendes geschrieben:
Kann denn die Copy-Paste-Funktion von FileMaker per Skript angesprochen werden?

http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=2002
dort hätte ich eine der Möglichkeiten dazu aufgezeigt.
Die Kopieraktion würde also FM übernehmen mit FmScript und den clipboard -Inhalt kannst du einer Variablen übergeben, welche das AS dann dem Word ins VisualBasic direkt ohne past übertragen kann.
u.s.w
Somit könntest du eine Variable mit dem Clipboard-Inhalt füllen und sie direkt dem VisualBasic übergeben, der es dann wieder in Word verarbeitet u.s.w und somit wärst du die leidigen keystrokes wieder los

Du kannst aber auch eine cell des FM mit
set contCellSowieso to cell "Sowieso"
aktivate(das FileMaker!)
set the clipboard to contCellSowieso
...letzteres ist heikel auf OS9
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 28.05.2006 - 11:38    Titel: Antworten mit Zitat

Hallo skl,

vielleicht kann ich auch mal eine Anregung geben, zumeist Frage ich ja nur Very Happy

Ich hätte beinahe geglaubt, FileMaker 8 Advanced würde unter Classic laufen. Aber mein allererster Beitrag ist seinerzeit auch im falschen Forum gelandet, aber trotzdem auch im richtigen. Rolling Eyes

Zitat:
Ich lese stets irgendwas von Copy & Paste aus FM heraus. Ich persönliche meide jeglichen Datenaustausch via Zwischenablage wo es nur geht, sowohl auf dem Mac als auch auf dem PC. Gerade bei Datenbanken im Multiuser-Betrieb darf die Zwischenablage nicht die erste Wahl sein, da sie schlicht nicht 100%ig steuerbar ist.


Wenn Du doch mit FM8A arbeitest, bieten sich doch weitaus mehr Möglichkeiten, Word die zu verarbeitenden Daten zu liefern. Es gibt die Textformatfunktionen (ab FM7), mit denen lassen sich in textfeldern abgelegter und formatierter Text komplett als CSS ausgeben.

Für dich dürfte die Wahl jedoch auf die bereits seit FM5 (glaube ich) vorhandenen Möglichkeiten des XML-Exportes fallen. Das dabei gelieferte XSL kann doch bequem angepasst werden.

Bisweilen habe ich die Druckdaten, aus denen dann letztlich die SW- und Farb-PDF für die Druckerrei erstellt werden, per Script in FM6 zusammengebaut. Dann per AppleScript sog. XDT's und TSL-Files (Stylsheet) geliefert. Diese mussten von einem PC-Druckserver verarbeitet werden. Nach der Portierung auf FM8 mache ich das auch noch so.

Der Vorteil aus FM heraus liegt darin, dass ich Attributwerte, etwa die Scalierung von Bildern oder die Formatierung von Text über in FM zentral hinterlegte Regelwerke steuern kann. Da XML jedoch enorme Möglichkeiten bietet, die ich selbst noch nicht kenne, bin ich jetzt selbst dabei, mich da richtig reinzuarbeiten.

Erste Erfolge haben sich auch schon eingestellt, was Anlass ist, Dir in diesem Zusammenhang XML zu empfehlen.

Viele Grüße aus Weisbaden
Seppel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 01.06.2006 - 15:12    Titel: Zwischenspeicher immernoch besser als Exporte Antworten mit Zitat

Seppel hat Folgendes geschrieben:
Zwischenablage nicht die erste Wahl sein, da sie schlicht nicht 100%ig steuerbar ist.

nun hast du etwas angesprochen, das aber mit AppleSkript "heilbar" ist, man muss nur wissen wie dann wird die Zwischen-ablage zu 100 % und vor allem ist sie MULTI-USER-konform! auf HOSTEN oder locals tadellos.
(das komplexe daran ist lediglich der Umstand, dass man den Zwischenspeicher immerwieder mit dem ursprünglichen Inhalt herstellen sollte und FM genaueste Anweisungen geben muss, wie es den Zwischenspeicher füllen soll unter berücksichtigung folg. Kriterien:

Zellformatierung/Dat/Zahl in welchem Layout mit cell-Präsenz sowie cell-Position/Hintergrundsebene

Seppel hat Folgendes geschrieben:
FM5 (glaube ich) vorhandenen Möglichkeiten des XML-Exportes

Hier nennst du eine Methode die nicht durch AS steuerbar ist und rein FM-interne Gesetze befolgt:
Und das ist im MULTI-user und HOST-Verfahren eine wahre Katastrophe!
Nach vollkommen unberechenbaren Gesetzen ist die Lokalisation der Exporte auf dem local-Finder eine reine Glückssache, Typus Roulett: mal da, mal dort, ich habe mir die Finger schon wund-ge-AppelSkriptet um die verschiedenen aus HOSTEN exportierten Produkte auf allen 11 Clients wieder zusammenzulesen, und promt erfindet FM wieder ein neues Export-Ziel: Der Modem-Ordner meines iBooks. Wärst du drauf gekommen? Sicher sind Exportziele nur auf einen Server hin vom client aus festlegbar. aber was soll den der Quatsch? FM wurde ja über TCP/IP-Protokoll host-bar um langsame AppleTalk-Zugriffe auf Server elegant zu umgehen.

PS: hat diese "Zielgenauigkeit" der aus HOST stammenden Exportprodukte etwa zugenommen bei FM>5.5 ? wäre sehr interessant zu wissen.
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Seppel
•-->
•-->


Anmeldedatum: 22.09.2005
Beiträge: 59
Wohnort: Wiesbaden

BeitragVerfasst am: 03.06.2006 - 00:15    Titel: Antworten mit Zitat

Hallo Spirigwi,

ich habe im Moment recht viel zu tun, daher fallen meine Antworten etwas sperlich aus.

Ich bin nicht davon überzeugt, selbst auf dem Mac die Zwischenablage zu 100% zu beherrschen. Was für den Einzelbetrieb vielleicht möglich ist, ist nicht unbedingt für den Multi-user-Betrieb möglich. Als Beispiel sei nur ein Absturz des Client erwähnt. Zudem ist der Mac etwas anders als der PC. Solange es also keine sichere Methode gibt, auf beiden Plattformen das Problem zu beherrschen, lasse ich die Finger davon. Für mich gilt, allein aus Vorsicht, solidere Wege zu gehen, die sich bewährt haben und die ich steuern kann. Selbst bei einem Absturz.

Was XML angeht, kann ich nur insoweit mitreden, als das ich die von mir beschriebenen XML nicht über einen Export aus FM heraus sondern sie selbst erstellt, liefere. Da ich diesbezüglich die Kontrolle habe, wann und wo diese XML-Files abgelegt werden, habe ich Dein beschriebenes Problem nicht. Ein zweiter Weg ist, die XML-Files mittel Aufruf durch PHP zu erstellen. Auch da hast du die sichere Kontrolle von FM. Da habe ich aber recht wenig Ahnung, da dies ein Kollege von mir in einem anderen Projekt macht.

Viele Grüße
Seppel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 03.06.2006 - 12:42    Titel: Antworten mit Zitat

Seppel hat Folgendes geschrieben:
Projekt macht.
woraus man schliesst, dass Erfahrung noch fehlt. Wäre aber interessiert wie man denn das AppleSkript da einbinden könnte. Machst du wieder mal Frontbericht? Die FM-Foren sind nämlich heillos überfüllt und wenn FM schon appleSkript verwendet, gehören wie ich meine sämtliche AS-FM-news zuerst ins Deutsche Forum des grossen Snow! hugh sprach..
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
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