Jump to content

cincin

Members
  • Content Count

    22
  • Joined

  • Last visited

Community Reputation

0 Neutral

About cincin

  • Rank
    novice
  1. The current file format has been active since FMP12. Judging by previous versions and how often file compatibility gets broken, it seems we're due for a new file extension soon. I'm at the point where I need to update a complex database that was created in FMP11. It's not an emergency so I'm debating wether it's worth waiting another 18 months or so until we get FileMaker 20 to convert it to .fmp20 directly. But if we know there won't be a new file extension, I'd start now in FMP18. Do we have any intel on FileMaker 20 file compatibility? Cheers!
  2. The process of submitting that form can be seen in action here: http://sellonline.canadapost.ca/DevelopersResources/protocolV3/HTTPInterface.html
  3. Hello, I'm trying to setup a WebViewer that would get a shipping quote from the CanadaPost server. It seems it should be fairly simple. In the attached HTML file the entire xml is taken from a field of the form. I want to turn it into a PHP file that takes the various pieces of data (not the whole XML) from the URL so I can have a WebViewer that's set to refresh http://www.myserver.com/getcpquote.php?CPCID=CPC_DEMO_XML&FZIP=mip1c0&TAT=24&...... And give me the text string of the server reply in a variable or field so I can parse it a present it to the user. How ? Thank you :
  4. Hello all, I'm trying to adapt a php osCommerce shipping module to FMP so that I can provide shipping estimates from within a FMP DB. The thing is, I don't know php or xml, I also haven't really had the chance to play with the PHP, XML or even web viewer part of FMP, so I need some help. The php looks rather simple, it forms some XML using the data provided, uses an HTTP POST to send it to the Canada Post server and then parses the resulting XML back from Canada Post. I'm pretty sure I can accurately recreate the XML with my data in FMP. The part I'm not sure about is how to send it and get the reply. The php goes like this: /* using HTTP/POST send message to canada post server */ function _sendToHost($host,$port,$method,$path,$data,$useragent=0) { // Supply a default method of GET if the one passed was empty if (empty($method)) $method = 'GET'; $method = strtoupper($method); if ($method == 'GET') $path .= '?' . $data; $buf = ""; // try to connect to Canada Post server, for 2 second $fp = @fsockopen($host, $port, $errno, $errstr, 15); if ( $fp ) { fputs($fp, "$method $path HTTP/1.1n"); fputs($fp, "Host: $hostn"); fputs($fp, "Content-type: application/x-www-form-urlencodedn"); fputs($fp, "Content-length: " . strlen($data) . "n"); if ($useragent) fputs($fp, "User-Agent: Oscommercen"); fputs($fp, "Connection: closenn"); if ($method == 'POST') fputs($fp, $data); while (!feof($fp)) $buf .= fgets($fp,128); fclose($fp); } else { $buf = '<?xml version="1.0" ?>Cannot reach Canada Post Server. You may refresh this page (Press F5 on your keyboard) to try again.'; } return $buf; } function _canadapostGetQuote() { $strXML = "<?xml version="1.0" ?>"; // set package configuration. $strXML .= "n"; $strXML .= " " . $this->language . "n"; $strXML .= " n"; $strXML .= " " . $this->CPCID . "n"; $strXML .= " " . $this->_canadapostOriginPostalCode . "n"; $strXML .= " " . $this->turnaround_time . "n"; $strXML .= " " . (string)$this->items_price . "n"; // add items information. $strXML .= " n"; for ($i=0; $i < $this->items_qty; $i++) { $this->item_description[$i] = str_replace("&", "and", $this->item_description[$i]); $strXML .= " n"; $strXML .= " " . $this->item_quantity[$i] . "n"; $strXML .= " " . ($this->item_weight[$i]) . "n"; $strXML .= " " . $this->item_length[$i] . "n"; $strXML .= " " . $this->item_width[$i] . "n"; $strXML .= " " . $this->item_height[$i] . "n"; $strXML .= " " . $this->item_description[$i] . "n"; if ($this->item_readytoship[$i]) $strXML .= " n"; $strXML .= " n"; } $strXML .= " n"; // add destination information. $strXML .= " " . $this->dest_city . "n"; $strXML .= " " . $this->dest_province . "n"; $strXML .= " " . $this->dest_country . "n"; $strXML .= " " . $this->dest_zip . "n"; $strXML .= " n"; $strXML .= "n"; //print $strXML; if ($resultXML = $this->_sendToHost($this->server,$this->port,'POST','',$strXML)) { return $this->_parserResult($resultXML); } else { return false; } } Any hints ? Thank you
  5. Hello, Thanks for the reply. I tried the double quotes and it didn't work. I also tried a single space within a single and double quotes, still no go. But THEN I tried and empty single quote WITHOUT the curly brackets and it worked! yay So for future reference, for posterity: INSERT INTO Untitled ("date", "time") VALUES ('', {9:00:00}) does the job.
  6. Hello, I'm using the MBS FileMaker plugin to run some SQL queries on my FileMaker 10 file. I am not using an external data source, the SQL acts directly on the tables in my FMP file. One oddity with SQL in FileMaker is the syntax surrounding date and time fields where you have to enclose the field name in quotes and the value in curly brackets {} like so: MBS("FM.ExecuteSQL"; "INSERT INTO table_a ("date", "time") VALUES ({" & table_b::date & "}, {" & table_b::time & "})") This query works as long as the date and time fields of table_b are not empty. That is to say that the following query works: INSERT INTO Untitled ("date", "time") VALUES ({10/06/2009}, {9:00:00}) but the following query fails: INSERT INTO Untitled ("date", "time") VALUES ({}, {9:00:00}) I have tried putting in a zero if the date is blank but it actually injects a zero time into my date field... like 0:00:00 I know that I can achieve that while composing the SQL query with FMP calcs by making the date and time fields conditional on them having a value but that complicates my queries quite a bit and makes it all much harder to read, plus there has to be a proper way to tell FMP to set a date field to '' using a SQL query. Any ideas ? Thanks!
  7. I would have to add that at the top of ALL the scripts that commit the records, there are a lot. So far it's the only solution I see though...
  8. Hello, Thanks for replying. The "Commit Record" step would trigger the validation script on the field but the problem remains: if the validation fails then the record cannot be committed (can't navigate to another layout) yet the nav script keeps going assuming the layout has been changed... Thanks for the help though, short of modifying all my nav scripts I'm still at a loss as to how to solve this one... Cheers
  9. Hello, I've setup some field validation using script triggers and it works well. My script has an Exit Script Result: 0 step to prevent the user from leaving the field if the data fails validation. My solution, like many, also makes use of scripted navigation and that's where the problems start. If the user modifies one of those fields and then hits a navigation button the navigation script is triggered first. Then, upon reaching a script step that takes the focus away from the field, the field validation script gets triggered, the validation fails with an Exit Script Result: 0 and the focus remains on the field, but the navigation script keeps going... so I get a bunch of error messages since the script assumes you have left the field/layout, which in fact did not happen. I can't have both an Halt Script step (to halt all running navigation scripts) AND an Exit Script Result: 0 (to prevent the fiels from being exited)... So how do I run a scrip trigger field validation script that can halt running scripts AND return a False for the field navigation ? It seems I shouldn't be the only one having this problem but I couldn't find anything about it anywhere, it must be really obvious that no one has had to post about it... Thanks for pointing me in the right direction.
  10. Ok, whoever comes up with a solution to this one will make it into the FMP Hall Of Fame. I can imagine a multitude of scenario where such a function can come in extremely handy. The goal: Comparing 2 text fields and coloring the differences. Like: Field 1:The [color:red]quick brown [color:red]fox jump[color:red]s over the lazy [color:red]dog. Field 2:The [color:red]fat lazy cat jump[color:red]ed over the lazy [color:red]fox [color:red]last night. It should be usable on very large texts. I'm pretty sure it's feasible with a recursive custom function, or a smart script, but I know it won't be easy... so CALLING ALL SMART PEOPLE (that includes you, the ones that are too smart to think they're smart). I've seen people do magic with custom functions, this has to be feasible. If you come up with a custom function based solution you should also make sure to go and post it a Brian Dunning's Custom Function collection, insuring international fame and recognition. Thanks for the help!
  11. Hello all, Two fellow developers and I are working on a FM9 solution that's to be boxed and sold. We are hosting the file on FMP 9 Server Advanced (Mac) and working on it using FMP 9 Advanced (2 of us on Mac OS 10.5.1 and 1 on Windows Vista). Our solution makes use of a Back and Forth navigation system based on a slightly modified version of SeedCode Back Magic. The system uses various global variables to store the back and forward navigation trails and such. We just recently started experiencing very bizarre behavior with the the Back and Forth script, more precisely with the setting of global variables. I'll note that the script was working fine then started to act up without any modification. The problem is easy to isolate, the script step: Set Variable [$$Nav_InUse; Value:"Yes"] sets the variable to "" Further more: Set Variable [$$Nav_FWDStack; Value: LeftValues($$Nav_BackStack; 1) & $$Nav_FWDStack] works and sets the variable to the first value of $$Nav_BackStack BUT: Set Variable [$$Nav_BackStack; Value: RightValues($$Nav_BackStack; ValueCount($$Nav_BackStack) - 1)] {I don't know why but FMForum adds spaces to my variable names in the line above...} doesn't affect the value of $$Nav_BackStack but instead clears $$Nav_FWDStack... Looks like corruption to me. I called FMP's tech support but they were of very little help, the person I spoke to confirmed that it was indicative of corruption in our file but could not suggest a way to detect it, much less correct it. He said something like:"Global Variables are a bit screwy when used with FMP Server". If I could do that phone call again I'd get him to elaborate on that statement... alarming. I have tried recovering the file using the FMP Recover function, which did not report any corruption, did not skip anything and reported a recovered file size just slightly under my original file size. The resulting recovered file was actually slightly bigger than my original file. So it doesn't look like the recover function did much more than optimize the file content. The "bug" behaves exactly the same after the recover. I examined the file with FMDiff which reported no corruption. I tried creating a new script within the same file and re-writing those faulty Set Variable steps and the new script worked fine. Running a duplicate of the faulty script within the same file causes the same bug. Copying (copy, paste) the faulty script steps to a new script within the same file causes the same bug. Copying the faulty script steps to a new script in a new empty file works and the steps behave as they should. Rewriting the faulty script steps in the original script and original file causes the same bug. Importing the faulty script in a new file worked fine and the Set Variable script steps behaved as they should. So at this point we're a bit stuck... Rewriting the script would probably cure the symptoms but we're quite reluctant to keep working on a file that probably contains some sort of corruption, considering that this DB is to be boxed and retailed then updated to future versions. But we have no way of detecting the corruption other than witnessing the symptoms and so even going back to backup is a shot in the dark. So my questions to you, fellow developers, are: Have any of you had any such problems with setting variables ? Have any of you had any sort of problems with variables (on a server hosted solution or not) ? Can any of you suggest a way to detect the corruption (allowing us to go back to a clean backup) ? Can any of you suggest a best course of action to follow to minimize the risk of building on a potentially corrupted file ? Should we avoid developing a solution while it's being hosted (this allows all three of us to work at the same time) ? Should we give up on using global variables ? any variables ? Any insights are greatly appreciated. Thank you!
  12. Hello, I am trying to setup a fairly complex DB for data separation in FMP 8.5. I would like to ultimately end up with 2 files: - The data file which would contain only : *The data tables, with only data fields, keys and log fields (creation date etc...). *A table for user preferences and other user globals *A table for the user specified value lists - The GUI file which would contain everything else: layouts, graphics, scripts, non-user value lists, cascading delete structure, all calculations but NO user data. The obvious advantage being that I can distribute the solution and update it at anytime simply by replacing the GUI file. Of course, so as to allow expansion, the data files will include pre-created generic data fields of all types (text, numbers, dates etc). I am thinking 10 to 20 spare fields in each table. The GUI file will contain an informative developer table to keep track of what all those spare fields contain once in use. The calculations is where it gets spicy. At this point I have considered a first approach which goes as such: A Calc table in the GUI file that contains a single record and a large number (large enough to allow expansion) of text fields per table in the data file, properly identified as belonging to a specific data table and numbered, to store all the calculations, along with other fields to store developer information regarding the calcs. A number of pre-created calc fields of each type in the data file's tables that are all preset to Evaluate() their equivalent in the Calculation table of the GUI file. This way I can have the layouts in the GUI file, showing records from the data file tables with all the calcs being evaluated properly from the data table's point of view. I can replace the GUI file anytime to update the solution granted that I don't run out of spare data fields or spare calc fields. I can update the calculations, scripts, layouts, cascading delete structure, relationship structure etc. The only things I can see not being able to do is to create new auto-enter fields, serials, lookups, summary fields or to change validation options. Most of those behaviours can be replicated by scripts. The main concerns that I have with this model are: - Only unstored calcs are possible. Since all the calcs in the data tables are evaluating the fields in the related Calculations table, they cannot be stored and so cannot be used to form relationships. FMP 8.5's cool multi-key relationships does render the use of concatenated keys pretty much obsolete but I'm not sure I won't need stored calcs at some point. - No taking advantage of FMP 8.5's auto-enter calcs. Placing the Evaluate() in the auto-enter calc option of fields of the data tables simply doesn't work. The calc never gets evaluated. So then the question is: How else can I separate the data ? Any other proven efficient data separation models out there ? Is the model described above really the way to go ? Am I missing something somewhere ? Hints, tips and considerations are greatly appreciated as I want to make an educated decision before building my solution. I took a good look around looking for previous posts or published white papers on the subject but couldn't find anything that would shed light on my concerns. Thank you all for your help.
  13. Hello, I too am looking for a way to ouput claim info into a print image file, did you figure it out ? Cheers
  14. I too am looking for a way to export claim data to the ANSI format, have you figured out how to do it ?
  15. Hello Vaughan, Thanks for your reply. I was trying to spare you all the details but to answer your questions and statements: - The reason I want to use the Caps Lock key is because all the other modifier keys are already used for other purposes. I originally used the Option/Alt key instead but it triggers the menu keyboard shortcuts in Windows and that's a problem. - I am aware that the modifier key event will be triggered even if the user is in another app, it's all part of the plan and actually necessary to my solution as the user WILL be working in another app (another FMP solution). That being said I am still looking for a way to change the state of the Caps Lock key, any help/hints is greatly appreciated.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.