📄 新增调拔单.frm
字号:
Name = "宋体"
Size = 18
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2520
TabIndex = 13
Top = 180
Width = 1935
End
Begin VB.Label Label1
BackColor = &H00FFFF80&
BackStyle = 0 'Transparent
Caption = "编号:"
Height = 255
Left = 300
TabIndex = 12
Top = 780
Width = 495
End
End
Attribute VB_Name = "新增调拔单"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private 原存放仓库编号, 目标存放仓库编号 As String
Private 经办人编号 As String
Private bkcolor As Long
Option Explicit
Private Sub ChangeBackColor(bkcolor As Long)
Me.BackColor = bkcolor
保存.BackColor = bkcolor
打印.BackColor = bkcolor
更改背景.BackColor = bkcolor
编号.BackColor = bkcolor
货物编号.BackColor = bkcolor
年.BackColor = bkcolor
月.BackColor = bkcolor
日.BackColor = bkcolor
货名规格.BackColor = bkcolor
单位.BackColor = bkcolor
数量.BackColor = bkcolor
其它金额.BackColor = bkcolor
目标存放仓库.BackColor = bkcolor
原存放仓库.BackColor = bkcolor
备注.BackColor = bkcolor
经办人.BackColor = bkcolor
End Sub
Private Sub lockcontrol()
编号.Locked = True
年.Locked = True: 月.Locked = True: 日.Locked = True
货物编号.Locked = True
货名规格.Locked = True
单位.Locked = True
数量.Locked = True
其它金额.Locked = True
原存放仓库.Locked = True
目标存放仓库.Locked = True
备注.Locked = True
经办人.Locked = True
End Sub
Private Sub Form_Load()
bkcolor = RGB(128, 255, 255)
End Sub
Private Sub Form_Resize()
On Error Resume Next
'新增状态
If 编号 = "" Then
'初始化年月日
年.Text = Year(Date)
月.Text = Month(Date)
日.Text = Day(Date)
'初始化编号
fMainForm.m_checkado.RecordSource = "select 编号 from 调拔单"
fMainForm.m_checkado.Refresh
If fMainForm.m_checkado.Recordset.RecordCount > 0 Then
fMainForm.m_checkado.Recordset.MoveLast
编号.Text = fMainForm.m_checkado.Recordset.Fields("编号").Value + 1
Else
编号.Text = 1
End If
Else '打印状态
fMainForm.m_checkado.RecordSource = "select 货物信息.编号,货物信息.货物名称,货物信息.货物规格,职员信息.姓名 as 经办人,调拔单.调拔时间,货物信息.计量单位,调拔单.调拔数量,调拔单.其它金额,仓库.仓库名称 as 原存放仓库,(select 仓库名称 from 仓库 where 编号=调拔单.目标仓库编号) as 目标存放仓库,调拔单.备注 from 调拔单,货物信息,职员信息,供应商,仓库 where 货物信息.编号=调拔单.货物编号 and 职员信息.编号=调拔单.经办人编号 and 仓库.编号=调拔单.原仓库编号 and 调拔单.编号=" + 编号
fMainForm.m_checkado.Refresh
货物编号.Text = fMainForm.m_checkado.Recordset.Fields("编号").Value
货名规格.Text = fMainForm.m_checkado.Recordset.Fields("货物名称").Value
单位.Text = fMainForm.m_checkado.Recordset.Fields("计量单位").Value
数量.Text = fMainForm.m_checkado.Recordset.Fields("调拔数量").Value
其它金额.Text = fMainForm.m_checkado.Recordset.Fields("其它金额").Value
原存放仓库.Text = fMainForm.m_checkado.Recordset.Fields("原存放仓库").Value
目标存放仓库.Text = fMainForm.m_checkado.Recordset.Fields("目标存放仓库").Value
备注.Text = fMainForm.m_checkado.Recordset.Fields("备注").Value
经办人.Text = fMainForm.m_checkado.Recordset.Fields("经办人").Value
Dim t As Date
t = fMainForm.m_checkado.Recordset.Fields("调拔时间").Value
年.Text = Year(t)
月.Text = Month(t)
日.Text = Day(t)
'锁住控件
lockcontrol
打印.Visible = True
保存.Visible = False
更改背景.Visible = True
End If
End Sub
Private Sub 保存_Click()
If 年.Text = "" Or 月.Text = "" Or 日.Text = "" Then MsgBox "请填写日期!", vbQuestion: Exit Sub
If 货物编号.Text = "" Then MsgBox "请填写货物信息!", vbQuestion: Exit Sub
If 数量.Text = "" Then MsgBox "请填数量!", vbQuestion: Exit Sub
If 原存放仓库.Text = "" Then MsgBox "请填写供应商!", vbQuestion: Exit Sub
If 目标存放仓库.Text = "" Then MsgBox "请填写存放仓库!", vbQuestion: Exit Sub
If 经办人.Text = "" Then MsgBox "请填写经办人!", vbQuestion: Exit Sub
If 原存放仓库.Text = 目标存放仓库 Then MsgBox "原存放仓库和目标存放仓库不能相同!", vbQuestion: Exit Sub
'检测原仓库**********************************************************
On Error Resume Next
'检测有没有足够的库存
fMainForm.m_checkado.RecordSource = "select sum(select 库存数量 from 库存状况 where 仓库编号=仓库.编号 and 货物编号=" + 货物编号.Text + ") as 库存量 from 仓库,货物信息 where 仓库.编号=" + Str(原存放仓库编号) + " and 货物信息.编号=" + 货物编号.Text
fMainForm.m_checkado.Refresh
Dim max1 As String
On Error Resume Next
max1 = fMainForm.m_checkado.Recordset.Fields(0).Value
'如果超过最高限量
Dim a1, b1 As Long
a1 = 数量.Text: b1 = max1
If a1 > b1 Then
MsgBox "调拔失败,不能调拔" + 数量.Text + ",原仓库库存剩余量为" + Str(max1)
Exit Sub
End If
'检测目标仓库**********************************************************
'得到最高限量max
On Error Resume Next
Dim max2, use, left As String
fMainForm.m_checkado.RecordSource = "select 最高限量 from 货物信息 where 编号=" + 货物编号.Text
fMainForm.m_checkado.Refresh
max2 = fMainForm.m_checkado.Recordset.Fields(0).Value
'得到当前仓库库存量use
fMainForm.m_checkado.RecordSource = "select 库存数量 from 货物信息,库存状况 where 货物编号=" + 货物编号 + " and 仓库编号=" + 目标存放仓库编号
fMainForm.m_checkado.Refresh
use = 0
On Error GoTo 1:
use = fMainForm.m_checkado.Recordset.Fields(0).Value
1:
On Error GoTo quit
left = max2 - use
Dim a2, b2 As Long
'如果超过最高限量
a2 = 数量.Text: b2 = left
If a2 > b2 Then
MsgBox "调拔失败,不能调拔" + 数量.Text + ",目标仓库剩余限量为" + Str(left)
Exit Sub
End If
'更新数据库信息**********************************************************
'新增调拔单 (编号,.......)
fMainForm.m_checkado.RecordSource = "select * from 调拔单"
fMainForm.m_checkado.Refresh
fMainForm.m_checkado.Recordset.AddNew
fMainForm.m_checkado.Recordset.Fields("编号").Value = 编号.Text
fMainForm.m_checkado.Recordset.Fields("货物编号").Value = 货物编号.Text
fMainForm.m_checkado.Recordset.Fields("经办人编号").Value = 经办人编号
fMainForm.m_checkado.Recordset.Fields("调拔时间").Value = 年.Text + "-" + 月.Text + "-" + 日.Text
fMainForm.m_checkado.Recordset.Fields("调拔数量").Value = 数量.Text
fMainForm.m_checkado.Recordset.Fields("原仓库编号").Value = 原存放仓库编号
fMainForm.m_checkado.Recordset.Fields("目标仓库编号").Value = 目标存放仓库编号
fMainForm.m_checkado.Recordset.Fields("其它金额").Value = 其它金额.Text
fMainForm.m_checkado.Recordset.Fields("备注").Value = 备注.Text
fMainForm.m_checkado.Recordset.update
fMainForm.m_checkado.Refresh
'原仓库数量减 数量.text (原存放仓库编号,货物编号)
fMainForm.m_checkado.RecordSource = "select * from 库存状况 where 货物编号=" + 货物编号.Text + " and 仓库编号=" + Str(原存放仓库编号)
fMainForm.m_checkado.Refresh
Dim n As Long
n = fMainForm.m_checkado.Recordset.Fields("库存数量").Value - 数量.Text
If n > 0 Then
fMainForm.m_checkado.Recordset.Fields("库存数量").Value = n
fMainForm.m_checkado.Recordset.update
Else
fMainForm.m_checkado.Recordset.Delete
End If
fMainForm.m_checkado.Recordset.update
fMainForm.m_checkado.Refresh
'目标仓库数量加 数量.text (目标存放仓库编号,货物编号)
fMainForm.m_checkado.RecordSource = "select * from 库存状况 where 货物编号=" + 货物编号.Text + " and 仓库编号=" + Str(目标存放仓库编号)
fMainForm.m_checkado.Refresh
'如果以存在则更新
If fMainForm.m_checkado.Recordset.RecordCount > 0 Then
fMainForm.m_checkado.Recordset.Fields("库存数量") = fMainForm.m_checkado.Recordset.Fields("库存数量") + 数量.Text
fMainForm.m_checkado.Recordset.update
fMainForm.m_checkado.Refresh
Else '如果不存在则创建
'获取新的库存状况的编号 ncode
fMainForm.m_checkado.RecordSource = "select * from 库存状况"
fMainForm.m_checkado.Refresh
Dim ncode As String
If fMainForm.m_checkado.Recordset.RecordCount > 0 Then
'移到最后记录
fMainForm.m_checkado.Recordset.MoveLast
ncode = fMainForm.m_checkado.Recordset.Fields("编号").Value + 1
Else
ncode = 1
End If
'增加新的库存状况
fMainForm.m_checkado.Recordset.AddNew
fMainForm.m_checkado.Recordset.Fields("编号").Value = ncode
fMainForm.m_checkado.Recordset.Fields("货物编号").Value = 货物编号.Text
fMainForm.m_checkado.Recordset.Fields("库存数量").Value = 数量.Text
fMainForm.m_checkado.Recordset.Fields("仓库编号").Value = 目标存放仓库编号
fMainForm.m_checkado.Recordset.update
fMainForm.m_checkado.Refresh
End If
保存.Visible = False
更改背景.Visible = True
打印.Visible = True
'锁住控件
lockcontrol
MsgBox "新增调拔单成功!"
'写入系统日志
fMainForm.WriteLog ("新增调拔单")
GoTo quit2
quit:
MsgBox "新增调拔单失败!"
quit2:
End Sub
Private Sub 货物编号_KeyPress(KeyAscii As Integer)
KeyAscii = 0
End Sub
Private Sub 经办人_KeyPress(KeyAscii As Integer)
KeyAscii = 0
End Sub
Private Sub 目标存放仓库_KeyPress(KeyAscii As Integer)
KeyAscii = 0
End Sub
Private Sub 原存放仓库_Click()
If 原存放仓库.Locked Then Exit Sub
On Error Resume Next
Dim sel As New 数据选择
sel.Adodc1.ConnectionString = DataConnectString
If 货物编号.Text <> "" Then
sel.Adodc1.RecordSource = "select 仓库.编号,仓库.仓库名称,sum(select 库存数量 from 库存状况 where 仓库编号=仓库.编号 and 货物编号=" + 货物编号.Text + ") as 库存数量 from 仓库 where 仓库.编号 in (select 仓库编号 from 库存状况 where 货物编号=" + 货物编号 + ")"
Else
sel.Adodc1.RecordSource = "select 编号,仓库名称 from 仓库"
End If
sel.title = "请选择原存放仓库"
sel.Show vbModal
If sel.result1 <> "" Then 原存放仓库编号 = sel.result1
If sel.result2 <> "" Then 原存放仓库.Text = sel.result2
Unload sel
End Sub
Private Sub 目标存放仓库_Click()
If 目标存放仓库.Locked Then Exit Sub
On Error Resume Next
Dim sel As New 数据选择
sel.Adodc1.ConnectionString = DataConnectString
If 货物编号.Text <> "" Then
sel.Adodc1.RecordSource = "select 仓库.编号,仓库.仓库名称,货物信息.最高限量,sum(select 库存数量 from 库存状况 where 仓库编号=仓库.编号 and 货物编号=" + 货物编号.Text + ") as 库存量,(货物信息.最高限量-库存量) as 剩余限量 from 仓库,货物信息 where 货物信息.编号=" + 货物编号.Text
Else
sel.Adodc1.RecordSource = "select 编号,仓库名称 from 仓库"
End If
sel.title = "请选择目标存放仓库"
sel.Show vbModal
If sel.result1 <> "" Then 目标存放仓库编号 = sel.result1
If sel.result2 <> "" Then 目标存放仓库.Text = sel.result2
Unload sel
End Sub
Private Sub 打印_Click()
Me.Height = Me.Height - 600
PrintForm
Me.Height = Me.Height + 600
'写入系统日志
fMainForm.WriteLog ("打印调拔单")
End Sub
Private Sub 更改背景_Click()
On Error Resume Next
With CommonDialog1
.DialogTitle = "页面设置"
.CancelError = True
.ShowColor
End With
ChangeBackColor (CommonDialog1.Color)
End Sub
Private Sub 货物编号_Click()
If 货物编号.Locked Then Exit Sub
On Error Resume Next
Dim sel As New 数据选择
sel.Adodc1.ConnectionString = DataConnectString
sel.Adodc1.RecordSource = "select 库存状况.货物编号 as 编号,货物信息.货物名称,库存状况.库存数量,货物信息.最低限量,货物信息.最高限量,仓库.仓库名称 as 存放仓库 from 库存状况,货物信息,仓库 where 货物信息.编号=库存状况.货物编号 and 仓库.编号=库存状况.仓库编号"
sel.title = "请选择调拔货物"
sel.Show vbModal
If sel.result1 <> "" Then
货物编号.Text = sel.result1
Else
Exit Sub
Unload sel
End If
Unload sel
'更新货名规格与计量单位
fMainForm.m_checkado.RecordSource = "select 货物名称,货物规格,计量单位 from 货物信息 where 编号=" + 货物编号.Text
fMainForm.m_checkado.Refresh
货名规格.Text = fMainForm.m_checkado.Recordset.Fields("货物名称").Value
On Error GoTo cont
Dim s As String
s = fMainForm.m_checkado.Recordset.Fields("货物规格").Value
If Len(s) > 0 Then 货名规格.Text = 货名规格.Text + "(" + s + ")"
cont:
On Error Resume Next
单位.Text = fMainForm.m_checkado.Recordset.Fields("计量单位").Value
End Sub
Private Sub 经办人_Click()
If 经办人.Locked Then Exit Sub
On Error Resume Next
Dim sel As New 数据选择
sel.Adodc1.ConnectionString = DataConnectString
sel.Adodc1.RecordSource = "select 编号,姓名 from 职员信息"
sel.title = "请选择经办人"
sel.Show vbModal
If sel.result1 <> "" Then 经办人编号 = sel.result1
If sel.result2 <> "" Then 经办人.Text = sel.result2
Unload sel
End Sub
Private Sub 原存放仓库_KeyPress(KeyAscii As Integer)
KeyAscii = 0
End Sub
'此源码由程序太平洋收集整理发布,任何人都可自由转载,但需保留本站信息
'╭⌒╮┅~ ¤ 欢迎光临程序太平洋╭⌒╮
'╭⌒╭⌒╮╭⌒╮~╭⌒╮ ︶ ,︶︶
',︶︶︶︶,''︶~~ ,''~︶︶ ,''
'╔ ╱◥███◣═╬╬╬╬╬╬╬╬╬╗
'╬ ︱田︱田 田 ︱ ╬
'╬ http://www.5ivb.net ╬
'╬ ╭○╮● ╬
'╬ /■\/■\ ╬
'╬ <| || 有希望,就有成功! ╬
'╬ ╬
'╚╬╬╬╬╬╬╬╬╬╬╗ ╔╬╬╬╬╝
'
'说明:
'专业提供VB、.NET、Delphi、ASP、PB源码下载
'包括:程序源码,控件,商业源码,系统方案,开发工具,书籍教程,技术文档
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -