MACSCRPT Archives

May 2003

MACSCRPT@LISTSERV.DARTMOUTH.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Malcolm Fitzgerald <[log in to unmask]>
Reply To:
Macintosh Scripting Systems <[log in to unmask]>
Date:
Sat, 31 May 2003 15:02:56 +1000
Content-Type:
text/plain
Parts/Attachments:
text/plain (82 lines)
>>>  IF done *within* FileMaker in a perform applescript step:
>>>
>>>  Delete every request
>>>  Set NR to (Create new request)
>>>  Copy "Seattle" to cell "City" of NR
>>>  Find
>>>
>>>  Leaves you in Find Mode.


You are wrong about the applescript command "find" - it's job is to
perform the find. Within Filemaker's own scripting language that job
is done by "Perform Find". You must be doing something else to leave
the database in find mode. Try this

tell application "FileMaker Pro"
    tell database "Addresses.fp5"
        delete every request
        create new request
        set cell "name.first" of request 1 to "malcolm"
        find
     end tell
end tell

--> 2 records in found set, Browse Mode
--

>There is no applescript "perform find" function.

Sorry, there is no applescript "perform find" function. You had
supplied an example which was "within Filemaker". There is a Perform
Find script step within Filemaker which does what you want. If you
have put Filemaker into Find mode and entered data then the Perform
Find command will perform the find.

>If you try to do this within FileMaker, it doesn't work. The front end file
>can create the requests in the data file. But it can't execute them unless
>the other file has standard FileMaker scripts that perform a find.

Try building these two scripts into your databases as a matter of
course. They are both one liners. You'll be suprised how often you
can find a use for them.

Script 1: Enter Find Mode
-- > set find request
Script 2: Perform Find

>
>As an example, consider trying to create a report generator that can target
>any open FileMaker file. The report generator would store criteria, run
>finds, extract and summarize data, etc. Ideally, this report generator is
>universal; it does not require modifications to data files it is querying.

The most generalised situations are covered by the two scripts above.
Put a database into Find Mode, create a find request by whatever
means, Perform Find. You can specify the find request using
AppleScript from another application or you can do it from within
FMP. There is no need to hardwire the find.

I've built databases that guess what the user wants to find. It
simply makes a best guess (it's date based) and displays a layout
which mocks up a dialog box with a message and a couple of buttons.
If the guess is good - press OK, otherwise cancel and it drops the
user into find mode and lets them set the find parameters. The guess
rate is better than 90% successful - I wouldn't have bothered
otherwise - when change is needed the user has the opportunity to
change, when it is not they are saved the effort.

I'm only making suggestions that may provide you with other ways to
get the job done. In my experience it is much better to get FMP to do
as much as possible internally. Using FMPs built in scripting
language is much faster than using Applescript, it doesn't get lost
like helper files do and it doesn't generate
dependencies/compatibility problems. If you can keep everything
within FMP you get cross-platform compatibility too.

--
--
Malcolm Fitzgerald                        [log in to unmask]
Database Manager                          http://www.asauthors.org
The Australian Society of Authors         ph: 02 93180877 fax: 02 93180530

ATOM RSS1 RSS2