I am working on a form which will print to a label. when i hit my print button I get the message “Object reference not set to an instance of an object.”
Below is my code.
[FormControlEventHandler(formControlStr(MJMNeTubingLabel, MJMPrintTubingLabel), FormControlEventType::Clicked)]
public static void MJMPrintTubingLabel_OnClicked(FormControl sender, FormControlEventArgs e)
{
FormRun formRun = sender.formRun();
FormDataSource formDataSource = sender.formRun().dataSource(“SalesTable”);
UserInfo userInfo;
MJMLabelFormatSupport UsersLabel;
MJM_ScanFolder ScanFolder;
// this needs to come in as variable
str descript;
//On the TubingRound Label
FormComboBoxControl formTubingLabelFormat = FormRun.design(0).controlName(“MJMTubingLabel_TubingLabelFormat”);
FormStringControl formSalesId = formRun.design(0).controlName(“MJMFinShipLabel_SalesId”);
FormStringControl formCustomerRef = formRun.design(0).controlName(“MJMFinShipLabel_CustomerRef”);//OrderNum
FormStringControl formCageNum = formRun.design(0).controlName(“MJMFinShipLabel_CageNum”);
FormStringControl formSpoolPartNumber = formRun.design(0).controlName(“MJMTubingLabel_MJMSpoolPartNumber”);//Manual enter
FormStringControl formExternalItemId = formRun.design(0).controlName(“MJMFinShipLabel_ExternalItemId”);//PartNum
FormStringControl formLot = FormRun.design(0).controlName(“MJMFinShipLabel_Lot”);
FormStringControl formAWGSize = FormRun.design(0).controlName(“MJMFinShipLabel_AWGSize”);
FormStringControl formSalesUnit = FormRun.design(0).controlName(“MJMFinShipLabel_SalesUnit”);
FormStringControl formReelNum = FormRun.design(0).controlName(“MJMFinShipLabel_ReelNum”);
FormRealControl formNumPieces = FormRun.design(0).controlName(“MJMFinShipLabel_NumPieces”);
FormRealControl formLength = FormRun.design(0).controlName(“MJMFinShipLabel_Length”);
FormRealControl formTopPc = FormRun.design(0).controlName(“MJMFinShipLabel_TopPc”);
FormDateControl formMFGDate = FormRun.design(0).controlName(“MJMFinShipLabel_MFGDate”);
FormRealControl formGross = FormRun.design(0).controlName(“MJMFinShipLabel_Gross”);
FormRealControl formTare = FormRun.design(0).controlName(“MJMFinShipLabel_Tare”);
FormRealControl formNet = FormRun.design(0).controlName(“MJMFinShipLabel_Net”);
FormIntControl formNumberOfLabels = FormRun.design(0).controlName(“MJMFinShipLabel_NumberOfLabels”);
//On the TubingSquare Label
FormStringControl formItemNo = formRun.design(0).controlName(“MJMTubingLabel_MJMItemNo”);
FormStringControl formOrderNumber = formRun.design(0).controlName(“MJMTubingLabel_MJMOrderNumber”);
FormStringControl formPartNumber = formRun.design(0).controlName(“MJMTubingLabel_MJMPartNumber”);
FormStringControl formMfgPartNum = formRun.design(0).controlName(“MJMTubingLabel_MJMMFGPartNo”);//Manual enter
FormStringControl formBulkWorkOrder = formRun.design(0).controlName(“MJMTubingLabel_MJMBulkWorkOrder”);
FormStringControl formMfgLotNum = formRun.design(0).controlName(“MJMTubingLabel_MJMMFGLotNum”);//Manual enter
FormStringControl formRev = FormRun.design(0).controlName(“MJMTubingLabel_MJMRevision”);
FormStringControl formDescription = FormRun.design(0).controlName(“MJMTubingLabel_MJMTubingDescription”);
//On the TubingSquare Label
FormStringControl formOutsideDmter = formRun.design(0).controlName(“MJMTubingLabel_MJMOutsideDmter”);//Manual enter
//FormRealControl formLineNum = FormRun.design(0).controlName(“MJMFinShipLabel_LineNum”);
//FormStringControl formItemId = formRun.design(0).controlName(“MJMFinShipLabel_ItemId”);//MfgPartNum
date MFGDate = str2Date(formMFGDate.valueStr(),321);
Str tubingLabel = formTubingLabelFormat.valueStr();
//get the user mane to find format
select * from userInfo
where userInfo.name == xUserInfo::find().name;
//info(strfmt("%1 %2", xUserInfo::find().name, userInfo.id ));
// this is create a unque key for the format file
System.DateTime dateTime = System.DateTime::get_UtcNow();
str utcTimeAsStr = dateTime.ToString(‘yyyyMdHHmmss’);
// find user template and printer
if(tubingLabel == enum2Str(MJMTubingLabelFormat::TubingRoundLabel))
{
select * from userslabel
where UsersLabel.User == userInfo.id && UsersLabel.LabelFormat == “NTRL”;
}
else if(tubingLabel == enum2Str(MJMTubingLabelFormat::TubingSquareLabel))
{
select * from userslabel
where UsersLabel.User == userInfo.id && UsersLabel.LabelFormat == “NTSL”;
}
else if(tubingLabel == enum2Str(MJMTubingLabelFormat::CableSquareLabel))
{
select * from userslabel
where UsersLabel.User == userInfo.id && UsersLabel.LabelFormat == “NTCL”;
}
// get location to drop files
select * from ScanFolder
where ScanFolder.MJM_ScanFolder_Name == “Bartender”;
// now we create and write the file
System.IO.StreamWriter sw;
InteropPermission perm = new InteropPermission(InteropKind::ClrInterop);
perm.assert();
// file name and location
sw = new System.IO.StreamWriter(strRTrim(ScanFolder.MJM_ScanFolder_Path) + userslabel.User + utcTimeAsStr + “.dat”);
// header
sw.WriteLine("%BTW% /f=" + UsersLabel.LabelTemplate + " " /d="%Tigger File Name%" /PRN=" " + UsersLabel.LabelPrinter + “” /r=3 /p /dd /c=" + formNumberOfLabels.valueStr()+ “”");
sw.WriteLine("%END%");
//variable names
if(tubingLabel == enum2Str(MJMTubingLabelFormat::TubingRoundLabel))
{
sw.WriteLine(“AwgSize, Cage, CustomerPN, SpoolPartNumber, CustomerPo, Lot, Gross, Tare, Net, UOM, ReelNum, NoPcs, Length, TopPiece, SalesOrder, Mfgdate, AwgSizeDesc, CageDesc, CustomerPNDesc, SpoolPartNumberDesc, CustomerPoDesc, LotDesc, GrossDesc, TareDesc, NetDesc, UOMDesc, ReelNumDesc, NoPcsDesc, LengthDesc, TopPieceDesc, SalesOrderDesc, MfgdateDesc”);
}
else if(tubingLabel == enum2Str(MJMTubingLabelFormat::TubingSquareLabel))// Tubing Square Label
{
sw.WriteLine(“OrderNo, ItemNo, PartNum, Rev, MfgLotNo, MfgPartNo, SalesOrder, Description, BulkWorkOrder, Quantity, OrderNoDesc, ItemNoDesc, PartNumDesc, RevDesc, MfgLotDesc, MfgPartDesc, SalesOrderDesc, DescriptionDesc, BulkWorkOrderDesc, QuantityDesc”);
}
else if(tubingLabel == enum2Str(MJMTubingLabelFormat::CableSquareLabel))//Cable Square Label
{
sw.WriteLine(“OrderNo, ItemNo, PartNum, Rev, MfgLotNo, MfgPartNo, SalesOrder, Description, MfgDate, OutsideDmter, Quantity, OrderNoDesc, ItemNoDesc, PartNumDesc, RevDesc, MfgLotDesc, MfgPartDesc, SalesOrderDesc, DescriptionDesc, MfgDateDesc, OutsideDmterDesc, QuantityDesc”);
}
Descript = System.Text.RegularExpressions.Regex::Replace(formDescription.valueStr(), “”", “”);
if(tubingLabel == enum2Str(MJMTubingLabelFormat::TubingRoundLabel))
{
sw.WriteLine(
“”" + formAWGSize.valueStr() + “”,"" +
formCageNum.valueStr() + “”,"" +
formExternalItemId.valueStr() + “”,"" +
formSpoolPartNumber.valueStr() + “”,"" +
formCustomerRef.valueStr() + “”,"" +
formLot.valueStr() + “”,"" +
formGross.valueStr() + “”,"" +
formTare.valueStr() + “”,"" +
formNet.valueStr() + “”,"" +
formSalesUnit.valueStr() + “”,"" +
formReelNum.valueStr() + “”,"" +
formNumPieces.valueStr() + “”,"" +
formLength.valueStr() + “”,"" +
formTopPc.valueStr() + “”,"" +
formSalesId.valueStr() + “”,"" +
strFmt("%1/%2/%3",mthOfYr(MfgDate),dayOfMth(MfgDate),Year(MfgDate)) + “”,"" +
“AWG Size:” + “”,"" +
“Cage #:” + “”,"" +
“Customer P/N:” + “”,"" +
“Part #:” + “”,"" +
“Customer PO #:” + “”,"" +
“Lot #:” + “”,"" +
“Gross:” + “”,"" +
“Tare:” + “”,"" +
“NET:” + “”,"" +
“Unit:” + “”,"" +
“Reel #:” + “”,"" +
“No Pcs:” + “”,"" +
“Length:” + “”,"" +
“Top Piece:” + “”,"" +
“Sales Order:” + “”,"" +
“Mfg Date:” + “”,"");
sw.Flush();
sw.Close();
sw.Dispose();
}
else if(tubingLabel == enum2Str(MJMTubingLabelFormat::TubingSquareLabel))
{
sw.WriteLine(
“”" + formOrderNumber.valueStr() + “”,"" +
formItemNo.valueStr() + “”,"" +
formPartNumber.ValueStr() + “”,"" +
formRev.valueStr() + “”,"" +
formMfgLotNum.valueStr() + “”,"" +
formMfgPartNum.valueStr() + “”,"" +
formSalesId.valueStr() + “”,"" +
descript + “”,"" +
formBulkWorkOrder.valueStr() + “”,"" +
formLength.valueStr() + “”,"" +
“Order No:” + “”,"" +
“Item No:” + “”,"" +
“Part No:” + “”,"" +
“Rev:” + “”,"" +
“MFG Lot No:” + “”,"" +
“MFG Part No:” + “”,"" +
“Sales Order:” + “”,"" +
“Description:” + “”,"" +
“Bulk Work Order:” + “”,"" +
“Quantity:” + “”,"");
sw.Flush();
sw.Close();
sw.Dispose();
}
else if(tubingLabel == enum2Str(MJMTubingLabelFormat::CableSquareLabel))
{
sw.WriteLine(
“”" + formOrderNumber.valueStr() + “”,"" +
formItemNo.valueStr() + “”,"" +
formPartNumber.ValueStr() + “”,"" +
formRev.valueStr() + “”,"" +
formMfgLotNum.valueStr() + “”,"" +
formMfgPartNum.valueStr() + “”,"" +
formSalesId.valueStr() + “”,"" +
descript + “”,"" +
formMFGDate.valueStr() + “”,"" +
formOutsideDmter.valueStr() + “”,"" +
formLength.valueStr() + “”,"" +
“Order No:” + “”,"" +
“Item No:” + “”,"" +
“Part No:” + “”,"" +
“Rev:” + “”,"" +
“MFG Lot No:” + “”,"" +
“MFG Part No:” + “”,"" +
“Sales Order:” + “”,"" +
“Description:” + “”,"" +
“MFG Date:” + “”,"" +
“O.D.:” + “”,"" +
“Quantity:” + “”,"");
sw.Flush();
sw.Close();
sw.Dispose();
}
}
}