apex default amount of rows per page option - oracle

How can I set default amount of rows per page for interactive report?
I need this value to be applied for all interactive reports that do not have this value overridden. The reason why I need that is the following: it is cumbersome to set necessary amount of rows for each created interactive report and when it comes to updating that value it becomes a nightmare.

For interactive reports, you can modify the default number of rows displayed by selecting the appropriate number of rows and then saving the report with the option "save as default report settings" (when logged in as an APEX developer).
Unfortunately, this has to be applied to each report.
For a mass update, a thread on OTN mentions:
There is a display_rows column in the WWV_FLOW_WORKSHEET_RPTS table in your apex application schema. You can do a global update, where the flow_id equals your app_id.
This has not been verified, use at your own risk (unsupported by Oracle).

Related

Form WHERE clause

I have an APEX form I'm developing for "user settings". I have a table with a sequence as a primary key and the users ID in another column...in addition to a few columns where each users saved settings are stored (things like "N" for do not receive notices).
I haven't used Oracle APEX in a while so excuse this likely newbie question...The insert works fine, but I'm having trouble with making the form only show the current users values. In my Form Region the source is set to my Table, and I have a WHERE clause like this:
USER_ID = 813309
But that's not working (813309 is my id and I'm just hard-coding it for now). The form always comes up with a "New" record.
For a form to load a specific record you can set the primary key page item to the value you need. You can do so in the url using the link builder from another page or you can set a computation on the item. That is what I would try in your case: add a computation to your item P_USER_ID of type "Static Value" with value 813309. Make sure the computation happens before the "Fetch Row" - the value obviously needs to be set before the process runs.
In such cases, I prefer creating a Report + Form combination (using the Wizard, of course): it creates an interactive report (so that you can review data in a table), and a form which is used to add new records or update/delete existing ones.
Doing so, when you pick a user in interactive report and click the icon at the beginning of a row, Apex redirects you to the form page, passing primary key column value to the form which then fetches appropriate data from the table.
Not that it won't work the way you're trying to do it, it's just simpler if you let Apex do everything for you.
So: did you create an automatic row fetch pre-rendering process? If not, do so because - without it - Apex doesn't know what to fetch. Also, if you hardcoded user_id, it won't do much good. Consider storing username into the table so that you could reference it via :APP_USER Apex variable.

Oracle APEX - Interactive Grid populate ID

For my Oracle APEX 5.1 application I am using an Interactive Grid which allows the users to insert multiple rows for an new issue (e.g. multiple activities). The ID is populated by an trigger.
After saving the interactive grid (separate button because I have multiple IGs on my Page), I cannot populate the ID to the new rows. But the rows need to have the same ID in order to find the correct amount of the activities.
Also I cannot update single rows. An error occurs or the whole grid updates and not a single chosen row.
Any help is appreciated. Thank you.

What determines default Interactive Report column layout in Oracle APEX 5?

I have an Interact Report page in Oracle APEX 5 that includes a SQL Query with ~10 columns or so. When I first load the report, the columns are in a certain order, and columns are set to Do Not Display (as seen under Actions -> Select Columns). The default order does not seem to match the order in which I list them in the SQL Query, nor does it use the order that is found in the Page Designer, under {Page Name} -> Regions -> Content Body -> {Interactive Report} -> Columns. I have two questions about the way columns are displayed in the Interact Report component:
What determines the default order of these columns?
What determines which columns are set to Do Not Display and those set to Display in Report?
Are those settings saved for each user?
First of all, you should probably take a good look at the documentation. Plenty of useful things. The main thing you're looking for in this case would be about saving interactive reports.
In short though.
When first having created the IR the columns will be in the same order as in the select statement.
Afterwards, there is no longer a relation between position in the select statement or the order of the columns as seen in page designer.
Instead, the initial order has been used to create an initial Primary Default report.
From this point on, column position and being hidden or display solely depends on the settings in the "Select Columns" menu.
If you want to alter the default offered to the end user, you'll have to run the page, alter the IR, and save your settings through Actions > Save Report and selecting Primary Default.
Settings saved for each user? Yes and no. End users will be offered the primary default at first. If multiple defaults are present the application will remember which one they have last been working on when coming back.
Users can also save private versions of reports, or public ones, if enabled. They can then edit the report settings, but these settings only affect their own report in that same session. If not saved, all changes they made settings-wise are lost and they'll be presented with the defaults again next time they log in. (or perform a reset themselves).
Unless you take all control away of course, by configuring the Actions menu of the IR.
I was hoping to edit saved reports in the Application Builder, but I guess this is not available (at least in 5.1 that I'm using).
This helped me:
SELECT FLOW_ID, PAGE_ID, REPORT_ALIAS, STATUS, IS_DEFAULT, DISPLAY_ROWS, REPORT_COLUMNS
FROM apex_050100.WWV_FLOW_WORKSHEET_RPTS
WHERE FLOW_ID = 101
AND page_id = 25
;
Then I edited that table updating columns list or other attributes of the saved report.

Calculated Column Menu Option Disabled in Spotfire

I am a complete rookie to spotfire and am trying to create a calculated column but the menu option is disabled and can't figure out why. It feels like something thats really simple. Can anyone help me out? My data source is a connection to a Microsoft SQL Server database.
First, if there is no data loaded, the Insert Calculated Column option will not be active.
Second, if you're using an in-database connection (not an Information Link), then you cannot insert calculated columns. In fact, with in-db connections, there's a lot of things you can't do:
Insert Columns
Insert Rows
Insert Calculated Column
Insert Binned Column
Data Relationships
K-means Clustering
Line Similarity
Data Functions
Regression Modeling
Classification Modeling
Insert Predicted Columns
But ... if you have data loaded and you're not using an in-database connection, I suspect the License for inserting a calculated column is not enabled for you. I don't know if you are an Administrator or not, but here is what I would recommend that an Administrator do.
Open the Administration Manager (Tools > Administration Manager). On the Users tab, search for your username and select it. Then, to the right, click the Licenses tab.
I believe the license for inserting calculated columns is under TIBCO Spotfire Professional and then Insert New Column. Make sure that's checked. If it is, then I'm not sure what the problem is. If it's not checked (i.e., there's a red X), then you'll have to go to the Groups and Licenses tab and Edit the Licenses for either yourself or the Group you belong to.
Be sure to look in the Spotfire Deployment & Administration manual if you haven't already: docs.tibco.com
I think this will get you close. You might consider posting in the Tibcommunity as well. Good luck.

Current version of data in database has changed since user initiated update process

I have a Master Detail form in my Oracle APEX application. When I am trying to update data in this form, I am getting below error.
Current version of data in database has changed since user initiated
update process. current row version identifier =
"26D0923D8A5144D6F483C2B9815D07D3" application row version identifier
= "1749BCD159359424E1EE00AC1C3E3FCB" (Row 1)
I have cleared browser cache and try to update. But it not worked.
How can I solve this?
I have experienced similar problem where my detail records set has timestamp fields. By default master detail wizard creates the timestamp fields as date picker type fields. If you set the date format on these, it would resolve the issue.
This blog post tries to address this issue on a Tabular Form (I know that's not what the original issue was with, but thought it might be related). It says the same as #sangam does below.
Short version: If you have an updated field that's timestamp datatype, you should set a date/time format.
http://apexbyg.blogspot.com/2015/05/tabular-form-bug.html
My tabular form has a field that's timestamp datatype, but I had already set a date format, so this didn't help me.
Here's another possibility, which I discovered was the case in my application.
That would be if the data the original checksum was calculated on is truly different than the pre-update checksum calculation, due to a design-flaw in your query!
In my application, the source for one of the updateable fields was COALESCE(name_calced, name_preferred). In the source table, the person's name could already be loaded in the record by an external process and we save it to one field - name_calced. But the end-user can enter a preferred name, which we wanted to save to the name_preferred field. We wanted to initially populate the displayed, updateable tabular form field with name_calced, if one existed, or name_preferred if the user had already provided a preferred name. Then they could change that value and save it back to the database.
I finally discovered that the Save action threw the error message if name_calced was non-null, but name_preferred was null. I realized that the initial checksum was calculated based on name_calced, but the pre-update checksum was based on name_preferred, so the application thought someone had changed the value in the background and showed the error message.
What I don't understand is how this problem didn't show up in the past 3 years the application has been running in production!
My solution is to make the field source only on name_preferred, which immediately solved this problem. I also think the back-end process will also get changed to pre-populate that table field from name_calced, so the user always sees the base value, if there is one.
I just had this issue myself. Now, I realize that tabular forms are deprecated at this time, but I have an application that was developed beforehand and still uses them. This issue occurred and I had to get one of our big guns at Oracle to help me out. I do a lot of DB work and a decent amount of Apex development but I'm more of a Java, WebLogic, etc guy, and I really couldn't figure this one out.
In my case, it turned out to be really simple. One of the columns in my tabular form was a hidden field, generated via a sub query. Being hidden, this column is not editable by the user and should not be part of the MRU update. I had the field set to "Hidden Column (saves states)" and setting its type to "Hidden Column" fixed the issue. So, this leads to sub queries being executed in such a way as to change the checksum for the overall query before hitting submit (save), causing the error.
For those who are continuing to troubleshoot this, look at your query for every field that you have specified and note which columns are editable in the tabular form. All other fields should be set in a way that makes them not save state so that they are not part of the update.
I had this error when I had two update processes processing on submit.
My solution was to add a condition to both processing steps. I had forgotten to do this when I made an additional process for Button A, but I never updated Button B to limit it's behaviors.
Navigation:
Processing -> Processes -> [Your Process Name] -> Server-side Condition -> When Button Pressed = [Your button Name]
In my case I had a column from a secondary table that was not set as Query Only and was being updated! The error would occur trying to save a column not in the table being updated. It took me half a day to figure it out (the column names were the same).
Set your Link column hidden to display only in the form.
Set "Send On Page Submit" to 'No' or disable the link column that is your primary key ( Rownum/rowid/id etc).
Hope it will work for you.
I have noticed this error comes when I was working Tabular Form and has disabled one of the form operations i.e. by setting server-side condition to "Never" for add, apply changes (submit) buttons
When I have restored back to its original state, it worked as expected.
In case you have to hide Add/Update button, use some other option.
https://compknowledgebase.blogspot.com/2018/12/oracle-apex-error-current-version-of.html

Resources