'保存数据
Set m_obj = obj '用户输入数据存放于此对象中
m_ViewType = eViewType '对话框状态
If nTypeId = -1 And (Not m_obj Is Nothing) Then
m_TypeId = m_obj.TypeId
Else
m_TypeId = nTypeId
End If
m_Account = strUser '调用此对话框的用户账号
'根据新增、编辑或查看设置显示内容
SetStatus
'显示对话框
OK = False
Me.Show vbModal
If OK = False Then
ShowDlg = False
Exit Function
End If
'保存数据
Set obj = m_obj
'返回并释放对话框
ShowDlg = True
Unload Me
End Function
'设置控件默认值
Private Sub SetDefaultValue()
Dim ctl As Control
Dim i As Integer
'如果是新增,则清空所有文本框
'此处判断 m_obj为空与判断m_ViewType = vtAdd等效,但更安全
If m_obj Is Nothing Then
For Each ctl In Controls
If TypeOf ctl Is TextBox Then
ctl.Text = ""
End If
Next
Else '用传入对象的值更新数据
With m_obj
txtCount.Text = .Count
txtReason.Text = .Reason
txtRemark.Text = .Remark
cboUnit.ListIndex = 0
dtpRegDate.Value = .RegDate
For i = 0 To cboMerchName.ListCount - 1
If cboMerchName.ItemData(i) = .MerchandiseID Then
cboMerchName.ListIndex = i '客户类型Id
Exit For
End If
Next i
End With
End If
End Sub
'检查输入有效性
Private Function CheckValid() As Boolean
CheckValid = False
If txtCount.Text = "" _
Or txtReason.Text = "" _
Or txtRemark.Text = "" Then
MsgBox "请填写完毕以上各项内容"
Exit Function
End If
If cboMerchName.Text = "" Then
MsgBox "请填写完毕以上各项内容"
Exit Function
End If
If Not IsNumeric(txtCount.Text) Then
MsgBox "数量请输入数字"
Exit Function
End If
If Not IsDate(dtpRegDate.Value) Then
MsgBox "请输入正确的日期格式"
Exit Function
End If
CheckValid = True
End Function
'保存数据
Private Sub SaveValue()
'给“成员变量”对象赋值
With m_obj
'注意以下利用RealString函数替换去除输入中的单引号
.Count = txtCount.Text
.Reason = RealString(txtReason.Text)
.Remark = RealString(txtRemark.Text)
.MerchandiseID = cboMerchName.ItemDat