
Mikhail Edoshin
Members-
Posts
150 -
Joined
-
Last visited
Everything posted by Mikhail Edoshin
-
DDR Viewer is a lightweight browser for FileMaker Database Design Reports. It displays DDR data in clear non-cluttered lists of properties and references, set in a large readable font with color coding to see the difference between a reference, a constant, or a calculated expression. With DDR Viewer you see all important properties, don't see unimportant ones, quickly jump to a referred element with a keyboard shortcut, and quickly go back to where you were. DDR Viewer lists all references to an element, all missing references and also tells you where it falls short so you can check these places manually. DDR Viewer is fast, simple, inexpensive and is available immediately at http://www.onegasoft.com/ .
-
Try to access the same URL using some other tool, e.g. curl. Some servers check the "user agent" header and return different content to different agents. Also: is this a HTTPS resource, perhaps? Safari would access it just fine, but FileMaker won't, as far as I know.
-
I normally identify workstations with a little file I export in the Preferences folder and then import back at startup.
-
No, it should work out of box provided the target application implements a DDE server that understands the DDE Execute call and has "SendMessage" as possible Topic. I don't know what Page Master is, unfortunately. As far as I know DDE is considered old-fashioned and is probably a rare beast in modern applications.
-
emSoftware has two other plug-ins for database publishing: InData and InCatalog. Both can work with exported data, ODBC connection, and InCatalog also seems to work with FileMaker live (under Mac OS X only).
-
There are two plug-ins for Quark XPress and InDesign: XCatalog and InCatalog. As far as I know under Mac OS X they can work with live FileMaker files. They are especially designed for catalog publishing. http://www.emsoftware.com/products/xcatalog/features/ http://www.emsoftware.com/products/incatalog/features/
-
Custom date range find script
Mikhail Edoshin replied to Macmaster's topic in Script Workspace and Script Triggers
Yes. The script should look like that: Enter Find Mode[] Set Field[ Modified On, ( Get( CurrentDate ) - 4 ) & ".." & Get( CurrentDate ) Perform Find[] -
There's no way to place XSLT code there; it must always be a file stored on a disk or hosted on a web server. The calculation here is meant to specify the path to the file or the http request dynamically.
-
You can automatically download and update client plug-ins from server. This requires a bit of coding, i.e. you should use special functions provided by the AutoUpdate plug-in (included) to see if you have a new version on the server, then get it and install. Under Windows you can also use shell commands to work with files with the Send Event script. E.g. "cmd /C move " & fullPathToSource & " " & fullPathToTarget. This is harder than using a special plug-in, because to have solid code you should check for errors and the only way you can do this is to redirect output and error into files (using code like "1>output.log 2>error.log"), then import these files and see if the operation was successful. Doable, but I myself would prefer a plug-in.
-
To do this with two windows you'll have to script navigation so each time you change the current record, the script would switch to the second window, find the record there and switch back. A simpler way would be to use one window and to place all the fields from the details view in the header or footer part.
-
You can get contents of a summary filed using the GetSummary() function and then format them as necessary.
-
I'd rather add a separate table to keep multiple revisions of these text fields. Each revision would have a serial number to print on the report. After printing the revision would get locked in such a way that ordinary users cannot change it. If it's necessary to edit the report, the system would add a new revision (duplicate the last one) with a new number.
-
To me the best solution is not to use maximized windows under Windows. I normally make my main window slightly smaller than the available screen space (about 50 pixels less at both dimensions). This makes it simple to open and manipulate multiple windows.
-
Calculating Total of "Cost" field
Mikhail Edoshin replied to Brit-Flick's topic in Script Workspace and Script Triggers
The script with two requests “> 2/01/2008” and “< 2/20/2008” will actually find “ > 2/01/2008” OR “< 2/20/2008”. A correct way to search for date range is to use the “..” operator: 2/01/2008..2/20/2008 It's inclusive, i.e. end dates are also included. In modern versions if the date range is exactly a month or a year, it's possible to use a wildcard like: 2/*/2008; */*/2008. -
You pass field values as usual, but you use global fields. To successfully set a value of a global field in a web session you need to tell FMS the filed is global, so if the field name is “A” you use “A.global”: ...&A.global=first criteria&B.global=second criteria&-script=Adjust Find&-findall The “Adjust find” script enters find mode, creates correct find requests with values from A and B fields and performs find. The result goes to the browser.
-
CWP XML multiple find request
Mikhail Edoshin replied to the wheelhorse's topic in Custom Web Publishing
Just answered this question in another thread. -
You can resort to a script to find records. E.g. you can pass search requests via global fields, specify the final script using the ‘-script’ parameter and make the script to use the data from the global fields to find the records. With FileMaker Server 9 you can specify complex find requests, like A and B or not C. Look up the description of the `-query` tag.
-
You need a found set for the whole year and a calculated field to summarize month-to-date values. This field needs to evaluate to zero or empty for all records that don't belong to the current month. Assuming we always use the today's date the field should be like: Let( [ today = Get( CurrentDate ); beginning of this month = today - Day( today ) + 1 ]; Case( beginning of this month <= Date; Value ) )
-
You basically need to find all invoices that are at least 30 days late and then sort them into groups by how late they are. Sorting is simple and then you need a field in “Invoice”, say, “How late”, with a formula like: Let( days late = Get( Current Date ) - Due On; Case( days late ≥ 120, "120 days or more"; days late ≥ 90, "90 days"; days late ≥ 60, "60 days"; days late ≥ 30, "30 days" ) ) Make sure this field is unstored so it will recalculate for every report. Sort by this field using a custom value list to ensure correct sort order, make a report with “Subsummary when sorted by How Late” part, place the “How Late” field there, place invoice fields in the body part and you're done.
-
XML URL FLASH FILEMAKER INTEGRATION
Mikhail Edoshin replied to filemakeruser11-IT's topic in XML/XSL
As far as I know this is the only way to send user login and password. If you don't send login and password this way, two things could happen. First, if the database allows guest access, then the web session will log in as guest and try to perform the request. If the database doesn't allow guest access, it will communicate a request to authenticate. In a browser this displays a standard “basic HTTP authentication” dialog. I don't know if it's possible to handle this in Flash. You can try to connect without authenticating and see what happens. It's also possible to authenticate as a guest and then use a script (-script.prefind) to authenticate from within FileMaker using the Re-Login script step. But you'll still have to send the login and the password, in this case as the script's parameter (-script.prefind.param). To make sure the credentials cannot be intercepted you need to set up HTTPS on the server: obtain a certificate and teach the server to use it. To handle errors you'll need to look at the resulting XML file. I don't quite remember, but there's either an element or an attribute called “error”. The error codes are listed in the documentation. -
XML URL FLASH FILEMAKER INTEGRATION
Mikhail Edoshin replied to filemakeruser11-IT's topic in XML/XSL
To authenticate you need to include the username and password in the URL: http://username:password@domain.com/fmi/xml/... -
Formatting text WITHIN a calculation
Mikhail Edoshin replied to lizzie's topic in Calculation Engine (Define Fields)
Also: in FM 9 you can do this much simpler with conditional formatting. -
Formatting text WITHIN a calculation
Mikhail Edoshin replied to lizzie's topic in Calculation Engine (Define Fields)
Case( Nett Sales Less Support < 550000, TextColor( "No Target Hit", RGB( ..., ..., ... ) ); Nett Sales Less Support < 750000, TextColor( "1st Target", RGB( ..., ..., ... ) ); Nett Sales Less Support < 1000000, TextColor( "2nd Target", RGB( ..., ..., ... ) ); // otherwise TextColor( "3rd Target", RGB( ..., ..., ... ) ) ) RGB() is a function to define a color value from Red, Green and Blue components. You can look up values of these components in Mac OS color picker. -
Best Practice - Move Data or Move Development Changes?
Mikhail Edoshin replied to deego55's topic in Upgrading & Migration
Another thing that needs attention are custom value lists with the “Edit…” command. That is users can change them, but there's no fully automatic way to preserve these changes. To transfer accounts we decided to have a table for accounts (it also helps users to manage them) and store passwords there. When importing we re-create accounts in the new file with the new passwords.