Example
- Last UpdatedAug 26, 2016
- 2 minute read
The following sample C# code illustrates how to define, query, and use the wwActualChar object.
The example searches for Lot_123 of the Vinegar material in the BulkTk1 unit and changes the value of the actual pH characteristic to 4.3.
private void ChangeButton_Click(object sender, EventArgs e)
{
wwMaterialUnits LocMatUnits;
wwActualChar MatActualChar= null;
wwActualChars MatActualChars;
LocMatUnits = GetMatUnits();
if (LocMatUnits == null)
return;
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;
}
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;
}
DateTime dttm = new DateTime(MatClb.Year, MatClb.Month, MatClb.Day);
dateTimePicker1.Value = dttm;
MatClb.QueryActualChars();
MatActualChars =(wwActualChars) MatClb.ActualChars;
for(short k=1; k<= MatActualChars.Count; k++)
{
short temp = System.Convert.ToInt16(ActualcharsLsv.SelectedItems[0].SubItems[0].Text);
MatActualChar = (wwActualChar)MatActualChars.Item(k);
if(k == temp)
break;
}
if (MatActualChar != null)
MatActualChar.ChangeValue(ActualValTxt.Text);
if (ActualcharsLsv.Items.Count > 0)
ActualcharsLsv.TopItem.Selected = true;
LoadLotTrackingValues();
}
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.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); }}
private wwMaterialUnits GetMatUnits()
{
wwMaterialUnits MatUnits=null;
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("r00-454-4545")
mats = (wwMaterials)mdbc.Materials;
if (mats.Count != 0)
{
Material = (wwMaterial)mats.Item(1);
Material.QueryMaterialUnits();
MatUnits = (wwMaterialUnits)Material.MaterialUnits;
}
return MatUnits;
}