This is a migrated thread and some comments may be shown as answers.

Problem with Positioning in Reporting

1 Answer 425 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Avik
Top achievements
Rank 1
Avik asked on 07 May 2013, 08:56 AM
My report layout is attached
I need to have this in a4 sheet

Section 1 - Constant Height (Bottom of A4)
Section 2 - It will vary its height according to list of data (Above section 1)
Section 3 - Picture should occupy remaining A4 page sheet (Remaining part of the paper)

What is did was
Section 1 is docked bottom
Section 2 is docked bottom (above section 1)
Section 3 is docked fill

Attached my output

When my Section 2 is bigger then details are showed by generating the second page
I need to fit all in a single page by reducing the picture size(section 3)


Is there any way to get the size of the table while setting the size of the picture.
private void InitializeComponent()
        {
            Telerik.Reporting.TableGroup tableGroup1 = new Telerik.Reporting.TableGroup();
            Telerik.Reporting.TableGroup tableGroup2 = new Telerik.Reporting.TableGroup();
            Telerik.Reporting.TableGroup tableGroup3 = new Telerik.Reporting.TableGroup();
            Telerik.Reporting.TableGroup tableGroup4 = new Telerik.Reporting.TableGroup();
            Telerik.Reporting.Drawing.TextWatermark textWatermark1 = new Telerik.Reporting.Drawing.TextWatermark();
            Telerik.Reporting.Drawing.StyleRule styleRule1 = new Telerik.Reporting.Drawing.StyleRule();
            this.textBox1 = new Telerik.Reporting.TextBox();
            this.textBox3 = new Telerik.Reporting.TextBox();
            this.textBox4 = new Telerik.Reporting.TextBox();
            this.pageHeaderSection1 = new Telerik.Reporting.PageHeaderSection();
            this.detail = new Telerik.Reporting.DetailSection();
            this.panel11 = new Telerik.Reporting.Panel();
            this.pictureBox1 = new Telerik.Reporting.PictureBox();
            this.table1 = new Telerik.Reporting.Table();
            this.textBox5 = new Telerik.Reporting.TextBox();
            this.textBox6 = new Telerik.Reporting.TextBox();
            this.textBox7 = new Telerik.Reporting.TextBox();
            this.pageFooterSection1 = new Telerik.Reporting.PageFooterSection();
            this.objectDataSource1 = new Telerik.Reporting.ObjectDataSource();
            ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
            //
            // textBox1
            //
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.79998695850372314D), Telerik.Reporting.Drawing.Unit.Inch(0.29996046423912048D));
            this.textBox1.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Solid;
            this.textBox1.Style.VerticalAlign = Telerik.Reporting.Drawing.VerticalAlign.Middle;
            //
            // textBox3
            //
            this.textBox3.Name = "textBox3";
            this.textBox3.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.79998695850372314D), Telerik.Reporting.Drawing.Unit.Inch(0.29996046423912048D));
            this.textBox3.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Solid;
            this.textBox3.Style.BorderStyle.Left = Telerik.Reporting.Drawing.BorderType.None;
            this.textBox3.Style.VerticalAlign = Telerik.Reporting.Drawing.VerticalAlign.Middle;
            //
            // textBox4
            //
            this.textBox4.Name = "textBox4";
            this.textBox4.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.79998695850372314D), Telerik.Reporting.Drawing.Unit.Inch(0.29996046423912048D));
            this.textBox4.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Solid;
            this.textBox4.Style.BorderStyle.Left = Telerik.Reporting.Drawing.BorderType.None;
            this.textBox4.Style.VerticalAlign = Telerik.Reporting.Drawing.VerticalAlign.Middle;
            //
            // pageHeaderSection1
            //
            this.pageHeaderSection1.Height = Telerik.Reporting.Drawing.Unit.Inch(0.30000004172325134D);
            this.pageHeaderSection1.Name = "pageHeaderSection1";
            //
            // detail
            //
            this.detail.Height = Telerik.Reporting.Drawing.Unit.Inch(8.99375057220459D);
            this.detail.Items.AddRange(new Telerik.Reporting.ReportItemBase[] {
            this.panel11,
            this.pictureBox1,
            this.table1});
            this.detail.Name = "detail";
            this.detail.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Inset;
            //
            // panel11
            //
            this.panel11.Bindings.Add(new Telerik.Reporting.Binding("Location", "= Rexroth.Hydraulics.PumpsAndMotors.CalculationPrograms.Leist.Views.Report11.RepositionPanelFactor(Fields.ObjData.Count, ReportItem)"));
            this.panel11.Docking = Telerik.Reporting.DockingStyle.Bottom;
            this.panel11.Location = new Telerik.Reporting.Drawing.PointU(Telerik.Reporting.Drawing.Unit.Inch(0D), Telerik.Reporting.Drawing.Unit.Inch(7.8937501907348633D));
            this.panel11.Name = "panel11";
            this.panel11.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(6.2677168846130371D), Telerik.Reporting.Drawing.Unit.Inch(1.1000001430511475D));
            this.panel11.Style.BackgroundColor = System.Drawing.Color.Silver;
            this.panel11.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Inset;           
            //
            // table1
            //
            //this.table1.Anchoring = Telerik.Reporting.AnchoringStyles.Top;
            this.table1.Docking = Telerik.Reporting.DockingStyle.Fill;
            this.table1.Bindings.Add(new Telerik.Reporting.Binding("DataSource", "=Fields.ObjData"));
            this.table1.Bindings.Add(new Telerik.Reporting.Binding("Location", "= Rexroth.Hydraulics.PumpsAndMotors.CalculationPrograms.Leist.Views.Report11.RepositionTableFactor(Fields.ObjData.Count,ReportItem)"));
            this.table1.Body.Columns.Add(new Telerik.Reporting.TableBodyColumn(Telerik.Reporting.Drawing.Unit.Inch(0.79998701810836792D)));
            this.table1.Body.Columns.Add(new Telerik.Reporting.TableBodyColumn(Telerik.Reporting.Drawing.Unit.Inch(0.79998701810836792D)));
            this.table1.Body.Columns.Add(new Telerik.Reporting.TableBodyColumn(Telerik.Reporting.Drawing.Unit.Inch(0.79998701810836792D)));
            this.table1.Body.Rows.Add(new Telerik.Reporting.TableBodyRow(Telerik.Reporting.Drawing.Unit.Inch(0.29996046423912048D)));
            this.table1.Body.SetCellContent(0, 0, this.textBox5);
            this.table1.Body.SetCellContent(0, 1, this.textBox6);
            this.table1.Body.SetCellContent(0, 2, this.textBox7);
            tableGroup1.ReportItem = this.textBox1;
            tableGroup2.ReportItem = this.textBox3;
            tableGroup3.ReportItem = this.textBox4;
            this.table1.ColumnGroups.Add(tableGroup1);
            this.table1.ColumnGroups.Add(tableGroup2);
            this.table1.ColumnGroups.Add(tableGroup3);
            this.table1.Items.AddRange(new Telerik.Reporting.ReportItemBase[] {
            this.textBox5,
            this.textBox6,
            this.textBox7,
            this.textBox1,
            this.textBox3,
            this.textBox4});
            this.table1.Location = new Telerik.Reporting.Drawing.PointU(Telerik.Reporting.Drawing.Unit.Inch(0.067756019532680511D), Telerik.Reporting.Drawing.Unit.Inch(7.2937507629394531D));
            this.table1.Name = "table1";
            tableGroup4.Groupings.Add(new Telerik.Reporting.Grouping(null));
            tableGroup4.Name = "DetailGroup";
            this.table1.RowGroups.Add(tableGroup4);
            this.table1.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(2.39996075630188D), Telerik.Reporting.Drawing.Unit.Inch(0.599920928478241D));
            this.table1.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Solid;
            //
            // pictureBox1
            //
            this.pictureBox1.Docking = Telerik.Reporting.DockingStyle.Top;
            this.pictureBox1.Bindings.Add(new Telerik.Reporting.Binding("Size", "= Rexroth.Hydraulics.PumpsAndMotors.CalculationPrograms.Leist.Views.Report11.ResizePictureFactor(Fields.ObjData.Count,ReportItem)"));
            this.pictureBox1.Bindings.Add(new Telerik.Reporting.Binding("Value", "=Fields.MyImage"));
            //this.pictureBox1.Bindings.Add(new Telerik.Reporting.Binding("Location", "= Rexroth.Hydraulics.PumpsAndMotors.CalculationPrograms.Leist.Views.Report11.RepositionPictureFactor(Fields.ObjData.Count,ReportItem)"));
            this.pictureBox1.Location = new Telerik.Reporting.Drawing.PointU(Telerik.Reporting.Drawing.Unit.Inch(0.0067756019532680511D), Telerik.Reporting.Drawing.Unit.Inch(3.9418537198798731E-05D));
            this.pictureBox1.MimeType = "";
            this.pictureBox1.Name = "pictureBox1";
            this.pictureBox1.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(6.1999607086181641D), Telerik.Reporting.Drawing.Unit.Inch(7.1999607086181641D));
            this.pictureBox1.Sizing = Telerik.Reporting.Drawing.ImageSizeMode.Stretch;
            this.pictureBox1.Style.BorderColor.Default = System.Drawing.Color.Maroon;
            this.pictureBox1.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Solid;
            this.pictureBox1.Style.BorderWidth.Default = Telerik.Reporting.Drawing.Unit.Point(1D);
            this.pictureBox1.Value = "=Fields.MyImage";
            //
            // textBox5
            //
            this.textBox5.Name = "textBox5";
            this.textBox5.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.79998695850372314D), Telerik.Reporting.Drawing.Unit.Inch(0.29996046423912048D));
            this.textBox5.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Solid;
            this.textBox5.Style.VerticalAlign = Telerik.Reporting.Drawing.VerticalAlign.Middle;
            this.textBox5.Value = "=Fields.Speed";
            //
            // textBox6
            //
            this.textBox6.Name = "textBox6";
            this.textBox6.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.79998695850372314D), Telerik.Reporting.Drawing.Unit.Inch(0.29996046423912048D));
            this.textBox6.Style.BorderStyle.Bottom = Telerik.Reporting.Drawing.BorderType.Solid;
            this.textBox6.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.None;
            this.textBox6.Style.BorderStyle.Right = Telerik.Reporting.Drawing.BorderType.Solid;
            this.textBox6.Style.VerticalAlign = Telerik.Reporting.Drawing.VerticalAlign.Middle;
            this.textBox6.Value = "=Fields.Power";
            //
            // textBox7
            //
            this.textBox7.Name = "textBox7";
            this.textBox7.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(0.79998695850372314D), Telerik.Reporting.Drawing.Unit.Inch(0.29996046423912048D));
            this.textBox7.Style.BorderStyle.Bottom = Telerik.Reporting.Drawing.BorderType.Solid;
            this.textBox7.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.None;
            this.textBox7.Style.VerticalAlign = Telerik.Reporting.Drawing.VerticalAlign.Middle;
            this.textBox7.Value = "=Fields.Torque";
            //
            // pageFooterSection1
            //
            this.pageFooterSection1.Height = Telerik.Reporting.Drawing.Unit.Inch(0.2999996542930603D);
            this.pageFooterSection1.Name = "pageFooterSection1";
            //
            // objectDataSource1
            //
            this.objectDataSource1.DataSource = typeof(Reports.MyObjects);
            this.objectDataSource1.Name = "objectDataSource1";
            //
            // Report1
            //
            this.DataSource = this.objectDataSource1;
            this.Items.AddRange(new Telerik.Reporting.ReportItemBase[] {
            this.pageHeaderSection1,
            this.detail,
            this.pageFooterSection1});
            this.Name = "Report11";
            this.PageSettings.Landscape = false;
            this.PageSettings.Margins = new Telerik.Reporting.Drawing.MarginsU(Telerik.Reporting.Drawing.Unit.Inch(1D), Telerik.Reporting.Drawing.Unit.Inch(1D), Telerik.Reporting.Drawing.Unit.Inch(1D), Telerik.Reporting.Drawing.Unit.Inch(0D));
            this.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.A4;
            textWatermark1.Text = "Approved";
            this.PageSettings.Watermarks.Add(textWatermark1);
            this.Style.BackgroundColor = System.Drawing.Color.White;
            styleRule1.Selectors.AddRange(new Telerik.Reporting.Drawing.ISelector[] {
            new Telerik.Reporting.Drawing.TypeSelector(typeof(Telerik.Reporting.TextItemBase)),
            new Telerik.Reporting.Drawing.TypeSelector(typeof(Telerik.Reporting.HtmlTextBox))});
            styleRule1.Style.Padding.Left = Telerik.Reporting.Drawing.Unit.Point(2D);
            styleRule1.Style.Padding.Right = Telerik.Reporting.Drawing.Unit.Point(2D);
            this.StyleSheet.AddRange(new Telerik.Reporting.Drawing.StyleRule[] {
            styleRule1});
            this.Width = Telerik.Reporting.Drawing.Unit.Inch(6.2677168846130371D);
            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
 
        }

1 Answer, 1 is accepted

Sort by
0
Elian
Telerik team
answered on 09 May 2013, 08:29 AM
Hello Avik,

Our Docking does not work the same way as the WinForms docking does. When a report item is docked to an edge of its container, it is always positioned to flush against that edge when the container is resized. 
However, when one item inside the parent container grows, that won't make other items (with Docking: Fill) shrink. 
Unfortunately your scenario cannot be accomplished using docking. 
The only solution that can give you a similar result is to try and calculate the height of Section 2 knowing how tall each row is and knowing how many rows you have. However this might give you trouble with growing rows and most likely there will be cases when it won't behave properly. 
 

Greetings,
Elian
the Telerik team

Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.

Tags
General Discussions
Asked by
Avik
Top achievements
Rank 1
Answers by
Elian
Telerik team
Share this question
or