Apex Search, place in holding area, repeat until submit - oracle

Yet another Apex question. I am using Apex 5, but suppose it will be similar for older apex versions.
I am basically trying to build a basic sales app that is taking stock out of a Table and adjusting the stock count accordingly.
It is a simple single search field that selects any column from a table and then displaying the result.
P1_Search is the Plain text field and below the SQL query on the search which will return a Tabular form.
select * from TABLE where regexp_like(NAME, :P1_SEARCH, 'i')
or regexp_like(BARCODE, :P1_SEARCH, 'i')
or regexp_like(STOCKCODE, :P1_SEARCH, 'i')
or regexp_like(DESCRIPTION, :P1_SEARCH, 'i')
This is all good and works for each of the columns.
Now the big question. Once I hit the search button I want to have a option to push a button or a text field for numeric values which should then add the selected item into a holding area in the bottom of the page.
So if I search for "bread" I will find the result, select quantity one, or press a add button and this is where the issue comes in. Once I have completed a search for bread and selected it, I start a new search for "milk" which should not clear the selection below for "bread". Once I then have selected all my items and added to holding area, I want to hit a Checkout "button" which carries all the values over to the next page.
It is not for a online site, but an actual Point Of Sales system, so would prefer if I could stick with the apex portion. I have considered moving to external procedures where I can have a perl process running the hold until I submit, but I am trying to do this in Apex mostly and not use my favourite perl language :)

APEX Collections are a perfect fit for this scenario
https://docs.oracle.com/cd/E14373_01/appdev.32/e11838/advnc.htm#HTMDB25878
The are the 'global temporary tables' of the APEX world (logically, not physically.)

Related

Filemaker Pro popover showing a list with values to select from or a searchable dropdown

I'm a FM beginner and would like to know how I can show a searchable dropdown. When I create a product, I need to select a supplier from a large list. I would like to tyoe some characters, from where I find a value in the dropdown. As far as I see now, that isn't possible and the only way to do this is through a popover.
But my question is then, how to show a full table in the popover, from which I can select a value, which is filled in my form.
I would like to tyoe some characters, from where I find a value in the dropdown. As far as I see now, that isn't possible and the only way to do this is through a popover.
Actually, it's the other way around: with a drop-down list you get the option to Auto-complete using value list, which is unavailable with a pop-up menu.
how to show a full table in the popover, from which I can select a value,
You cannot show a full table in a popover. You can show a portal in a popover, and make it show all records in a table by using the x operator when defining the relationship.
Or - preferably, IMHO - use a card window to show all the records you want to select from; this could be the full table or a reduced set as the result of a find.
Selecting products or other related records using popovers always feels slow when you try to search/filter the list of records, with the introduction of card windows doing such searches/selects became a lot faster and easier to implement, if you have 2 different layouts that need to search the same list of records you can use the same card window for both, that was also a nice thing.

Oracle Apex - Download CSV produces an empty report

I am currently using Oracle Apex version 18.2.0.00.12 on Internet Explorer on a computer running Windows 10.
I am having a problem with downloading an Interactive Grid as a CSV file.
On my Apex page I have an interactive grid and three page items. Two of the page items, P200_DATE_FROM and P200_DATE_TO, are Date Picker items. The other item is a button named "Submit" and its action is "Submit Page".
This is the query for my interactive grid:
select * from kat_test
where repairdate between :P200_DATE_FROM and :P200_DATE_TO;
There are four columns in the Interactive Grid:
Issue - Varchar2
Month - Number
Week - Number
Repairdate - Date
The only settings I changed in the Interactive Grid are the title and the SQL query.
I changed the Source of P200_DATE_FROM to PL/SQL Expression that returns the first day of the current month. It is set to be used "Only when the current value in session state is null". The expression is:
trunc(last_day(sysdate)-1, 'mm')
I changed the Source of P200_DATE_TO PL/SQL Expression that returns the current date. It is also set to be used "Only when the current value in session state is null". The expression is:
sysdate
When I run the page, it loads exactly as expected in the sense that the P200_DATE_FROM page item is populated with the first date of the current month, the P200_DATE_TO item is populated with the current date, and the interactive grid displays the correct data.
The problem: When I select Actions -> Download -> CSV, the CSV file downloads and opens as an Excel file, BUT only the header names are displayed. The cells underneath the headers are all empty. However, if I change one of the dates (or both) in the P200_DATE_FROM page item and/or the P200_DATE_TO page item and then press the submit button, the page is submitted and then when I click Actions -> Download -> CSV, the Excel file opens and all of the data is displayed perfectly (both the column headers and the data underneath the headers).
I don't understand why when I initially load the page, the CSV file for the Interactive Grid does not download correctly, but after I click the submit button the CSV file does download correctly.
Does anyone have any ideas?
Thank you in advance.
I think you just need to put the name of these items in the field "Items to submit" next to your SQL. When it downloads, I think it reprocesses SQL using the values ​​of the items that are in the session. If you do not put those items there, the values ​​do not go to the session. Enter the item names separated by a comma. After that, I think any changes is necessary in your SQL
Report's query, probably, contains a WHERE clause which looks like this:
where some_date between :P200_DATE_FROM and :P200_DATE_TO
Modify it so that includes NVL function whose second parameter reflects items' default values, i.e.
where some_date between nvl(:P200_DATE_FROM, trunc(last_day(sysdate)-1, 'mm'))
and nvl(:P200_DATE_TO, sysdate)
Run the page, download CSV; any improvement?

SSRS sort icon not showing up in header but showing up in column values

I am very new to SSRS. Infact this is my 2nd report.So in SSRS, I went to Interactive Sorting and checked the "Enable interactive sort on this text box". Chose the first radio button "Detail rows".For sort by I chose "ColumnName" and clicked ok. I ended up with a sort icon on every value .The data here may seem duplicate but it is correct. I have additional 6 columns apart from this "Product" column. I repeated the sort action for all columns same way, the only difference being the different "Sort by" column. I get the icon on all columns in all rows. I want it on the header only.
Apart from that I get this warning 6 times :[rsIneffectiveSortExpressionScope] The text box ‘ColumnName’ is defined at the scope “Details”, which is identical to the scope used as SortExpressionScope. This interactive sort has no effect at runtime, since it sorts only the particular instance itself.
What is that i am doing wrong ?and what should i do to correct it?
Rt click on the textbox with the Column Name, click on
Interactive Sorting
then Check
Enable Interactive Sorting on this textbox
and then select the appropriate group you want to sort.
AFTER EDIT
if you dont have any groups yet, just select Details Row. If you have/create any group, then you need to select the radio button Group.
The sort by will actually have the column you want to sort with.

SSRS Conditionally remove rows from a table

I am new to SSRS and need to get this working for my project(work not school)
I have implemented the data to be hidden on expression
=IIF(Fields!Offset1.Value = "",true,false)
Problem is that It leaves the empty space where those values would have been in my Report. I need the space to disappear too. Any help would be GREATLY appreciated!!
EDIT: Forgot to mention that I am getting my data from a MS Access DB (if that matters)
After much head scratching and thinking about it differently. #django made me think visibility not hidden properties. I righ clicked the row header tab and clicked on the Row Visability... option. That brings up the Change display options dialog box. I selected the Show or hide based on an expression andthen the fx button to build the expression. The expression i used was
=IIF(ISNOTHING(Fields!Offset1.value),true,false)
clicked OK
Ran Preview and this is what i got as a result:
It sounds more like you need a 'visibility' on a grouping more than a hidden expression and you can use ISNOTHING() instead of = "". I believe (not sure don't quote me ;) ) that SSRS evaluates hidden to only hide values not the object container itself(the row). You may be better with your group or 'details' group to have an evaluative expression on the 'visibility' rather than an element you used instead. Let's give a very simple example to drive home the concept:
Create a simple dataset in a new report. DataSource does not matter as this is only a table variable that is self contained.
declare #Temp table ( Code char(1), Value int)
insert into #Temp values ('A', 1), ('B', 2), ('A',null);
select * from #Temp
Create a table from the toolbox and populate both columns with the data from your set.
Copy and paste this table right below itself in the report.
Now for the second report click anywhere inside it but in the lower left you should see 'Row Groups' in the 'Design' view of Business Intelligence Development Studio (or the web creator if you are using that). Right Click '=(Details1)' (or similar) and choose 'Group Properties.
Now select 'Visibilty' on the left pane. This relate to the entire grouping, not just a cell in an element. Hit the 'Fx' under 'Show or hide based on an expression'.
Enter in the expression:
=IIF( ISNOTHING(Fields!Value.Value) , true, false)
Preview the report. You should see the first table with three rows and the second table IGNORES the third row because it qualifies as nothing which it evaluates for the ENTIRE GROUPING to mean 'do not show'.

Creating a Form in APEX to set Variables in a Query for an Interactive Report

I am a relative APEX noob.
I'm running APEX 4.0 against a 10gR2 database.
I've written a query that takes a few inputs (two date fields, for start and end, and a text field for further filtering) and created a dynamic report out of it that works when I pull the input variables (:START_DATE, :END_DATE, :OFFICE) out of it or replace them with static values.
I want to create a form on a page that submits those values to the dynamic report page for use in the query to filter the results the user sees when he or she hits the report.
I'm not having much luck finding a good step-by-step example of this. I created a blank page with two Date Pickers and a LOV select dropdown, but am unsure how to best translate those values into the dynamic report.
Can somebody point me at the right documentation for this?
The following was developed using Apex 4.1 but apart from some cosmetic changes the principles should be the same.
The data comes from the standard scott.emp schema.
Overview
This is page 1, the user can enter an empno and\or a hiredate.
When submit is pressed the following report on a different page is displayed:
How it works
On page 1 I have created the three items shown. The text items are called them P1_EMPNO, and P1_HIREDATE. The action for the button is "Submit Page"
Still on page 1, create a branch with the following values:
This branch navigates to page 2 (which is yet to be developed) and sets the values of items on page 2 with the values from page 1.
Create a new page, in this example this will be referred to page 2.
On page 2 create a new interactive report using the following query:
select e.*
from emp e
Next create two text items in the same region as the report and call these :P2_EMPNO and :P2_HIREDATE. I have found it useful to show these items during development so you can see that the correct values are being passed through to the page. You can always set them as hidden once you happy with the report.
Finally amend the query used by the interactive report to use the values supplied by page 1
Run the application.
You want to reference your page items in your query, which means you'll have to submit your page before your query will pick up the session state of them. What I do when I provide a small parameter form, is to put a button up there as well (i.e. labeled 'Query'), which does a submit.
In your report you can then reference your items. If for example you have 2 items P1_DATE_START and P1_DATE_END, your query could look like:
SELECT firstname, lastname, job
FROM employees
WHERE employment_start BETWEEN to_date(:P1_DATE_START) AND to_date(:P1_DATE_END);

Resources