C# iTextSharp: split table - c#

i got my pdf like this.
https://drive.google.com/a/mahidol.edu/file/d/0B9vSVV3dDAmFZDkwWXdfYWNDc2M/view
first, on Page 1 i use rowspan on the first column when it splited, bottom line not be equal. i want the line to be equal.
second, on Page 2 when table splited, on first column, i want to repeat column value again on new page.
thank you so much.
ps: I use nest table (fill table into another table). i am not sure, this is cause of problem or not?

Related

rdlc - Concatenate 2 tablix - same dataset - synchronization lost..,

Since i haven't find a way to merge colunms cells in rdlc, I've tried to concatenate 2 tablixes horizontaly- one is "standard" table, and the other is one field (those were my needs).
Running my sp on my rdlc, it works fine where there is one record to display.
However, when the result is multiple records, and I'm saving results in .pdf file, the 2 tables are not "synchronized" together any more - the gaps between results of each records are different.
I've tried to surrender the tablixes in rectangle and define a page break after rectangle - table still not synchronized...
Please advice..... ☺
Combine your two tablix into one. You can create the appearance of having two by putting an empty column between the two "sides" with no borders on top or bottom of the cells. It will look like two tables side by side, even though it is one table, and the rows will be forced to line up horizontally.
Another possibility for you is to have a sub-report. Create a simple report of just the tablix of the second table in question of the field(s) you want to include.
Then edit your primary report to include the sub-report. I cant direct in detail now how to link-up the sub reports and parameter link them, but suggest some reading up on it. So Each detail row in the parent report would be a group by (its PKID for example), then add the sub-report to it. This way as many rows at the sub-level go if 1 or more...

Visual Studio Report - Show a table in two rows

i have a question: is there any way to show a single row of a table in two rows? The problem is that my table has too many fields and is too wide. So, I think that maybe you can split each row in the table to make it in a row. For example (my idea in Excel, just for example):
Complete table
...and my idea
I hope for your help!
You can:
add a Tablix with 4 columns and without header
add a Rectangle in every detail cell
add 4 TextBox for every Rectangle: use 2 TextBox as labels and two TextBox as values
increase Rectangle height in order to put spaces between every rows
Once you perform this operation for value 1 and 5, you can copy and paste Rectangle in the other 3 cells and simply change label and value.

How can I determine if a MigraDoc table would be split among two pages?

I'm using MigraDoc to generate some PDFs. I have code to create a table of text for each element in an array and am printing out pages with these tables.
However, the requirements I am being given is that if I have 2 tables, and the 2nd table would not fit on the page due to the length of the first table, I need the 2nd table to start the next page. I then need to repeat this for each table I am adding to my document.
How would I go about doing this?
If all tables are small enough to fit a single page, then there is a simple solution: set the KeepWith property of the first row to row count minus one to keep the whole table on one page.
If tables do not always fit a single page: you could try a hack, e.g. setting KeepWith to 6 or 8 or 10 (depends on the height of your table rows). If the value is close to what fits on a single page (without going over), tables will start on a new page automatically.
Obviously this will work very good if table rows have a constant height; if tables rows have varying heights, this will not work reliably, but will still prevent tables that will only have one or two rows on the first page (this is not your requirement, but maybe the requirement can be discussed?).
The clean (but complicated) way to fulfill your requirements: get access to the internal GetRenderInfoFromPage method. You will have to start an incremental process:
1) render the document;
2) if you find a split table, insert a page break before that table and repeat from 1.
See also here:
http://forum.pdfsharp.net/viewtopic.php?p=1960#p1960

Change Group By column order in ReportViewer

I have a rdlc where I'm building a report.
I'm using a tablix grouping by a field of the tablix dataset, like the following:
When I fill the report with data and refresh it, it comes out like this:
Now, I want the first column(wich has the group by by the field "nome_terr") appear not in first place, but by second. The first column has to be "territorio_emp". If it was a normal column, I'd just move it, but being the Group By column I don't know how to do this.
Ideas?
Thank you.
If you know that your Territorio_Emp data is 1-1 related to your Nome_Terr column, you can just group by Territorio_Emp first, then by the Nome_Terr column.
If thats not possible, you can keep it the way it is, but make the width of the group by column 0, so its basically hidden. Just drag the column header separators.

Cleanest way to implement collapsable entries in a table generated via asp:Repeater?

Before anyone suggests scrapping the table tags altogether, I'm just modifying this part of a very large system, so it really wouldn't be wise for me to revise the table structure (the app is filled with similar tables).
This is a webapp in C# .NET - data comes in from a webservice and is displayed onscreen in a table. The table's rows are generated with asp:Repeaters, so that the rows alternate colers nicely. The table previously held one item of data per row. Now, essentially, the table has sub-headers... The first row is the date, the second row shows a line of data, and all the next rows are data rows until data of a new date comes in, in which case there will be another sub-header row.
At first I thought I could cheat a little and do this pretty easily to keep the current repeater structure- I just need to feed some cells the empty string so that no data appears in them. Now, however, we're considering one of those +/- collapsers next to each date, so that they can collapse all the data. My mind immediately went to hiding rows when a button is pressed... but I don't know how to hide rows from the code behind unless the row has a unique id, and I'm not sure if you can do that with repeaters.
I hope I've expressed the problem well. I'm sure I'll find a way TBH but I just saw this site on slashdot and thought I'd give it a whirl :)
When you build the row in the databinding event, you can add in a unique identifier using say the id of the data field or something else that you use to make it unique.
Then you could use a client side method to expand collapse if you want to fill it with data in the beginning, toggling the style.display setting in Javascript for the table row element.
just wrap the contents of the item template in an asp:Panel, then you have you have a unique id. Then throw in some jquery for some spice ;)
edit: just noticed that you are using a table. put the id on the row. then toggle it.

Categories

Resources