?? 新增調拔單.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 + -