By Tony Morosco
I'm a botanist, and the tables I am working with are for tracking botanical garden collections. The data represents plants in the garden, and the plants are tagged and show up in the database. The tables I am working with were created in FMP 7, and I'd like to open them up in FMP 11 (or later.) The system hasn't been used in years, but still has valuable information.
One of the tables is giving me problems using the FMP convert and recover commands.
These tables are all inter-related. The main table is the Accessions table, which contains records for all of one kind of plant, from the same source, received on the same date. It is basically a museum standard.
The other tables are related to each other through this one main table. The Species table is related to the locations table through the Accessions table.
(i.e. table A relates to table C through the table B, the intermediary)
From the Locations table, we can't see the the species information unless the accessions table is present.
When issuing the open command on the main table to convert the database to FMP 11, I get the message:
"Accessions.fmp7" is damaged and cannot be opened. Use the Recover command to recover this file. When using the Recover command from v. 11, I get another message:
WARNING: problems were detected while recovering the database. Please review the Recover.log file to see where problems were found and their severity. The recovered file should NOT be used going forward; copy only the most recent work from it into a backup copy of the original file. Recovery results: File blocks: scanned and rebuilt 563 blocks, dropped 214 invalid data blocks. Schema: scanned fields and tables, 1 items modified Structure: scanned; 1 items modified Field indexes: rebuilt
Opening the recovered database, there are only three records present. There should be hundreds. So obviously I am looking on how to wrangle this database open.
I've attached the log file here, as well as the database structure map.
The other files have converted just fine. But since the main table won't open, we are kind of stuck.
I can share the files with you through Dropbox or whatever, if needed.
Please let me know any thoughts you have, either basic or advanced. And ask for any clarifications or additional questions. :-)
I'm summarizing line items of sales records. Items are charged in more than one currency, so I'm sorting/breaking the report by currency. I don't use a body part, only summaries, so that, for example, 85 sales of product xyz are shown on a single line per currency. The next line might show 34 sales of the same item in another currency. This works fine so far.
In the trailing grand summary, I'd like to show the total like so:
Total sales, US$: 2346.50
Total sales, EUR: 3562.52
This doesn't work the way my parts are set up, since I can only have the number field calculated once and FM just adds up all the numbers regardless of the currency. Can this still be done somehow?
Thanks in advance,
I've recently added FM10 to my MacBook Pro that runs on Mavericks. When trying to format a date field, I get the box in the attached screen shot. The date field on the layout looks accordingly, so it's not just a dialog box display problem. Any idea what's going on here?
By Justin Close
I was doing a bit of work for a client who is running FM9 clients, connecting to a file hosted on an FM11 server. I don't have FM9, so was doing development on FM11. I thought I had checked out that everything was compatible, but I somehow generated a calculation that doesn't evaluate on 9, but does on 11. The components of the calculations and custom functions used all appear to be innocuous... I am hoping someone here knows what I tripped up on.
Here's the field calculation, and the 2 custom function definitions that it uses. The entire point of this calculation is to take a mish-mash text field that they have and make it sort nicely. For this bit I added, I'm just concerning myself with sorting some suffix numbers that occur between parentheses, e.g. 12345(A-1).
Field calculation definition: Let ( [ _fileNum = Files::File Number ; //Position of 1st open/close parens, and then extract the text between them: _sParen = Position ( _fileNum ; "(" ; 1 ; 1 ) + 1; _eParen = Position ( _fileNum ; ")" ; 1 ; 1 ) ; _suffix = Middle ( _fileNum ; _sParen ; _eParen - _sParen) ; //Count the leading digits before any non-digit character, e.g. an alpha, or dash or space, etc. _count = CountPrefixDigits ( _suffix ; 0 ) ; //Remove extraneous characters (dash, space): _suffix = Substitute ( _suffix; ["-";""]; [" " ; ""] ) ; //Pad out the string to min 5 characters (helps 75-A sort next to 75): _suffix = _suffix & Left ( "!!!!!" ; 5 - Length (_suffix) ); //Reverse the character sequence (so the Code() call works out better): _suffix = ReverseString ( _suffix ) ]; _count & Code ( _suffix ) //prepend the digit count, but don't encode that count, just the rest of it ) -------------------- 'CountPrefixDigits ( aString ; aCounter )' custom function: If ( IsEmpty ( GetAsNumber ( Left ( aString ; 1 ) ) ) ; aCounter ; CountPrefixDigits ( Right ( aString ; Length ( aString) - 1 ) ; aCounter + 1 ) ) -------------------- 'ReverseString (aString)' custom function: If ( Length ( aString ) > 0 ; ReverseString ( Right ( aString ; Length ( aString ) - 1 ) ) & Left ( aString ; 1 ) ; Left ( aString ; 1 ) )