This is driving me nuts and I can't for the life of me find anything and it seems like such a small problem. I have been trying to google stuff but half the results lead to dead broken links. So here I am.
I am trying to create a SIMPLE report with Active Report 10 just textbox nothing fancy. I have to data sets A and B. When I click on the textbox to assign values at the initial start I am asked which data set I want A or B and such.
Now after the first initial assignment I lose the option to switch and use the other data set. I know I can switch between data set because I have seen it done in other reports that are sent to me and I tried setting the data set name in the property but nothing works.
This seems like I am missing something blatantly obvious. This is all done inside the designer and no code behind.
I feel dumb after fiddling around I created a new report and try another template and used RDL report instead of page report. That seems to have done the trick . . . god knows why they all you to add multi data set and can't use it in page report.
Related
I'm trying to create subpanel in Account detail view where list of elements is fetched from external REST service.
I know how to define subpanel, but have no idea how to fill it with data from external network source. Was trying to use get_subpanel_data but there I can only change SQL.
Any ideas how can I do this?
When I've done this in the the past, at least with Sugar 6, I opted distinctly not to try to create a true subpanel. The data being loaded is coming from an outside source and is loaded dynamically with the page, so why present it as if it's static data coming from Sugar? Instead, I created a custom Smarty template to use as the footer on the detail page. For such an example, you can check how it works on the Calls Edit View. I think it's the footerTpl parameter in the detailviewdefs.php or editviewdefs.php. I loaded the smarty template by creating a custom detail view for my module, so custom/modules/MyModule/views/view.detail.php - extend the base Detail View class and override the display to feed Smarty new params, then your Smarty template only needs to iterate through and present the data that your view defined.
To be super-hip and abide by MVC, you could even put your custom code into your bean (if it's a custom module) or into a custom controller method, then reference that from the view.detail.php, and still feed it from there to the Smarty template.
Alternatively, you could just load JavaScript into the Smarty template and use the JavaScript to call the third-party service, parse and present it, etc.
I realize this question is a little bit old now however it comes up fairly often so why not provide an answer with a couple possible solutions. I won't get into code but more just into the design theory of how it can work. If someone needs more specific code help then that is another question.
A couple ideas...
As you mentioned you can define a custom Function which will load in Data to the SubPanel from your own SQL Query. That is one method that I just recently got to finally put to use after knowing about it for a good year and a half.
When you go this route, you are restrained to using the Columns in the SubPanel. I assume it is using the actual Metadata files to determine which Field Columns a SubPanel can use so you pretty much need your custom data in a Database table to have the same column names as the fields defined in the SubPanel Metadata.
Obviously this works great in the right situation, however not always and that leads us into the 2nd method I know of.
The other way is pretty much what #Mattew-Poer mentioned in his answer. It means abandoning the SubPanel altogether and instead generating your own HTML. This is by far my favorite and prefered way of doing it and I have been some really custom modules due to this being possible in a custom module! I will show an example below.
(Click HERE to View full size image)
In the screenshot, you can see in this example that I have something looking Similar to a SubPanel however it is not and is much for flexible and easy to customize.
Example, to the far left column in my fake subpanel is image checkboxes. When clicked on, an AJAX request is made to change the Task row Status.
After that, the checkbox image is updated to indicate the new Status state, the Modified DateTime is updated, the Status column has color background SPANS and is also updated with the correct text and background color when the left side checkbox is clicked.
Doing any of this with the standard SubPanels is a complete nightmare and would be difficult to do some of the stuff that you are open to do when you build your own version of a SubPanel.
With that said, I have built an identical clone of the above screenshot using SugarCRM default SubPanels! It was a nightmare. I could easily update the content and HTML in some of the columns. I even had the AJAX click checkbox image to update and do all the other updates I mentioned above. It wasn't too hard and worked fairly good but it had some issues.
When you do inline edit, inline create record, or subpanel paging to load different set of record. You would then lose all the custom HTML formatting that was applied. The reason is, in the SubPanel you are limited to using the After UI load logic hook. So since the "Page" is loaded already, when an AJAX request is made to add/edit the subpanel content or load a new set of items with the paging links. It only loads the SubPanel content on those events and the whole Page content does not reload. Because the logic hook only fires off 1 time after the page loads, this newly loaded subpanel data doe not receive any of your custom HTML formatting.
In my case, this means that nice looking colored background Status spans are lost, the image checkboxes are lost, and some other functionality is lost.
Now to get super technical, I could have gone another 3rd route and instead made new Custom Field Types for each SubPanel filed that I needed to apply custom HTML to. This process is super hard in my experience and in some cases it really isn't the BEST solution.
Because of the reason explained, this is why my new modules use the Custom HTML route to generate my own version of a custom subpanel or whatever Data is needed in my Module pages! So far it is working better than I imagined and has opened doors for me to build custom SugarCRM modules that I previously didn't even realize would be possible to build due to some of the issues I mentioned above. Now I bypass them altogether and open the door to do pretty much anything!
I've got some really cool stuff for SugarCRM in the works right now. If anyone has any questions feel free to ask in a new question or for me personally in a comment here.
G'day!
I'm using a command to bring up information from our main pay database. This part of the report is working just fine.
I'd like to be able to prompt the user to specify their datasource location using a parameter field, in case they'd like to be able to use one of their pay test databases. Kind of like prompting for a date, but being able to connect to a different database.
Is there a way to do this? I'd thought maybe creating a {?source} parameter field in the command, and beginning the command with USE {?source}, but it doesn't really feel right, or like it would work as I'm basically trying to change the current connection through code.
Thanks for your time!
This is possible but the moment when the report is started will be too late to set the datasource.
You can create some logic in your app to get the desired datasource and when the user starts the report you will set it
I'm coming accross a problem and i have searched the entire World Wide Web:
I have a Navigation form which has forms in it.
Those forms are used to give properties to my queries.
For example:
FormStatus-->Ask user to select the status and shoot the value to the query.
These queries build reports.
The main problem is that now that my form is in a navigation form, the link for the property is no longer working.
The link used to be : Forms!myForm!myProperty
Now i tried
Forms!navigationForm!myForm!myProperty
Me!myForm!myProperty
Forms!ParentForm!SubForm.Form!FieldName
Nothing works out!! Can anybody help me?
As a general approach to filtering forms or reports, as you can see placing forms! references inside of forms becomes a rather messy business real fast here.
You are best to remove the forms! references from ALL your queries. You then build a form that the user enter the values into, and then execute a browseto command.
The problem you are experiencing here is that the new navigation form swaps out a given form for a new form. This means that the old form is NOT loaded anymore. So, either you
Plan A
Dump use of forms! commands in your SQL queries. This is a good idea anyway since then one query will not blow up because some silly form is not open. And more important the query can be used in other places in the application without fear of some form not being opened.
The instant you place a forms! reference inside of a query is the instant you ruin that query and force "marry" that query to one form that must be opened.
Plan b:
Dump the use of the new navigation control system. Just remember, the new navigation system does NOT load the next form, but "replaces" the one that is being displayed. Thus the previous form is not going to be loaded anymore and thus no forms! ref is allowed. Worse, since the navigation form is really using sub-forms, then the forms! references have to be changed.
You can certainly grab the values of controls and build a where clause in code and use that for openform or open report commands here.
Last but not least, if you in for lots of continued torture, you can stick with your poor design you have now and simply re-edit and fix all of the forms! references to reflect that they are now being used inside of a parent form, and all of your forms are now in effect being run as sub forms.
Try using a dot instead of ! before the property Forms!navigationForm!myForm.myProperty
I've recently started using filemaker to create some contact databases. I played around with one of the templates and after having tweaked the template to a point where its got all the data I need on it, I've found that I messed some things up in the process.
All the things listed below seem to have been affected.
'View Contact List Report' no longer works
'View Address Labels' no longer works
(Both show a prompt saying "no matching records were found")
the avery label printer doesn't show anything more than the name of each record.
(NB: All of these were working fine with the standard untouched template)
I'm guessing that because I altered the names of the fields, their corresponding scripts, calculations are no longer valid..
Where do I go to fix these scripts/calculations/etc (i.e. replace old field names with new ones..) is there any way I can edit the current ones or have a shot myself in the foot?
It sounds like you deleted some fields. If you simply renamed fields then the scripts should still work, unless you changed the data around drastically (perhaps the script is doing a find on a field that should contain some specific type which is no longer set in the field...) Go to layout mode, find out what script the button is calling and then open the script and re-set any set field steps that are calling missing fields and you should be good to go.
FileMaker doesn't normally rely on names, so users are free to rename everything. It's possible to write code that does depend on names, but it must be an explicit decision and I'm not really sure they did this in templates.
But who knows; to check this figure out which scripts run these reports. To do this switch to the layout mode and double click the buttons (or right-click and select "Button" from the context menu). Open scripts, find the script there, and see if it does anything suspicious.
I'm currently using CR 2008 for design and running my reports in InfoView. I have a fairly standard report with about 6 groupings and 2 details sections. The groupings are all hierarchichal and can be drilled into. The report contains 5 parameters that the user has access to edit in Infoview.
My problem occurs only when users change any parameter on the report and then attempt to drill down in the report. The result always ends up that the drill down will display the very first Group, with drill down, in the report rather than the one they selected to drill into. If a user enters the report and drills into any group without changing the parameters, everything works as expected.
Has anyone ever seen this kind of behavior or know of a reason that this might be happening? Please help.
Thank You,
Patrick Johnson
This is a bit of a reach, but when you change the parameters, are you refreshing the data (ie. don't use the saved data that was pulled originally). I believe something may be going wrong because of that.
Always, always, always choose to refresh your data.