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

ZWISCHENSPEICHER(+FORMATIERUNG) trotz FileMaker TEXTAUSWAHL

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> Pool
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
spirigwi
•----->
•----->


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

BeitragVerfasst am: 14.04.2006 - 19:41    Titel: ZWISCHENSPEICHER(+FORMATIERUNG) trotz FileMaker TEXTAUSWAHL Antworten mit Zitat

Problembeschreib:
Um in FileMaker Pro einen vom USER MARKIERTEN TEXT zu verarbeiten (ZB um ihn in einer FileMaker cell oder AS-Variable zu speichern), muss der Zwischenspeicher benutzt werden.

Grund:
Wenn FileMaker Pro einen MARKIERTEN TEXT( oder Zahl) lesen will, muss es seinen eigenen Befehl dafür verwenden, dafür gibts leider nur einen, nämlich: [Kopieren].
Dies ist meines Wissens gerade auch die einzige von FM vorgesehene Möglichkeit, MARKIERTEN TEXT samt Formatierung zu lesen (ohne eine mir bisher bekannte Alternative).

Problem dabei:
Der Zwischenspeicher-Inhalt, welcher dem AppleSkript-Start zeitlich voraus steht, sollte möglichst nie durch ein AppleSkript tangiert werden, da dies dann zwangsläufig immer eine Information mit entspr. Verhaltensregeln an den User erfordern würde, die er meist nicht einhalten kann, usw. Wegen der oben beschriebenen File-Maker-Eigenschaft betr. markiertem Text kommt man diesmal aber nicht daran vorbei. Dieses Manko muss dann also wieder kompensiert werden:

Lösung:
mit 2 gestaffelten, vom [Kopieren]-Befehl des FileMaker Pro unterbrochenen AS

1.
Der erste AS-Handler sichert den Zwischenspeicher-Inhalt ins FileMaker
1.a (FileMakers Aufgabe): [Kopieren] = Befehl des FM, wird durch ein AS ausgelöst und sichert Markierungs-Text
2. der zweite AS-Handler sichert den neuen Zwischenspeicher-Inhalt(entspricht der Markierung) in die dazu vorgesehene FileMaker -cell und holt sich den ursprünglichen Zwischenspeicher-Inhalt wieder in den clipboard.


Ein Beispiels-Skript soll für den strukturellen Aufbau ein leicht modifizierbares Exempel darstellen, wie man solcherart Aufgabe mit AppleSkript und FileMaker-Script-Kombinationen lösen könnte.

Folg. Beispiels-Skript (aus der Praxis) kann einen im FileMaker markierten Text in FileMaker-cells geben (oder sonst irgend wohin) und füllt dann den Zwischenspeicher wieder mit seinem ursprünglichen Inhalt (samt Formatierung!)

1.Alternative: EIN EINZIGES AppleSkript:

Zitat:
global ContcellVaZwischen1 -- FmTell1()
global ContcellVaZwischen2 -- FmTell2()
--
---------
property APA1 : "AllKG.APA" --Datenbank Name 1
--
-------------------------
property cellVaZwischen1 : "VaZwischen1" --cell Namen: funktioniert auch ohne Datensätze wenn cell-class eine Variable
property cellVaZwischen2 : "VaZwischen2"
property cellEigenNr : "EigenNr"
--
------------------------------------
property LayoutMitCellVaZwischen1 : "KNOTEN"
--
cell cellVaZwischen1 dort mit folg. FM-Kriterien:
--
"Feldformat...Eingabe in Feld zulassen...Gesamten Feldinhalt auswählen"
--
------------------------------------
property DoScrFMScr1 : "##Kopieren[]" --Scriptname des FM-Scriptes lediglich mit dem Befehl: Kopieren[]
--
------------------------------------

--
######################
my FmTell1() --oooooooooooooooo
my FmTell2() --oooooooooooooooo
--
######################

--
A-Schritt:
on FmTell1() --oooooooooooooooo
   
global ContcellVaZwischen1 -- FmTell1()
   
tell application "FileMaker Pro"
      
      --
1. Schritt: Clipboard Inhalt sichern
      
activate --für clipboard-Funktion unumgänglich!
      
set cell cellVaZwischen1 of current record of database APA1 to the clipboard
      
      --
2. Schritt : FM füllt Clipboard Inhalt mit der User-Markierung(aus beliebigem Feld)
      
do script FileMaker script DoScrFMScr1 of database APA1
   
end tell
end FmTell1

--
######################
--
AppMarkierung--> cellEigenNr des AllPat.APA-files
--
cellVaZwischen1 (Zwischenspeicher-Inhalt vor der Aktion)-->clipboard samt Formatierung
--
######################

--
B-Schritt:
on FmTell2() --oooooooooooooooo
   
global ContcellVaZwischen2 -- FmTell2()
   
tell application "FileMaker Pro" --kein activate!
      
set cell cellVaZwischen2 of current record of database APA1 to the clipboard --ClipInhalt
      
set ContcellVaZwischen2 to cell cellVaZwischen2 of current record of database APA1
      
set cell cellEigenNr of current record of database APA1 to ContcellVaZwischen2
      --
#############
      --
3. Schritt: Ursprünglicher clipboard-Inhalt samt Format wieder herstellen:
      --
#############
      --
set ContcellVaZwischen1 to cell cellVaZwischen1 of current record of database APA1--zerstört Formatierung!
      
set CurrLayout to name of current layout
      
go to layout LayoutMitCellVaZwischen1
      
go to cell cellVaZwischen1 of current record of database APA1
      --
"Verhalten" für cell cellVaZwischen1: "gesamten Feldinhalt auswählen"
      
do script FileMaker script DoScrFMScr1 of database APA1
      
go to layout CurrLayout
   
end tell
end FmTell2


user-Limiten:
das funktioniert nur, wenn das AppleSkript ausserhalb von FileMaker plaziert ist, ZB:
falls das obige Skript als Programm auf Schreibtisch gespeichert "ClippTEST" heissen würde
und so aus der FileMaker Database heraus gestartet würde: (ZB):

on SkriptAusloeser() --also wiederum ein AppleSkript, gespeichert in der Database:
   
set STARTNAME to (first item of (list disks)) as string
   
tell application "Finder"
      
set PfFile to STARTNAME & ":" & ¬
         "
Desktop Folder:ClippTEST"
      
open file PfFile --für FILE! --oder Alias
   
end tell
end SkriptAusloeser


2. Alternative: EIN EINZIGES FileMaker-Script(beinhaltend u.a 2 AppleSkripts)

Ein FileMaker-Script übernimmt alle Aufgaben unter Verwendung von 2 AS, welche in Database gespeichert sind als:
"AppleScript ausführen[Scripttext......]"


Inhalt des FileMaker-Script:

######################
A.
FileMaker-Script löst folg. AS aus:
######################
1. AppleScript: AppClipinhalt-->cellVaZwischen1 / Markierter Inhalt --> clipboard


Zitat:
global ContcellVaZwischen1 -- FmTell1()
--
---------
property APA1 : "AllKG.APA" --Datenbank Name 1
--
-------------------------
property cellVaZwischen1 : "VaZwischen1" --cell Namen: funktioniert auch ohne Datensätze wenn cell-class eine Variable
property cellVaZwischen2 : "VaZwischen2"
property cellEigenNr : "EigenNr"
--
------------------------------------
property DoScrFMScr1 : "##Kopieren[]" --Scriptname des FM-Scriptes lediglich mit dem Befehl: Kopieren[]
--
------------------------------------

--
######################
my FmTell1() --oooooooooooooooo
--
######################

--
A-Schritt:
on FmTell1() --oooooooooooooooo
   
global ContcellVaZwischen1 -- FmTell1()
   
tell application "FileMaker Pro"
      
      --
1. Schritt: Clipboard Inhalt sichern
      
activate --für clipboard-Funktion unumgänglich!
      
set cell cellVaZwischen1 of current record of database APA1 to the clipboard
      --
2. Schritt : FM füllt Clipboard Inhalt mit der User-Markierung(aus beliebigem Feld)
      
do script FileMaker script DoScrFMScr1 of database APA1
   
end tell
end FmTell1




######################
B.
FileMaker-Script löst folg. AS aus:
######################

2. AppleScript: AppMarkierung-->ClipInhalt-->cellVaZwischen2 --> cellEigenNr des AllPat.APA


Zitat:
global ContcellVaZwischen1 -- FmTell1()
global ContcellVaZwischen2 -- FmTell2()
--
---------
property APA1 : "AllKG.APA" --Datenbank Name 1
--
-------------------------
property cellVaZwischen2 : "VaZwischen2" --cell Namen: funktioniert auch ohne Datensätze wenn cell-class eine Variable
property cellEigenNr : "EigenNr"
--
---------------------------

--
######################
my FmTell2() --oooooooooooooooo
--
AppMarkierung(=clipboard Inhalt duch FM`s Kopieren[] )--> cellVaZwischen2
--
>Weiterverarbeitung--> cell cellEigenNr
--
######################

--
B-Schritt:
on FmTell2() --oooooooooooooooo
   
global ContcellVaZwischen2 -- FmTell2()
   
tell application "FileMaker Pro" --kein activate!
      
set cell cellVaZwischen2 of current record of database APA1 to the clipboard --ClipInhalt
      --
obige Zeile funktioniert andererseits nur wenn das AS in FileMaker gespeichert ist
      
set ContcellVaZwischen2 to cell cellVaZwischen2 of current record of database APA1
      
set cell cellEigenNr of current record of database APA1 to ContcellVaZwischen2
   
end tell
end FmTell2


######################
C.
FileMaker-Script macht Abschluss (Clipboard wieder mit ursprüngl. Inhalt überschreiben):
######################

• gehe zu Layout ["KNOTEN"]--(=Layout, das die cell cellVaZwischen1 führt: )
--
Fm- "Feldformat...Eingabe in Feld zulassen...Gesamten Feldinhalt auswählen" nicht nötig
• Kopieren [Auswahl, "VaZwischen1"]
• gehe zu Layout [Originallayout]

_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> Pool 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