I created a new custom grid that poulates with a parameterized BAQ call (due to needing different parameters on different occasions)
There was some existing code on the form that was under private void edvV_MJP_Item_Planning_Dashboard_1View_EpiViewNotification(EpiDataView view, EpiNotifyArgs args)
This is currently giving me a -1. I have called it with a oTrans.NotifyAll(); after I populate my custom grid, but this seems to not be refreshing the dataview based on what I run. Bellow is full code.
// **************************************************
// Custom code for MainController
// Created: 10/3/2013 12:29:41 PM
// **************************************************
using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Epicor.Mfg.BO;
using Epicor.Mfg.UI;
using Epicor.Mfg.UI.Adapters;
using Epicor.Mfg.UI.Customization;
using Epicor.Mfg.UI.ExtendedProps;
using Epicor.Mfg.UI.FormFunctions;
using Epicor.Mfg.UI.FrameWork;
using Epicor.Mfg.UI.Searches;
using Epicor.Mfg.Core;
using Epicor.Mfg.Lib;
using Infragistics.Win.UltraWinGrid;
public class Script
{
// ** Wizard Insert Location - Do Not Remove 'Begin/End Wizard Added Module Level Variables' Comments! **
// Begin Wizard Added Module Level Variables **
DataSet eds;
Boolean outBool;
private EpiDataView edvV_MJP_Item_Planning_Dashboard_1View;
//private EpiDataView edv38591803_828d_4328_b9f9_5d40f1b90428;
// End Wizard Added Module Level Variables **
private BOReader boReader;
Epicor.Mfg.UI.FrameWork.EpiUltraGrid DashGrid;
Epicor.Mfg.UI.FrameWork.EpiUltraCombo Plantcmb;
Epicor.Mfg.UI.FrameWork.EpiUltraCombo TPlantcmb;
//Epicor.Mfg.UI.FrameWork.EpiNumericEditor neMin;
//Epicor.Mfg.UI.FrameWork.EpiNumericEditor neMax;
//Epicor.Mfg.UI.FrameWork.EpiNumericEditor neSafety;
// Add Custom Module Level Variables Here **
string partnumber;
//string plantvalue;
//string tplantvalue;
public void InitializeCustomCode()
{
DashGrid = (Epicor.Mfg.UI.FrameWork.EpiUltraGrid)csm.GetNativeControlReference("38591803-828d-4328-b9f9-5d40f1b90428");
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Variable Initialization' lines **
// Begin Wizard Added Variable Initialization
this.DashGrid.InitializeLayout += new Infragistics.Win.UltraWinGrid.InitializeLayoutEventHandler(this.DashGrid_InitializeLayout);
this.edvV_MJP_Item_Planning_Dashboard_1View = ((EpiDataView)(this.oTrans.EpiDataViews["V_MJP_Item_Planning_Dashboard_1View"]));
this.edvV_MJP_Item_Planning_Dashboard_1View.EpiViewNotification += new EpiViewNotification(this.edvV_MJP_Item_Planning_Dashboard_1View_EpiViewNotification);
// End Wizard Added Variable Initialization
// Begin Wizard Added Custom Method Calls
this.btnPartSearch.Click += new System.EventHandler(this.btnPartSearch_Click);
Plantcmb = (Epicor.Mfg.UI.FrameWork.EpiUltraCombo)csm.GetNativeControlReference("d6fa8f5b-57f7-4b35-9e0d-a800b39464eb");
TPlantcmb = (Epicor.Mfg.UI.FrameWork.EpiUltraCombo)csm.GetNativeControlReference("a6736216-f690-4b89-a6f5-88fc09cb8ac9");
this.btnCurPlant.Click += new System.EventHandler(this.btnCurPlant_Click);
//DashGrid = (Epicor.Mfg.UI.FrameWork.EpiUltraGrid)csm.GetNativeControlReference("38591803-828d-4328-b9f9-5d40f1b90428");
//neMin = (Epicor.Mfg.UI.FrameWork.EpiNumericEditor)csm.GetNativeControlReference("be9ae369-ec75-4cbf-b64f-49d54edff982");
//neMax = (Epicor.Mfg.UI.FrameWork.EpiNumericEditor)csm.GetNativeControlReference("b72bba11-9869-4bfa-95bb-14a1f0a5fb91");
//neSafety = (Epicor.Mfg.UI.FrameWork.EpiNumericEditor)csm.GetNativeControlReference("8418f61d-e911-4631-b0f4-db8b9f981609");
SetExtendedProperties();
this.epiButtonC1.Click += new System.EventHandler(this.epiButtonC1_Click);
// End Wizard Added Custom Method Calls
}
public void DestroyCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Object Disposal' lines **
// Begin Wizard Added Object Disposal
//this.edvV_MJP_Item_Planning_Dashboard_1View.EpiViewNotification -= new EpiViewNotification(this.edvV_MJP_Item_Planning_Dashboard_1View_EpiViewNotification);
//this.edvV_MJP_Item_Planning_Dashboard_1View = null;
this.edvV_MJP_Item_Planning_Dashboard_1View.EpiViewNotification -= new EpiViewNotification(this.edvV_MJP_Item_Planning_Dashboard_1View_EpiViewNotification);
this.edvV_MJP_Item_Planning_Dashboard_1View = null;
this.btnPartSearch.Click -= new System.EventHandler(this.btnPartSearch_Click);
this.btnCurPlant.Click -= new System.EventHandler(this.btnCurPlant_Click);
this.epiButtonC1.Click -= new System.EventHandler(this.epiButtonC1_Click);
// End Wizard Added Object Disposal
this.DashGrid.InitializeLayout -= new Infragistics.Win.UltraWinGrid.InitializeLayoutEventHandler(this.DashGrid_InitializeLayout);
// Begin Custom Code Disposal
// End Custom Code Disposal
}
private void edvV_MJP_Item_Planning_Dashboard_1View_EpiViewNotification(EpiDataView view, EpiNotifyArgs args)
{
MessageBox.Show(args.Row.ToString()); //This currently displays -1 even though I know there are rows available for the part I am entering.
if ((args.Row > -1))
{
MessageBox.Show("1");
decimal Hits = 0;
decimal Usage = 0;
DateTime BegDate = DateTime.Now.AddMonths(-13);
DateTime EndDate = DateTime.Now.AddMonths(-1);
decimal BegMonth = Convert.ToInt32(BegDate.Month);
decimal EndMonth = Convert.ToInt32(EndDate.Month);
decimal BegYear = Convert.ToInt32(BegDate.Year);
decimal EndYear = Convert.ToInt32(EndDate.Year);
boReader = new BOReader(((Session)oTrans.Session).ConnectionPool);
string wc = string.Format("Key1 = '{0}'",edvV_MJP_Item_Planning_Dashboard_1View.dataView[edvV_MJP_Item_Planning_Dashboard_1View.Row]["PartPlant.PartNum"]);
DataSet ds = boReader.GetRows("UD21", wc, "Number01,Number02,Character01,Number03,Number04");
MessageBox.Show("2");
//DashGrid.Rows.ColumnFilters["MinimumOnHand"].FilterConditions.Add(Infragistics.Win.UltraWinGrid.FilterComparisionOperator.GreaterThan,neMin.Value);
//DashGrid.Rows.ColumnFilters["MaximumOnHand"].FilterConditions.Add(Infragistics.Win.UltraWinGrid.FilterComparisionOperator.GreaterThan,neMax.Value);
//DashGrid.Rows.ColumnFilters["Safety Stock"].FilterConditions.Add(Infragistics.Win.UltraWinGrid.FilterComparisionOperator.GreaterThan,neSafety.Value);
if (ds.Tables[0].Rows.Count > 0)
{
MessageBox.Show("3");
foreach (DataRow dr in ds.Tables[0].Rows)
{
if ((decimal)(dr["Number04"]) >= BegMonth && ((decimal)(dr["Number03"]) == BegYear))
{
if ((dr["Character01"].ToString() == edvV_MJP_Item_Planning_Dashboard_1View.dataView[edvV_MJP_Item_Planning_Dashboard_1View.Row]["PartPlant.Plant"].ToString()))
{
Hits = Hits + ((decimal)(dr["Number01"]));
Usage = Usage + ((decimal)(dr["Number02"]));
}
}
if((decimal)(dr["Number04"]) <= EndMonth && ((decimal)(dr["Number03"])== EndYear))
{
if ((dr["Character01"].ToString() == edvV_MJP_Item_Planning_Dashboard_1View.dataView[edvV_MJP_Item_Planning_Dashboard_1View.Row]["PartPlant.Plant"].ToString()))
{
Hits = Hits + ((decimal)(dr["Number01"]));
Usage = Usage + ((decimal)(dr["Number02"]));
}
}
}
eneHits.Value = Hits;
eneUsage.Value = Usage;
}
if (ds.Tables[0].Rows.Count <= 0)
{
eneHits.Value = 0;
eneUsage.Value = 0;
}
}
}
private void btnPartSearch_Click(object sender, System.EventArgs args)
{
// ** Place Event Handling Code Here **.
SearchOnPartAdapterShowDialog();
}
private void SearchOnPartAdapterShowDialog()
{
// Wizard Generated Search Method
// You will need to call this method from another method in custom code
// For example, [Form]_Load or [Button]_Click
EpiTextBox tbxPart;
tbxPart = (Epicor.Mfg.UI.FrameWork.EpiTextBox)csm.GetNativeControlReference("376cf928-5160-4687-ba15-c69aaf17a668");
bool recSelected;
string whereClause = string.Empty;
System.Data.DataSet dsPartAdapter = Epicor.Mfg.UI.FormFunctions.SearchFunctions.listLookup(this.oTrans, "PartAdapter", out recSelected, true, whereClause);
if (recSelected)
{
System.Data.DataRow adapterRow = dsPartAdapter.Tables[0].Rows[0];
// Map Search Fields to Application Fields
//EpiDataView edvV_MJP_Item_Planning_Dashboard_1View = ((EpiDataView)(this.oTrans.EpiDataViews["V_MJP_Item_Planning_Dashboard_1View"]));
//System.Data.DataRow edvV_MJP_Item_Planning_Dashboard_1ViewRow = edvV_MJP_Item_Planning_Dashboard_1View.CurrentDataRow;
//if ((edvV_MJP_Item_Planning_Dashboard_1ViewRow != null))
{
//edvV_MJP_Item_Planning_Dashboard_1ViewRow.BeginEdit();
tbxPart.Value = adapterRow["PartNum"];
partnumber=tbxPart.Text;
//edvV_MJP_Item_Planning_Dashboard_1ViewRow.EndEdit();
tbxPart.Select();
}
}
}
private void btnCurPlant_Click(object sender, System.EventArgs args)
{
Plantcmb.Value = ((Epicor.Mfg.Core.Session)MainController.Session).PlantID.ToString();
string plantvalue=Plantcmb.Text;
}
private void SetExtendedProperties()
{
// Begin Wizard Added EpiDataView Initialization
EpiDataView edvV_MJP_Item_Planning_Dashboard_1View = ((EpiDataView)(this.oTrans.EpiDataViews["V_MJP_Item_Planning_Dashboard_1View"]));
// End Wizard Added EpiDataView Initialization
// Begin Wizard Added Conditional Block
if (edvV_MJP_Item_Planning_Dashboard_1View.dataView.Table.Columns.Contains("PartPlant.Plant"))
{
// Begin Wizard Added ExtendedProperty Settings: edvV_MJP_Item_Planning_Dashboard_1View-PartPlant.Plant
edvV_MJP_Item_Planning_Dashboard_1View.dataView.Table.Columns["PartPlant.Plant"].ExtendedProperties["Enabled"] = true;
// End Wizard Added ExtendedProperty Settings: edvV_MJP_Item_Planning_Dashboard_1View-PartPlant.Plant
}
if (edvV_MJP_Item_Planning_Dashboard_1View.dataView.Table.Columns.Contains("PartPlant.TransferPlant"))
{
// Begin Wizard Added ExtendedProperty Settings: edvV_MJP_Item_Planning_Dashboard_1View-PartPlant.TransferPlant
edvV_MJP_Item_Planning_Dashboard_1View.dataView.Table.Columns["PartPlant.TransferPlant"].ExtendedProperties["Enabled"] = true;
// End Wizard Added ExtendedProperty Settings: edvV_MJP_Item_Planning_Dashboard_1View-PartPlant.TransferPlant
}
// End Wizard Added Conditional Block
}
private void epiButtonC1_Click(object sender, System.EventArgs args)
{
// ** Place Event Handling Code Here **
string plantvalue=Plantcmb.Value.ToString();
string tplantvalue=TPlantcmb.Text;
oTrans.NotifyAll();
UpdateGrid(tplantvalue,plantvalue);
}
private void UpdateGrid(String Plant, String ToPlant)
{
EpiTextBox tbxPart;
tbxPart = (Epicor.Mfg.UI.FrameWork.EpiTextBox)csm.GetNativeControlReference("376cf928-5160-4687-ba15-c69aaf17a668");
DynamicQuery dq = new DynamicQuery(((Session)oTrans.Session).ConnectionPool);
QueryDesignDataSet qdds;
qdds = dq.GetByID("MJP-Item Planning Dashboard");
QueryExecutionDataSet qeds = dq.GetQueryExecutionParameters(qdds);
qeds.ExecutionParameter.AddExecutionParameterRow("Plant", ToPlant, "character", false, String.Empty, "A", null);
qeds.ExecutionParameter.AddExecutionParameterRow("FromPlant", Plant, "character", false, String.Empty, "A", null);
if (tbxPart.Text.Equals(""))
{
//qeds.ExecutionParameter.AddExecutionParameterRow("Part", "", "character", false, String.Empty, "A", null);
qeds.ExecutionParameter.AddExecutionParameterRow("MinMaxSafe", "false", "character", false, String.Empty, "A", null);
}
else
{
qeds.ExecutionParameter.AddExecutionParameterRow("Part", tbxPart.Text, "character", false, String.Empty, "A", null);
//qeds.ExecutionParameter.AddExecutionParameterRow("MinMaxSafe", "", "character", false, String.Empty, "A", null);
}
eds = dq.ExecuteParametrized(qdds,qeds,String.Empty,0,out outBool);
foreach (DataColumn col in eds.Tables[0].Columns)
{
for (int i = 0; i < qdds.QueryField.Count; i++)
if (col.Caption.Contains(".") && col.Caption.Split('.')[1] == qdds.QueryField[i].FieldName)
{
col.Caption = qdds.QueryField[i].FieldLabel;
break;
}
}
DashGrid.DataSource = eds.Tables[0];
oTrans.NotifyAll();
}
private void DashGrid_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs args)
{
DashGrid.DisplayLayout.Bands[0].Columns[1].Hidden = false;
}
}