private void c1Combo1_SelectedValueChanged(object sender, EventArgs e)
 {
     if (txMode == DataEntryModes.Add)
     {
         try
         {
             // prevent redraw 
             _grid.Redraw = false;
             // get data
             dsCore ds = new dsCore();
             OrdersTableAdapter od = new OrdersTableAdapter();
             ds.EnforceConstraints = false;
             od.Connection = AppHelper.GetDbConnection();
             od.FillOutstandingPurchaseInvoice(ds.Orders, (int)c1Combo1.SelectedValue);
             // clear grid
             dsCore1.OrderDetails.Clear();
             // fill grid with new data
             DataRowView dv = (DataRowView)this.BindingContext[dsCore1, "Orders"].Current;
             foreach (dsCore.OrdersRow src in ds.Orders.Rows)
             {
                 dsCore.OrderDetailsRow row = dsCore1.OrderDetails.NewOrderDetailsRow();
                 row.OrderID = (int)dv["ID"];
                 row.ReferenceID = src.ID;
                 row.ReferenceNo = src.OrderNo;
                 row.ReferenceDate = src.OrderDate;
                 row.ReferenceValue = src.OutstandingValue;
                 row.UnitPrice = src.OutstandingValue;
                 row.Quantity = 1;
                 row.TaxPct = 0;
                 row.Remarks = src.Remarks;
                 dsCore1.OrderDetails.AddOrderDetailsRow(row);
             }
             // recalculate
             CountDetails();
             // redraw grid
             _grid.Redraw = true;
             _grid.Refresh();
         }
         catch (Exception ex)
         {
             // textfile logging
             Logger.ErrorRoutine(ex);
             // screen logging
             RibbonMessageBox.Show("ERROR Retrieving Detail Data: \n" + ex.Message,
                 Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
     }
 }