On the graph we can see the main items like "Cash and Liquid Assets", "Loan Portfolio", "Securities" and etc. Each of the main items has sub-items, showing what the item consist of. It looks like :
Cash and Liquid Assets (Item )
Cash (subitem)
Precious Metals (subitem)
Nostro accounts (subitem)
Loan Portfolio (item)
Individual (subitem)
SME (subitem)
Micro (subitem)
Securities (item)
Securities (subitem)
Could you please advice, if the Item contains only one sub-item (as in 3.Securities), not to show sub-item in the graph as they indicate the same amount. I am able to blanc the sub-item , but not to remove the row. This, in turn, make the graph look weird. If it is not possible to remove the sub-item row, please advice how to minimize the row's height .
EDIT: this does not apply, i did not understand it was about a crosstab. I did not delete the answer to preserve the comments below.
I supose you have a group with details. So, "3. Securities" shows up in group header and "Securities" shows up in detail section.
If so, then, you may put a formula to hide the detail section.
Create a summary field to count the details per group.
Right click the details section and choose "section expert".
Find the "Suppress (no drill-down)" check box on the right pane.
Click its formula button.
If the counter is 1, return true, else return false.
Related
I need to print the report footer before the group header/footer in ActiveReports 6. My code in report footer requires calculation from the group header/footer, so instead of moving all the controls to report header and do massive changes to code, I wonder if there's a quick way to just rearrange the page at print time.
I currently have:
rhMain (reportheader) for report cover page
gfVehicle (groupfooter) for detail on each vehicle, summary data is also calculated and stored here for each vehicle to be used in report summary
rfMain (reportfooter) for report summary
What I need to be arranged:
rhMain cover page
rfMain summary page
gfVehicle detail on each vehicle
What I have tried is move all the summary stuff to rhMain and during rfMain_format, I change the value of the controls in rhMain. This failed probably because rhMain is already rendered at this point.
Any other ideas?
There is no way to rearrange the sections during printing. The sections are designed to be rendered in a specific order and it cannot be changed. If you can provide some detailed information about your use case we may try suggesting some workaround. You can post your questions to ActiveReports support forums.
Can you please explain your scenario so we can try to help based on it. In general a report footer is nothing but a "group-footer" for the whole report (that is not bound, so would it help to replace the report-header/footer with an outside group header/footer.
Please include an image of what you're trying to do so we help further.
Issam Elbaytam
Grapecity.
I have a report file, where the report provides information on a "Job" - so this is a "Job Ticket" report. Inside the Job Ticket, there is a group with details that provides information on individual "Components" of which there can be anywhere from 1 Component to 6 Components in any given Job. There is a field applied to each component which is a string and is the "ComponentType" ({sp_JobTicket.ComponentType}).
What I would like to do is put the value of each row of ComponentType into an Array, which I can then call in the Page Footer (i.e., so I can create a Text Object and in it call a value using something like "TypeforComponent[3]"), so even though every printed page will only show the full details of one component, the page footer for each page will provide an at-a-glance view of all the components and their types.
As it is right now, we just hand write the component types for all components on the printed page itself, but we can access the ComponentType through the database, so it seems like we should be able to get it to print on the report.
Here is a full page preview of of a printed Job Ticket report that has 4 components (so in the Page Footer only 1-4 would have a value, 5-6 are empty), and where everything is currently laid out, and where we're hoping to get things placed:
Lots of questions but assuming this report is run for only 1 job ticket at a time here is one possibility:
Create formula called CT_Array and place in header1 section and suppress:
WhileReadingRecords;
stringvar array CT_Array ;
stringvar output := "";
numbervar i := ubound(CT_Array)+1;
redim preserve CT_Array[i];
CT_Array[i] := {sp_JobTicket.ComponentType};
Then create 6 formulas (CT_Var1 through CT_Var6) to read as follows:
WhileReadingRecords;
stringvar array CT_Array ;
CT_Array[1]
Replacing CT_Array[1] with the next array element number
Place those formulas where needed in page footer.
CT_Var2
WhileReadingRecords; stringvar array CT_Array ;
if ubound(CT_Array) >
1 then CT_Array[2] else ""
etc... for CT_Var3 through 6
So it looks like the simpler and more straight-forward solution to my problem was to not use an Array, but to create a Subreport.
I accomplished this by creating a new report, linked it to the stored procedure used by my Job Ticket (main) report, and imported the data fields I needed. I then proceeded to change the Page Size for the subreport to fit into the size on the page (1.5" x 1"), set the Details section to "Format with Multiple Columns" in the section expert which made available a new "Layout Tab" which I entered and selected "Format Groups with multiple column[s]." Then I saved that as a separate file and imported that report into my main report as a Subreport. Finally I set the Subreport Links to link to my "JobNumber" field which my main ticket uses as a parameter and that Field to the parameter.
Completed Successfully:
I have a report which has many sub reports. In one of the sub reports, there is a formula which says
"if the text data is more than 500 charcters, it will spill over to the next page" .
What I want to do is, if the data in the sub report exceeds 500 characters, it should apper on the last page of the report, not the next page. A new page should be generated at the end of the report and that data should appear on that page.
one wayout would be:
Take the sub report in saperate section and force it to conditionally supress and display in last page.
Go to the section expert of the section and then to the formula editor.
if (PageNumber=TotalPageCount)
then true
else false
Go to Section expert Paging tab there X-2of New page Before
if (PageNumber=TotalPageCount)
then true
else false
I'm new to ActiveReports 7, I have a rdlx Report using a stored procedure to populate multiple lists with TextBoxes. The data is appearing correctly, however I am unable to get the TextBoxes to break when their contained data exceeds the length of the page. Instead, the TextBox remains unbroken and starts on the next page leaving a large empty gap. I have the containing Lists' 'KeepTogether' property set to 'False' and it doesn't help. How can I make these Lists and/or TextBoxes break at the end of the page and resume on the next?
Check the type of report you have. There are the "ActiveReports 7 Page Report", aka FPL (Fixed Page Layout) report and the "CPL Report" (Continuous Page Layout).
Fixed Page Layout is for creating a new page for each record. Suitable for invoices and similar reports. You need a "CPL report" so that it only adds pageas as needed for the content.
To get a CPL Report take the following steps from inside the designer in Visual Studio:
Project > Add New Item
Choose the "ActiveReports 7 Page Report" item here.
Choose Report > Convert to CPL Report.
Those steps should effectively have the effect of changing "Page" to "Body".
Below are the steps I used to create a CPL report that has a list with a textbox containing very long text (longer than a page) and it renders across pages okay:
Add a list
Add a textbox to the list. The default properties should work fine, but the relevant properties on my textbox are:
TextBox.CanGrow=True
TextBox.WrapMode=WordWrap
List.KeepTogether=False: Although technically this should be fine either way if the textbox/list are larger than a page. KeepTogether=False will just prevent it from moving to a new page if it is starting half way down the page.
Let me know if you still don't crack it and I'll upload my test report here somewhere for you.
In group expert options I have set Keep Group Together, which makes sure a new page is set.
With two-sided printing enabled, how can I make sure that a new group always forms on a new sheet of paper? Can this be done in the formula expert? Is there some way of checking if the page I'm on is even or odd and insert a page from there? Just asking leading questions because I'm not familiar with what is possible with Crystal's formula editor. BTW, This is Crystal XI Enterprise Server.
You can do this with the onfirstrecord, pagenumber and the onlastrecord keywords.
On the group header section "New page before" formula...
not onfirstrecord //so every group (except the first) starts on a new page
On "New page after" formula...
//to keep the group from starting on even page but make sure the last page is not blank
remainder(pagenumber, 2) = 1 and not onlastrecord
Open the Section Expert screen. Select Report Header and check "Suppress (No Drill-Down)". Then select in the group header select the group you want to page break and check "New Page Before".
This Works fine if I need Page Break on one Group. How do I do if Page Break on Multiple Groups?
I found answer..
Using Next(Field) or Previous(Field), I added below condition and worked fine.
In Next Page Before formula:
Not onFirstRecord and ({table.field} <> previous({table.field}))
hi IronicMuffin i understand you question. the answer is versy simple but more effetcive.
step 1: Include dataset or database expert into your crystal report
Step2: In the outside surface of the report area right click and goto report and goto group expert
Step3: add the which field you include the group that time the bottom of the window options will appear
Step 4: click the option and agian goto 2nd tab of the option.
step 5: finally check(check=true) check box of Repeat Group header on each page other check box or put uncheck