1. 程式人生 > >機房收費系統之細化篇(跨日期下機,MDI窗體的運用,MDI主窗體與子窗體的互動)

機房收費系統之細化篇(跨日期下機,MDI窗體的運用,MDI主窗體與子窗體的互動)

      最近在細化機房收費系統時,發現在下機窗體出現了很多消費時間為負值的情況,有時還會彈出Bug,仔細一看原來是跨日期的消費時間問題,那麼如何設定跨日期的下機呢?在機房收費系統中的MDI 窗體如何運用呢?下面就這兩個問題進行梳理分享。

一、跨日期的下機

核心程式碼如下:

    '判斷是否跨日期下機

    diffday = DateDiff("d", txtondate.Text, txtoffdate.Text)         '判斷是否跨日期=下機日期減去上機日期
    If diffday = 0 Then                                              '如果沒有跨日期
        timediff = DateDiff("n", txtontime.Text, txtofftime.Text)    '計算上下機時間差
    ElseIf diffday = 1 Then                                          '如果跨一天
        lasttime = DateDiff("n", txtontime.Text, i)                  '計算昨天的上機時間:23:59:59-昨天的上機時間
        todaytime = DateDiff("n", 0, txtofftime.Text)                '計算今天的上機時間即今天的時間
        timediff = lasttime + todaytime                              '跨日期上機時間=昨天上機時間+今天上機時間
    ElseIf diffday > 1 Then
        lasttime = DateDiff("n", txtontime.Text, i)
        todaytime = DateDiff("n", 0, txtofftime.Text)
        lastday = (diffday - 1) * 1440                               '跨日期大於一天的則在上一步的基礎上加上一天的分鐘數1440分鐘
        timediff = lasttime + todaytime + lastday                    '跨多日期上機時間=隔天上機時間+整天的上機時間+今天上機時間
    End If

可能我的邏輯有些囉嗦,還望親們多多指教^_^ 

 

二、MDI窗體的運用以及與子窗體的互動

1、MDI窗體中不能直接新增控制元件,需要新增一個PictureBox ,在PictureBox上面建立控制元件。

2、執行時發現子窗體沒有顯示出來。

其實是顯示出來了,只是被PictureBox覆蓋了,那麼如何調出來呢?

在解決這個問題的時候找到了光彩師姐的部落格,寫的很詳細,我們要站在巨人的肩膀上前行嘛,分享給大家^_^

https://blog.csdn.net/sunny5319/article/details/52232304

3、文章中說到的hWnd是什麼呢?

    在Windows作業系統中,每一個物件都有一個唯一的編號,這個編號就叫控制代碼,它是WINDOWS用來記錄,控制所分配資源的一個控制點。它的英文是HANDLE(把手,把柄),這就好像每個人都有一個名字一樣,用以被別人稱呼或識別。控制代碼是給程式設計的人用的,以便程式設計師在程式中使用、稱呼這個物件。比如生成一個視窗,會返回一個視窗控制代碼。

 

     以上的數字便是他們的臨時控制代碼。

    在小夥伴們的幫助下機房收費系統細化了很多問題,太多了就不在在一一陳述了,機房收費系統逐個窗體的梳理環節就到此為止咯,下一篇機房收費系統總結篇走起^_^