[Home] Syllabus for Visual Basic COP 2170 A.S.
3-Credits Text: Starting Out With Visual Basic 7th Edition (SCF Store link)
By Gaddis & Irvine ISBN: 9780134522180 (Other links)
Fall 2018 Lecture: Room 18-202 Tue 9:30-11:23 AM; Best Office Hours: After class
CRN 10654 Professor: Floyd Jay Winters, WinterF@scf.edu
1 Design | 2 Calcs | 3 If | 4 Loops | 5 Functions | Midterm | 6 Log-in | 7 Menus | 8 Arrays
9 StreamWriter | 10 Data Base | 11 Reports | 12 Web Ex. Cr. | 14 Documentation Package | Final Exam (400 points)
Visual Basic Video Tutorial Library: https://buckysroom.org and http://www.youtube.com/ TeachMeComputer
 

This is a live interactive syllabus with numerous updated sample links. Do NOT print.

Click here for 30 Second Welcome YouTube Video from Professor Floyd Jay Winters

Click here for Do what you feel passionate about -- Denzel Washington, Don't be Afraid to Fail,
Have Goals, Yearly Goals, Daily Goals, We don't plan to fail. We fail to plan, Hard Work Works.

Click here for Creating Your First Visual Basic Program (7:42 min. YouTube video)
(There is a Full Screen button on the bottom right side if desired.)
The video provides a look at a simple program. We'll cover all this during the first 2 weeks.

You should receive an email from Microsoft Imagine with your login information to download Visual Studio. (Be sure to use your scf.edu email when you register.) If you will be using a laptop, you can download Visual Studio Community 2017 at https://www.visualstudio.com/vs/visual-studio-express/
"For most (standard) types ... Windows projects VS 2017 can work in VS 2015, solutions and projects formats are the same."
Free online VB books: http://www.computer-books.us/vb.php But you must have a USB thumb drive.
3 Month Calendar Email: Once the course begins, all communication for this course should be through Canvas email

Objective:

Give students the background to WRITE programs, learn basic programming concepts, and object-oriented programming. This is an ADVANCED course. This course will NOT teach students how to USE basic programs like a Word Processor or Windows.

Course Performance Standards: Students may access course performance standards at:
http://scf.edu/Academics/BusinessTechnology/computer_science/course_performance_standards.asp

  Student Responsibility: All assignments should be emailed to the instructor through the Canvas online learning software platform by the due dates provided in the assignment schedule shown on this syllabus.

Additional questions and correspondence should be submitted to the instructor through Canvas email. Proofread, Spell-check, professionally write, and include a meaningful Subject line for all email. Label all assignment email with the assignment name in the Subject line, such as Word 4 Assignment and your issue. The instructor will answer all correspondence within 48 hours.

Withdrawal Policy: In accordance with the State College of Florida policy as stated in the college catalog, students may withdraw from any course or all courses without academic penalty of a WF by the withdrawal deadline as listed in the State College of Florida academic calendar. See the online Academic Calendar for important dates.  The student must take responsibility for initiating the withdrawal procedure. Students are strongly encouraged to talk with their instructors first before taking any withdrawal action. In addition, students should note that faculty may also withdraw students for violating policies, procedures, or conditions of the class, as outlined in individual class syllabi, and such action could affect financial aid eligibility.

Statement of Plagiarism: Plagiarism is the use of ideas, facts, opinions, illustrative material, data, direct or indirect wording of another scholar and/or writer — professional or student — without giving proper credit. Expulsion, suspension, or any lesser penalty may be imposed for plagiarism. Copying another student's work will result in a zero for both students.

Standards of Conduct: Students are expected to abide by all SCF Student Handbook guidelines.

Disability Resource Center Information: SCF has a Disability Resource Center (DRC) to assist students. To request academic accommodations due to a disability, please contact the DRC at 752-5295 in Bradenton or 408-1448 in Venice, or by email at DRC@scf.edu. If you have already requested academic accommodations through the DRC for this course please meet with me to discuss your specific needs.

Course Evaluation: Each class assignment is worth 100 points. Grading criteria for each assignment are provided below. The instructor will typically do a pregrade for each assignment during the class just prior to the due date. Additional student resources are available on the instructor's website.

Grade Scale: A:90-100, B:80-89, C:70-79, D:60-69.
-3 pts for each day homework is late for 1st 3 weeks. -1 pt for each additional day.
Copying another student's assignment will result in a 0 for both students.
Starting week 3 there will be a 10-question Canvas Multiple-choice quiz almost every week at the beginning of each Wednesday class. If you are late or absent there is no make up for these quizzes.
If you are absent for the Midterm a prorated grade based on Final Exam will count in place.
The final exam is required. There will be no makeup or substitution for the Final exam.
If absent for class- ask a classmate to give you the missed notes and assignments.

Helpful Links:
Department web page: http://www.scf.edu/Academics/BusinessTechnology/computer_science/
Virtual Library: http://www.scf.edu/library/
Academic Resource Center: http://www.scf.edu/studentservices/AcademicResourceCenter/
Student Services: http://www.scf.edu/StudentServices/
Online Learning: http://www.scf.edu/Academics/OnlineLearning/
Technical Assistance: helpdesk@scf.edu or call SCF at 941.752.5357 or
contact Online Academic Services Help Desk 24/7 Toll free: 866.506.1188 or https://supportcenter.embanet.com/scf

Aug 21, 2018
Class Begins
Begin Inventory project. VB.Net-Tutor.zip: http://faculty.scf.edu/WinterF/0ClassFolders/2170VB/

Read
Chapter 1 

Please upload your Photo in Canvas

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

You will do an Inventory project of your choice for your own business (it can be make believe, but please try to make it real). You will add to and refine your project week by week as you do the screen design, data entry, calculations, error checking, log in screen, about screen, color and font dialog boxes, save the data, retrieve the data… You will back up the project each week, but you will never use the backups unless there is an emergency. Always use same program week after week. Do not rename it, just keep adding to it.
Key Terms: Algorithm, Machine Language, Compiler, Keyword, Math Operator, Variables, Syntax, Procedures, Properties, Methods, Objects, Controls, Event Handler
Please set VB up to save when you start a new project: Tools> Options> check "Save new projects when created)

Click here for Creating Your First Visual Basic Program (7:42 min. YouTube video)
(There is a Full Screen button on the bottom right side if desired.)

Assign 1
Chapter 2
Form Design
Pseudocode

Due T Wk 3
September 04
100pts

Refresh
Browser
each
visit

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

10pts Type an algorithm or Pseudocode (p384) of how the first part of your Inventory program will work, using the first three assignments on the syllabus as a guide.
10pts Type up a Flowchart (p19, 177) of how your Inventory program will work for first 2-3 weeks.
Click for free Flowchart software) or http://www.gliffy.com/flowchart-software/ or use Visio or even Word (Creating a Flowchart in Microsoft Word 5:20 min. YouTube video)
05pts Name your new project with a short relevant name. Ex: invParts or invWidgets or invDVDs
05pts Set the Form Title and Description in TitleBar (see Form.Text property) (p47)
10pts Begin Form design: Add main labels to form (p48) Align Labels appropriately (p49, p89)
Under the Label Name property use good object names lblTitle, lblPurchaseDate, lblPartNum, lblPartDescription, lblPartCost, lblPartQty, lblTotalCost, btnExit…
Set at least 2 noticeably different Label border styles (p88)
Most Label text should be left aligned, Numbers right aligned (p89) (Formatting is not yet required)
10pts Use at least two noticeably different Label Fonts (p50) and label Colors (p82)
10pts Add a relevant Picture Box (p53), such as a company logo
05pts Add Button or other control (p69) to display a message (p73) lblMessage.Visible = True
05pts Add [Exit] Button (p77) to close the project. btnExit Code: End or Me.Close (p78)
10pts Add 3 comments or REMs (') at the top of the code: your name, project name, creation date (p79)
Also add a “To Do” Section.   Ex: ' To Do: Add Calc for Total Inventory
10pts Add a working Message box (p91)
10pts Add a Clickable Image (p95)
* Add a Tab Control (it’s in the toolbox; if we do not do this upfront it may cause problems later: sometimes if you paste existing code to a new Tab you may have to retype the “handles” section at the end of the sub.   Ex: handles txtCost.leave
* Make sure everything is attractive, well designed and lined up.
* Save form with a good form name (like InventoryMainEntry - this is the name on the disk).
This will be graded in the lab on your USB drive. You must have a USB thumb drive.
NOTE: DO NOT SAVE after you start your project. VB automatically saves whenever you click Run. You can NOT SAVE your project created on your hard drive to your USB thumb drive. But you CAN COPY the entire folder from your hard drive to the USB thumb drive and vice versa. Make backups: Ctrl C | Ctrl V.
[Insurance (+5): E-mail me your 6-digit ID (see top of syllabus)]
Good debugging practices:
a. Make the problem as simple as possible
b. Create a short project called Junk with just 2 text boxes to test your code before adding it to your real project
c. Insert Breakpoints (click in gray side bar to get red circle) then run program, tapping [F8] or [F11] to step through
d. Use Debug.WriteLine and view the Output or Immediate window to see the value of your variables
e. Use VB Help or do a Web search for help or sample code
  Continue Inventory project with input Textboxes and Variables. Screen Grade based on assign 1-2
Know: Object, Class (pattern), Property, Method (object action such as .close or .show), Event (user action such as keypress), Procedure (such as Private Sub...)
Assign 2
Chapter 3

Variables,
Calculations

Due T Wk 4
100pts

Canvas Quiz1 Wk 3
Canvas Quiz2 Wk 4
Canvas Quiz3 Wk 5
Etc...

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

Click on last week’s project folder in the Explorer and backup: [Ctrl] + [C], then [Ctrl + V].
Do NOT work with the backup. Do NOT rename your main project or your project folder.

10 Add corresponding Textboxes (p112): txtPurchaseDate, txtPartNum, txtPartDescription, txtPartCost, txtPartQty, lblCalcTotalCost (Autosize=False)
10 Add button to [Clear] all textboxes and labels that display calculations (p116) Set focus on first textbox on clear (p118) txtZ.Clear or txtZ.Text="" or lblZ.Text = String.Empty
10 Format and set input txtPurchaseDate to default to today’s date (p139) and set all other appropriate defaults on clear and on Form_Load.
10 Make sure the tab order is top-down, left right for ALL textboxes (p119) (View > Tab Order)
10 Assign Hotkeys to all buttons (Text property: E&xit) (p121) | Set a default or Accept button (p123)
05 Dim and use at least 1 local variable (within a Sub procedure) (p127)
05 Dim and use at least 1 global variable (scope, p134) Ex: Const Tax As Decimal = 6.50
10 Add a button (btnCalc) or subprocedure (Sub Calcs) to [Calculate] (p151):
lblTotalCost.text = CDec(txtPartCost.text) * CInt(txtPartQty.text)
Add Option Strict (p143). Option Strict On avoids subtle errors, but you will need statements like:
Cost = CDec(txtPartCost.Text) and
PartQty = CInt(txtPartQty.Text) or Convert.ToDecimal(txtPartQty.Text)
10 Format ALL numeric input (on lost focus) and all calculations and Format system lblDate (this label usually appears at the top-right of the form) (p153)
10 Add a Try/Catch Exception Handler with a MessageBox for your calculation (p163)
10 Add a GroupBox (drag from toolbox) with two or more RadioButtons (drag from toolbox) in it. (p171)
* Add top or side REMs or comments (') to explain harder code or logic that you might forget later.

  Refine Inventory project - Handling Exceptions and Messages – Screen Grade based on assign 1-3
Assign 3
Chapter 4

If / Then
Decisions

Validation
Formats
Checkboxes

Due T Wk 5
100pts

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

Click on last week’s project folder and backup: [Ctrl] + [C], then [Ctrl + V]. But do not use the backup.
10 Add If/Then/Else statements to check for valid input range for Cost and PartQty, display a message box on lost focus. [Ex: Cost >= 100] allow reentry (Ex: Is Cost too high? [Yes] [No])
Add an ElseIf statement (p221) (optional)
10 Use an And and/or an Or logical operator
10 Be sure to test for Nulls ("") or No Input (=String.Empty) before formatting or calculating.
Note: Null is a valid input, especially if the correct data is either unreadable or unavailable.
05 Make txtPartNum or txtState use the .ToUpper method on lost focus
05 Use the .Trim method to remove any leading or trailing spaces in txtPart# or txtState
05 Use the .Substring method to limit the length of txtPart# or limit txtState to 2 characters
Note: Another way to deal with the length of a string is: If txtPartNum.Text.Length <> 8 Then...
05 Use at least one .TryParse method to confirm valid data conversion
10 Add If statements to check for IsNumeric for both PartCost and PartQty. Avoid negative logic.
10 Use a relevant Select Case statement, perhaps to make a decision and print out multiple possible messages for your project.
10 Use the If Then Else structure to check numeric ranges for both Cost and PartQty. Use a Beep command and MessageBox with a clear Title and clear Prompt (Is Cost too High?) and an .Exclamation icon to go back or accept and continue.
Note: if you are get multiple validation MessageBoxes when you should just get one consider:
a. Set focus back to error generating TextBox before displaying MessageBox
b. If problem persists, use _leave instead of _lostfocus
10 Add a CheckBox for Discount or TaxExempt or... If chkDiscount.Checked = True Then add a subtract amount to the Total, if not true then the Total is the normal Total. (You may choose use another active option with the chkbox.) Make sure your calculation is updated as soon as the checkbox is checked.
10 Use a variable to Calculate decTotal and set lblCalTotal equal to decTotal
All Calculations must now work (Replace [Calculate] button with a Call)
Format ALL Dates and Numbers
Ex: txtSubTotal.Text = FormatNumber(txtSubTotal.Text, 2)
* Organize code: The Title and ID comments are at the top, then comes the Class, then Form Load, Create a #Region for Input code, a #Region for Calculations, and a #Region for Buttons
* Add an ErrProvider to one of your numeric input TextBoxes.
 
Continue the Inventory project - SCREEN GRADE based on assign 1-4
Debugging: Make the problem as simple as possible,
create a short Junk file to test, insert Breakpoints, do a Web Search
Assign 4
Chapter 5

Lists and Loops
See Loops.zip

Due T Wk 6
100pts

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

10 Add a Counter (such as itemCount) and a [Save] button to increment the total number of entries added when [Save] is pressed. Example: Students +=1 to count students or Tickets +=1
10 Also after clicking the [Save] button, do a running total dollar amount (Accumulator) of all the transactions. Example: GrandTotal += SubTotal or TotalGallons += Gallons
10 Add a Drop-Down Combo Box for State or Department or Part# (see list of States) Use Items property.
10 Add a ToolTip control and put ToolTips to all Buttons: (Drag only one ToolTip control to Component Tray; then set the Tooltip property for each control)
10 On a separate tab add a Do-While Loop or Do-Until Loop to do anything you choose - it can be playful, but make sure it correctly demonstrate a Do-While or Do-Until Loop. Points will be awarded for how interesting or how good it is. Feel free to do an Internet search for sample code. Also see LoopDemo.zip
10 Use a Timer for a countdown (decrement) and some type of Animation
10 On a separate Tab, use a formatted Pmt function for a Loan Calculator
Compare your results to: /0ClassFolders/1570Office/SamplesExcel/LoanCalculator.xls
lblPMT.Text = Pmt(txtRate.Text / 12, txtYrs.Text * 12, -txtLoanAmt.Text) p331-338
10 1. Format all numbers. 2. If InterestRate is greater than one, then InterestRate is equal to InterestRate divided by 100.
10 Use a ListBox with a For/Next Loop for the Loan Calculator
* Before loop: Add a Header to the ListBox using Items.Add with & and vbTab
ex: "Month" & vbTab & "Interest" & vbTab & "Principal" & vbTab & "Balance"
10 Add the additional code needed to make the Loan Calculator work

  Continue the Inventory project - SCREEN GRADE based on assign 1-5
Assign 5
Chapter 6

Procedures,
Functions

Due T Wk 8
100pts

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

If you cannot find a way to make these relevant to your project, add a new tab called Functions and place a working demo Procedure and Function there. Feel free to use the Internet to find sample custom VB functions and sample custom procedures that pass arguments.
30 Declare a Procedure and pass an Argument to it. Make up your own, do not use my sample.
"by reference"- procedure can make changes to the original argument ("by value" - no changes)
Basically, you are passing one or two pieces of data (arguments) to another procedure or sub.
30 Declare and use a programmer-created function with your program (see Function.zip) - If you use my demo functions above: make up your own function or modify another from the Web.
Basically, you are passing one or two pieces of data to another function that will manipulate that data.
10 Demonstrate during screen grade how to use a Breakpoint with [F11] and the Debugger to Step Into [F8] and Step Over as in execute the remainder of a procedure [Shift F8]
10 Demo at least 1 Debug line in Call Calculations [Ex: Debug.WriteLine("txtCost= " & txtCost.Text)] - During Run time there is an Output Window (View > Other Windows > Output) to show the Debug values. Sometimes the values are displayed in the Immediate Window. If necessary use VB help.
10 Add a formatted DateTime Picker, so there is both a default Inventory date (txtTotalDate) and a System date (today’s date: lblSysDate)
10 Change form’s icon (see form Icon Property). Do a search on icons, download an icon maker, or using a program like Photo Filtre make a small 32x32px image (.ico) and choose Tools > Export as icon

Withdrawals:

In accordance with the SCF policy as stated in the college catalog, students may withdraw from any course or all courses without academic penalty of a WF by the withdrawal deadline as listed in the SCF academic calendar. The student must take responsibility for initiating a withdrawal. Please talk your professor first.

Add a Log-in form with a Password to Inventory project – SCREEN GRADE based on assign 1-7
Assign 6
Chapter 7
Multiple Forms
Modules

Due T Wk 9
100pts

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

10 Add an attractive Splash Screen (Project > Add Windows Form > Splash Screen) consistent with your overall project design; make it your Startup Form, link it to the Login form which links to frmMainEntry non-modal (modeless) (p414), then do a frmLogin.Close
20 Add an automatically centered (there is a property) and attractive Login Form to your Project (Project > Add Windows Form > Login Form) consistent with your overall project design which is the Startup object for your project.
10 Link to frmMainEntry with a properly formatted Password (*** there is a property).
10 Use a counter to give the user exactly three attempts to either frmMainEntry.Show or Exit.
10 Add a modal frmAbout.ShowDialog (Project > Add Windows Form > Aboutbox) linked from frmMainEntry; change the Aboutbox content through properties and [Assembly information]
10 Add a Groupbox container that includes at least two relevant and well labeled Radio Buttons that perform some kind of action when selected or deselected.
30 Add a separate Module (Project > Add Module) (A module is all code, no objects.) Name it something like VariablesAndFunctions. You should put your Public and Constant variables in the Module, such as CompanyName, Company Address, Tax. You can put your function from your last assignment in the module. But do not just copy my sample module and do not use the word Private! Variables defines in a module should be Public.

Midterm 200pts
T Wk 9, 10:00AM

50 Question Multiple Choice online MIDTERM on commands, terms, and concepts from assign. 1-5.
See MidtermReview on the FTP site and MidtermPracticeVB1.Zip.

  Add a working File (Exit), Format (Color, Font), Help (Notes, About) Menu to frmMainEntry
Assign 7
Chapter 7 Menus
Dialog Boxes
Collections

Due T Wk 10
100pts

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

10 File > Exit (mnuFile > mnuFileExit) - Toolbox > Menus & Toolbars > add 1 MenuStrip to form
10 Format > Color (to access the Label Collection Color Dialog Box mnuFormatColor)
10 Format > Font (to access a Font Dialog box - mnuFormat > mnuFormatFont)
Also add mnuFormatReset    Note: See Combining ColorDialog and FontDialog. See Reset.
10 Help > View Help (or View Hints) [Process.Start("NotePad", "../Hints.txt")] Make Help work with [F1] key. Use real help hints such as where are the data files stored, backing up, data validity ranges...
(OR: There is a Shortcut Property added when you add a MenuStrip) Help is always last on right.
10 Help > About to display Title, Description, Author, Creation Date, Version
10 Put all form Labels in a Collection (See my online demo using With statement)
10 Access the Collection with a For Each statement
15 Add a Context Menu (provides a Rt-click menu) (Toolbox > Menus & Toolbars > ContextMenuStrip) for changing the label collection Color and Font using a Color/Font Dialog Boxes Note: do not reinvent the wheel. Use mnuFormatColor.PerformClick() in mnuCtxColor menu sub to add the routine already created in mnuEditColor.
10 Add a working LinkLabel (in Toolbox) to a relevant link [Process.Start("http://
05 Put all your mnuXxx procedures in #Region "Menu" in left-to-right/top-bottom order

  Use Arrays on Inventory project – SCREEN GRADE based on assign 1-7
Assign 8
Chapter 8
Arrays

Due T Wk11
100pts

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

30 Enter the data for at least three items on your main form and store at least Description, PartCost, and PartQty into at least three 1 dimensional parallel Arrays (10 points each) perhaps called arrDescription, arrPartCost, arrPartQty. Calculate GrandTotal (depending on your project, you may choose three different fields, as long as one is numeric and one is alphanumeric)
20 On your main form, use a Loop to display the three 1 dimensional Arrays and all the totals (ex: arrDescription, arrPartCost, arrPartQty) and calculate GrandTotal (an accumulator) in a Listbox which is accessible from an option under the File menu or from a button.
10 Display an aligned Header (use vbTab), the Detail (all individual items), and the Grand total.
10 Use an Accumulator (p509) to display the Grand Total. The Listbox will look like this:
Description Cost Qty Total
Apples 10.00 10 100.00
Bananas 20.00 20 400.00
CDs 30.00 30 900.00
DVDs 40.40 10 404.00
    Total $1804.00

20 On a separate tab - create and use a two dimensional array (any items that you choose - but do not copy from a classmate) and display the results in a Listbox.
Sample Dim: Dim Items(25,2) ' 25 items with part numbers
10 Sort the Array, for a sample see:
Dim arrayItem() As String = {"Apples", "Carrots", "Beans"}
Array.Sort(arrayStudentSort)

10 Add a Status Strip (Toolbox > Menus & Toolbars > StatusStrip), with two different working items (Properties | Items | Collections), to the bottom of frmMainEntry. (Do not just toggle one item.). Note: adding two status strips can help align buttons to the left and right side of the strip. Set Dock = none to move 2nd strip to left.
10 Points insurance - Place a working Web browser on new tab that has a URL address bar, [Back] (WebBrowser1.GoBack), [Forward], [Home] (WebBrowser1.GoHome) and [Refresh] buttons (2 points each.) From tools add a Panel object that will be Docked on the top (for several navigation Buttons and a textBox for URL.Text), then add a WebBrowser under the panel.
To expand full screen: Select Browser tab. Click on Browser control. Under Properties choose Anchor, click in the middle to choose all four: Top, Bottom, Left, Right
Under Form_Load and navigation menu [Go] button: WebBrowser1.Navigate(txtURL.Text)
See: https://sites.google.com/site/daeeducation/lectures/simple-web-browser

  Add a Password using a StreamWriter to your Inventory project – Screen Grade based on assign 1-8

Assign 9

Write to File
Chapter 9
Due T Wk 12
100pts

Window
Quiz

For VB videos see:
https://buckysroom.org and http://youtube.com/ TeachMeComputer

Add a menu item called Tools > Password (mnuHelp must still be the last menu item on the right)
10 Use an InputBox or a separate well designed small form to enter the new Password.
Use the PasswordChar property to show *s instead of the actual password characters typed.
Click to see some simple techniques for creating a small password file (but a StreamWriter is better.)
10 Save the Password to a text file (the default extension will .txt, but you can use a different extension, so that it is not obvious to a hacker) created by IO.StreamWriter
10 Use IO.StreamReader to retrieve and use the new the password on the login form

Create a mini word processor on a separate form that can be used to write notes or memos or comments.
Access the mini word processor from a drop down menu item or use a separate tab if desired. Name it Memo.
10 Add a RichTextBox editor (drag from the Toolbox) to your project that will be used to create a small relevant multiline text file that will be saved with a StreamWriter.
10 Add a File [Save] mnuFileSave menu item with code that will store the results of a multiline RichTextBox
10 Add a File [Open] item with code to use IO.StreamReader to retrieve the multiline text file
10 Add a File Print to print or Print Preview the contents of the RichTextBox editor
10 Add an Edit mnuEditCopy, mnuEditCut, mnuEditPaste, mnuEditUndo, mnuEditRedo, mnuEditSelectAll
10 Add [mnuFormatColor, mnuFormatFont, Upper, Lower, Center, Left, Right ... to your RichTextBox editor
10 Also include Bold, Italic, Underline
Make sure you display the traditional shortcut keys in the menus for Copy (Ctrl+C), Cut, Paste...
20 Add a beautiful working ToolStrip (Select the ToolStrip and click the flyout arrow in the upper right to Insert Standard Items, to Edit Items, and Dock. Use Properties to add small images as buttons).
+10 Insurance points: Add a Structure and/or create, write, and read an Encrypted file - use Google
 

Link a Database to your Inventory project – SCREEN GRADE based on assign 1-9

Assign 10

Databases
Chapter 10

EXTRA CREDIT

(LINQ)
Language IntegCostd Query

Due T Wk14
100pts

BACKUP Your Project twice before starting the database project below. (Do not use the backup; just back it up. If your data connection does not work then you will use the backup as you try again):
20 * Build a Microsoft Access Database Table where each table field matches each input Textbox in your Visual Basic Inventory program. Do Not save calculated fields to file on disk.
Be sure to know the terms on: 0ClassFolders/2170VB/DataBases/DatabaseTerms_diagram.pdf
and 0ClassFolders/2170VB/DataBases/SampleInventoryReportAndTerms.gif
See database samples at: http://faculty.scf.edu/WinterF/0ClassFolders/2170VB/DataBases/  
20 On your existing Main Entry or on a separate tab add a Form that links to the Access database table
In order to save updates to the database: see Copy to Output Directory Property
You may need to set a Primary Key for the Save button to work after adding a record.
You may have to download a patch to make the Microsoft Access Database Engine work on your computer:
http://www.microsoft.com/en-us/download/details.aspx?id=13255
Perfectly space and line up and format all the fields all the fields in the Data Form
20 Put your out of range tests and error checking routines in the new form
Note: to change label properties (color and font) via a collection used with a CommonDialog, there is a property on the automatically generated labels called Generate Member. Set it to True.
10 Add a SQL Calculation: Rt-Click on the database table Adapter that is placed in the Component Tray after you add your database. Chose Edit Queries in DataSet Designer. Rt-click on the table header that appears on the next screen. Choose Configure. Add the SQL code for your calculation to the existing SQL code shown in the TableAdapter Configuration Wizard box. Do an Inventory database, however, a sample of the original code for a Inventory might be:
SELECT dbPartNum, dbDate, dbPartQty, dbCost FROM tblWeeklyPartQty
The new code should be:
SELECT dbPartNum, dbDate,dbPartQty, dbCost, dbPartQty * dbCost AS Total FROM tblWeeklyPartQty
10 Set good labels, align, and format the "Detail" presentation of the database on your form.
One way to Format your database fields: See 2170VB/DataBases/FormattingVB_Database.jpg
Ues theText-Align Property to right justify numeric fields.
10 On a separate form Tab show the Access database table in as a "Data Grid" presentation.
10 Double-click between field headings to perfectly space and line up all the fields in the Data Grid
+10 Insurance: Use PrintDocument control to add a e.Graphics.DrawString to print at least 1 line (p575-580)

Extra credit: Tie your project into a MySQL database instead of Access.
See 8 minute YouTube video (probably without sound :-) http://www.youtube.com/watch?v=jZsTLlFoNuo

Assign 11

Due T Wk 16
100pts

Reports

Read the database file and Print a Report using the VB ReportViewer showing All Records and report totals (you must have at least 6 realistic records).

  1 Add a new form to your existing project. Name the form Report.vb in the explorer and frmReport in VB.
  2 Drag a ReportViewer from the toolbox to the new Report.vb/frmReport form.
  3 Click the flyout arrow in the upper-right corner of the new ReportViewer object on the new form to "Design a New Report."
- The Report Wizard will launch.
- Under the Data source dropdown, choose your existing Data Source from your last assignment. Tap [Next]
  4 Drag the main ID field to the Row groups box. Drag the other desired fields in the order you want them to the Values box, if you do not want grouping. Tap [Next] and Uncheck Expand/collapse groups.
Tap [Next] [Finish] as you make your desired choices.
You will now be in the Report Design view. (By default, it is named Report1.rdlc in the Solution Explorer.)

TEST TO SEE IF IT WORKS: return to form Report.vb/frmReport and select the Report Viewer.
Click the flyout arrow in the upper-right corner of the Report Viewer object once again and "Choose [the new] Report" to link the new report to the ReportViewer.
Add a menu option or button to link to frmReport/Report.vb and then run your project to confirm it works.

Make your report layout look professional. Open Report1.rdlc. Resize it and set its properties...
  5 Right-click the report textboxes and choose Text Box Properties to rename labels, change colors, alignment, font, format... to make the detail and header look professional.
  6 If desired, select a text box (such as an unnecessary Sum of PartQty), then click the left-most grey column immediately to the left of the detail area, to select and delete any unwanted sum rows.
  7 Right-click on the white area of the Report to Insert a page Header and page Footer
  8 Right-click on the Header to add a Logo image, line, border... in the Title / Page Header section.
  9 Right-click on the Footer to add a textbox for a Date in the Page Footer section.
Right-click the Date textbox and choose Expression > Common Functions to add the date.
10 Right-click on the Footer to add a textbox for a Page number in Page Footer section. (Built-in Fields)
If you used the SQL calculation in the previous assignment you will not have to right-click the header and Insert Column and then add an "Expression" to do a calculation in this project.
11 When done with your first draft of the Report Design, return to the Report Viewer on Report.vb.
If you did not already do this step: Click the flyout arrow in the upper-right corner of the Report Viewer object and "Choose [the new] Report" to link the new report to the ReportViewer.
Run it. Preview, format, and critique it. Go back to Design view and make it look very professional.

10 Title on line one, include Company Title. Subtitle on line two: such as Total PartQty Report
(You may or may not choose to do this as a "Page Header" section. Right-click the white side space in the ReportViewer to insert a Page Header and a Page Footer section.)
10 Right-click on the Header and add a Logo image in the Title / Page Header section.
10 Neatly aligned Detail Header (remember to right-justify numeric headers)
(Right-click a cell in the ReportViewer to set the textbox (cell) properties.)
10 Add the necessary fields to the Detail section
10 Make sure all the Detail lines are neatly sized, formatted and lined up (right-click)
10 Add an inline calculation in the detail section (usually the right-most column, such as Total). You can modify the Value field added when you originally clicked "Design a New Report" (Right-click > Expression)
Remember - NO SPACES IN FIELD NAMES
10 Include GrandTotal at the bottom of the Detail section.
Sample "expression": =Sum(Cost * PartQty)
10 Add a formatted Date and Page Number in the Footer (Right-click >Expressions & Built-in Fields)
10 Set appropriate page margins and center the report on the page. (Right-click : -)
10 Make the report look beautiful.
When you run your project and display your Report, there is an option (a modified Save icon) to Export or Save as a PDF. Upload the PDF to the Assignment Dropbox.
This will be based on lectures and online demos. Click to see Samples

 
Assign 13

Web app
Web Database
Chapter 11


75-100pts

Extra Credit: Points below will be added as bonus points to your overall total points before averaging
Or used to replace a missing grade, or add points to low grades.
(To get a full 100 points you will have to briefly do a presentation to the class to show how you did it: First one the successfully do it and ask to do the presentation gets the full 100 pts)
See Chapter 11, Developing Web Applications, starts on p677. The book is of limited help : -(
25 pts Using Visual Basic, create a Web Page (ASP.Net) that looks like your frmMainEntry
50 pts Place the web file live on the Internet and make it work live on the Web
Build > Publish. Be sure to provide a destination folder name - otherwise you may replace your entire Web site. (Or for info on FTP see:
http://www.youtube.com/watch?v=82bosHMoKwQ
http://faculty.scf.edu/winterf/0ClassFolders/Common/FireFTP.pdf)
http://faculty.scf.edu/winterf/0ClassFolders/Common/FreeWebSpaceFTP.pdf
50 pts Save and retrieve the data on the Web

1. Launch VB (No need to click New Project)
2. File > New Web site
A. Choose .Net Framework 4 from top dropdown
B. Choose ASP.NET Empty Web Site from middle panel (from scratch) or ASP.Net Web Site (nice template)
C. Choose File System from Web Location dropdown on bottom of window (you can FTP with FireFTP later)
D. Click [OK]
3. File > New File > Web Form if you are working from scratch.
A. Use Default.aspx as the name from the Name text box on bottom of window
B. Click [Add]
4. Drag the desired tools from the Toolbox at left to the Default.aspx page (the home page) in the middle
A. Set the ID (ex: lblTitle) and Text properties (ex: My Company Name) in the Properties Window on the right
5. Depending on what you checked in the Debugging dialog, you may have to replace the following line in Web.config
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
with
<compilation debug="false" strict="false" explicit="true" targetFramework="4.0"/>
or simply to
<configuration>
<system.web>
     <customErrors mode="Off"/>
</system.web>
</configuration>

or Delete Web.config on the server or do not copy it.
Note: Your host must have ASP.Net 3.5 or higher installed on your server.

Due Sun Dec 09 Build an excellent Documentation Package in 2 (two) parts:
See Final VB Documentation Checkoff List for exact breakdown of points
Save it as a PDF and submit through the Canvas Dropbox.
Assign 14
Documentation
Submit through Canvas.

50pts Extra Credit
A User’s Manual- front part of documentation package:
10 Table of Contents page and an Introduction page and page numbers
10 Discuss and show the running Login procedure
Use [Alt] + [Print Screen] or the Snipping Tool (Start > Programs > Accessories > Snipping Tool) to capture your project windows, such as Login, Main Entry Form, About...
10 Show and discuss the running Main Entry Form
20 Discuss descriptions, defaults, data entry ranges, basic usage, data file description & path
10 Show and discuss Menu options
10 Show and discuss 2 Reports (10 each)
10 Show and discuss how to backup, and getting help
10 Show VB code in last half of documentation as a separate section
No VB code in the front part; the front part is only for the users. (-10pts)
10 Make it look very attractive and professional!
NOTE: You probably do not want to include the animation routine in the documentation package.
  B: For Programmers- back front part of documentation package:
The back part of packet will include
10 Hardcopy of programmer code
10 Include page numbers on whole packet.

The Documentation Package must be professionally bound OR put on the Web.    Click to see samples.
 
Final Exam T Dec 11 9:30 Two hour hands-on timed proficiency Lab exam based on 20 to 25 items listed on practice sample taken from assignments 1-8.
400pts For a practice sample see:
faculty.scf.edu/WinterF/0ClassFolders/2170VB/SamplesExams/VB-FinalExamPractice.htm

Top

JavaScript 3 Month Calendar