Dim deLT, deBT, total As Double
        RichTextBox1.AppendText(vbTab & vbTab & " Details About Staff Wages" & vbCrLf)
        RichTextBox1.AppendText("Username:" & Login.TextBox1.Text & vbCrLf)
        RichTextBox1.AppendText(" " & vbCrLf)        RichTextBox1.AppendText("Working Time (Hours):" & ClockoutWork.Label7.Text + vbTab)
        RichTextBox1.AppendText("Working Gross Wages:" & ClockoutWork.Label8.Text & vbCrLf)
        RichTextBox1.AppendText(" " & vbCrLf)        RichTextBox1.AppendText("Lunch Time Break(Minutes):" & ClockoutLunchbreak.Label7.Text + vbTab)        If ClockoutLunchbreak.Label8.Text = ("As Paid") Then
            deLT = 0
            
        Else
            If 60 < ClockoutLunchbreak.Label7.Text <= 120 Then
                deLT = 5
            ElseIf 120 < ClockoutLunchbreak.Label7.Text <= 180 Then
                deLT = 10
            Else
                deLT = 15
            End If
        End If
        RichTextBox1.AppendText("Lunch Time Wage Deduction:" & deLT & vbCrLf)
        RichTextBox1.AppendText(" " & vbCrLf)        RichTextBox1.AppendText("Personal Break Time(Minutes):" & ClockoutPersonalbreak.Label7.Text + vbTab)
        If ClockoutPersonalbreak.Label7.Text <= 15 Then
            deBT = 0
        ElseIf 15 < ClockoutPersonalbreak.Label7.Text <= 30 Then
            deBT = 3
        ElseIf 30 < ClockoutPersonalbreak.Label7.Text <= 60 Then
            deBT = 5
        Else
            deBT = 10
        End If        RichTextBox1.AppendText("Personal Break Wage Deduction:" & deBT & vbCrLf)
        RichTextBox1.AppendText(" " & vbCrLf)        RichTextBox1.AppendText("Total Deduction:" & (deBT + deLT) & vbTab & vbTab)
        total = ClockoutWork.Label8.Text - deBT - deLT
        RichTextBox1.AppendText("Gross Wages:" & total & vbCrLf)        RichTextBox1.AppendText("==================================================================== " & vbCrLf)
        RichTextBox1.AppendText(vbTab & Today & vbTab & TimeOfDay & vbCrLf)
        RichTextBox1.AppendText("====================================================================" & vbCrLf)
    End Sub

解决方案 »

  1.   

    我是想要在rich text box里显示出我之前算出的金钱和时间,但是
    If ClockoutLunchbreak.Label8.Text = ("As Paid") Then
                deLT = 0
                
            Else
                If 60 < ClockoutLunchbreak.Label7.Text <= 120 Then
                    deLT = 5
                ElseIf 120 < ClockoutLunchbreak.Label7.Text <= 180 Then
                    deLT = 10
                Else
                    deLT = 15
                End If
            End If
            RichTextBox1.AppendText("Lunch Time Wage Deduction:" & deLT & vbCrLf)
    这一段出现了问题,如果我label里的数字是>120的 但是结果还是只显示出5
      

  2.   

    If ClockoutPersonalbreak.Label7.Text <= 15 Then
                deBT = 0
            ElseIf 15 < ClockoutPersonalbreak.Label7.Text <= 30 Then
                deBT = 3
            ElseIf 30 < ClockoutPersonalbreak.Label7.Text <= 60 Then
                deBT = 5
            Else
                deBT = 10
            End If        RichTextBox1.AppendText("Personal Break Wage Deduction:" & deBT & vbCrLf)
    这一段的问题也一样,除了都是0 之外 其余所有情况只能出现3 这该怎么办
      

  3.   

    是我的逻辑问题吗,还是说语法问题??
    妹子求各位小哥哥帮忙,要交论文了,我才发现这么一个bug
      

  4.   

    你首先应该学会的不是这些, 而是如何调试程序:
    http://www.360doc.com/content/14/1031/13/17799864_421417365.shtml不会调试, 谈不上学过程序。ClockoutPersonalbreak.Label7.Text   这个是文本, 不是真正的 Int 型数值, 你先新加一个 int 变量 intValue , 将文本转换成数字, 用数字来判断吧:
    If intValue <= 15 Then
        deBT = 0
    ElseIf 15 < intValue <= 30 Then
        deBT = 3
    ElseIf 30 < intValue <= 60 Then
        deBT = 5
    Else
        deBT = 10
    End If如果你不会调试, 可以用 MessageBox.Show( intValue );  输出转换后 intValue 的值。
      

  5.   

    改成select case 比较好    Select Case  ClockoutPersonalbreak.Label7.Text 
        Case Is <= 15
            deBT = 0
        Case Is <= 30
            deBT = 3
        Case Is <= 60
            deBT = 5
        Else
            deBT = 10
        End Select
      

  6.   

    稍微改动下
        Else
            deBT = 10
    ===>
        Case Else
            deBT = 10
      

  7.   

    注释掉所有On Error Resume Next语句,在VB6 IDE中运行,
    出错后点击调试,光标会停在出错的那条语句处,
    或者
    事先在怀疑可能有逻辑错误的语句处设置断点,运行经过断点时中断,此时可以在立即窗口中使用
    ?变量名

    ?函数名(函数参数)

    过程名(参数)
    辅助调试。
      

  8.   

    从“语法(计算机语言的语法)”角度来说,是逻辑问题;
    从“编程水平”来说,你的是“语法错误”造成的Bug(因为在任何计算机语言中,都不能象“数学公式”那样表达比较关系)。
    你这样写的后果,就是:
    当符合 ClockoutPersonalbreak.Label7.Text <= 15 时,deBT = 0  按你的代码猜测,这儿是“正常”的;
    当 ClockoutPersonalbreak.Label7.Text > 15 时,
      就只会进入“ElseIf 15 < ClockoutPersonalbreak.Label7.Text <= 30 Then”这个“逻辑分支”了!
    你肯定不知道逻辑表达式:15 < ClockoutPersonalbreak.Label7.Text <= 30 的运算过程!
    能“运行到”这个分支处,说明 ClockoutPersonalbreak.Label7.Text 的数值肯定是大于15的。
    在逻辑比较运算时,< 和<= 是“平级的”,所以从左到右运算:
    首先是计算: 15 < ClockoutPersonalbreak.Label7.Text 
       刚说了,能“走到这一步”,15 < ClockoutPersonalbreak.Label7.Text 肯定为 True的;
    然后就是运算: True <= 30 
      在VB中,True=-1 (楼主应该是VB.NET的代码,在这点上是一样的)
    这样,“第二步逻辑运算”结果肯定也是True了!
    也就是:只要“第1分支”为False,那么“第二分支”必定是True !!!
    你“后面的逻辑分支”已经没有任何作用了。首先纠正你的“语法错误”(只是你“写错”而已,在VB中因“自动类型转换”能成功执行,这样写也符合语法):
    15 < ClockoutPersonalbreak.Label7.Text <= 30 的正确写法是(后面的分支“类推”):
    15 < ClockoutPersonalbreak.Label7.Text And ClockoutPersonalbreak.Label7.Text <= 30
    其次说下“冗余逻辑”问题(也是冗余代码):
    15 < ClockoutPersonalbreak.Label7.Text的结果必然是为“True”的,这儿写上它纯属多余!
     只要ClockoutPersonalbreak.Label7.Text<=30这一个条件就行了!!!如果要用 If ……ElseIf……来写,应该是这样:
    If ClockoutPersonalbreak.Label7.Text <= 15 Then
       deBT = 0
    ElseIf ClockoutPersonalbreak.Label7.Text <= 30 Then
       deBT = 3
    ElseIf ClockoutPersonalbreak.Label7.Text <= 60 Then
       deBT = 5
    Else
       deBT = 10
    End If
      

  9.   

    在任何计算机语言中(好象除Python以外),都不能象“数学公式”那样表达比较关系。
      

  10.   

    Python可以?
    好吧,对它不了解。我之前接触过的语言:
    BASIC、C/C++、FORTRAN(FORTRAN 77)、COBOL、java、Delphy/Pascal、还有FoxBase等等,
      都是不支持这样的“数学公式”式的写法的。
    因此我觉得各种语言应该都采用的这个“标准”吧。 大概一个多月前,下载了老外的一个工具软件,就是用Python写的GUI程序,
     “试用”之后,觉得它跟易语言那种垃圾写的程序一个屌样:垃圾……
      

  11.   

    虽然我个人是赞成代码要有良好的缩进习惯。但python这样强制缩进也是很难接受,真特么侵犯自由!!
    歪楼了,大家别理我,继续帮妹子。
      

  12.   

    我跟着继续歪:
    http://bbs.csdn.net/topics/380157851
    http://bbs.csdn.net/topics/392094659
      

  13.   


    你太天真了, 不知道Python其实是全世界最大的游标卡尺供应商嘛!