Example
- Last UpdatedAug 26, 2016
- 2 minute read
The following sample C# code illustrates how to define, query, and use the wwActualChars object.
The example populates a list of ingredients, populates a list of units to which the material has been assigned whenever a material is selected, populates a list of lot tracking information defined for the selected unit, and finally populates a list of actual characteristics for the selected lot tracking instance. The global variables are defined so that they are available throughout the entire program.
private void SetLotTrackingInfo()
{
lotTrackingLsv.Items.Clear();
wwMaterialUnits LocMatUnits;
LocMatUnits = GetMatUnits();// you get this function in the above page
if(LocMatUnits== null)
return;
// UnitsLsb is the list box containing units
for (int ut = 1; ut <= LocMatUnits.Count; ut++)
{
MatUnit = (wwMaterialUnit)LocMatUnits.Item(ut);
if (UnitsLsb.Items.Count > 0)
if (MatUnit.UnitName == UnitsLsb.SelectedItem.ToString())
break;
}
if (LocMatUnits.Count == 0)
return;
MatUnit.QueryCLBs();
MatClbs = (wwMaterialCLBs)MatUnit.MaterialCLBs;
for (int i = 1; i <= MatClbs.Count; i++)
{
MatClb = (wwMaterialCLB)MatClbs.Item(i);
ListViewItem listItem = new ListViewItem(i.ToString());
listItem.SubItems.Add(MatClb.CampaignID);
listItem.SubItems.Add(MatClb.LotID);
listItem.SubItems.Add(MatClb.BatchID);
lotTrackingLsv.Items.Add(listItem);
}
}
private void SetAvailableUnits()
{
AvaliableUnitsLsb.Items.Clear();
AvaliableUnitsLsb.Show();
if (MatStatus.GetMaterialType() == "Ingradiants") mdbc.QueryMaterialsByType(wwMtrlTypeEnum.wwTypeIngredient);
if (MatStatus.GetMaterialType() == "Finished Goods") mdbc.QueryMaterialsByType(wwMtrlTypeEnum.wwTypeFinishedGood);
if (MatStatus.GetMaterialType() == "Intermediates") mdbc.QueryMaterialsByType(wwMtrlTypeEnum.wwTypeIntermediate);
if (MatStatus.GetMaterialType() == "Other products")
mdbc.QueryMaterialsByType(wwMtrlTypeEnum.wwTypeOther);
if (MatStatus.GetMaterialType() == "All")
mdbc.QueryMaterialsByType(wwMtrlTypeEnum.wwTypeAll);
mdbc.QueryMaterialsById(MatStatus.GetMaterialId());
mats = (wwMaterials)mdbc.Materials;
if (mats.Count == 0)
return;
Material = (wwMaterial)mats.Item(1);
MatDb.QueryAvailableUnits();
MatDBunits = (wwAvailableUnits)MatDb.AvailableUnits;
for(int i=1; i <= MatDBunits.Count; i++)
AvaliableUnitsLsb.Items.Add( MatDBunits.Item(i));
}
Private void SetLotTrackingInfo
{
wwMaterialUnits LocMatUnits;
wwActualChar MatActualChar;
wwActualChars MatActualChars;
wwMaterials mats;
wwMaterial Material;
wwMaterialUnit MatUnit = null;
wwMaterialCLBs MatClbs;
wwMaterialCLB MatClb;
// LotTrackingLsv is the listview
string strCampaign = lotTrackingLsv.SelectedItems[0].SubItems[1].Text
string strLot = lotTrackingLsv.SelectedItems[0].SubItems[2].Text;
string strBatch = lotTrackingLsv.SelectedItems[0].SubItems[3].Text;
if (strLot.Length > 0)
{
CampaignTxt.Text = strCampaign;
LotText.Text = strLot;
BatchTxt.Text = strBatch;
}
LocMatUnits = GetMatUnits(); // given below function
if (LocMatUnits == null)
return;
for (int ut = 1; ut <= LocMatUnits.Count; ut++)
{
MatUnit = (wwMaterialUnit)LocMatUnits.Item(ut);
// UnitsLsb is listbox
if (UnitsLsb.Items.Count > 0)
if (MatUnit.UnitName == UnitsLsb.SelectedItem.ToString())
break;
}
MatUnit.QueryCLBs();
MatClbs = (wwMaterialCLBs)MatUnit.MaterialCLBs;
for (int i = 1; i <= MatClbs.Count; i++)
{
MatClb = (wwMaterialCLB)MatClbs.Item(i);
if (i == System.Convert.ToInt16(lotTrackingLsv.SelectedItems[0].SubItems[0].Text))
break;
}
QualityText.Text = MatClb.Quantity.ToString();
DateTime dttm = new DateTime(MatClb.Year, MatClb.Month, MatClb.Day);
dateTimePicker1.Value = dttm;
MatClb.QueryActualChars();
MatActualChars = (wwActualChars)MatClb.ActualChars;
for (int k = 1; k <= MatActualChars.Count; k++)
{
MatActualChar = (wwActualChar)MatActualChars.Item(k);
ListViewItem listItem = new ListViewItem(k.ToString());
listItem.SubItems.Add(MatActualChar.Name); listItem.SubItems.Add(MatActualChar.Value.ToString());
ActualcharsLsv.Items.Add(listItem);
}
}