Create complex Oracle report - oracle

I have a sale table with the following columns:
name, city, area, target, date, sale
I want to show 8 different area data on a page. Please guide me what I need write 8 queries or we have any other solution. To create a report in Oracle like I show in image please help me how I do this. Thanks waiting your kind response..

You'll need to organize your result set into groups. Groups indicate result set records that have something in common (such as all areas of New York).
In general, this structure will suit for your needs:
Group 1: City, Name -> Group 2: Area, Target -> Group 3: Date, Sale
For all groups declared, a repeating frame is created. You'll need to use a grid layout for the repeating frame of Group 2, in order to get the desired output.

Related

Can I use a list to repeat two tablixes on a report page?

See image below. Warehouse and Customer are dropdown lists populated via query. Year is a text field. The two tables display data from datasets driven by the report parameters. Is there a way to repeat the two tables based on each member of the Customer dropdown? Preferbly with a pagebreak after the 2nd table.
I normally do this using subreports. You could either create a single subreport that contains both tables or individual subreports. The individual approach might help with page breaks etc so that's the way I'd go.
Step 1: Create a report for your first table.
As you don't state what each table does, I'll make some up for the sake of illustration.
The key is to create a subreport that displays just the info you need in a single table. So in your case this might mean we only need to pass in a single parameter, CustomerID. You might need to pass in more such as Warehouse but I don't know...
In my made up scenario, let's assume the report shows customer contacts so we create a subreport (let's call it subCustomerConacts). It has a single parameter pCustomerID and a single dataset dsCustomerContacts. The query might looks something like SELECT * FROM CustomerContacts WHERE CustomerID = #pCustomerID. Add whatever tables/textbox etc you need to display your data.
Test this subreport works by manually typing in a CustomerID
Step 2: Create a report for your second table.
Do exactly the same again, creating a new subreport. Let call this subCustomerOrders. Repeat as above until you end up with another report that can display order details (or whatever you need).
Finally, create you main report.
This is basically what you have described in you question in terms of parameters etc.
Now to add this bit that will call you subreports.
Create a dataset (let's call it dsCustomerLoop) that contains each customer from your parameter something like SELECT DISTINCT CustomerID FROM myCustomers WHERE CustomerID IN (#myCustomerParameter)
Add a table to your report, 1 column wide and stretch it so it's wide enough to accommodate you subreports.
Set the dataset to point to dsCustomerLoop
Right-Click the cell in the detail row and do "Insert Row -> Inside Group - Below". You should not have two detail rows.
Next, right click the top detail row and do "Insert -> Subreport"
Right-Click the newly inserted subreport control and choose "properties".
Choose your first SubReport form the drop-down list
Click parameters on the left,
Click "Add" and select the CusomterID parmeter, set it's value to the CustomerID field.
Repeat this process on the seconds row, choosing your seconds subreport.
You may want to also add a 3rd row to the table, you could insert a rectangle into this with page breaks set to force a new page after each seconds subreport.
That's It. When the report runs it will produce two rows per customer, each row containing a subreport.
I hope this is clear enough, I've rushed through it a bit but if anything is unclear, let me know and I'll provide a clearer solution.

Crystal report summary depending on another column

Image:
Hi, i am new to crystal reports but a fast learner.
I need to make a report, that shows the price of specific maintenance during a month.
The important thing is that the Total values are correct
As you see the "arbejdsordre" can appear multiple times because on the same column it has different "titel" the different "titel" has different "planlagt tid" but the same "Omkostninger"
I need to tell crystal report to only calculate "omkostninger" for "arbejdsordre" one time when "arbejdsordre appears several times.
how can i do this?
Best regards
André
If you go into the Group Expert and then group your report data by Omkostninger you should be able to accomplish your goal.
Display the value for "Omkostninger" in the Group Header, and then display the different "titel" and "planlagt tid" in the details section or any other group header section that is a lower level grouping than Omkostninger.
This will allow you to display each unique value for Omkostninger once and only once on the report, with all of the other data for each Omkostninger value displayed in the details.

Crystal Report Groups Duplicate My Values

I'm trying create two groups from two different tables. I choose create new crystal report (As A blank report) then i create two groups like following images:
Then I'm choosing the table. I'm doing this once again with another table i want.
My Crystal report design look like this:
Now my Result is this:
But I want to take this result:(This result is painted)
Maybe it looks like easy for you, but i need a helping hand for solving this.
I choosed link options(Full inner join)
In Design Form
The grouping functionality within Crystal maintains the data relationship and makes it easier to read by not repeating the group text for each line item - if you group by "A", you will see all items, including the "group 2 duplicates" so long as they are in group A. Adding a second group will further refine the subset of results.
This is the intended and expected behavior for Crystal - SQL-level grouping is different and is used for aggregate functions, among other things.
If you are trying to create a multi-column report, look at this
Can I make a two column Crystal Report? - Under Section Expert, go to Details and click the box "format with Multiple Columns", then click Layout at the top and enter the detail size, in inches, as well as the gap between details. if you want your groups to continue in the additional columns, click the "Format groups with Multiple Column" checkbox.
If this does not satisfy your requirement, you may have to reevaluate the report requirements and the dataset limitations.

Dynamically shows Crystal Report group footer

I need to do something specific in Crystal Report for Visual Studio 2005.
Let's say the following data:
The report regroup the data with the prdCode field, which gives something like this:
Now, I need to add a subtotal everytime one of the 4 first columns changes (Lot / Cédule/ Brand/ Contenant in the report). In this case, I should have a subtotal for the first row (lot=153363 and next one is 171008). Then, another subtotal at the last line of lot=171008 and Cédule = 023854. Then another subtotal at lot=171008 and cédule = 023863, etc.
I have no idea how I can do this. Adding Groups won't help, as I will have 5 group footers display for the first row only. In the case of the above image, I should display only 5 subtotals. A subtotal is the sum of the Total Gross/Tare/Net fields.
Anyone can help me out on this?
thanks for your time and help
Yes you are correct adding 5 groups doesn't solve the issue and also it doesn't make any sense, Instead combine all your fields and create a single group that will seggregate the records as required.
Try following approach.
Create a formula #grouping and write below cide
ToText(Lot)&ToText(Cédule)&Brand&Contenant
Now create a group with this formula and take summary in group footer

Passing more than 3 items in a reports column link

I have a report that is listing students and I want a column to edit a student. I've done so by following this answer:
How do you add an edit button to each row in a report in Oracle APEX?
However, I can only seem to pass 3 items and there's no option to add more. I took a screenshot to explain more:
I need to pass 8 values, how can I do that?
Thanks!
Normally, for this you would only pass the Primary Key columns (here looks like #RECORD_NUMBER# only). The page that you send the person to would then load the form based on the primary key lookup only. If multiple users were using this application, you would want the edit form to always retrieve the current values of the database, not what happened to be on the screen when a particular person ran a certain report.
Change the Target type to URL.
Apex will format what to already have into a URL text field which magically appears between Tem3 and Page Checksum.
All you need to do is to add your new items and values in the appropriate places in the URL.
I found a workaround, at least it was useful to my scenario.
I have an IR page, query returns 4 columns, lets say: ID, DESCRIPTION, SOME_NUMBER,SOME_NUMBER2.
ID NUMBER(9), DESCRIPTION VARCHAR2(30), SOME_NUMBER NUMBER(1), SOME_NUMBER2 NUMBER(3).
What I did was, to setup items this way:
P11_ITEM1-->#ID#
P11_ITEM2-->#DESCRIPTION#
P11_ITEM3-->#SOME_NUMBER##SOME_NUMBER2#
Previous data have been sent to page 11.
In page 11, all items are display only items.
And P11_ITEM3 actually received two concatenated values.
For example, the calling page has columns SOME_NUMER=4 and SOME_NUMBER2=150
so, in pag1 11, P11_ITEM3 shows 4150
In page 11 I created a Before Footer process (pl/sql expression)
to set up new items, for example P11_N1 as source SUBSTR(P11_ITEM3,1,1)
and item P11_N2 as source SUBSTR(P11_ITEM3,2,3)
So, I had those items with corresponding values from the calling IR page.
The reason I did not pass the primary key only for new lookup access, is because i do not want to stress database performing new queries since all data are already loaded into page items. I've been an oracle DBA for twenty years and I know there is no need to re execute queries if you already have the information somewhere else.
These workarounds are not very useful for a product that bills itself as a RAD tool.
Just include a single quoted word in the select statement (Select col1, 'Randomword', col2 from table 1;)
Then define that column as a link and bingo! More items than 3 to select.

Resources