Search code examples
c#devexpressmaster-detail

C# DevExpress Master-Detail multiple columns relation programmatically


I am try to code multiple columns relation between the master-detail gridview. Below is code for relation I able link between master (tableSalesOrder) and the detail (tableDetail / tableDetail2) on ItemCode.

I try to add 2 more relations which are UOM & Location. I am seeking advise how I able to do so? I try google the solution for few days.

orderData.Tables.Add(tableSalesOrder);
orderData.Tables.Add(tableDetail);
orderData.Relations.Add("PurchaseDetails", tableSalesOrder.Columns["ItemCode"], tableDetail.Columns["ItemCode"], false); 

orderData.Tables.Add(tableDetail2);
orderData.Relations.Add("SalesDetails", tableSalesOrder.Columns["ItemCode"], tableDetail2.Columns["ItemCode"], false);

gridControl1.ShowOnlyPredefinedDetails = false;
gridControl1.DataSource = tableSalesOrder;

Solution

  • I solved it.

                orderData.Tables.Add(tableSalesOrder);
                orderData.Tables.Add(tableDetail);
                DataColumn[] parent1 = { tableSalesOrder.Columns["ItemCode"], tableSalesOrder.Columns["UOM"], tableSalesOrder.Columns["Location"] };
                DataColumn[] child1 = { tableDetail.Columns["ItemCode"], tableDetail.Columns["UOM"], tableDetail.Columns["Location"] };
                orderData.Relations.Add("PurchaseDetails", parent1, child1, false);
                orderData.Tables.Add(tableDetail2);
                DataColumn[] parent2 = { tableSalesOrder.Columns["ItemCode"], tableSalesOrder.Columns["UOM"], tableSalesOrder.Columns["Location"] };
                DataColumn[] child2 = { tableDetail2.Columns["ItemCode"], tableDetail2.Columns["UOM"], tableDetail2.Columns["Location"] };
                orderData.Relations.Add("SalesDetails", parent2, child2, false);
                gridControl1.ShowOnlyPredefinedDetails = false;
                gridControl1.DataSource = tableSalesOrder;