Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 23.09.2005 - 18:33 Titel: Felddefinition oder Scriptnamen per AppleScript? |
|
|
Hallo Ihr Lieben,
als jemand, der noch nicht so viel in AS gemacht hat, dafür aber umsomehr in Filemaker, würde mich etwas brennend interessieren. Ein Kollege sagte mir, dass man wohl FM via GUI-Scripting dazu bringen kann, Felder umzubenenen, etc. Nur das sei wohl sehr aufwendig zu programmieren resp. nicht ganz so elegant.
Gibt es evtl. noch andere Wege mit AS so etwas zu bewerkstelligen?
Liebe Grüße aus Wiesbaden
Seppel |
|
Nach oben |
|
|
spirigwi •----->
Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 23.09.2005 - 21:07 Titel: |
|
|
Klar, mit appleSkript natürlich
Prinzip: brauchts eine Maschine, die dir window 1 alle Feldnamen listet
(ziemlich knifflig, da die Liste nur sinnvoll wenn sortiert:
FoNrPat
FoNrPatZA
FoPlusZuNaheMontagZA
For1
FoRw1ZA
FoRw2ZA
FoRw3ZA
FoRw4ZA
FoRw5ZA
FoRw6ZA
FoStatMcX
FoTagDWocheZA
FoVa1So
FoVa1So Mitte.....
und eben alles nicht Variablen-fähige mit Umtaufvorschlag vorrechnet, Pausen eliminiert, da ja nur so sinnvolle Nomeklatur einfach in der Handhabe entsteht
Dazu ist AS wie geschaffen dass man endlich aus dieser Folterkammer der Felddefinitionen des FM heraus kommt, sodass man extern umtaufen kann und Produkt hinein kopieren kann, das macht das natürlich wesentlich simpler, sodass GUI eigentlich unnötig.
Ich hab mir so einen Höllenapparat gebaut den ich täglich brauche da ich sowieso alle FM-Befehle soweit möglich mit AS verteile
Setzt aber Smile voraus, da wir ja hier auf Classic sind, weils das einzige ist das neue SkriptFenster eröffnen kann
Kleiner Vorgeschmack? funktioniert! kannst ausprobieren:
Zitat: | tell application "FileMaker Pro"
set CurrLay to name of current layout of window 1
set NameDatabase to name of layout 0
--SkriptInhalt1
set NamenAlleLaysLIST to name of every layout
set NamenAlleCellsLIST to name of every field of layout 0 -->alle Felder der Datenbank
end tell
set AppleScript's text item delimiters to return
set NamenAlleCellsLISTTEX to NamenAlleCellsLIST as text
set AppleScript's text item delimiters to ""
NamenAlleCellsLISTTEX --nun liegt eine Sortierbare Tabelle der Feldnamen im Editor-Ergebnisfenster
|
Nun das ist alles noch zuviel Knochenarbeit nur mit so einem mickrigen Skriptlein zu arbeiten da man ja nie Zeit hat noch etwas zu apple-skripten, muss doch alles fix fertig auf den tisch geknallt werden. jetzt fehlt ZB eine aus den CellNamen erzeugte Property-Zeilen-Liste , die bei mir natürlich automatisch fürs handling des FileMakers mit dem Skript erzeugt wird nebst der Feldliste, die du sehen kannst, aus der müssen übrigens noch alle unnötigen Sonderzeichen und so Mist ersetzt werden(mit AS-Maschine selbstvertändlich) und dann hast du dein GUI mit links weit überholt, im Lehnstuhl oder wie ich in der Badewanne liegend...
Kürzlich hat Snow mich aber kürzlich kurz und klein-gedrescht und zusammengestanzt wegen propertys sodass ich gar nicht mehr den Namen propertys zu erwähnen wage, geschweige denn in ein ein neues AS-Skript erzeugendes AS_SKript mit propertys einzusetzen. wage.. (natürlich hab ich für mich alles fix und fertig bis zur Sortierung und der Generierung eines neuen AS-Skriptes das alle Felder und Layouts und AS-Grundbefehle fürs FM exemplarisch enthält (2 sec Rechenzeit, aber eben: SMILE als Skripteditor!)
Will sagen: kann man alles selbst bauen und die 2 Fenster nebeneindanderhalten: AS-Skript<-->FileMakers Felddefinitions-Liste
und geänderte Namen hineinkopieren ohne das FM-Fenster schliessen zu müssen
Tschau GUI _________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius |
|
Nach oben |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 24.09.2005 - 12:14 Titel: |
|
|
Hallo Spirigwi,
die Badewanne war ja sehr entspannend Da haste ja viel Info rüberkommen lassen, die ich erstmal verdauen muss.
Ich habe mir schonmal vor zwei drei Jahren so eine abgespeckte "Höllemaschine" gebaut, allerdings in FM. Die Bordmittel liefern im übrigen fast alle Daten, die man braucht um Projekte zu verwalten. Dieses Projekt habe ich jetzt wieder neu aufleben lassen und ganz neu gebaut. Es basiert auf FM6 und hilft mir, insbesondere Formel aller Art zu generieren und insbesondere zu kommentieren. Die dort zusammengebauten Formeln werden an FM unkommentiert zurückgeliefert.
Da wir sehr viel mit MetaDataMagic arbeiten, gerade im Re-Design ein sehr sinnvolles Tool, wurde ich wieder inspiriert. Denn MDM kann eben nicht alles, was ich brauche, aber mehr als ich im Moment kann.
Ich schreibe später weiter, wegen Besuch
Vorab liebe Grüße aus Wiesbaden
Seppel |
|
Nach oben |
|
|
spirigwi •----->
Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 24.09.2005 - 13:32 Titel: |
|
|
Hallo Sepp (mein Sohn heisst Jose-Miguel und wird bei unszulande so genannt, dies hat mich auf eine Inspiration gebracht wegen den Propertys:
Seppel hat Folgendes geschrieben: | wegen Besuch | also gute Gelegenheit:
PS:
beim FM-gewonnenen Variablen benamsen würde ich mir unbedingt ein System anlegen für den Fall des Datentransfers vorausschauend:
etwa so:
tell App. FM.......
set cell CONTcellVaF96RechNr of database HOST1 to cellVaF96RechNr
set cell cellVaF96RechNr of database HOST2 to CONTcellVaF96RechNr
end tell
Wenn man nun ein teilweise Mammutskripte durchkorrigieren muss, die man früher mal während eines Seppel hat Folgendes geschrieben: | wegen Besuch | hergestellt hatte, sich aber nicht mehr erinnert was der besuch und was der Kopf gesagt haben damals, wird einem durch den Anfang der Variablen-Namens sozusagen durch einen Reflex wieder bewusst, was man noch zu tun hat vor dem AS-"Feld angeben" Vorgang, den man FileMaker mit grossem, allseitigen Vorteil unbedingt abnehmen sollte, da er dort schlicht viel zu viele Fehlerquellen birgt, nämlich ZB so:
bei:CONT wie CONTcellVaF96RechNr muss man in ein Zahlen-und Datums-formatiertes Layout gehen
bei: cell wie cellVaF96RechNr ist das nicht nötig und erspart dadurch enorm Zeit (oder auch nicht ! falls das Layout in welchem Feldinhalte gefüllt werden, ZB viele Formelfelder oder Beziehungsfelder enthält...so spitzfindig kann halt FileMaker sein und dummerweise haben die vergessen überall (praktisch in jeder funktion nötig) weisse oder rote Etiketten aufzukleben als Kommentare
PS: von wegen Formeln vorformatieren: hast du unser Notizzettel-Programm vergessen? bei mir komm ich da mit æ_esc Tastenkürzel hinein und mit Alt_F wieder ins FileMaker-offene Formelfenster hinein
Ps PS:
ach so, warum denn Notizzettel-Programm und nicht Word-Wurstel-Programm ?
Ganz einfach doch: weil ich noch ein Fenster auf dem Mac brauche das ein Word-Wurstel-Programm-Fenster offen hat, das schön sorgfältig die Resultate des FM-Hilfe-Programms für Formeln importiert habe um sie auskommentiert mit dem Befehl æ_F " KOMPUTERNAME" einem auf die Tabellenzeile Status (AktuellBenutzername) führt:
dann:
æ_ Klick das markiert, und æ_C das copiert
und æ_V das abladen tut ZB im Formel-bau des Notizzettel-Programm
Naja, Snow wird wieder zuviel Snowli hat Folgendes geschrieben: | Hirnakrobatik | finden, dann versuchts halt mit dem Developper oder wie all diese Krüppel-Hilfen heissen, Hirnlos sind sie allemal, das wenigstens lässt sich mit nichts widerlegen...
_________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius |
|
Nach oben |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 27.09.2005 - 21:24 Titel: |
|
|
Hallo Spirigwi,
so jetzt habe ich mich ein wenig damit beschäftigt und habe gleich eine wesentliche Frage:
Was hat es denn mit Scripter Smile auf sich, dass du ausschließlich auf diesen schwörst? Soeben habe ich mir die Free-Version runtergeladen und installiert, aber er holt mir ebenfalls nur die FM-Befehle rein, die auch der ScriptDebugger liefert. Oder sind es evtl. andere Befehle, die nur Smile mitbringt, und wenn ja, welche?
Liebe Grüße aus Wiesbaden
Seppel
|
|
Nach oben |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 27.09.2005 - 21:27 Titel: |
|
|
spirigwi hat Folgendes geschrieben: | dann versuchts halt mit dem Developper oder wie all diese Krüppel-Hilfen heissen, Hirnlos sind sie allemal, das wenigstens lässt sich mit nichts widerlegen...
|
Einen entscheidenden Vorteil, die Run-Time-Funktionalität mal außer acht gelassen, hat der Debugger auf jeden Fall. Man kann sinnvoll seine Scripts debuggen
Grüße
Seppel |
|
Nach oben |
|
|
spirigwi •----->
Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 27.09.2005 - 22:19 Titel: |
|
|
Seppel hat Folgendes geschrieben: | Scripter Smile auf sich |
Gerne: Smile als Skript-Editor würde ich (leider) nur noch auf OS9 oder CLASSIC einsetzen.
Dort hat er aber im Vergleich zu Skirpt Editor des OSX weit überlegene Tools einfach im Umgang mit AppleSkripts. Weil man damit so leicht umgehen kann, ist es nicht nötig dass er einen speziellen Zugang zu FM haben muss, den gibts auch nicht.
Man kann aber mit Smile so virtuos umgehen dass man einfach ein Definitions-Fenster von FM quasi mit einem neuen AppleSkript simulieren kann:
Smile ist selbst AppleSkript-fähig, dh du kannst ein Skript schreiben das dir ZB alle FM-cells untereinander auflistet und es in einem neuen AS-Skriptfenster auflistet. Die Erzeugung des neuen AS-Skriptfensters kann <OSX nur über Smile erzeugt werden. Wenn man also ein Skript baut das alle Daten aus einer FM Datenbank herauslesen soll (cell-namen, Layout Namen, Grundbefehle die man immer vergisst) und das Produkt in ein neues AS-Skriptfenster zur Bearbeitung und Adaptation legen soll, dann muss man also:
entweder auf OSX steigen(dort kann dies der Skript Editor) oder auf OS9 kann dies nur Smile.
Wie erwähnt: Smile hat unglaublich nützliche und clevere tools um mit AS-Zeilen umzugehen:
nur kurz 2 exemplarische Beispiele:
1) kanns aus irgend-welchen AS-Zeilen,so ZB.
property cellVa1010LichtZA : "Va1010LichtZA"
property cellFo1010F1ENDundStart1Ist1010 : "Fo1010F1ENDundStart1Ist1010"
eine als Text verpacktes string-Packet erzeugen:
"property cellVa1010LichtZA : \"Va1010LichtZA\"
property cellFo1010F1ENDundStart1Ist1010 : \"Fo1010F1ENDundStart1Ist1010\""
2) eine selektierte Zeile oder Wort oder Tell-Block usw einfach mit dem ShortCut æ_D dupplizieren usw.
3) als Zugabe: save as.. unter neuem Namen kann direkt umgangen werden, man kann einfach den Skript-Fenster-Name bei offenem Fenster umschreiben in der Fenster-Titel-Leiste (sowas ähnliches hat OSX auch aber, es verlangt dann nach einer Textvorlage durch ein file das schon auf dem Finder liegt, alles deutlich klobiger..)
Damit wird man so extrem schnell, dass man alle Veränderungen für Zellnamen usw die ja meist grosse Lsiten bedingen, extern modulieren und einfach wieder in FM hineinkopieren kann. Somit brauche ich eigentlich nie eigens von FM hergestellte Hilfsmittel bei diesen Fragen, die Hilfe selbst hab ich mir in ein Word-Dukument gesichert, dann kann ich kommentierte Befehle einfach herauskopieren.
Ich habe jetzt aber gar nichts gesagt zu den FM-eigenen Skript-abläufen in FMScriptMaker, nur AppleSkript war hier geschildert, und die Bearbeitung von Zell-Listen, allenfalls do FMScript-Steuerung über AppleSkript. FM selbst dient ja ebenfalls als SkriptEditor(in 2-erlei Art wobei die event-Art tunlichst zu meiden ist weil sie keine fehlerrückmeldung macht)Von AS-Befehlen hoffe ich für die menschheit, dass noch niemand auf die Idee gekommen ist sie in FileMakers SkriptEditor drinnen zu aufzusetzen, der aknn nämlich nicht sichtbar kompilieren.
Also: Smile erleichtert AS-Umgang gewaltig auf OS9. Auf X geht es auch, hat aber dort eindeutig Terrain verloren zu OSX-SkriptEditor, weil er zur Anwahl von handlern irgendwie die wichtigste Fähigkeit verloren hat auf der OSX-Plattform, weiss auch nicht warum.
Für Smile auf OS9 gibts keine namhafte Alternative und man sollte dort nicht Zeit verlieren mit Skript Editor, da der dort überhaupt nichts bietet.
War ich klar? oder hab ich daneben geredet?. Sags bitte, ist wohl mein letzter Beitrag in einem Forum.
Ach so der Debugger: mein Debugger sieht so aus:
an kritischer Stelle lass ich vorlesen: display dialog "xxxxxxxxxxxxxxxxxx"
mit 2 Vortielen:
1) finde die xxxxxxx mit æ_F(was smile oder X-SkriptEditor voraussetzt)
2) mit Abbrechen button kann man sich genau an den Skript-Ablaufpunkt bringen lassen wos klemmt.
Mehr brauch ich eigentlich nicht für AS, es genügt ja der hinweis dass man genau dort etwas bestimmtes nicht kapiert hat am eigenen skript
_________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius |
|
Nach oben |
|
|
Seppel •-->
Anmeldedatum: 22.09.2005 Beiträge: 59 Wohnort: Wiesbaden
|
Verfasst am: 27.09.2005 - 23:51 Titel: |
|
|
Hallo Spirigwi,
zunächst einmal herzlichen Dank für die Ausführliche Beschreibung von Smile. Ich persönlich komme in der kurzen Zeit mit Smile nicht recht, da habe ich mich wohl zu sehr an den ScriptDebugger gewöhnt. Unter Classic habe ich Ihn allerdings nicht ausprobiert, weil beruflich dafür derweil kein Verwendung, außer für QXP.
Was mich aber sehr interessiert, ist ein kleiner Einstieg in die Feldumbenennung in FM via AS. Namen und IDs von Feldern, Scripts etc. auszulesen und davon DS zu erzeugen, kann ich sowohl über FM als auch über AS machen.
Für meinen kleinen FM-Projekt-Manager brauche ich aber noch den Formelinhalte von Feldern, Scriptinhalte, um auf Feldverwendung prüfen zu können und aktuell für ein neues Projekt die Umbenennung von Feldern aus AS heraus. Gerade das neue Projekt glänzt im Rahmen der Normalisierung durch sehr viele Kreuztabellen, deren Felder allesamt mit Ihren Dateikürzel versehen werden müssen. Das ist en haufen arbeit, wie jeder weiss.
Als kleiner Einstieg reicht mir schon die Ansprache zur Feldumbenennung in Form eines 'Einzeilers'. Damit hätte ich schon mal eine vernünftige Arbeitsgrundlage. Würde mich sehr freuen.
Liebe Grüße aus Wiesbaden
Klemens |
|
Nach oben |
|
|
spirigwi •----->
Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 28.09.2005 - 00:16 Titel: |
|
|
Seppel hat Folgendes geschrieben: | Feldumbenennung | eben, da fällt mir nur eines ein:
mit AS Liste der Felder erzeugen, dass sie Identisch Sortiert vorliegen wie im Feldname-umtaufer-Fenster des FM
Umtaufen im AS
an entsprechende Stelle des FM-Umtauffenster abladen, umbenennen.
Feldumtaufen ohne das Fenster in FM zu öffnen kenne ich keine Mehtode, ausser ein neus File erzeugen, das eine Umgetaufte Liste, die man in AS erzeugt ins Excel gibt, als Text-Tabelle speichert, Importiert in ein frischbackenes FM-File, dann sind alle Feldnamen = wie in Excel vorliegen, aber es ist ein neues FM-File!
Gui kann auch nur das was man von Hand hinklopfen kann
da seh ich die einzige Chance über Shell, wenn FM keine tools bietet zur Umbenennung am Feld-Namen-Fenster vorbei zu kommen.
Wenns aber diese tools gibt dann kannst du sie sicher irgendwie mit AS ansprechen, wo die Umtaufe in deinem Fall systematisch Zeile für Zeile erfolgt ist mit einem repeat AlterNAme_Plus_DatenbankNAme
Das wäre ja dann ein kinderspiel bei noch so langen Listen
Auch diese Listen dann Zeile für Zeile uaf MF-UmbenennenZeilen abzuladen ist eine reine MAus-Tasten-Programmierungs-Aufgabe
sollte dir ebenfalls nicht allzuschwer fallen und dort hilft dann Gui-Skripting natürlich gewaltig weiter, musst ihm nur den Ablauf CODE_V ENTER mit Tabs in die nächste Zeile..
Mit der Mausprogrammierung(ZB Logitech hat Zig Knöpfe) kann ich allerdings wiederum nur auf OS9 empfehlen weil die Software viel ausgereifter ist als dieses OSX-Gezicke das im Moment vorliegt
ZUsammengefasst: für so big-Jobs im FM lohnt es sich wirklich in die Badewanne zu sitzen mit einem OS9-iBook mit allen Wassern der Programmierhilfen ausgerüstet welche durchs Band auf OSX dauernd fehlen
JA nu, ist doch Ansichtssache, davon wird man im Forum meinerseits nicht mehr viel hören
_________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius |
|
Nach oben |
|
|
|
|
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
|
|
|