Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Batch Management

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;

}

TitleResults for “How to create a CRG?”Also Available in