VB Express 2008 Overview Chapters 5-8

Document Sample
VB Express 2008 Overview Chapters 5-8 Powered By Docstoc
					VB Express 2008 Overview
      Chapters 5-8
          Summary So Far
• We have talked about the basics of VB.
  How to add controls on the form? Naming
  convention of controls and variables. How
  to change properties of the control. Three
  main control structures: Sequence,
  selection, and iteration. Loops – with
  while and until commands.
• We started the inventory application which
  we will build upon in this lecture.
            Agenda for Today
• Add event handler
• Insert code into event handler
• Access properties value using VB code
• Assignment and multiplication operators.
• Fixing errors/ breakpoints
• Creating and using variables.
• Text change events/ precedence rules of arithmetic
• Problem solving techniques
• Control structures in detail (if-then-else)
• Checkboxes, dialogs boxes for messages, and logical
A college bookstore receives cartons of textbooks. In each shipment,
cartons contain the same number of textbooks. The inventory manager
wants to use a computer to calculate the total number of textbooks
arriving at the bookstore for each shipment from the number of cartons
and the number of textbooks in each carton. The inventory manager
will enter the number of cartons received and the fixed number of
textbooks in each carton for each shipment; then the application will
calculate the total number of textbooks in the shipment.
             Inventory App
• Label 1: cartons per shipment
• Label 2: Items per carton
• Label 3: total
• Label 4: 0 or blank, autosize false, size 50,
  23, Fixed 3D border style
• Button: Calculate
• Run the app…nothing happens because
  we don‟t have the code we need
                Chapter 5
• Functionality – actions the application can
• Events – user actions
• Event handlers – code that is executed
  (called) when an event occurs
       Chapter 5 : Inventory
• Non visual part of the programming
• Set the Text Editor to show line numbers.
  Tools Options  Text Editor Basic 
  Editor  Check checkbox for line number
                 Chapter 5
• Viewing code
  – Make sure form is open
  – Go to View->Code
  – This opens the Code Editor
              Chapter 5
• VB programs include “classes” to help with
• Classes contain groups of code statements
  that perform task and return info when tasks
  are completed
• Code here defines your Inventory Application
  class – called a class definition
• Green text is a comment. Comments are
  preceded by a „ Comments improve readability
  of code and to hide chunks of code
               Chapter 5

• “Class” keyword is followed by the class name
• The name of the class is an identifier. Cannot
  contain spaces and may not begin with a digit.
• Class definition ends with End Class keyword
• Keywords are words with special meaning in
  VB and reserved for specific uses. They
  appear in blue.
• Keywords and identifiers are not case sensitive
  in VB
                    Chapter 5
• Adding an event handler
• Double click the Calc. Total Button. This generates an
  event handler
   e.g. calculateButton_Click (Control: Button)
   ControlName – refers to the name of the control entered
     in its Name Property
• EventName – is the name of the event that triggers the
  code to execute (i.e. click)
              Event procedure

 Marks the beginning of this event procedure
                   Name of the control that owns the event procedure
                        Name of the event the procedure responds to
                                             Line Continuation Mark
Private Sub btnCalculate_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnCalculate.Click
    ' Make the directions visible
    lblxyz.Visible = True
    lblResults.text=val(lblInput1.text) * val(lblInput2.text)
End Sub

                                    Event handled by this procedure
     Makes the control lblxyz visible:
     Assigns the value True to the Visible Property
     of the lblxyz control.
Chapter 5: Hints about VB code
• The compiler thinks end of a line is the end
  of the statement. To get around this use a
  _ at the end of a line to continue a line of

• The compiler doesn‟t see or executes
  comments you create using a „
Chapter 5: Hints about VB code
• In VB we separate control names and
  property names with a “.” this is called the
  dot operator

• Once you type the “.” The Intellisense box
  will offer you a selection of the class‟
  members from which to choose (i.e. text).
  Click once for info about this member,
  twice to insert it in your code statement
 Chapter 5: Hints about VB code
• = is an assignment operator

• BobTextbox.text = 5 is an assignment

• Stuff on either side of the = are called

• An assignment statement and assigns the
  value on the right to the variable, textbox,
  etc., on the left
                   Chapter 5
• So what does the assignment statement for our
  button look like?

TotalResultsLabel.text = _
                  Chapter 5
• This statement includes the Val function
  which keeps the program from crashing if
  a non number is entered. Fairly robust to
  GI in that it doesn‟t crash but may give
  you GO.

• CartonsTextBox.text is an argument in
  the Val function and thus is in ( ), returns
  a 0 if the input is non-numeric
           Val Function Examples
•   Val(“16”) returns 16
•   Val(“-8”) returns 8
•   Val(“bob”) returns 0
•   Val(“57bob”) returns 57
•   Val(“8 + 7”) returns 8
• The Val function is very useful when you are
  using arithmetic expression. It makes sure
  that user provided inputs don‟t crash your app.
  You don‟t need to use it to return your results
  to your users…
                  Chapter 5
• The debugger
  – Compiles and runs the app
  – Errors in code appear in the Error List window
  – Two types of errors
    • Syntax (compilation errors, must be fixed before the
      code may be executed)
    • Logical
• Compile without executing Build->Build
  [project name]
VB Chapter 6
Enhancing Inventory Application
          Chapter 6

• Introduction to memory concepts using
• Using precedence rules for arithmetic
• Set break points to debug applications
         Inventory Application
The inventory manager notices a flaw in your Inventory application.
Although the application calculates the correct result, that result continues to
display even after new data is entered. The only time
the output changes is when the inventory manager clicks the
Calculate Button again. You need to alter the Inventory application
to clear the result as soon as the user enters new information into
either of the TextBoxes, to avoid any confusion over the accuracy of your
calculated result.
    TextChanged Event (pg 107)
• We can add an event handler to the
  cartonsTextbox that clears the
  totalResultLabel.text every time someone
  enters a new value into the cartons text
• Double click cartonsTextbox while in
  design view
• Creates a TextChanged Event that allows
  you to write code that will execute when
  text in the textbox is changed
                Chapter 6
• Double click the text box and create an
  event (TextChanged) where you clear the

• totalResultLabel.text = “ “

• But be careful with textchanged events, it
  just takes a single character change to
  execute them
• Variables – memory spaces - hold data for
  your application. Unlike text boxes, the
  values stored in a variable aren‟t
  necessarily seen by users
• Variables must be declared
  – Dim keyword
  – Variable name can be any valid identifier
  – Must set a data type
• Variables all have
  – Name
  – Type
  – Size
  – Value
• If you reuse the same variable then
  original value will be overwritten
 Primitive Variable Data Types
• Data types
  – Integer
  – Single
  – String
  – Boolean
  – Char
  – Decimal
  – Etc.
                           Back to app.
• Add variables to the Calculate button event
   1    Public Class InventoryForm
   2       ' handles Click event
   3       Private Sub calculateButton_Click(ByVal sender As _
   4          System.Object, ByVal e As System.EventArgs) _
   5          Handles calculateButtton.Click
   7          ' declare variables
   8          Dim cartons As Integer
   9          Dim items As Integer
   10         Dim result As Integer
   12         ' retrieve numbers from TextBoxes
   13         cartons = Val(cartonsTextBox.Text)
   14         items = Val(itemsTextBox.Text)
   16         ' multiply two numbers
   17         result = cartons * items
   19         ' display result in Label
   20         totalResultLabel.Text = result
   21      End Sub ' calculateButton_Click
 What‟s going on in the Code?
• totalResultLabel.Text = “”
• This clears the calculated amount field
  when the user enters a new amount in the
  cartons per shipment field
• “” means empty string
• > starts debugger, square stops it
      Debugger: Breakpoints

• Breakpoints is a marker set at
  any executable line of code
• Allows you to examine what
  your application is doing
  while running
• Application stops at
• Good to debug logical errors
• To insert click in the grey
  margin or right click 
  breakpoint  insert
• Using breakpoints
  – Run debugger
  – When execution pauses, can place mouse over
    variable to see value
• Use Debug-> continue to move past a
• Stop button to end debug
• Disable breakpoint
• Completed wage calculator contains breakpoints
  you need to remove in order to test the app.
Chapter 7 – Wage Calculator
Gross earnings per week = hours worked *
hourly wages

Assume a standard work week of 40 hours.

Any time worked over 40 hours in a week is
considered “overtime” and earns time and a
half (1.5)

What’s the pseudocode for this problem?
             Wage Calculator
Problem: Input  (Hours/wages)  Calculate
  (salary)  Display (earnings)
  -Get hours worked and hourly wages from the
  -If hours worked are less than or equal to 40
       Gross earnings equals hours worked * hourly
       Gross earnings equals 40 * hourly wage plus
  hours above 40 * wage and a half
  -Display gross earnings
Dim wage, gross As Decimal
   Dim hours As Double
   Const HOUR_LIMIT As Integer = 40

  wage = Val(wageTextBox.Text)
  hours = Val(hoursTextBox.Text)

  If hours <= HOUR_LIMIT Then
       gross = wage * hours
       gross = HOUR_LIMIT * wage
       gross += (hours - HOUR_LIMIT) * wage *
  End If

  earningsResultLabel.Text = gross
         Assignment Operators

• Assignment operators
  – value = hours * wage
  – Value = value + 3
  – Value += 3
• Other operators
  – -=
  – *=
  – ^=
• Formatting Text
  – Method String.Text
earningsResultLabel.Text =
  String.Format("{0:C}", earnings)

0: argument 0 is the first element following
  the formatting string should take on the
  format C (for currency)
           Format Specifiers
•   C : currency
•   E : scientific notation
•   F : fixed point
•   G : VB picks either E or F for you
•   D : Decimal
•   N : number, commas and 2 decimal places
  Alternative String Formatting
earningsResultLabel.Text= format(earnings,
            Watch Window
• Debugger watch window
  – Available only in break mode
  – Can see contents of variables
  – Debug->windows->watch->type in name of
    variable or an expression
  – Tells you variable value at that point of
    execution and data type
  – Can use watch window to change var. values
    to text program
     Control Structures Review
• Sequence
   – E.g. A  B  C  D
   – A transfer of control occurs when an executed
     statement does not directly follow the previous

• Selection (IF…Then, IF…Then…Else, Select
   – If (income>expenses) THEN buy ipod ELSE wait
   – Returns boolean data type (True/False)

• Iteration (or repetition)
   – While…End While, Do While…Loop, Do…Loop
     While, Do Until…Loop, Do…Loop Until, For…Next,
               Chapter 8
• Dialogs and CheckBoxes

• Dialogs: windows that display messages
  to users

• CheckBoxes: help control input from users
  and can make data entry faster
            Chapter 8: Example
Dental Payment Application (Introducing checkboxes and
  message dialogs)

A dentist’s office administrator wishes to create an
  application that employees can use to bill patients. The
  application must allow users to enter the patient’s name
  and specify which services were performed during the
  visit. The application will then calculate the total charges.
  If a user attempts to calculate a bill before any services
  are specified, or before the patient’s name is entered, an
  error message informing the user of that necessary input
  is missing will be displayed.
How will it look
   Dental Payment Pseudocode
When user clicks calculate
 Clear previous total
 If user has not entered name or selected a checkbox
      Display error message
      Initialize the total to zero
      If “Cleaning” Checkbox is selected
               Add cost of a cleaning to total
      If “Cavity filling” Checkbox is selected
               Add cost of receiving filling to the total
      If “X-Ray” Checkbox is selected
               Add cost of receiving X-Ray to the total
      Format total to display as currency
      Display total
    Dental Payment Actual Code
Private Sub calculateButton_Click
  totalResultLabel.Text = ""
    Dim total As Decimal
    If cleanCheckBox.Checked = True Then
        total += 35
    End If
    If cavityCheckBox.Checked = True Then
        total += 150
    End If
    If xrayCheckBox.Checked = True Then
        total += 85
    End If
    totalResultLabel.Text = format(total, “c”)
 End Sub
 Let‟s stop and create the form
• …
             Dialog boxes
• Message dialogs are defined by class
• MessageBox.show
• Dialogs are a great way to warn the user
  that some input is wrong or missing and
  how to correct the error
           Dialog Boxes
If nameTextBox.Text = "" Then
   MessageBox.Show("please enter a name
   and check at least on item", _
   "missing information",
             Dialog Boxes
• Because of sequence execution, program
  checks if name has been entered. If it
  has, then Else statement is skipped and
  total is calculated
• “Missing Information” goes in the title bar
  of the dialog box
• OK is a button
• Exclamation is a warning icon that
  something‟s gone wrong
          Logical Operators
• AndAlso = both conditions must be true
If gender = Female AndAlso age>= 65 then
   seniorFemales +=1
• OrElse = either or both are true
If gender = Female OrElse age>= 65 then
   seniorFemales +=1
This increments counts if someone if that
   individual female, if he or she is >= 65 or
          Logical Operators
• Xor – is true only if one condition is true
  and the other is false…

• Not = enables the programmer to reverse
  the meaning of a condition

If not (grade = value) then…
If (grade <> value)
   Requiring check box entries
If (((nameTextBox.Text = "“)) OrElse _
  ((cleanCheckBox.Checked = False AndAlso _
  cavityCheckBox.Checked = False AndAlso_
  xrayCheckBox.Checked = False))) Then

MessageBox.Show("Please enter patients name", _
 "Missing Information", MessageBoxButtons.OK, _

End if

Shared By: