I started out with a fresh customization (base only) and redid the code from scratch and cleaned up the code that edits the jobhead and this now works with no errors at all.
// **************************************************
// Custom code for JobClosingForm
// Created: 6/16/2015 13:13:14
// **************************************************
using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Erp.UI;
using Ice.Lib.Customization;
using Ice.Lib.ExtendedProps;
using Ice.Lib.Framework;
using Ice.Lib.Searches;
using Ice.UI.FormFunctions;
using Erp.Adapters;
public class Script
{
// ** Wizard Insert Location - Do Not Remove 'Begin/End Wizard Added Module Level Variables' Comments! **
// Begin Wizard Added Module Level Variables **
// End Wizard Added Module Level Variables **
// Add Custom Module Level Variables Here **
private EpiDataView edvJobHead;
private EpiBaseAdapter oTrans_adapter;
public void InitializeCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Variable Initialization' lines **
// Begin Wizard Added Variable Initialization
this.JobClosing_Column.ColumnChanged += new DataColumnChangeEventHandler(this.JobClosing_BeforeFieldChange);
// End Wizard Added Variable Initialization
this.edvJobHead = ((EpiDataView)(this.oTrans.EpiDataViews["JobHead"]));
this.oTrans_adapter = ((EpiBaseAdapter)(this.csm.TransAdaptersHT["oTrans_adapter"]));
// Begin Wizard Added Custom Method Calls
// 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.JobClosing_Column.ColumnChanged -= new DataColumnChangeEventHandler(this.JobClosing_BeforeFieldChange);
// End Wizard Added Object Disposal
// Begin Custom Code Disposal
// End Custom Code Disposal
}
private void JobClosing_BeforeFieldChange(object sender, DataColumnChangeEventArgs args)
{
// ** Argument Properties and Uses **
// args.Row["FieldName"]
// args.Column, args.ProposedValue, args.Row
// Add Event Handler Code
switch (args.Column.ColumnName)
{
case "JobComplete":
int intSTK = Convert.ToInt32(edvJobHead.dataView[edvJobHead.Row]["StockQty"]);
string strJobNum = Convert.ToString(edvJobHead.dataView[edvJobHead.Row]["JobNum"]);
bool chkCmplt = Convert.ToBoolean(edvJobHead.dataView[edvJobHead.Row]["JobComplete"]);
if (intSTK > 0)
{
UpdateJob();
}
break;
}
}
private void UpdateJob()
{
//EpiDataView edvClose = (EpiDataView)oTrans.EpiDataViews("Close");
//Dim vProcID As Boolean = edvNC.dataView(edvNC.Row)("ShortChar01")
string vJobNum = Convert.ToString(edvJobHead.dataView[edvJobHead.Row]["JobNum"]);
JobEntryAdapter adapterJobEntry = new JobEntryAdapter(this.oTrans);
adapterJobEntry.BOConnect();
try
{
bool JobNum = adapterJobEntry.GetByID(vJobNum);
adapterJobEntry.JobEntryData.JobHead.Rows[0].BeginEdit();
adapterJobEntry.JobEntryData.JobHead.Rows[0]["CheckBox01"] = true;
adapterJobEntry.JobEntryData.JobHead.Rows[0].EndEdit();
JobNum = adapterJobEntry.Update();
}
catch (Exception e)
{
//AddNewDraw()
} finally
{
adapterJobEntry.Dispose();
}
}
}
Rob Bucek
Production Control Manager
PH: (715) 284-5376 ext 311
Mobile: (715)896-3119
FAX: (715)284-4084
[cid:1.234354861@...]<http://www.dsmfg.com/>
(Click the logo to view our site)<http://www.dsmfg.com/>
From: vantage@yahoogroups.com [mailto:vantage@yahoogroups.com]
Sent: Tuesday, June 16, 2015 4:08 PM
To: vantage@yahoogroups.com
Subject: [Vantage] E10 10.0.700.4 Job Entry Adapter
All,
Trying to uplift all my old VB.net code to C# for my E10 Conversion. I have a working version of this in VB but am having a bit of trouble getting this to work in C# for E10. Basically trying to update a UD field on the JobHead table from job Closing.
I get the following error when I open the form (the code compiles without error but clearly isn't working)
Exception caught in: Ice.Lib.EpiClientLib
Error Detail
============
Message: Object reference not set to an instance of an object.
Program: Ice.Lib.EpiClientLib.dll
Method: RegisterView
Client Stack Trace
==================
at Ice.Lib.Framework.ForeignKeyAgent.RegisterView(EpiTransaction trans, String EpiBinding, String ViewName, String TableName)
at Ice.Lib.Customization.PersonalizeCustomizeManager.CallAddForeignKeyView(String colName, String viewName, String tableName, String epiGuid, String adapterName, String getByType, String parViewName, Boolean defaultAdapter)
my code below
// **************************************************
// Custom code for JobClosingForm
// Created: 6/16/2015 13:13:14
// **************************************************
using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Erp.UI;
using Ice.Lib.Customization;
using Ice.Lib.ExtendedProps;
using Ice.Lib.Framework;
using Ice.Lib.Searches;
using Ice.UI.FormFunctions;
using Erp.Adapters;
public class Script
{
// ** Wizard Insert Location - Do Not Remove 'Begin/End Wizard Added Module Level Variables' Comments! **
// Begin Wizard Added Module Level Variables **
// End Wizard Added Module Level Variables **
// Add Custom Module Level Variables Here **
private EpiDataView edvJobHead;
private JobEntryAdapter adapterJobEntry;
public void InitializeCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Variable Initialization' lines **
// Begin Wizard Added Variable Initialization
this.JobClosing_Column.ColumnChanged += new DataColumnChangeEventHandler(this.JobClosing_BeforeFieldChange);
// End Wizard Added Variable Initialization
this.edvJobHead = ((EpiDataView)(this.oTrans.EpiDataViews["JobHead"]));
// Begin Wizard Added Custom Method Calls
// End Wizard Added Custom Method Calls
//JobEntryAdapter adaptJobEntry = ((EpiBaseAdapter)(csm.TransAdaptersHT["JobEntryAdapter"]));
}
public void DestroyCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Object Disposal' lines **
// Begin Wizard Added Object Disposal
this.JobClosing_Column.ColumnChanged -= new DataColumnChangeEventHandler(this.JobClosing_BeforeFieldChange);
// End Wizard Added Object Disposal
// Begin Custom Code Disposal
// End Custom Code Disposal
}
private void JobClosing_BeforeFieldChange(object sender, DataColumnChangeEventArgs args)
{
// ** Argument Properties and Uses **
// args.Row["FieldName"]
// args.Column, args.ProposedValue, args.Row
// Add Event Handler Code
switch (args.Column.ColumnName)
{
case "JobComplete":
MessageBox.Show(Convert.ToString(edvJobHead.dataView[edvJobHead.Row]["StockQty"]));
int intSTK = Convert.ToInt32(edvJobHead.dataView[edvJobHead.Row]["StockQty"]);
string strJobNum = Convert.ToString(edvJobHead.dataView[edvJobHead.Row]["JobNum"]);
bool chkCmplt = Convert.ToBoolean(edvJobHead.dataView[edvJobHead.Row]["JobComplete"]);
if (intSTK > 0)
{
UpdateJob();
}
break;
}
}
private void UpdateJob()
{
//EpiDataView edvClose = (EpiDataView)oTrans.EpiDataViews("Close");
//Dim vProcID As Boolean = edvNC.dataView(edvNC.Row)("ShortChar01")
string vJobNum = Convert.ToString(edvJobHead.dataView[edvJobHead.Row]["JobNum"]);
JobEntryAdapter adapterJobEntry = new JobEntryAdapter(this.oTrans);
adapterJobEntry.BOConnect();
try
{
MessageBox.Show(Convert.ToString(adapterJobEntry.JobEntryData.JobHead[0]["CheckBox01"]));
bool JobNum = adapterJobEntry.GetByID(vJobNum);
adapterJobEntry.JobEntryData.Tables["JobHead"].Rows[0].BeginEdit();
adapterJobEntry.JobEntryData.JobHead[0]["CheckBox01"] = true;
adapterJobEntry.JobEntryData.Tables["JobHead"].Rows[0].EndEdit();
adapterJobEntry.Update();
}
catch (Exception e)
{
//AddNewDraw()
} finally
{
adapterJobEntry.Dispose();
}
}
}
Rob Bucek
Production Control Manager
PH: (715) 284-5376 ext 311
Mobile: (715)896-3119
FAX: (715)284-4084
[cid:1.234354861@...]<http://www.dsmfg.com/>
(Click the logo to view our site)<http://www.dsmfg.com/>
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]