Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
dogsch •-->

Anmeldedatum: 19.12.2000 Beiträge: 85
|
Verfasst am: 11.03.2005 - 10:12 Titel: wie hole ich mir die aktuelle datensatzanzahl in filemaker |
|
|
in ein applescript - irgendwie blicke ich das nicht |
|
Nach oben |
|
 |
PI •-->


Anmeldedatum: 23.02.2005 Beiträge: 89 Wohnort: 89567 Sontheim / Brenz
|
Verfasst am: 11.03.2005 - 15:33 Titel: |
|
|
hi dogsch,
<script>
tell application "FileMaker Pro" to count records of database 1
</script>
besser ist, anstatt 'database 1' den namen der datenbank angeben. _________________ hossa, PI [mini 1.83GHz intel Core Duo OS10.4.11] |
|
Nach oben |
|
 |
spirigwi •----->


Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 11.03.2005 - 16:06 Titel: |
|
|
property DATEI1 : "test database"
tell application "FileMaker Pro"
tell database DATEI1
set AnzDS to number of records
-- ergibt alle vorhandenen unabh von Auswahl
end tell
end tell
EDIT:
(hier meinte ich, statt database 1 könne man mit dem Dateinamen das richtige Ergebnis erzielen (= Anzahl aufgerufenes Datensätze). Weit gefehlt!) _________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Zuletzt bearbeitet von spirigwi am 14.04.2007 - 18:53, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 11.03.2005 - 23:23 Titel: |
|
|
Hier FileMaker 5.5:
count records of database 1 -- liefert alle Datensätze
number of records of database 1 -- liefert alle Datensätze
Auch wenn ich den Datenbanknamen verwende statt der Index-Nummer, wird immer die Gesamtzahl der Datensätze ausgegeben.
Spricht man die Database nicht an, wird die Anzahl der gerade aufgerufenen Datensätze geliefert.
property DB : "DVD-Ed"
tell application "FileMaker Pro"
if name of first database = DB then
set AnzDS to number of records
end if
end tell
Das ist auch in der Apple Events Reference so beschrieben:
tell application "FileMaker Pro"
count of record -- found records in a file (include found set)
count of record of document 1 -- found records in a file (include found set)
count record of database 1 -- all records in a file (ignore found set)
count request -- requests in a file
count field -- fields in a file
count FileMaker script of window 1 -- FileMaker scripts in a file
count of cell of document 1 -- cells in a file (include found set)
count cell of record 2 -- cells in a record
end tell
Man muss also immer aufpassen. Will man nur die Anzahl der aufgerufenen Datensätze, muss 'count records' oder 'number of records' direkt an das Programm adressiert werden. Will man die Gesamtanzahl der Datensätze, adressiert man an die Database. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
spirigwi •----->


Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 12.03.2005 - 09:46 Titel: |
|
|
Snow hat Folgendes geschrieben: | Hier FileMaker 5.5: ...
Das ist auch in der Apple Events Reference so beschrieben:...
Man muss also immer aufpassen. |
EDIT_meine Antwort viel zu ausführlich, s. Ende des posting 14.4.07 _________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Zuletzt bearbeitet von spirigwi am 14.04.2007 - 18:55, insgesamt 4-mal bearbeitet |
|
Nach oben |
|
 |
dogsch •-->

Anmeldedatum: 19.12.2000 Beiträge: 85
|
Verfasst am: 12.03.2005 - 10:49 Titel: und wie sieht's aus wenn man |
|
|
die anzahl von gefundenen datensätzen haben will
also ich habe nach xyz in feld abc gesucht und die anzahl mit diesen eigenschaftenb bräuchte ich |
|
Nach oben |
|
 |
spirigwi •----->


Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 14.04.2007 - 18:42 Titel: |
|
|
Snow, vielen Dank für deinen klärenden Abschluss(Verfasst am: 14.04.2007 - 20:01 Titel:
------------------------------------------------------------------------
Willy, mach' es bitte nicht komplizierter, als es ist.
)
Gibst du mir hier die Chance für Versuch eines "verantwortungsvollen" EDIT ?
Problem dabei: wenn AS mehrere databasen in Folge bearbeiten soll, muss die zu untersuchende database aktiv in front gebracht werden, dann erst wird das Ergebnis auch richtig zugeordnet.
Bis anhin kam mir zur Lösung dieses Problems nur folg. in den Sinn:
hat Folgendes geschrieben: | --EDIT: ursprünglich hatte ich hier noch eine Test-Abfrage eingebaut, um die DS-Anzahl-Ermittlung auch mit unterschiedlichen Abfragen überprüfen zu können
property DB : "DVD-Ed"
tell application "FileMaker Pro"
tell database DB
set CurrLay to name of current layout
go to layout CurrLay
end tell
--<--ausserhalb des Blockes: [tell database DB ]
set AnzAufgerufeneDS to number of records --<--hier nichts mehr anfügen, denn:
-- number of records of database DB --> bewirkt, dass alle DS gezählt werden!
end tell |
_________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Zuletzt bearbeitet von spirigwi am 15.04.2007 - 09:52, insgesamt 7-mal bearbeitet |
|
Nach oben |
|
 |
spirigwi •----->


Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 14.04.2007 - 19:13 Titel: |
|
|
dogsch hat Folgendes geschrieben: | also ich habe nach xyz in feld abc gesucht und die anzahl mit diesen eigenschaftenb bräuchte ich |
Nun könnte man aber auch über AS die Anzahl aufgerufener DS ermitteln,
dann könnte man so vorgehen:
Zitat: | property Database1 : "test database"
property Cellabc : "abc"
--
property SuchKriterium : "xyz"
--
tell application "FileMaker Pro"
tell database Database1
-->ZB gesamt-Inhalt der database : {"1", "xyz", "xyz", "3", "3", "3"}
set AufgerufenerInhaltabcLIST to ¬
cell Cellabc of ¬
(every record ¬
whose cell Cellabc ¬
= SuchKriterium)
--return AufgerufenerInhaltabcLIST -->{ "xyz", "xyz"}
set AnzahlAufgerufenerDS to length of AufgerufenerInhaltabcLIST
end tell
end tell |
Nachteile:
Ermittlung aufgerufener DS muss gleichzeitig die Abfrage enthalten
Anzahl items einer aus FM stammenden Liste könnte Fehler beinhalten(ZB dass 2 Items zusammengelegt werden in eines...?)
Deshalb gebe ich der ersten Methode eindeutig den Vorteil, weil sie die Suchabfrage von der Ermittlung der Anzahl aufgerufener Datansätze trennen lässt und daher wohl weniger störanfällig.
Speed-Frage?? _________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 14.04.2007 - 20:01 Titel: |
|
|
Willy, mach' es bitte nicht komplizierter, als es ist.
Dogsch hatte geschrieben, dass er bereits nach xyz gesucht hat. Es geht also nur noch um die Anzahl der aufgerufenen Datensätze. Eine erneute Suche ist gar nicht nötig.
Außerdem würde ich von der Suche mit "whose" abraten. Über viele Versionen hinweg war diese Funktion fehlerhaft - keine Ahnung ob das inzwischen behoben ist.
Ich hatte mal ein Filemaker Projekt unter OS 9 erstellt, das diverse AppleScripts für die Suche enthielt.
Als ich das Projekt dann unter OS X testen wollte, kam es zum Totalabsturz (und zwar reproduzierbar).
Daraufhin musste ich das gesamte Projekt umstrukturieren und sämtliche, scriptgesteuerten Suchfunktionen mit "whose" durch FileMaker requests ersetzen.
Da ich immer noch auf FileMaker 5.5 bin, werde ich wohl auch bei den requests bleiben.
Dann hattest du noch das Thema angeschnitten, wie man die richtige Datenbank in den Vordergrund holen kann. Im Prinzip hast du das schon richtig gemacht, allerdings mal wieder zu umständlich.
Der "go to"-Befehl funktioniert nämlich nicht nur mit Layouts sondern auch mit anderen Objekten - also auch direkt mit "database".
tell application "FileMaker Pro"
go to database "DVD-Ed"
set x to count of records
end tell
Das ist im Prinzip alles, was Dogsch braucht. Wie bereits erwähnt hatte er ja eine Suche bereits durchgeführt also muss nur noch die richtige Datenbank angesprochen werden und die Anzahl der aufgerufenen Datensätze wird ermittelt. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
|