Toshiba_Kanban_Issuance/.svn/pristine/b3/b3ccd08e1d6d8967a4dec63b8d6cbc7070ad05ad.svn-base

396 lines
16 KiB
Plaintext

Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports Excel = Microsoft.Office.Interop.Excel
Public Class kittingForm
Private cnstr = mainForm.cnstr
Private conn As New SqlConnection(cnstr)
Private myQuery As String = String.Empty
Private myCommand As SqlCommand
Private adapter As SqlDataAdapter = New SqlDataAdapter()
Private ds As New DataSet("MachineSequence")
Private i, limit As Integer
Private sequence As New Sequence()
Private kitted As Boolean = False
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim a As Integer
Dim j As Integer
Private Sub kittingForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MdiParent = mainForm
Control.CheckForIllegalCrossThreadCalls = False
getSequence()
initializeDG()
End Sub
Private Sub initializeDG()
Dim partNo As New DataGridViewTextBoxColumn
Dim machine As New DataGridViewTextBoxColumn
Dim feeder As New DataGridViewTextBoxColumn
Dim fsbsQty As New DataGridViewTextBoxColumn
Dim desc1 As New DataGridViewTextBoxColumn
Dim spq As New DataGridViewTextBoxColumn
Dim qty As New DataGridViewTextBoxColumn
Dim eoh As New DataGridViewTextBoxColumn
'sequence.HeaderText = "Sequence"
partNo.HeaderText = "Part Number"
machine.HeaderText = "Machine"
feeder.HeaderText = "Feeder"
desc1.HeaderText = "Description"
fsbsQty.HeaderText = "Usage"
spq.HeaderText = "SPQ"
qty.HeaderText = "Initial_Quantity"
eoh.HeaderText = "EOH"
dgKitting.Columns.Add(partNo)
dgKitting.Columns.Add(machine)
dgKitting.Columns.Add(feeder)
dgKitting.Columns.Add(desc1)
dgKitting.Columns.Add(fsbsQty)
dgKitting.Columns.Add(spq)
dgKitting.Columns.Add(qty)
dgKitting.Columns.Add(eoh)
dgKitting.Columns(0).ReadOnly = True
dgKitting.Columns(1).ReadOnly = True
dgKitting.Columns(2).ReadOnly = True
dgKitting.Columns(3).ReadOnly = True
dgKitting.Columns(4).ReadOnly = True
dgKitting.Columns(5).ReadOnly = True
dgKitting.Columns(0).SortMode = DataGridViewColumnSortMode.Programmatic
dgKitting.Columns(1).SortMode = DataGridViewColumnSortMode.Programmatic
dgKitting.Columns(2).SortMode = DataGridViewColumnSortMode.Programmatic
dgKitting.Columns(3).SortMode = DataGridViewColumnSortMode.Programmatic
dgKitting.Columns(4).SortMode = DataGridViewColumnSortMode.Programmatic
dgKitting.Columns(5).SortMode = DataGridViewColumnSortMode.Programmatic
dgKitting.Columns(6).SortMode = DataGridViewColumnSortMode.Programmatic
dgKitting.Columns(7).SortMode = DataGridViewColumnSortMode.Programmatic
'dgKitting.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
dgKitting.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader
dgKitting.RowsDefaultCellStyle.BackColor = Color.AntiqueWhite
dgKitting.AlternatingRowsDefaultCellStyle.BackColor = Color.Beige
End Sub
Private Sub fillDataGridView()
Dim i As Integer = 0
dgKitting.Rows.Clear()
For i = 0 To ds.Tables(0).Rows.Count - 1
dgKitting.Rows.Add()
dgKitting.Rows(i).Cells(0).Value = Trim(ds.Tables(0).Rows(i).Item("KSQPARTNO"))
dgKitting.Rows(i).Cells(1).Value = Trim(ds.Tables(0).Rows(i).Item("KSQMODULE"))
dgKitting.Rows(i).Cells(2).Value = Trim(ds.Tables(0).Rows(i).Item("KSQFEEDERNO"))
dgKitting.Rows(i).Cells(3).Value = Trim(ds.Tables(0).Rows(i).Item("KSQDESC1"))
dgKitting.Rows(i).Cells(4).Value = Trim(ds.Tables(0).Rows(i).Item("KSQFSBSQTY"))
dgKitting.Rows(i).Cells(5).Value = Trim(ds.Tables(0).Rows(i).Item("SPQ"))
'COMPUTATION OF (USAGE * loading quantity)/ SPQ
dgKitting.Rows(i).Cells(6).Value = (Double.Parse(txtLoading.Text) * Double.Parse(Trim(ds.Tables(0).Rows(i).Item("KSQFSBSQTY"))))
dgKitting.Rows(i).Cells(7).Value = 0
'If kitted Then
' dgKitting.Rows(i).Cells(6).Value = Trim(ds.Tables(0).Rows(i).Item("QTY"))
'End If
Next
dgKitting.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
End Sub
Private Sub fillDataSet()
Dim conn As New SqlConnection(cnstr)
Dim seq As New Sequence
Dim sequenceno = seq.getSequenceNo(cmbSeq.SelectedItem, cmbLine.SelectedItem, cmbModel.SelectedItem, cmbType.SelectedItem, cmbRev.SelectedItem)
myQuery = "SELECT KSQPARTNO,KSQMODULE,KSQFEEDERNO,KSQDESC1,[KSQFSBSQTY],'0' AS [SPQ] FROM KSEQUENCE_DETAIL a " & _
"INNER JOIN [I-Report].[SYS21].[dbo].[Item_Costing] b ON b.[Item_Code] = a.[KSQPARTNO] WHERE KSEQUENCENO = '" & sequenceno & "' " & _
"ORDER BY KSQPARTNO,KSQMODULE,KSQFEEDERNO"
myCommand = New SqlCommand(myQuery, conn)
Try
conn.Open()
adapter.SelectCommand = myCommand
ds.Clear()
adapter.Fill(ds)
i = 0
limit = ds.Tables(0).Rows.Count - 1
If ds.Tables(0).Rows.Count > 0 Then
btnPrint.Enabled = True
Else
btnPrint.Enabled = False
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
conn.Close()
conn.Dispose()
End Try
End Sub
Private Sub fillDataSetKitted()
Dim conn As New SqlConnection(cnstr)
myQuery = "SELECT [PARTNO] AS [KSQPARTNO],[MACHINE] AS [KSQMODULE],[FEEDER] AS [KSQFEEDERNO],[DESC1] AS [KSQDESC1],[USAGE] AS [KSQFSBSQTY],[SPQ],[QTY] FROM dbo.KITTING " & _
"WHERE [REV] = '" & cmbRev.SelectedItem & "'" & _
"AND [ACCOUNT] = '" & cmbSeq.SelectedItem & "'" & _
"AND [MODEL] = '" & cmbModel.SelectedItem & "'" & _
"AND [TYPE] = '" & cmbType.SelectedItem & "'" & _
"AND [LINE] = '" & cmbLine.SelectedItem & "'"
myCommand = New SqlCommand(myQuery, conn)
Try
conn.Open()
adapter.SelectCommand = myCommand
ds.Clear()
adapter.Fill(ds)
i = 0
limit = ds.Tables(0).Rows.Count - 1
If ds.Tables(0).Rows.Count > 0 Then
kitted = True
btnPrint.Enabled = True
Else
btnPrint.Enabled = False
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
conn.Close()
conn.Dispose()
End Try
End Sub
Public Sub getSequence()
Dim sequence As New Sequence
Dim sequenceList As New List(Of String)
Dim i As Integer = 0
cmbRev.Items.Clear()
sequenceList = sequence.getValidSequence()
cmbSeq.Items.Clear()
While i < sequenceList.Count
cmbSeq.Items.Add(sequenceList(i))
i = i + 1
End While
End Sub
Public Sub getRevisions()
Dim rev As New Sequence
Dim revList As New List(Of String)
Dim i As Integer = 0
revList = rev.getRevisions(cmbSeq.SelectedItem, cmbLine.SelectedItem, cmbModel.SelectedItem, cmbType.SelectedItem)
cmbRev.Items.Clear()
While i < revList.Count
cmbRev.Items.Add(revList(i))
i = i + 1
End While
End Sub
Public Sub getModels()
Dim rev As New Sequence
Dim revList As New List(Of String)
Dim i As Integer = 0
revList = rev.getModel(cmbSeq.SelectedItem, cmbLine.SelectedItem)
cmbModel.Items.Clear()
While i < revList.Count
cmbModel.Items.Add(revList(i))
i = i + 1
End While
End Sub
Public Sub getTypes()
Dim rev As New Sequence
Dim revList As New List(Of String)
Dim i As Integer = 0
revList = rev.getTypes(cmbSeq.SelectedItem, cmbLine.SelectedItem, cmbModel.SelectedItem)
cmbType.Items.Clear()
While i < revList.Count
cmbType.Items.Add(revList(i))
i = i + 1
End While
End Sub
Public Sub getLines()
Dim rev As New Sequence
Dim revList As New List(Of String)
Dim i As Integer = 0
revList = rev.getLines(cmbSeq.SelectedItem)
cmbLine.Items.Clear()
While i < revList.Count
cmbLine.Items.Add(revList(i))
i = i + 1
End While
End Sub
Public Sub reset()
cmbRev.Items.Clear()
cmbType.Items.Clear()
cmbModel.Items.Clear()
cmbLine.Items.Clear()
cmbSeq.Items.Clear()
ts_delete.Enabled = False
btnPrint.Enabled = False
dgKitting.Rows.Clear()
txtLoading.Text = Nothing
getSequence()
End Sub
Private Sub cmbRev_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
If checkRows() Then
If kitted Then
Dim conn As New SqlConnection(cnstr)
Try
conn.Open()
For i As Integer = 0 To dgKitting.RowCount - 1
myQuery = "UPDATE KITTING SET USAGE = '" & dgKitting.Rows(i).Cells(4).Value.ToString & "', SPQ = '" & dgKitting.Rows(i).Cells(5).Value.ToString & "',OPERATOR = '" & loginForm.username & "',KITTINGDATE = GETDATE(), QTY = '" & dgKitting.Rows(i).Cells(6).Value.ToString & "' WHERE REV = '" & cmbRev.SelectedItem.ToString & "' AND PARTNO = '" & dgKitting.Rows(i).Cells(0).Value.ToString & "' "
myCommand = New SqlCommand(myQuery, conn)
myCommand.ExecuteNonQuery()
Next
kittedReportForm.account = cmbSeq.SelectedItem
kittedReportForm.line = cmbLine.SelectedItem
kittedReportForm.model = cmbModel.SelectedItem
kittedReportForm.type = cmbType.SelectedItem
kittedReportForm.revision = cmbRev.SelectedItem
kittedReportForm.Show()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
conn.Close()
conn.Dispose()
End Try
Else
Dim conn As New SqlConnection(cnstr)
Try
conn.Open()
For i As Integer = 0 To dgKitting.RowCount - 1
myQuery = "INSERT INTO KITTING VALUES('" & cmbRev.SelectedItem.ToString & "','" & dgKitting.Rows(i).Cells(0).Value.ToString & "','" & dgKitting.Rows(i).Cells(3).Value.ToString & "','" & dgKitting.Rows(i).Cells(4).Value.ToString & "','" & dgKitting.Rows(i).Cells(5).Value.ToString & "','" & loginForm.username & "',GETDATE(),'" & dgKitting.Rows(i).Cells(6).Value.ToString & "','" & dgKitting.Rows(i).Cells(2).Value.ToString & "','" & cmbSeq.SelectedItem & "','" & dgKitting.Rows(i).Cells(1).Value.ToString & "','" & cmbModel.SelectedItem & "','" & cmbType.SelectedItem & "','" & cmbLine.SelectedItem & "','" & dgKitting.Rows(i).Cells(7).Value.ToString & "')"
myCommand = New SqlCommand(myQuery, conn)
myCommand.ExecuteNonQuery()
Next
kittedReportForm.account = cmbSeq.SelectedItem
kittedReportForm.line = cmbLine.SelectedItem
kittedReportForm.model = cmbModel.SelectedItem
kittedReportForm.type = cmbType.SelectedItem
kittedReportForm.revision = cmbRev.SelectedItem
kittedReportForm.Show()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error insert", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
conn.Close()
conn.Dispose()
End Try
End If
End If
reset()
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
Public Function checkRows()
Dim complete As Boolean = True
For i As Integer = 0 To dgKitting.RowCount - 1
If (dgKitting.Rows(i).Cells(4).FormattedValue.ToString = "") Then
complete = False
End If
Next
Return complete
End Function
Private Sub btnPrint_ClientSizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.ClientSizeChanged
End Sub
Private Sub SaveFileDialog_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog.FileOk
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("Sheet1")
xlWorkSheet.Cells(1, 1) = "Part No"
xlWorkSheet.Cells(1, 2) = "Description"
xlWorkSheet.Cells(1, 3) = "Usage"
xlWorkSheet.Cells(1, 4) = "SPQ"
xlWorkSheet.Cells(1, 5) = "Quantity"
For a = 0 To dgKitting.RowCount - 1
For j = 0 To dgKitting.ColumnCount - 1
xlWorkSheet.Cells(a + 2, j + 1) = _
dgKitting(j, a).Value.ToString()
Next
Next
xlWorkSheet.SaveAs(SaveFileDialog.FileName)
xlWorkBook.Close()
xlApp.Quit()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
End Sub
Private Sub cmbLine_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbLine.SelectedIndexChanged
dgKitting.Rows.Clear()
getModels()
End Sub
Private Sub cmbSeq_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbSeq.SelectedIndexChanged
dgKitting.Rows.Clear()
getLines()
End Sub
Private Sub cmbModel_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbModel.SelectedIndexChanged
dgKitting.Rows.Clear()
getTypes()
End Sub
Private Sub cmbRev_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbRev.SelectedIndexChanged
If txtLoading.Text <> "" And cmbSeq.SelectedItem <> "" And cmbLine.SelectedItem <> "" And cmbModel.SelectedItem <> "" And cmbType.SelectedItem <> "" And cmbRev.SelectedItem <> "" Then
'fillDataSetKitted()
If Not kitted Then
fillDataSet()
End If
fillDataGridView()
End If
End Sub
Private Sub cmbType_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbType.SelectedIndexChanged
dgKitting.Rows.Clear()
getRevisions()
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
reset()
End Sub
End Class