Object reference not set to an instance of an object.

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();
}

}

}

Parents
  • [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();
            }    
            
        }
    
    }

    Str tubingLabel = formTubingLabelFormat.valueStr();

    This is where the above error occurs

Reply Children
No Data
Related
Recommended