Public Class frmEmployee Inherits PMFormClass.frmPM Dim oEmp As Object Dim oProdForm As frmProduct #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Friend WithEvents grpPosition As System.Windows.Forms.GroupBox Friend WithEvents rdoProdMgr As System.Windows.Forms.RadioButton Friend WithEvents rdoProjMgr As System.Windows.Forms.RadioButton Friend WithEvents rdoResource As System.Windows.Forms.RadioButton Friend WithEvents txtResource As System.Windows.Forms.TextBox Friend WithEvents lblHours As System.Windows.Forms.Label Friend WithEvents txtHours As System.Windows.Forms.TextBox Friend WithEvents btnProduct As System.Windows.Forms.Button 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Private Sub InitializeComponent() Me.grpPosition = New System.Windows.Forms.GroupBox() Me.txtHours = New System.Windows.Forms.TextBox() Me.lblHours = New System.Windows.Forms.Label() Me.txtResource = New System.Windows.Forms.TextBox() Me.rdoResource = New System.Windows.Forms.RadioButton() Me.rdoProjMgr = New System.Windows.Forms.RadioButton() Me.rdoProdMgr = New System.Windows.Forms.RadioButton() Me.btnProduct = New System.Windows.Forms.Button() Me.grpPosition.SuspendLayout() Me.SuspendLayout() ' 'btnCreate ' Me.btnCreate.Location = New System.Drawing.Point(8, 248) Me.btnCreate.TabIndex = 5 ' 'btnSave ' Me.btnSave.Location = New System.Drawing.Point(184, 248) Me.btnSave.TabIndex = 7 ' 'btnRead ' Me.btnRead.Location = New System.Drawing.Point(96, 248) Me.btnRead.TabIndex = 6 ' 'btnDelete ' Me.btnDelete.Location = New System.Drawing.Point(272, 248) Me.btnDelete.TabIndex = 8 ' 'grpPosition ' Me.grpPosition.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtHours, Me.lblHours, Me.txtResource, Me.rdoResource, Me.rdoProjMgr, Me.rdoProdMgr}) Me.grpPosition.Location = New System.Drawing.Point(72, 64) Me.grpPosition.Name = "grpPosition" Me.grpPosition.Size = New System.Drawing.Size(176, 168) Me.grpPosition.TabIndex = 4 Me.grpPosition.TabStop = False Me.grpPosition.Text = "Position" ' 'txtHours ' Me.txtHours.BackColor = System.Drawing.SystemColors.InactiveBorder Me.txtHours.Enabled = False Me.txtHours.Location = New System.Drawing.Point(112, 136) Me.txtHours.Name = "txtHours" Me.txtHours.Size = New System.Drawing.Size(48, 20) Me.txtHours.TabIndex = 5 Me.txtHours.Text = "" ' 'lblHours ' Me.lblHours.AutoSize = True Me.lblHours.Enabled = False Me.lblHours.Location = New System.Drawing.Point(16, 136) Me.lblHours.Name = "lblHours" Me.lblHours.Size = New System.Drawing.Size(81, 13) Me.lblHours.TabIndex = 4 Me.lblHours.Text = "Hours Per Day:" ' 'txtResource ' Me.txtResource.BackColor = System.Drawing.SystemColors.InactiveBorder Me.txtResource.Enabled = False Me.txtResource.Location = New System.Drawing.Point(16, 96) Me.txtResource.Name = "txtResource" Me.txtResource.Size = New System.Drawing.Size(144, 20) Me.txtResource.TabIndex = 3 Me.txtResource.Text = "" ' 'rdoResource ' Me.rdoResource.Location = New System.Drawing.Point(8, 64) Me.rdoResource.Name = "rdoResource" Me.rdoResource.TabIndex = 2 Me.rdoResource.Text = "Other:" ' 'rdoProjMgr ' Me.rdoProjMgr.Location = New System.Drawing.Point(8, 40) Me.rdoProjMgr.Name = "rdoProjMgr" Me.rdoProjMgr.Size = New System.Drawing.Size(144, 24) Me.rdoProjMgr.TabIndex = 1 Me.rdoProjMgr.Text = "Project Manager" ' 'rdoProdMgr ' Me.rdoProdMgr.Checked = True Me.rdoProdMgr.Location = New System.Drawing.Point(8, 16) Me.rdoProdMgr.Name = "rdoProdMgr" Me.rdoProdMgr.Size = New System.Drawing.Size(144, 24) Me.rdoProdMgr.TabIndex = 0 Me.rdoProdMgr.TabStop = True Me.rdoProdMgr.Text = "Product Manager" ' 'btnProduct ' Me.btnProduct.Anchor = (System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right) Me.btnProduct.Location = New System.Drawing.Point(272, 208) Me.btnProduct.Name = "btnProduct" Me.btnProduct.TabIndex = 9 Me.btnProduct.Text = "Products" ' 'frmEmployee ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(360, 285) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtName, Me.txtID, Me.lblName, Me.lblID, Me.btnDelete, Me.btnSave, Me.btnRead, Me.btnCreate, Me.btnProduct, Me.grpPosition}) Me.Name = "frmEmployee" Me.Text = "Project Manager - Employee" Me.grpPosition.ResumeLayout(False) Me.ResumeLayout(False) End Sub #End Region Private Sub btnCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCreate.Click Dim intIdent As Short, strPerson As String intIdent = CInt(Me.txtID.Text) strPerson = Trim(Me.txtName.Text) ' outer check is for position ' inner checks are for whether id, name ' or both are present If Me.rdoProdMgr.Checked = True Then If intIdent <= 0 Then oEmp = New ProjectManager.ProductManager() ElseIf strPerson.Length = 0 Then oEmp = New ProjectManager.ProductManager(intIdent) Else oEmp = New ProjectManager.ProductManager(intIdent, strPerson) End If ElseIf Me.rdoProjMgr.Checked = True Then If intIdent <= 0 Then oEmp = New ProjectManager.ProjectManager() ElseIf strPerson.Length = 0 Then oEmp = New ProjectManager.ProjectManager(intIdent) Else oEmp = New ProjectManager.ProjectManager(intIdent, strPerson) End If Else ' Make sure that a position is ' filled in for other Dim strRes As String strRes = Trim(Me.txtResource.Text) If strRes.Length = 0 Then Dim strMessage As String strMessage = "Position title " & _ "must be filled in to " & _ "create employee." MsgBox(strMessage) ' to cut down on tabs Exit Sub End If If intIdent <= 0 Then oEmp = New ProjectManager.Resource(strRes) ElseIf strPerson.Length = 0 Then oEmp = New ProjectManager.Resource(strRes, intIdent) Else oEmp = New ProjectManager.Resource(strRes, intIdent, strPerson) End If End If Me.btnCreate.Enabled = False Me.btnRead.Enabled = True Me.btnSave.Enabled = True Me.btnDelete.Enabled = True End Sub Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRead.Click If Not oEmp Is Nothing Then oEmp.Read() Me.txtName.Text = oEmp.Name If oEmp.ToString = "ProjectManager.Resource" Then Me.txtHours.Text = oEmp.HoursPerDay Me.rdoResource.Checked = True Me.txtResource.Text = oEmp.GetPosition(oEmp.ID) ElseIf oEmp.ToString = "ProjectManager.ProductManager" Then Me.rdoProdMgr.Checked = True ElseIf oEmp.ToString = "ProjectManager.ProjectManager" Then Me.rdoProjMgr.Checked = True End If End If End Sub Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click If Not oEmp Is Nothing Then oEmp.Name = Me.txtName.Text If Me.rdoResource.Checked = True Then oEmp.HoursPerDay = CInt(Me.txtHours.Text) End If oEmp.Save() Me.txtID.Text = "" Me.txtName.Text = "" Me.txtResource.Text = "" Me.txtHours.Text = "" Me.rdoProdMgr.Checked = True Me.btnCreate.Enabled = True Me.btnRead.Enabled = False Me.btnSave.Enabled = False Me.btnDelete.Enabled = False End If End Sub Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click If Not oEmp Is Nothing Then oEmp.Delete() oEmp = Nothing Me.txtID.Text = "" Me.txtName.Text = "" Me.txtResource.Text = "" Me.txtHours.Text = "" Me.rdoProdMgr.Checked = True Me.btnCreate.Enabled = True Me.btnRead.Enabled = False Me.btnSave.Enabled = False Me.btnDelete.Enabled = False End If End Sub Private Sub rdoResource_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdoResource.CheckedChanged Me.lblHours.Enabled = Me.rdoResource.Checked Me.txtHours.Enabled = Me.rdoResource.Checked Me.txtResource.Enabled = Me.rdoResource.Checked If Me.txtResource.Enabled = True Then Me.txtResource.BackColor = System.Drawing.SystemColors.Window Me.txtHours.BackColor = System.Drawing.SystemColors.Window Else Me.txtResource.BackColor = System.Drawing.SystemColors.InactiveBorder Me.txtHours.BackColor = System.Drawing.SystemColors.InactiveBorder End If End Sub Private Sub btnProduct_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProduct.Click oProdForm = New frmProduct() oProdForm.Show() End Sub End Class