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

[Solved] Missing aggregates

2 Answers 114 Views
GridView
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Tamiko
Top achievements
Rank 1
Tamiko asked on 04 Feb 2011, 08:57 PM
I have a TabControl with two tab items.  Each tab item contains a grid, and each grid contains aggregate functions.  Columns are added to the grids after user request the data.  The aggregates only display on the grid contained in the tab that is not the selected default.

 I've had no luck resolving this issue.


<
telerik:RadTabControl x:Name="radTabGrids" telerik:StyleManager.Theme="Vista" Grid.Column="1" Grid.Row="12" Grid.ColumnSpan="3" Grid.RowSpan="3">
                        <telerik:RadTabItem Header="Bill Body" IsSelected="True" >
                            <StackPanel Orientation="Vertical" >
                                <!--<telerik:RadDataPager></telerik:RadDataPager>-->
                                <telerik:RadGridView x:Name="grvArrivalBody"
                                    ItemsSource="{Binding ArrivalBody}" 
                                    ShowColumnFooters="True" 
                                    CanUserDeleteRows="False" 
                                    CanUserInsertRows="False" 
                                    ShowGroupPanel="False" 
                                    AutoGenerateColumns="False" 
                                    CanUserSortColumns="False" 
                                    CanUserResizeColumns="False" 
                                    CanUserReorderColumns="False" 
                                    CanUserFreezeColumns="False"/>
                            </StackPanel>
                        </telerik:RadTabItem>
                        <telerik:RadTabItem Header="Charges" >
                            <StackPanel Orientation="Vertical" >
                                <!--<telerik:RadDataPager></telerik:RadDataPager>-->
                                <telerik:RadGridView x:Name="grvArrivalCharges"
                                    ItemsSource="{Binding ArrivalCharges}"  
                                    ShowColumnFooters="True" 
                                    CanUserDeleteRows="False" 
                                    CanUserInsertRows="False" 
                                    ShowGroupPanel="False" 
                                    AutoGenerateColumns="False" 
                                    CanUserSortColumns="False" 
                                    CanUserResizeColumns="False" 
                                    CanUserReorderColumns="False" 
                                    CanUserFreezeColumns="False"/>
                            </StackPanel>
                        </telerik:RadTabItem>
                    </telerik:RadTabControl>
  
  
private void CreateArrivalChargesCol(RadGridView grv)
        {
            try
            {
                GridViewDataColumn colChgCode = new GridViewDataColumn();
                colChgCode.Header = "Code";
                colChgCode.DataMemberBinding = new Binding("ChargeCode");//0
                grv.Columns.Add(colChgCode);
  
                GridViewDataColumn colChgDescription = new GridViewDataColumn();
                colChgDescription.Header = "Description";
                colChgDescription.DataMemberBinding = new Binding("Description");//1
                grv.Columns.Add(colChgDescription);
  
                GridViewDataColumn colChgBL = new GridViewDataColumn();
                colChgBL.Header = "BL";
                //colChgBL.DataMemberBinding = new Binding("counter");//2
                grv.Columns.Add(colChgBL);
  
                GridViewDataColumn colChgPC = new GridViewDataColumn();
                colChgPC.Header = "P/L";
                colChgPC.DataMemberBinding = new Binding("PrepColl");//3
                grv.Columns.Add(colChgPC);
  
                GridViewDataColumn colChgRate1 = new GridViewDataColumn();
                colChgRate1.Header = "Rate";
                colChgRate1.DataFormatString = "C2";
                colChgRate1.DataMemberBinding = new Binding("Rate");//4
                colChgRate1.DataMemberBinding.Converter = new NumNullableConverter();
                  
                grv.Columns.Add(colChgRate1);
  
                GridViewDataColumn colChgBasis1 = new GridViewDataColumn();
                colChgBasis1.Header = "Basis";
                colChgBasis1.DataMemberBinding = new Binding("Basis");//5
                grv.Columns.Add(colChgBasis1);
  
                GridViewDataColumn colChgTotal1 = new GridViewDataColumn();
                colChgTotal1.Header = "Total";
                colChgTotal1.DataFormatString = "C2";
                colChgTotal1.DataMemberBinding = new Binding("Amount");//6
                colChgTotal1.DataMemberBinding.Converter = new NumNullableConverter();
                grv.Columns.Add(colChgTotal1);
  
                GridViewDataColumn colChgVenCode = new GridViewDataColumn();
                colChgVenCode.Header = "Vendor Code";
                colChgVenCode.DataMemberBinding = new Binding("VENDORCODE");//7
                grv.Columns.Add(colChgVenCode);
  
                GridViewDataColumn colChgVenName = new GridViewDataColumn();
                colChgVenName.Header = "Vendor Name";
                colChgVenName.DataMemberBinding = new Binding("VEN_NAME");//8
                grv.Columns.Add(colChgVenName);
  
                GridViewDataColumn colChgRate2 = new GridViewDataColumn();
                colChgRate2.Header = "Rate";
                colChgRate2.DataFormatString = "C2";
                colChgRate2.DataMemberBinding = new Binding("Rate");//9
                colChgRate2.DataMemberBinding.Converter = new NumNullableConverter();
                grv.Columns.Add(colChgRate2);
  
                GridViewDataColumn colChgBasis2 = new GridViewDataColumn();
                colChgBasis2.Header = "Basis";
                colChgBasis2.DataMemberBinding = new Binding("Basis");//10
                grv.Columns.Add(colChgBasis2);
  
                GridViewDataColumn colChgTotal2 = new GridViewDataColumn();
                colChgTotal2.Header = "Total";
                colChgTotal2.DataFormatString = "C2";
                colChgTotal2.DataMemberBinding = new Binding("Amount");//11
                colChgTotal2.DataMemberBinding.Converter = new NumNullableConverter();
                grv.Columns.Add(colChgTotal2);
  
                grv.Columns[4].AggregateFunctions.Add(new SumFunction());
                grv.Columns[6].AggregateFunctions.Add(new SumFunction());
                grv.Columns[9].AggregateFunctions.Add(new SumFunction());
                grv.Columns[11].AggregateFunctions.Add(new SumFunction());
            }
            catch (Exception)
            {
                throw;
            }
        }
  
        private void CreateArrivalBodyCol(RadGridView grv)
        {
            try
            {
                GridViewCheckBoxColumn colBodyHaz = new GridViewCheckBoxColumn();//0
                colBodyHaz.Header = "HAZ";
                colBodyHaz.DataMemberBinding = new Binding("HAZFLAG");
                colBodyHaz.DataMemberBinding.Converter = new CheckNullableConverter();
                grv.Columns.Add(colBodyHaz);
  
                GridViewDataColumn colBodyMarks = new GridViewDataColumn();//1
                colBodyMarks.Header = "Marks";
                colBodyMarks.DataMemberBinding = new Binding("Marks");
                grv.Columns.Add(colBodyMarks);
  
                GridViewDataColumn colBodyPkgs = new GridViewDataColumn();//2
                colBodyPkgs.Header = "Pkgs";
                colBodyPkgs.DataMemberBinding = new Binding("Pkgs");
                grv.Columns.Add(colBodyPkgs);
  
                GridViewDataColumn colBodyPkgType = new GridViewDataColumn();//3
                colBodyPkgs.Header = "Pkg Type";
                colBodyPkgType.DataMemberBinding = new Binding("Class");
                grv.Columns.Add(colBodyPkgType);
  
                GridViewDataColumn colBodyDescription = new GridViewDataColumn();//4
                colBodyDescription.Header = "Description";
                colBodyDescription.DataMemberBinding = new Binding("Description");
                grv.Columns.Add(colBodyDescription);
  
                GridViewDataColumn colBodyWeight = new GridViewDataColumn();//5
                colBodyWeight.Header = "Weight";
                colBodyWeight.DataFormatString = "F3";
                colBodyWeight.DataMemberBinding = new Binding("Weight");
                colBodyWeight.DataMemberBinding.Converter = new NumNullableConverter();
                //colBodyWeight.AggregateFunctions.Add(new SumFunction());             
                grv.Columns.Add(colBodyWeight);
  
                GridViewDataColumn colBodyMeasure = new GridViewDataColumn();//6
                colBodyMeasure.Header = "Cube";
                colBodyMeasure.DataFormatString = "F3";
                colBodyMeasure.DataMemberBinding = new Binding("Measure");
                colBodyMeasure.DataMemberBinding.Converter = new NumNullableConverter();
                //colBodyMeasure.AggregateFunctions.Add(new SumFunction());
                grv.Columns.Add(colBodyMeasure);
  
                GridViewDataColumn colBodyHSCode = new GridViewDataColumn();//7
                colBodyHSCode.Header = "HS Code";
                //Waiting for field to be added to the database
                //colBodyHSCode.DataMemberBinding = new Binding("EMCO");
                grv.Columns.Add(colBodyHSCode);
  
                GridViewDataColumn colBodyUNNum = new GridViewDataColumn();//8
                colBodyUNNum.Header = "UN #";
                colBodyUNNum.DataMemberBinding = new Binding("EMCO");
                grv.Columns.Add(colBodyUNNum);
  
                grv.Columns[5].AggregateFunctions.Add(new SumFunction());
                grv.Columns[6].AggregateFunctions.Add(new SumFunction());
             
            }
            catch (Exception)
            {
  
                throw;
            }
        }

2 Answers, 1 is accepted

Sort by
0
Tamiko
Top achievements
Rank 1
answered on 07 Feb 2011, 03:48 PM
Anyone?!
0
Accepted
Maya
Telerik team
answered on 09 Feb 2011, 08:19 AM
Hi Tamiko,

You need to call CalculateAggregates() method of the grid once all the columns and their aggregates are defined:

private void CreateArrivalChargesCol(RadGridView grv)
        {
            try
            {
                GridViewDataColumn colChgCode = new GridViewDataColumn();
                colChgCode.Header = "Code";
                colChgCode.DataMemberBinding = new Binding("ChargeCode");//0
                grv.Columns.Add(colChgCode);
                                                 .......
                grv.Columns[9].AggregateFunctions.Add(new SumFunction());
                grv.Columns[11].AggregateFunctions.Add(new SumFunction());
                grv.CalculateAggregates();
            }
            catch (Exception)
            {
                throw;
            }
        }

 

Best wishes,
Maya
the Telerik team
Let us know about your Windows Phone 7 application built with RadControls and we will help you promote it. Learn more>>
Tags
GridView
Asked by
Tamiko
Top achievements
Rank 1
Answers by
Tamiko
Top achievements
Rank 1
Maya
Telerik team
Share this question
or