Tutorial to create custom reports on Oracle APEX 5 - oracle-apex

I am new to Oracle APEX 5 and I am looking for a link or tutorial to achieve below.
Create a custom report with a parameter (date).
Go to shared components > report queries (add your sql statement with parameter. Test report with Bind Variables and works fine)
Under manage instance settings I have done the required configurations to print report in PDF
Go to share components > reports layouts (add rtf layout)
Add an item (date picker) on a page so that user can select a date.
Go to page and add date picker as an item. It works fine
Pass the date selected as a parameter to the custom report and generate output in PDF.
Under report query > session state, I have enabled include application and session information. There I selected the item I created on my page. The item name is the same name as the parameter name in my SQL script.
On my page I have also include a button that will trigger the report. The button is linked to the report by the URL.
This part fails and I am unable to get a report based on the date I selected in the date picker item.
I have done numerous research but could not find a single place where they explain how to proceed.
Any explanation, link or tutorial would be greatly appreciated.

For instance your page item which stores the date parameter is P9_DATE, you have to pass the page item P9_DATE as a parameter to redirect URL on button click as https://example.com/apex/f?P=&APP_ID.:0:&SESSION.:PRINT_REPORT=<REPORT_NAME>:::P9_DATE:&P9_DATE.

Related

Oracle APEX form on table, don't reset table pagination after changing values through the form

I have a form on top of a report, and when the user updates values in the report, the form pops up, they make edits, and then click "Apply Changes". There are many rows in the report and right now I have pagination set per every 15 pages. The report is set to enable partial refreshes so the data updates right after the user clicks "Apply Changes". However, if I am on any page other than the first page of the report, it resets the pagination and brings me back to the first page. Is there a way to update the report but stay on the page I'm making the edit for? That way the user can immediately see the change they made through the form.
I was able to solve the issue by using a Dialog Closed dynamic action executing the following javascript:
window.location.reload(false);
It refreshes the browser after the user makes edits, and the pagination does not reset. This is a workaround because the Refresh dynamic action resets pagination. Again this is in APEX 5.1.3.
Which Apex version do you use? I've just tried it on apex.oracle.com which runs Apex 20 and - no problem at all. Once I edit some value in a form, branch returns me to interactive report, to exactly the same page which I left.
Check branch's Behavior - it is set to redirect to page or URL, target is page where the interactive report is; check other properties for the target. Its action should be set to "None" (offered are: clear regions, reset regions, reset pagination which might be set in your branch properties).

Showing message based on selected answer from select field

I was wondering if anyone knew how to show a message on the web page based on what is chosen in the select field. For example, in the database for the selections in the select field, each item has a id, name and finish attribute.
If orange is selected from the select drop down, I was wondering how one would go about showing the finish attribute of the orange on the page. And this is to be done without hitting submit. I use sql-alchemy for the database and Flask-WTF for the forms.
As per the comment you need to:
1) Code a Javascript event function to activate on select field change
2) Make that Javascript function call a Flask API route via Ajax which returns the database information.
3) Dynamically update your page with Javascript based on the returned values.
Personally I like Vue.js as a javascript framework. Google Flask-Ajax - I think Miguel Grinberg has some good tutorials and example code on this stuff.

How to build a tabular form or editable interactive grid on an existing page in apex 5.1.3?

Recently our oracle apex application got upgraded to version 5.1.3. Ever since the upgrade, I am having trouble creating a tabular form or an editable interactive grid on any existing page.
I could create an editable interactive grid on a new page and then add other regions to the page. However, I can't seem to do the other way around. I do not see any options to select an interactive grid in either 'Create Form Region' or in 'Create Report Region'.
Here's the list of options I see when I try to create a form region on the current page:
And for the Report region on the current page:
And for Form Region on a new page:
I couldn't find anyone having such issues in any of the forums, which makes me believe that I must be missing something way too obvious. Any help would be great.
Thanks!
References : https://www.toadworld.com/platforms/oracle/w/wiki/11698.apex-5-1-interactive-grid-compared
Click Create Page. In a list of possible options, you'll see the Legacy Page at the bottom of the list - choose it. In there, you'll see the "Tabular Form" you're looking for.
[EDIT] (as here's much more space to type than in the comment)
I have an old application created back in Apex 4.x. It was not migrated to 5.x (currently, I'm on 5.1.1), only Apex was upgraded to a more recent version, while that application runs "as is". I'm writing this because - maybe true "upgrading" makes things different ...
Anyway: I opened that "old" application and went to edit a page that contains a "Static content" region. Then I added a new region. In a list of possible region types, there's the "Show Legacy/Unsupported ..." at the bottom of the list. I chose it; the "Type" list collapses, but when I returned back to it, it shows "Tabular Form [Legacy]".
If I choose it, I get the message saying
This will just create the tabular form and not the associated processes and validations. To generate the related processes and validations please use the Create Page wizard".
Does this help?

How to save current sysdate in apex

I am using Oracle APEX to build an interactive report, in the edit page, there is a display only field called update time and the value is the last updated time. When I click submit page, I want to update this field to the current sysdate.
What I did is that I created a dynamic action which fires when page uploaded. The action changes the update time field to the current sysdate. However, this doesn't work. I am wondering if there is any other ways to do this? Thanks!
If you have a unique column in your table, you can create a procedure in page processing section and assign it to the submit page button. When you click submit button, procedure will update the update time field.
To make a page processing:
Go to Process section and click create button
Select PL/SQL Code as Process Type
Give a name to your Process
Write your procedure in field. You can assign a fields value like: update table set update_time = sysdate where ID = :P3_ID
You can define success or error message
Define your button to When Button Pressed section
Hope this helps.

List control not visible after adding in Sitecore SPEAK UI

I am fairly new to Sitecore and I am trying to add a list control in Sitecore Speak. While I am able to add a List control and bind a Search data source to it, It is not visible in the page when I run the page. I am not sure what is going on.
Below is the screenshot of the Page layout.
I am using Sitecore 7.5 with Sitecore Rocks version 1.4.
enter link description here
Does the Datasource item you have the list control databound to SearchDataSource in this case have any data?
You can debug in the browser console using Sitecore.Speak.App.DataSource.viewModel.Items() I believe as long as you have your webpage in debug mode and using this query string ?sc_debug=1.
If not update the SearchDataSource components to perform and return the data you wish to bind. The SearchDataSource component will have a few options to set the search you wish to perform.
You shouldn't need a datasource in this case as your data is coming from the Items property which is bound to the datasource control.