第一次機房收費系統--結賬
前言
初次碰到結賬這個問題,心裡還是有很多的抵觸,覺得太難了,下機的時候就覺得有些困難,因為涉及到了算賬的問題,現在開始結賬了,放眼望去,慢慢的全是賬,不管怎樣,先學做一個會計吧!
功能實現
其實結賬這裡分為兩大部分
一:從資料庫中匯出操作員使用者名稱和真實姓名
需要實現的功能:當選擇某個使用者名稱的時候他的真實姓名直接調出,雖說這個功能不難實現,但是不怕不知道就怕不知道!
程式碼實現:
首先設定使用者名稱部分,該部分程式碼在Form_Load裡
'設定使用者名稱的下拉選單,當本模組執行時調出資料庫中所有的操作員使用者名稱 txtSQL = "select * from user_info where level='操作員'" Set mrc = ExecuteSQL(txtSQL, MsgText) Do While Not mrc.EOF CmdUserId.AddItem mrc.Fields(0) mrc.MoveNext Loop
其次實現同步操作員真實姓名部分
'設定操作員真實姓名
txtSQL = "select * from user_info where userid='" & CmdUserId.Text & "'"
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
CmdUserName.Text = mrc1.Fields(3)
二:SSTab控制元件的功能
這裡分為7個部分
(1)如何讓SSTab控制元件的每個選項卡實現不同的功能,這裡用到的是Select語句
程式碼實現:
首先需要設定每一個選顯示卡的Tab屬性,將其設定為相應的數字
Private Sub SSTab1_Click(PreviousTab As Integer)
Select Case SSTab1.Tab
Select Case SSTab1.Tab
Case 0 '第一個選項卡
Case 1 '第二個選項卡
Case 2 '第三個選項卡
Case 3 '第四個選項卡
Case 4 '第五個選項卡
Case 5 '第六個選項卡
End Select
End Sub
(2)購卡:將操作員的購卡資訊調出
(3)充值:將操作員的充值資訊調出
程式碼實現:
此處定義了rechargecash為充值金額,方便結賬時呼叫
With MSFlexGrid2
.CellAlignment = 4
.Rows = 1
.TextMatrix(0, 0) = "學號"
.TextMatrix(0, 1) = "卡號"
.TextMatrix(0, 2) = "充值金額"
.TextMatrix(0, 3) = "日期"
.TextMatrix(0, 4) = "時間"
End With
rechargecash = 0
'將表recharge_info的資料同步至表
txtSQL = "select * from recharge_info where userid='" & CmdUserId.Text & "' and status='未結賬'"
Set mrc3 = ExecuteSQL(txtSQL, MsgText)
Text3.Text = 0
Do While Not mrc3.EOF
With MSFlexGrid2
.CellAlignment = 4
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = Trim(mrc3.Fields(1))
.TextMatrix(.Rows - 1, 1) = Trim(mrc3.Fields(2))
.TextMatrix(.Rows - 1, 2) = Trim(mrc3.Fields(3))
.TextMatrix(.Rows - 1, 3) = Trim(mrc3.Fields(4))
.TextMatrix(.Rows - 1, 4) = Trim(mrc3.Fields(5))
AdjustColWidth frmaccounts, MSFlexGrid2
End With
Text3.Text = Val(Text3.Text) + mrc3.Fields(3) '設定文字框中的充值總金額
rechargecash = Trim(Text3.Text)
mrc3.MoveNext
(2)(3)(4)(5)功能實現過程是一樣的
(4)退卡:將操作員的退卡資訊調出
此處定義了cancelcash為退卡金額,方便結賬時呼叫
(5)臨時使用者:將操作員註冊的臨時使用者資訊調出
(6)彙總:
各種關於卡的資訊:
程式碼實現:
Case 4 '第四個選項卡
Text6.Text = mrc2.RecordCount '總售卡張數
Text2.Text = mrc4.RecordCount '退卡張數
Text1.Text = Val(Text6.Text) - Val(Text2.Text) '售卡張數=總售卡張數-退卡張數
'應收金額=充值金額+臨時收費金額-退卡金額
Text7.Text = Val(Text3.Text) + Val(Text4.Text) - Val(Text5.Text)
結賬功能:
程式碼實現:
Private Sub cmdOK_Click()
'點選結賬按鈕之後需要更新的表有checkday_info和checkweek_info
'需要做的就是計算上次結賬和本次結賬之間的充值金額,消費金額,退款金額
'更新checkday_info表中的資訊
'上次剩餘金額
txtSQL = "select * from checkday_info"
Set mrc6 = ExecuteSQL(txtSQL, MsgText)
mrc6.MoveLast '移動到最後
lastremain = mrc6.Fields(4)
mrc6.MoveFirst
'向checkday_info表中寫入資料
mrc6.AddNew
mrc6.Fields(0) = lastremain '上次剩餘金額
mrc6.Fields(1) = rechargecash
mrc6.Fields(2) = mrc6.Fields(2) + frmMain.money '上機消費的金額之和
mrc6.Fields(3) = cancelcash
mrc6.Fields(4) = Val(mrc6.Fields(0)) + Val(mrc6.Fields(1)) - Val(mrc6.Fields(3))
mrc6.Fields(5) = Date
mrc6.Update
mrc6.Close
'更新checkweek_info表中的資訊
'上次剩餘金額
txtSQL = "select * from checkweek_info"
Set mrc7 = ExecuteSQL(txtSQL, MsgText)
mrc7.MoveLast
lastremain = mrc7.Fields(4)
mrc7.MoveFirst
'向cheekday_info表中寫入資料
mrc7.AddNew
mrc7.Fields(0) = lastremain
mrc7.Fields(1) = rechargecash
mrc7.Fields(2) = mrc7.Fields(2) + frmMain.money '上機消費的金額之和
mrc7.Fields(3) = cancelcash
mrc7.Fields(4) = Val(mrc7.Fields(0)) + Val(mrc7.Fields(1)) - Val(mrc7.Fields(3))
mrc7.Fields(5) = Date
mrc7.Update
mrc7.Close
'彈出提示框,避免重複結賬
MsgBox "結賬成功", 0 + 48, "提示"
'更新recharge_info表
txtSQL = "select * from recharge_info where status='未結賬'"
Set mrc2 = ExecuteSQL(txtSQL, MsgText)
Do While Not mrc2.EOF
mrc2.Fields(7) = "結賬"
mrc2.MoveNext
Loop
'更新student_info表
txtSQL = "select * from student_info where status='使用' and ischeck='未結賬'"
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
Do While Not mrc1.EOF
mrc1.Fields(11) = "結賬"
mrc1.MoveNext
Loop
End Sub
(7)退出:退出結賬結賬介面
程式碼實現:
Case 5 '第五個選項卡
Unload Me
資料表的引用
結賬這裡打交道最多的就是資料表了,接下來就梳理一下各個功能用到的資料表 (1)結賬按鈕:checkday_info checkweek_info recharge_info student_info (2)操作員使用者名稱和姓名:user_info (3)選項卡:student_info recharge_info cancelcard_info 總結:這裡資料表的引用就是查詢表裡的資訊,將資料表裡的資訊同步到VB中或將VB中的資訊更新到資料表中,總體來說還是比較簡單的!總結
總結下來之後覺得自己又收穫了不少,思路比之前清晰了許多,而且在總結的過程中也會發現程式的一些不足之處,順便做了一些修改,所以說總結很重要,顆粒歸倉!
未完待續O(∩_∩)O~
相關推薦
第一次機房收費系統——結賬
前言:談到結賬,大家都覺得挺難的,當然我也是這麼覺得的,但是通過一段時間的磨練,最終還是解決了,那麼就來分享一下把! 頁面 首先談到頁面,我將臨時收費金額改成了上網收費金額。 彙總的計算 售卡張數 就是你今天所出售的卡數 注意: 是今天售的卡數。 退卡張數
第一次機房收費系統--結賬
前言 初次碰到結賬這個問題,心裡還是有很多的抵觸,覺得太難了,下機的時候就覺得有些困難,因為涉及到了算賬的問題,現在開始結賬了,放眼望去,慢慢的全是賬,不管怎樣,先學做一個會計吧! 功能實現 其實結賬這裡分為兩大部分 一:從資料庫中匯出操作員使用者名稱和真實姓名 需要實現
第一次機房收費系統 ( 安裝配置 )
這次寫部落格來總結下配置機房所需要的步驟和問題的解決方法:qian 機房配置有三個步驟: &n
第一次機房收費系統——註冊
思考: 因為註冊的時候,需要輸入初始的金額,但是上下機的時候,需要根據上網時間長短來改變學生表中的金額,所以導致最後的結賬很麻煩,最後我將註冊的內容也寫入到充值中,流程圖如下: 流程圖 程式碼 Private Sub cmdSave_Clic
【第一次機房收費系統】-新增和刪除使用者
一、 二、MSHflexgrid控制元件 MSHflexgrid控制元件的使用:https://blog.csdn.net/lxl51666/article/details/52663989 三、理解 這個介面就不畫思維導圖了,很好理解。 但是更新這個按鈕有點
【第一次機房收費系統】—學生檢視上機記錄
一、思維導圖 二、程式碼 Private Sub cmdInquiry_Click() Dim txtSQL As String Dim msgtext As String Dim mrc As ADODB.Recordset
【第一次機房收費系統優化】-登入窗體
一、重點 這個窗體增加了判斷使用者的類別(操作員、一般使用者、管理員)。 二、控制元件優化 label為空白:Label1.BackStyle = 0 command新增圖片:(1)將Command控制元件的Style設定為1 - Graphical (2)在C
第一次機房收費系統--安裝連線之初體驗
前言: 機房開始,自己迷迷糊糊的,看著給的少得可憐的資料,心裡默默打鼓呀,不論如何加油吧!開啟之後也不知道應該先幹什麼,怎麼幹,於是就看著機房收費系統使用說明一步步來,接下來是我遇到的一些問題,以及解
[第一次機房收費系統]組合查詢
當設計好組合查詢介面之後,並沒有覺得有多難,接著往下把一些基本的程式碼寫好之後真的是有點懵了。 當前三個文字都不為空時,查詢上機OnLine表,但是需要判斷欄位名是學號、卡號、姓名、性別、學院、年級還是班級?需要判斷操作符是<>、=、<、
第一次機房收費系統--上機
前言: 原以為上機很困難,自己沒有辦法完成的,但是當自己真正地靜下心來去點師姐給的系統,對應著資料庫一點點地看,才發現原來上機並沒有想象中的那麼困難! 流程圖: 首先開始的時候思路一定要清楚,中間細節的部分可以先不做考慮,等大致的框架出來之後再將細節的部分新增進去!就像蓋
[第一次機房收費系統]修改密碼介面優化
前言 看到標題的時候不知道會不會有同學問,修改密碼介面有什麼可優化的呢?當然有的啊,其實不管是任何一個介面,都有更好的方式來展現,因為世界上任何一個程式都不是最完美的,都是需要一步步的改變來變的更好。 正文 當時在敲修改密碼窗體的時
第一次機房收費系統—修改密碼後重新登入
前言: 機房進行到了白熱化的階段,說起來也是慚愧,人家別的小夥伴都在進行軟工階段,而我還是在這機房前面徘徊!話不多說,今天來小結一下修改密碼的部分的那些“小芝麻”! 一、巨集觀把控 判斷
第一次機房收費系統--詳細設計說明書
1引言 1.1編寫目的 目的:本文件詳細地說明了系統的輸入輸出、演算法、介面、功能、效能、儲存以及測試計劃,從而為軟體開發人員與測試人員提供了更加明確清晰的思路,使得程式的編寫與測試更加方便快捷。 預期讀者:軟體開發人員與測試人員 1.2背景 a.待開發軟體系統的名稱:第
【第一次機房收費系統】組合查詢
所有的偉大隻源於一個勇敢地開始。 組合查詢之前以為很難,但是真正去開始敲了,你就會發現並不難。敲完了第一個,基本上就算是敲完了。 這是機房收費系統裡面組合查詢的標準樣式,之所以叫組合查詢,是因為我們要將若干個條件選擇出來之後組合在一起來查詢。首先,組合查
第一次機房收費系統—組合查詢
今天總結組合查詢,組合查詢無非涉及到兩個語句!敲機房給我的一點想法就是,有的程式碼自己還不確定是否在這個世界上時候存在,其實它是存在的,恐於自己怕浪費時間,功能還沒有實現。還是太將就了,所以小夥伴
機房收費系統——結賬
結賬這部分算是機房收費系統的一個難點,之所以它難,是因為這個窗體不光涉及到程式碼,而且還涉及到算數的問題,還和報表有關,所以它是個難點,但是隻要把思路弄清楚了,再難的東西也不怕啦! 思維導圖: 思路有沒有清楚一點呢? 程式碼片段 先讓操作員的名字和label框實現同步:
第一次機房收費登陸-執行時錯誤'91'
背景 最近開始第一次機房收費專案了,這就需要配置源資料庫,但是網上對於配置已經有了很多解決辦法,再此我就不在說明。現在我要解決的問題是在配置完之後,當你登陸時,你會遇到執行時錯誤‘91’這個問題。 出現原因 出現這個問題是由於你資料庫中的sa登入名的密碼與機房收費源系統的密碼不一致,如果
機房收費系統--結賬(一)
機房收費系統即將接近尾聲了,在敲結賬時因為理不清各個表之間的關係,所以後面進行的也比較慢。通過向別人請教,也上網查了一些,不過在慢慢敲的過程中,逐漸的理清了它的思路。接下來我介紹一下我的想法。 結賬
VB.net版機房收費系統——結賬功能實現(程式碼部分)
實現結賬功能的時候,被選項卡控制元件整的有點鬱悶,瞬間腦袋就凌亂了,聽上去自己好像很可笑的樣子……於是,便去爬巨人的肩膀了~ 看了歡哥的部落格,發現她的結賬部落格是按照“索引”思想寫的,在結賬實體中添加了新的屬性過程(我新增的叫CheckDetail)結賬表中並沒有
SQL儲存過程——機房收費系統結賬的那些事
在機房收費系統中“結賬”窗體中有這樣一個需求:點選“結賬”按鈕以後需要將資料庫中,與已經選擇的操作員使用者名稱有關的所有充值記錄、退卡記錄、售卡記錄中的"isCheck"欄位的未結賬變成