1. 程式人生 > >【機房收費系統——報表與vb互動之日結賬和周結賬】

【機房收費系統——報表與vb互動之日結賬和周結賬】

         在上一篇中已經介紹了報表模板的製作了,當然我們不能還要介紹報表和vb的互動,當我們建好模板以後就要在vb中引用此報表,下面就結合日結賬和周結賬來介紹報表的使用。

    首先我們應該在窗體載入事件中進行以下程式碼的編寫;最後兩行的意思是進行引數的傳遞,它的作用是用來顯示時間段,在這裡需要說明以下就是給我們的系統中,報表上的時間段不會改變。

  我們應該首先 在通用 裡面對報表進行例項化

    Dim report As grproLibCtl.GridppReport    '例項化報表

<span style="font-family: Arial, Helvetica, sans-serif;">          </span><pre name="code" class="html">Private Sub Form_Load()
    Dim strsql As String
    Dim strmsg As String
                                                 '建立報表物件
    Set report = New grproLibCtl.GridppReport
                                                 '載入報表模版檔案
    report.LoadFromFile (App.Path & "\日結報表.grf")
                                                     '設定資料連線串
    
    report.DetailGrid.Recordset.ConnectionString = ConnectString
                                    '用來使grdWeekliyBill報表查詢器控制元件顯示報表中的內容
    
    grddayliybill.report = report
    grddayliybill.Start
  

Private Sub cmdrefresh_Click()
                            '賬單重新整理
  
   
      Dim strsql As String
   
     Dim strmsg As String
   
     Dim mrc As ADODB.Recordset
   
     Dim mrcc As ADODB.Recordset
  
   
              '日期的選定
    
   
   
     strsql = "select * from checkday_Info where date ='" & Date & "'"
   

    Set mrc = ExecuteSQL(strsql, strmsg)
    
   
       report.DetailGrid.Recordset.QuerySQL = strsql

   
       grddayliybill.Refresh   '重新整理
  
End Sub
  

<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:24px;">Private Sub cmdpreview_Click()              '列印預覽</span>
    report.PrintPreview (True)
End Sub

Private Sub cmdprint_Click()             '列印
    report.[Print] (True)
End Sub</span>

  在插入程式碼之前我們應該在工程——部件中選擇

    

  下面簡單介紹一下報表中引數的插入:

修改完名稱以後,下面進行引數的匯入:

   

  下面介紹我在編寫日結賬和周結賬的思路:

   我認為日結沒有很大的問題只要我們在結賬窗體中,把資料匯入日結賬表中即可,也就說我們每結一次賬,在資料庫中的表中就會有一條記錄,當我們 檢視日結賬的時候就會清楚的看到今天的結賬明細賬單。下面是我的程式碼:

  首先在我們重新整理時間之前,刪除表中的所有記錄(之前說過這是一張空表)

     txtsql = "delete * from checkweek_info"

      set mrc = executesql (txtsql,msgtext)

在清空表之後,在日結表中區每一天的彙總數:

While (DateValue(enddateview.Value) - DateValue(startdateview.Value) >= 0)
            Text1.Text = DateValue(enddateview.Value) - DateValue(startdateview.Value)
        
            txtSQL = "select * from checkday_info where date = '" & startdateview.Value & "'"
             Set mrcc = ExecuteSQL(txtSQL, MsgText)
                If mrcc.EOF = True Then             '判斷是否有記錄
                    startdateview.Value = startdateview.Value
                Else
                    While (mrcc.EOF = False)
                        RechargeCash = RechargeCash + mrcc.Fields(1)
                        consumecash = consumecash + mrcc.Fields(2)
                        cancelCash = cancelCash + mrcc.Fields(3)
                        allcash = allcash + mrcc.Fields(4)
                        mrcc.MoveNext
                    Wend
                mrcc.Close
                                                    '獲得上期餘額
            
                txtSQL = "select * from checkday_info where date='" & Trim(startdateview.Value - 1) & "'"
                Set mrcc = ExecuteSQL(txtSQL, MsgText)
                    If mrcc.EOF = True Then
                        remaincash = 0
                    Else
                    While (mrcc.EOF = False)
                            remaincash = remaincash + mrcc.Fields(0)
                            mrcc.MoveNext
                        Wend
                    End If
                    
    最後將資料寫入周結賬單中:
           txtSQL = "select * from checkweek_info"
                Set mrccc = ExecuteSQL(txtSQL, MsgText)
                
                mrccc.AddNew
                
                mrccc.Fields(0) = remaincash
                mrccc.Fields(1) = RechargeCash
                mrccc.Fields(2) = consumecash
                mrccc.Fields(3) = cancelCash
                mrccc.Fields(4) = cancelCash
                mrccc.Fields(5) = startdateview.Value
                mrccc.update
            End If
                 startdateview.Value = startdateview.Value + 1
            
            
        Wend
  到這我的日結賬和周結賬就編寫完了,當然這是我的理解,如果有不同的想法或者是我的有錯誤,請讀者們留言指正。

下一篇將總結 學生資訊管理系統和機房收費系統中的組合查詢的對比。


相關推薦

機房收費系統——報表vb互動結賬結賬

         在上一篇中已經介紹了報表模板的製作了,當然我們不能還要介紹報表和vb的互動,當我們建好模板以後就要在vb中引用此報表,下面就結合日結賬和周結賬來介紹報表的使用。     首先我們應該

機房收費系統——報表(一)

簡單的說:報表就是用表格、圖表等格式來動態顯示資料,可以用公式表示為:“報表 = 多樣的格式 + 動態的資料”。 在沒有計算機以前,人們利用紙和筆來記錄資料,比如:民間常常說的豆腐帳,就是賣豆腐的每

機房收費系統結賬單報表實現

   【背景】    經過看同學們的部落格和自己的親身實踐,終於把報表這一塊弄明白了,是應該該寫個部落格總結一下了。這一篇部落格介紹簡單的報表製作過程,並以日結賬單為例,因為日結算是比較簡單,它沒有時

機房收費系統C#版——導出Excel

missing watermark columns 感覺 end 巨人 orm content file 前言 機房合作開始好長了一段時間。反重復復開了幾次會,項目也是一拖再拖,作為組長。有80%的責任都在於我。為了不讓這個項目陪著我過春節。要求自己

機房收費系統——知識點彙總

前言 經歷了兩個多月的機房收費系統算是結了,結了並不意味著不學了,在機房中還是有很多值得我們學習的知識點,值得讓我們思考的東西,有些邏輯思維還是很強的。現在將做的過程中感覺比較重要的一些知識點分享出來。 一、整體思路 在機房收費系統中有不同的級別,不同的級別有不同許可權,他們所做的事

機房收費系統——模組中程式碼的含義

本部落格來自轉載,對模組不太懂的可以好好看看。 前言 這篇部落格認認真真的總結了一天,不能夠理解機房還有學生中模組的程式碼的意思,決定去解決一下這部分內容,下面就是我對此部分的程式碼的理解!感覺這部分的程式碼不過如此,下來跟著我一起搞懂它吧! Public Function Ex

機房收費系統收取金額查詢

前言:i+1的學習 收取金額查詢主要有兩部分:查詢和匯出Excel表。 查詢還OK。之前做學生時就有過很多次查詢,基本大同小異。 本窗體難點在於如何匯出Excel表。這就是需要我們學習和掌握的+1部分了。剛開始接觸時,我還挺懵的,不知道如何下手,不過查查百度、站在“巨人

機房收費系統結賬

還沒開始做機房時,便聽到有人說,機房慢慢做,尤其結賬那一塊特別難。特別難,到底有多難呢?還沒開始做,心裡便有了一絲害怕。驗SQL視訊時,特意問了問師父,結賬是否真如他們所說,有那麼難。嘉穎師父誠懇地跟我說,沒事,只有你去做了,才知道做出來的成就感。有了嘉穎師父的定心丸,我心裡

個人重構機房收費系統報表使用最簡單的顯示連線

    在做機房收費系統報表的時候,感覺沒有第一次用的時候困難,這篇部落格先寫一些最簡單的報表顯示。      1.建立一個windows窗體          2.在窗體中劃一個控制元件  

機房收費系統——組合查詢

在機房收費系統中,其中的組合查詢僅僅在剛開始的時候構思了一點自己的想 法,但是並沒用付諸於行動,去嘗試自己的是否正確,而是選擇了去看之前看 到的一篇關於組合查詢的部落格,說起來有些愧疚的啊。還好的是當我理清思路 之後剩下的組合查詢都是自己的寫的了。

第一次機房收費系統——組合查詢

 機房收費系統中共有三個窗體用到了組合查詢,其也算是三大難點之一,我做的流程就是先根據源系統備好框架,然後再去網上看相關的部落格,這麼一來二往,多看幾遍也漸漸懂得了其中的一些“套路”。組合查詢,顧名思義大於等於一的行資料進行查詢,下面我以學生基本資訊維護的窗體為

機房收費系統——組合查詢

             先來說說我們普遍存在的一種心理,就是我們看到組合查詢的那個介面的時候我們當時就被自己給打死了,我們的第一反應就是這是個什麼東西,這麼多的框框,所以就給組合查詢蒙上了一層 “很難”的面紗,但是當我們仔細想想我們好像在那見過這樣的知識。仔細想想,,,,

機房收費系統組合查詢

         在這個過程中,我明白了,在試著實現某個過程的時候,一定在理清思路的前提下,找到最好的程式碼形式,優中選優,不要在敲程式碼的過程中把自己繞住,能少用巢狀就少用巢狀,只要思路簡單,程式碼結構簡化,在後邊實現的過程中就會減少很多麻煩。這個過程中,我迷茫過,失落過,興奮過。在最後能夠執行的一刻突然感

機房收費系統登入

對於一個應用程式而言,登入窗體是使用該程式的敲門磚。如果不能準確登入,就無法談及使用其功能了。登入也是一種安全措施,只可讓擁有許可權的人登入。而機房收費系統在登入視窗上相對而言,還是比較完美的。設定了只有擁有相應許可權的人,才能使用相應的功能。所以,登入就顯得尤為重要了。 機房登入與普通的登入程

機房收費系統學生基本資訊維護

學生基本資訊維護主要包括兩大功能查詢和修改。這裡的查詢比之前做的簡單查詢稍稍複雜了點,此處要用到組合查詢。要成功實現查詢這一功能,首先要找到突破點,關鍵點就是組合關係。如果沒有選擇組合關係,便是一般的簡單查詢,反之,則是組合查詢。在組合查詢中,很重要的一點是將combobox中的中文字轉換成英文。這

機房收費系統總結

        機房收費系統,這是VB階段性學習的最後的一個專案,也是一個比較具有考驗的專案。為什麼這麼說呢?因為在給的學習資料中,除了給了一個該系統的還不夠完美的實現效果程式外,再沒有其他可以信手拈來的東西了。沒有程式碼,沒有文件,這意味著你將自已真真正正地

機房收費系統--充值

   最近在做機房收費系統,跟之前學生不同的是,每個窗體不僅查一個表,所有邏輯思維就顯得格外的重要。    看師哥師姐的部落格會發現,他們在敲一個窗體的時候會畫一張流程圖,也可以說是自己的邏輯,先判斷什麼在判斷什麼,畫圖工具是一個網站,我把連線放在下面。  

機房收費系統——報表(1)

報表對我來說確實是個新東西。花了好長時間才對報表有了基本的瞭解。首先,VB中有一個報表的控制元件Grid++Report Engine5.0TypeLibrary,其次,報表的製作是通過“Grid++

機房收費系統合作版——再看外觀模式

前言:這次合作版機房,在小夥伴們的商量下,決定使用外觀模式。由於個人版的時候,因為各種原因,未能使用這一模式。現在,藉著這次機會,重新認識一下這位故友。 我們先看下邊的一張圖:     這張圖

機房收費系統——安裝配置

前言   再小,再簡單的問題,當存在的時間長了,浪費的時間多了,它就會在你的心理迅速膨脹,給你的內心無限添堵(尤其是有強迫症的人)但你解決了的時候,你的心情會十分的舒暢,有一種莫名的成就感!   就