This is my Code.... Please tell me in which code i have to modify to rectify that error...??
Private Function fnProcessTab(ByVal strTabKey As String, ByVal DtProgGridData As DataTable) As Boolean
'*************************************************************************
'* Function Name: ProcessTab
'* Description: This function validates the user input in the given
'* tab (based on tab key) and process it's activity
'* Created by: Anandashankar
'* Created date: 25/08/2011
'*************************************************************************
Dim blnResult As Boolean
Dim dtRowsAff As New DataTable
Select Case strTabKey
Case "SelectInputFile"
grdFilesUploadProgress.DataSource = DtProgGridData
grdFilesUploadProgress.DisplayLayout.Bands(0).Columns.Add("progKey", "")
grdFilesUploadProgress.DisplayLayout.Bands(0).Columns.Add("DescKey", "Status")
Me.grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(3).CellActivation = Activation.Disabled
Me.grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(2).CellActivation = Activation.Disabled
Me.grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(1).CellActivation = Activation.Disabled
grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(2).EditorComponent = Me.upgPrgressBar
'Disable the next button
cmdNext.Enabled = False
'Set the active tab to the progress bar tab
utcWizard.Tabs("Progressbar").Selected = True
'Display hour glass cursor
Me.Cursor = Cursors.WaitCursor
bgWorker.RunWorkerAsync()
Application.DoEvents()
'Change the form caption based on the step we are at
'SetWizardCaption(3)
Me.Cursor = Cursors.Default
Case "SaveInput"
'Change the form caption based on the step we are at
SetWizardCaption(1)
'Enable the next button and return to the first tab
utcWizard.Tabs("SelectInputFile").Selected = True
cmdBack.Enabled = False
cmdNext.Enabled = True
End Select
End Function
Private Sub bgWorker_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgWorker.DoWork
'*************************************************************************************
'* NAME: bgWorker_DoWork *
'* DESCRIPTION: This Sub is to load the grid and insert row by row from ultragrid *
'* WRITEN BY: Ananda shankar *
'* DATE: 25/08/2011 *
'*************************************************************************************
'Try
'grdFilesUploadProgress.DataSource = dtProgressData
fncheckrowbyrow()
If bgWorker.CancellationPending Then
e.Cancel = True
End If
'Catch ex As Exception
'MsgBox(ex.Message.ToString())
'End Try
End Sub
Private Sub fncheckrowbyrow()
'*************************************************************************************
'* NAME: fncheckrowbyrow *
'* DESCRIPTION: This main Sub is to import row by row *
'* WRITEN BY: Ananda shankar *
'* DATE: 25/08/2011 *
'*************************************************************************************
'Variable Declaration
Dim row As UltraGridRow
Dim dtfileinfo As New DataTable
Dim strFilename, strFileExtension As String
Dim objimportprodplan As New clsImportProductionPlan
For Each row In grdFilesUploadProgress.Rows
Try
intRowsAffcted = 0
dtfileinfo = New DataTable()
grdFilesUploadProgress.ActiveRow = Nothing
grdFilesUploadProgress.ActiveRow = grdFilesUploadProgress.Rows(row.Index)
' Me.UltraGrid1.Selected.Rows.AddRange(UltraGrid1.Rows.GetFilteredInNonGroupByRows())
strFilename = Me.grdFilesUploadProgress.Rows(row.Index).Cells(1).Value
strFileExtension = Path.GetExtension(strFilename)
If (strFileExtension = ".xls" Or strFileExtension = ".xlsx") Then
dtfileinfo = objCommon.ReadExcelFile(strFilename)
ElseIf strFileExtension = ".csv" Then
dtfileinfo = objCommon.ReadCSVFile(strFilename)
End If
Me.grdFilesUploadProgress.Rows(row.Index).Cells(3).Value = "Loading....."
'If (blnClosed = True) Then
' Exit For
'End If
'Threading.ThreadPool.QueueUserWorkItem(New Threading.WaitCallback(AddressOf fnImportByRow), dtfileinfo, row)
Dim blnImpSuccess As Boolean = fnImportByRow(dtfileinfo, row)
If blnImpSuccess = True Then
Me.grdFilesUploadProgress.Rows(row.Index).Cells(3).Value = intRowsAffcted.ToString & " Rows Completed"
Else
Me.grdFilesUploadProgress.Rows(row.Index).Cells(3).Value = intRowsAffcted.ToString & " Rows Completed. Error Loading file. Refer to Log File"
End If
Catch ex As Exception
fnImportByRow_Ex(row.Index, intRowsAffcted.ToString() & " Rows Completed.. Error Loading file. Refer to Log File")
End Try
Next
End Sub
Private Function fnImportByRow(ByVal dtinfotbl As DataTable, ByVal UGrow As UltraGridRow) As Boolean
'*************************************************************************************
'* NAME: fnImportByRow *
'* DESCRIPTION: This function is to import and for the Progress Bar in grid *
'* WRITEN BY: Ananda shankar *
'* DATE: 25/08/2011 *
'*************************************************************************************
Dim x As Double
Dim intProdId As Integer
Dim blnresult, blnSuccess As Boolean
clcmaxval_rows = New Collection
'System.Threading.Thread.Sleep(1000)
Try
If (Me.InvokeRequired) Then
'Me.Invoke(New MethodInvoker(AddressOf chk1, i))
Me.Invoke(New MethodInvoker(Function()
' Define a handler for unhandled exceptions for threads behind forms.
AddHandler Application.ThreadException, AddressOf MYThreadHandler
Try
Select Case Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(0).Value.ToString()
Case "BOM Parts List"
Me.grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(2).MinValue = 0
'Code to Process BOM Parts List files
Dim ObjBOM As New clsImportMachineBOM(intOrganisationId)
ObjBOM.DeleteInputMachineBOMData(3)
clcmaxval_rows = ObjBOM.FnBulkCopyFromCSVToDB(Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(1).Value.ToString())
'Setting the maximum value for the Progressbar
If clcmaxval_rows.Count > 0 Then
Me.grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(2).MaxValue = clcmaxval_rows(1)
intRowsAffcted = clcmaxval_rows(2)
End If
Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(2).Value = intRowsAffcted
Application.DoEvents()
' ObjBOM = Nothing
Case "Production Plan", "Install Base"
Me.grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(2).MinValue = 0
Me.grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(2).MaxValue = dtinfotbl.Rows.Count
For Each dtrow In dtinfotbl.Rows
intProdId = objCommon.GetProductId(dtrow(0), intOrganisationId, 1)
'Code to Process ProductionPlan type of files
If Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(0).Value.ToString() = "Production Plan" Then
Dim objProdPlanImport As New clsImportProductionPlan(intOrganisationId, CType(dtrow(1), Integer), CType(dtrow(2).ToString().Trim(), Integer), intProdId, CType(dtrow(3), Integer))
blnresult = objProdPlanImport.fnImportProductionPlan(2)
If blnresult = True Then
intRowsAffcted += 1
End If
Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(2).Value = intRowsAffcted
Application.DoEvents()
'objProdPlanImport = Nothing
'Code to Process Installbase type of files
ElseIf Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(0).Value.ToString() = "Install Base" Then
Dim ObjInstallBase As New ClsImportInstallBase(intOrganisationId, intProdId, CType(dtrow(1).ToString(), Integer), CType(dtrow(2).ToString.Trim(), Integer))
blnresult = ObjInstallBase.fnImportInstallBase(2)
If blnresult = True Then
intRowsAffcted += 1
End If
Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(2).Value = intRowsAffcted
Application.DoEvents()
'ObjInstallBase = Nothing
End If
If blnClosed = True Then
End
End If
Next
Case "Inventory"
Me.grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(2).MinValue = 0
'Code to Process BOM Parts List files
Dim ObjInv As New clsImportInventory(intOrganisationId)
ObjInv.DeleteInventoryData(3)
clcmaxval_rows = ObjInv.FnBulkCopyFromCSVToDB(Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(1).Value.ToString())
'Setting the maximum value for the Progressbar
If clcmaxval_rows.Count > 0 Then
Me.grdFilesUploadProgress.DisplayLayout.Bands(0).Columns(2).MaxValue = clcmaxval_rows(1)
intRowsAffcted = clcmaxval_rows(2)
End If
Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(2).Value = intRowsAffcted
Application.DoEvents()
End Select
'Threading.Thread.Sleep(500)
Me.grdFilesUploadProgress.DisplayLayout.Rows(UGrow.Index).Cells(2).Style = ColumnStyle.CheckBox
Me.grdFilesUploadProgress.Rows(UGrow.Index).Cells(2).Value = True
blnSuccess = True
Return Nothing
Catch ex As Exception
blnSuccess = False
fnImportByRow_Ex(UGrow.Index, intRowsAffcted.ToString() & " Row Completed.. Error Loading file. Refer to Log File")
Return Nothing
End Try
End Function))
End If
Return blnSuccess
Catch ex As Exception
Throw ex
End Try
'UltraCheckEditor1.Checked = True
'SetControlPropertyValue(UltraControlContainerEditor1, "RenderingControl", ultra)
End Function
Private Sub fnImportByRow_Ex(ByVal ss As Integer, ByVal msg As String)
'*************************************************************************************
'* NAME: fnImportByRow_Ex *
'* DESCRIPTION: This function is called when any error occurs in the importing *
'* WRITEN BY: Ananda shankar *
'* DATE: 25/08/2011 *
'*************************************************************************************
'If (Me.InvokeRequired) Then
Me.Invoke(New MethodInvoker(Function()
Me.grdFilesUploadProgress.DisplayLayout.Rows(ss).Cells(3).Style = ColumnStyle.Edit
Me.grdFilesUploadProgress.Rows(ss).Cells(3).Value = msg
'SetControlPropertyValue(Ugcheckbox2, "Checked", False)
'Me.UgControlContainer.RenderingControl = Me.Ugcheckbox2
'Me.grdFilesUploadProgress.Rows(ss).Cells(2).EditorComponent = Me.UgControlContainer
Me.grdFilesUploadProgress.DisplayLayout.Rows(ss).Cells(2).Style = ColumnStyle.CheckBox
Me.grdFilesUploadProgress.Rows(ss).Cells(2).Value = False
Return Nothing
End Function))
'End If
End Sub
Public Sub MYThreadHandler(ByVal sender As Object, _
ByVal e As Threading.ThreadExceptionEventArgs)
MsgBox(e.Exception.StackTrace)
End Sub
Private Sub bgWorker_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgWorker.RunWorkerCompleted
'If e.Cancelled Then
' MessageBox.Show("The task has been cancelled")
'ElseIf e.[Error] IsNot Nothing Then
' MessageBox.Show("Error. Details: " & TryCast(e.[Error], Exception).ToString())
'End If
bgWorker.CancelAsync()
End Sub