John Van Hemert

 

 

 

 

 

 

 

 

New Transnational Life Space:

Analysis of my experiences studying at the University of Swansea

And

interning at Gower Business Systems, Swansea

 

 

 

 

 

 

 

 

 

 

Dr. D. Bewley Taylor

 

 

 

March 2005


Introduction

 

In three words, my academic background can be summed up with technology, application, and experience.  I have always been interested in computing and enjoyed the systematic logic computers use.  I am just as interested in the application of the computing power to complete more meaningful tasks.  That is why I have given my academic career two faces—a technical face focusing on computer science and an application face focusing on business management.  I plan to use these two degrees (B.A. Computer Science, B.A. Management Information Systems) at the University of Northern Iowa not only for satisfaction of my interests but also for flexibility in the job market upon graduation.

 

Experience has been the third face of my academic career.  By studying at Montana State University through the National Exchange program in the US for one year as well as studying abroad here in Swansea, Wales I am growing both professionally and personally.  These experiences will add richness and insight to every aspect of my life.

 

One of the main reasons I chose to study abroad with Swansea’s program is the opportunity to participate in an internship.  From this internship I will also be able to take and apply new skills and ideas at home.  I actually did not choose my internship placement but feel that those who did choose it for me could not have given me a better assignment.  My placement has been wonderful because it has been very technical.  I was able to learn on my own the “in’s and out’s” of some important information technology systems.  My placement has also shown me the productive applications of technology.  I learned how one can build and operate a business by marketing their skills in computing.

           

Gower Business Systems

 

Gower Business Systems Ltd. was formed in 1991 by three men, each of whom had a particular area of expertise to offer to the information technology industry.  Using their experience in Sales, Accounting, and Technical Support, the three entrepreneurs began as an information system consultancy, training and support center. (Gower Business Systems)  GowerBiz, as it is sometimes called, continues these three services today.  Two of the founders remain today—Mark Bowling and Mark Wyatt (“The Marks”).  They are a small business employing less than ten team members.

 

 

When the sales team contracts a new client, the technical team evaluates the client’s information needs and determines what hardware is required from computing workstations to servers to telephone systems.  There is also a Legal Accounts team that is in some ways part of the Technical team and other ways part of the Accounting team.  The Legal Accounts team tailors specific software needs to solicitors’ offices, which make up a large part of GowerBiz’ market.

 

 

Team members and responsibilities are as follows:

  • Two engineers serve as on-site hardware and software installation, consulting, and support.
  • Two programmers develop and maintain their own software written with GowerBiz customers in mind.  They also serve as remote software support for clients.
  • Sales representatives facilitate marketing and sales strategies.
  • Legal Accounts specialists provide specialized consulting for clients who are solicitors.
  • The training team provides technical training lessons for clients either in simulated environments in the GowerBiz training room or on site.
  • All teams are overseen by the two remaining founders. (Gower Business Systems)

 

A brief list of the specific products offered by Gower Business Systems:

  • Systems:
      • GowerBiz is a partner of Intel and mainly uses Hewlett-Packard hardware for systems.
  • Accounting:
      • GowerBiz resells and supports Pegasus Opera and Sage systems, which offer different levels of complexity for different size clients to streamline and automate their accounting practices.
  • Legal Systems:
      • GowerBiz resells and supports the Laserform Law software package which provides legal offices with fast and reliable automation and communication.
  • Telephony:
      • GowerBiz resells and supports the Avaya hardware/software system which uses computer networking principles to integrate phone systems with computer workstations.
  • Point-of-Sale Systems:
      • GowerBiz also resells and supports PayPoint hardware and software which is an electronic point-of-sale system that streamlines sales for retail businesses. (Gower Business Systems)

 

 

 

 

Internship

 

When I arrived at Gower Business Systems for my first day of work experience “The Marks” sat me down to see what kind of technical background I have and to inform me of what projects were available to me to consider working on.  We decided the best project for me to begin was the company’s intranet web site.  This became my main project for the duration of my internship.

 

GetNetWise.org defines and intranet as “A private network inside a company or organization, which uses software like that used on the Internet, but is for internal use only, and is not accessible to the public. Companies use Intranets to manage projects, provide employee information, distribute data and information, etc.” (GetNetWise.org)

 

 

 

My first goal was to provide company information to employees in an organized and easy-to-use format. I created a staging area on an extra workstation and installed all the necessary development software.  The server is pictured at right in the corner of the development office.  This is where the intranet site, web applications, and web access are facilitated.

 

 

 

 

 

 

 

 

 

 

 

I used Microsoft FrontPage for HTML development and Microsoft Visual Studio.NET for web application development.  I used the programming language Visual Basic.NET.  Here is what the site looks like when the user enters the Procedures Section:

 

 

 

 

 

 

 

 

 

 

 

 

The best part of my internship has been the opportunity to develop and implement two web applications for use on the intranet web.  The first, called Pool Car Log satisfies the pool car logging and mileage record requests from employees.  The first step was to determine what information I would need to store in the database which would store the information.  The second step was to design the database that the program would use.  I then created an Input-Processing-Output (IPO) table for the program that organizes its objects and processing logic.  The user first sees a screen like the one below.

My second program is called Loaned Items Log.  Sometimes GowerBiz clients need to have hardware repaired or serviced which requires a temporary replacement item to be loaned.  This program makes record keeping for the loaned items simple, easy, and available to every employee at once.  Here is the first screen that the user sees:

 

 

 

 

 

 

Further explanation and specification of the intranet site and each web application are attached.

 

 

 

 

 

 

I also spent a day on a support call with an engineer.  We installed a new mail server (pictured at right) and diagnosed hardware problems with a workstation at a corporate solicitors’ office.  I learned how to work with clients and keep them satisfied.  It is important for IT support specialists to be able to communicate with customers who may not understand the technicality of your services.  Support personnel must be charismatic when customers become frustrated, quick when time is against them, and innovative when unforeseen problem arise.  A good motto for on-site engineers and support is “Expect the unexpected.”

 

 

 

Comparative Analysis

 

Today, less than 0.01 percent of the world population nomadically moves in small groups through unmarked geographic areas.  However, this hunting and gathering way of life was the working system for more than 99 percent of the history of humanity. (Pries, 3)  In the introduction to his academic collection, New Transnational Social Spaces, Ludger Pries argues that the current system of “nation-state bounded-containers” is just a small episode in humanity’s history.  He says there is something developing that we do not yet fully understand.  Pries uses the three old and outdated theories of World Civilizatoin, World System, and World Society along with the current theory of Globalization to explain the idea of Transnational Social Spaces.

 

Transnational social spaces can best be explained by example.  I work at a concrete plant during my semester breaks at home with many men who leave their families in Mexico to work for years at a time in the US.  They move back and forth, creating an identity that does not quite fit into the immigrant of emigrant definitions.  These men are forming Transnational Social Spaces which transcend the nation-state containers of which they move in and out.  Now apply this idea to a student who has a life and social space in the US and moves to the UK for one semester.  The time frame may be miniature but the phenomenon can be seen as the same.  As I build my social space (The word ‘social’ is misleading—the space is more than ‘making friends.’  It is really a ‘life space.’) here in the UK and connect it with my social space at home, I create my own Transnational Social Space.

 

My transnational space has two grounding points- the US and the UK.  In the following comparative analysis, I will present my experiences in the US and the UK and then analyze similarities and differences regarding the academic environment, professional environment, and views on the outside world.

 

The academic systems of the US and UK are very similar up until the post-secondary level—the University.  I have noticed differences in the breadth of education and learning systems in the US and UK.

 

The US university system requires students to complete a course in liberal studies.  These include humanities, sciences, and arts.  The idea is that a university graduate is a well-rounded and educated individual not only in their chosen field, but all the fields deemed important to be productive in society.  UK university students are not required to complete this course of study.  They only focus on their chosen field, or course.  Therefore, the standard time to earn an undergraduate degree I the US is four years, one year longer than in the UK.  Further, since the US system has a standard course that all students must take, it allows changes in a student’s chosen field, or major.  Switching majors in the US is very common in the first two years of undergraduate study.  As far as I can tell, that is not the case in UK universities.

 

Which system is better?  Probably both.  Each system has been designed to produce graduates suited for its part of the world.  UK students may not need that liberal arts exposure because simply living in Europe exposes one to a much deeper sense of history culture than living in the US.  The US is, after all, only a youngster when it comes to a nation’s age.  Students that experience both systems only enrich their education and transnational social space.

 

The economic and business systems of the US and UK are essentially the same.  They both operate on a minimally regulated market system where entry is always allowed and monopoly is not.  From my experience in the US and in the UK in a business environment, I have noticed similarities that cut through the boundaries of the separate nation states as well as across different sectors.  Both my internship (service sector) and my summer job at home (industrial sector) are for small businesses with less than 50 employees.  Every employee knows every other employee as well as their responsibility.  A team paradigm is easy to grasp.  Employees may jump the boundaries of their individual job descriptions to help other team members.  For instance, a programmer may diagnose a hardware problem if the engineer is busy with an installation or a bridge beam production crew leader may help set up a concrete quality control device.  Cross-functional teams, as they are called, happen naturally in small business but must be formally created in larger corporate settings. (Hill, 139)

 

The fact that a small business can operate with some of the same organizational culture characteristics shows that transnational spaces are not just created by tangible individuals, but by Business, itself.  In this case, Business bridges a gap between two different nation states.

 

For my analysis of world views, I am going to look at the entire non-American world instead of the UK alone.  The BBC recently did a special on a survey taken from 11,000 people all around the world.  The program was the first discussion I had seen between experts from outside the US.  It was also the first political analysis program I had seen produced by and for people outside the US.  There were some results that I found interesting.  Firstly, 65% of the respondents thought the US is arrogant.  49% (more than those who did not due to more than two choices) of respondents thought the world is less safe while the US has its current amount of power, meaning these respondents feel the US has too much power.  The world sees the US as very powerful but also sees the US as arrogant.  Perhaps the arrogance in is the minds of those who see the US as too powerful.  The attention that the world gives the US—the view that it has too much power, the view that the US is too rich, the very fact that a world survey was done on what people think about the US—may be a self-fulfilling prophecy of ‘arrogance’.

 

What if a world survey was done on what people think about another nation?  Would the results be very different?  I think they would be similar.  Imagine someone who lives in a nation that is not the richest or most powerful nation in the world.  This person loves and identifies with their country.  What would they say if asked whether a richer and more powerful nation had too much money and power?  Most people would naturally answer yes, the foreign country has too much money and power.  In the current realist system of international relations, any nation other than my own that has more power or money has too much power and money.  In his book, When Cultures Collide: Managing Successfully Across Cultures, Richard D. Lewis introduces his section on characteristics of different nations with, “We are normal, they are abnormal.  Why do they have to be so devious, unpunctual, unsmiling, unreliable, undisciplined, cunning, lazy, corrupt, two-faced, aloof, distant, inscrutable?  Why can’t they be more like us?” (Lewis, 164)  Lewis’ point is that citizens of every nation says these things about every other nation.  So, XX% of country A has problems with America.  It does not really matter because YY% of country B has problems with country A.  In this respect, America is no different from any other nation in the world.

 

As I prepared to study in the UK, I developed a fear of what other students and coworkers would think of me as an American.  After living, studying and working with them, I have learned that no matter what a person in the UK thinks the US, they do not apply that to an individual from the US.  Globalization has given every person in the developed world their own transnational social space.  The world has become small enough that we are all very aware of world events and affairs.  Individuals that I have been in contact in the UK make the distinction between aggregates—“America”—and individuals—“an American”.  That is an attitude that I appreciate very much.

 

 

 

 

 

 

 

Future Applications

 

My internship in Swansea will be a very significant addition to my list of experiences, both professional and academic.  I saw the workings of an IT service organization and learned what IT service entails.  An business solutions company must have expertise in different fields- technology, accounting, management, and more, depending on customer needs.

 

I also learned what it is like to live and work in a UK city.  As I prepare to enter the job market, employers will be pleased to know that I am willing and able to adapt to new and challenging environments.

 

My future academic/professional plans are uncertain today.  I am seriously considering post-graduate study in the fields such as Computer Science: Software Engineering, Computer Science: Systems, Computer Science: Education, or Management Science: Quantitative Methods.

 

I have grown a great deal as a world citizen through my study and internship in Swansea by developing my own Transnational Social Space.  On a small scale I have transcended the boundaries of nation-states and opened my eyes to life far from my home, although now Swansea, the rest of the UK and the world do not seem so far away from home at all.


The Gower Business Systems intranet web site is meant to provide employees with useful company information.  This is a walk-through of the steps I took to implement the solution.

 

I asked around the office what kinds of information team members would like available on the intranet site.  The requests included:

  • Pool car logging
  • Pool car mileage record
  • Company policies
  • Company procedures
  • Supplier list
  • Profit Statements
  • Loaned items log
  • Links to supplier websites
  • Search tool

 

The following were requested but I learned that they were already satisfied through information software used by GowerBiz such as the Pegasus system and Microsoft Exchange server.

  • Calendar
  • Customer list
  • Feedback from customers

 

I also explored the server’s shared folders and files for any information that I thought was appropriate for the site.  I began to organize different types of information and develop a hierarchy to build into the intranet site.  I ended up with five main sections which contain sub-sections.  The organization of sections and files is as follows:

1)      General Company Information (Home)

·        This section contains general information such as office location and terms

2)      Procedures

·        Scheduling, installing, training and other procedures

3)      Forms

·        Access to overtime, holiday request, and many other forms used everyday by employees

4)      Suppliers

·        Each supplier’s logo, website link, description, and links to relevant documents

5)      Price Lists

·        Access to a folder shared on the server full of catalogues and price lists for the different products provided by GowerBiz

 

 

These sections, along with the two web applications, can be accessed from any page on the site because the navigation bar on the left never changes while on the site.  The only time it is not visible is when a file link is click and the document is displayed in the entire window.  Different pages are displayed in the main frame of the browser window.

 

Some of the files I found on the server that needed to be on the intranet site were in separate directories from the other files in that section.  For those files I simply created a link on that section’s web page directly to the file located on the server.  Other files were already grouped with others of the same section in directories on the server.  For those files I created a link to the entire directory, which would display like the following screenshot of the More Forms link in the Forms section:

 

 

The header frame, which is also persistent throughout the site, has the Gower Business Systems logo which is actually a link to the GowerBiz internet website on the world wide web.  There is also a Google SafeSearch tool which works just like the actual Google search engine and filters out any inappropriate content in the results.

 

The intranet site files are located in on the GowerBiz server where development staff can easily update and append to its content.


The Pool Car Log application allows employees at any workstation at GowerBiz to access and record company car mileage and usage information.  The program is robust, meaning a mistake by the user does not produce faulty results or cause the program to crash—all input is validated.  For example, if the user chooses to take a car out that is already out or leaves a required input box blank, the appropriate prompt is displayed telling the user what they did wrong.  On the other hand, if the database is updated successfully the user is also notified.  The source code for this program is attached.  This is a walk-through of the steps I took to implement the solution.

 

I needed two different tables—one named Status to store the following:

  • License Number
  • Car Name
  • Mileage
  • Location (In or Out)

…And another table, named Log, to store:

  • Entry number
  • Date checked out
  • Car Name
  • Staff Name
  • Mileage when checked out
  • Mileage when checked in
  • Miles Driven
  • Comments after checking in

 

 

 

 

 

 

 

 

 

The user selects a car, then an action.  When the Taking Car Out action is selected, the Staff Name input box appears.  That is all the program needs at this point.  The Staff Name is input from the user but the other data needed (Entry Number, DateOut, CarName, and MileageOut) are all either generated automatically or read from the Status table values.  The program also sets the car’s location in the Status table to Out.

 

When the user selects the Returning Car action the screen layout changes as seen below.  The program finds the entry in the Log table that contains the selected Car Name and a blank MileageIn field.  It then fills in the rest of the entry information either from user entry or by calculation and updates the Status table with the new Mileage and location values.  A key feature is that if a user cannot remember the mileage of the car, they can leave that field blank and the program acts as if the car was driven zero miles. 

 


Public Class WebForm1

    Inherits System.Web.UI.Page

 

‘AUTHOR: John Van Hemert

‘DATE CREATED: Spring, 2005

‘This web application uses a database to record and log Gower Business Systems pool car usage.

 

#Region " Web Form Designer Generated Code "

#End Region

 

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim dreader As OleDb.OleDbDataReader

 

        If Not Page.IsPostBack Then

            'fill data grids

            OleDbDataAdapterStatus.Fill(DsStatus1)

            dgStatus.DataBind()

            OleDbDataAdapterLog.Fill(DsLog1)

            dgLog.DataBind()

 

            'fill car name drop down list from database

            OleDbConnection1.Open()

            dreader = cmdStatusAll.ExecuteReader()

            While dreader.Read()

                ddlCar.Items.Add(New ListItem(dreader(1).ToString()))

            End While

            dreader.Close()

            OleDbConnection1.Close()

        End If

    End Sub

 

    Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click

 

        Dim sngMileage As Single

 

        'Clear user notifications

        lblSuccess.Visible = False

        lblError.Visible = False

        lstErrors.Visible = False

        lstErrors.Items.Clear()

 

        'update the database with information in the web controls

 

        'get the selected car's location (in or out)

        Dim strLocation As String

        Dim dreader As OleDb.OleDbDataReader

 

        OleDbConnection1.Open()

        cmdFindCar.Parameters(0).Value = ddlCar.SelectedValue

        dreader = cmdFindCar.ExecuteReader()

        dreader.Read()

        strLocation = dreader(0).ToString()

        dreader.Close()

        OleDbConnection1.Close()

 

        If rblInOut.SelectedIndex = 0 Then

            'User has selected to check out a car

 

            'validate input

            If txtStaffName.Text = "" Then

                lblError.Visible = True

                lstErrors.Visible = True

                lstErrors.Items.Add("Please enter your name in the Staff Name box.")

                Exit Sub

            End If

 

            'Verify that the selected car is currently in

            If strLocation = "Out" Then

                lblError.Visible = True

                lstErrors.Visible = True

                lstErrors.Items.Add("Car is currently out.  It must be checked in before it is checked out.")

                Exit Sub

            End If

 

            'Call cmdCheckOutLog command which adds a new incomplete record to the log table

            With cmdCheckOutLog

                .Parameters(0).Value = System.DateTime.Now

                .Parameters(1).Value = ddlCar.SelectedValue

                .Parameters(2).Value = txtStaffName.Text

                .Parameters(3).Value = sngGetMileage(ddlCar.SelectedValue)

            End With

            OleDbConnection1.Open()

            cmdCheckOutLog.ExecuteNonQuery()

            OleDbConnection1.Close()

 

            'Call the cmdCheckOut command which updates the selected car's status in the status table

            'by setting In/Out to out

            With cmdCheckOut

                .Parameters(0).Value = ddlCar.SelectedValue

            End With

            OleDbConnection1.Open()

            cmdCheckOut.ExecuteNonQuery()

            OleDbConnection1.Close()

 

        ElseIf rblInOut.SelectedIndex = 1 Then

            'The user has selected to check a car in

 

            'User may not remember the mileage.

            'If they leave mileage blank the mileage will not change

            If Not txtMileage.Text = "" Then

                sngMileage = CSng(txtMileage.Text)

            Else

                sngMileage = sngGetMileage(ddlCar.SelectedValue)

            End If

 

            'Verify that the selected car is currently out

            If strLocation = "In" Then

                lblError.Visible = True

                lstErrors.Visible = True

                lstErrors.Items.Add("Car is currently in.  It must be checked out before it is checked in.")

                Exit Sub

            End If

 

            'Call the cmdCheckInLog command which completes the selected car's incomplete

            'record in the log table

            With cmdCheckInLog

                .Parameters(0).Value = sngMileage

                .Parameters(1).Value = sngMileage - sngGetMileage(ddlCar.SelectedValue)

                .Parameters(2).Value = txtComments.Text

                .Parameters(3).Value = ddlCar.SelectedValue

            End With

            OleDbConnection1.Open()

            cmdCheckInLog.ExecuteNonQuery()

            OleDbConnection1.Close()

 

            'Call the cmdCheckIn command which updates the selected car's

            'record in the status table by setting the mileage to the entered

            'mileage and In/Out to in.

            With cmdCheckIn

                .Parameters(0).Value = sngMileage

                .Parameters(1).Value = ddlCar.SelectedValue

            End With

            OleDbConnection1.Open()

            cmdCheckIn.ExecuteNonQuery()

            OleDbConnection1.Close()

 

        Else

            'The submit button has been clicked without selecting an action.

            lstErrors.Visible = True

            lstErrors.Items.Add("Select Checking In or Out")

            Exit Sub

 

        End If

 

        lblSuccess.Visible = True

 

        ClearAll()

 

        'update datagrids

        OleDbDataAdapterStatus.Fill(DsStatus1)

        dgStatus.DataBind()

 

        OleDbDataAdapterLog.Fill(DsLog1)

        dgLog.DataBind()

 

    End Sub

 

    Private Sub ClearAll()

        'Clears all textboxes

        txtMileage.Text = ""

        txtStaffName.Text = ""

        txtComments.Text = ""

    End Sub

 

    Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click

        ClearAll()

    End Sub

 

    Private Sub rblInOut_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rblInOut.SelectedIndexChanged

 

        If rblInOut.SelectedIndex = 1 Then

            'Make only mileage and comment controls visible

 

            'make mileage text box visible

            lblMileage.Visible = True

            txtMileage.Visible = True

 

            'make staff name text box invisible

            lblStaffName.Visible = False

            txtStaffName.Visible = False

 

            'make comments text box visible

            lblComments.Visible = True

            txtComments.Visible = True

 

        Else

            'Make only StaffName control visible

 

            'make staff name text box visible

            lblStaffName.Visible = True

            txtStaffName.Visible = True

 

            'make mileage text box invisible

            lblMileage.Visible = False

            txtMileage.Visible = False

 

            'make comments text box invisible

            lblComments.Visible = False

            txtComments.Visible = False

 

        End If

    End Sub

 

    Private Function sngGetMileage(ByVal strCar As String)

        'Returns the current mileage of the car strCar

        'by reading from the status table

 

        Dim dreader As OleDb.OleDbDataReader

 

        OleDbConnection1.Open()

        cmdGetMileage.Parameters(0).Value = strCar

        dreader = cmdGetMileage.ExecuteReader()

        dreader.Read()

        sngGetMileage = dreader(0)

        dreader.Close()

        OleDbConnection1.Close()

    End Function

End Class


The Loaned Items Log application allows employees at any workstation at GowerBiz to access and record information regarding hardware items temporarily loaned to customers.  This is a walk-through of the steps I took to implement the solution.

 

The information stored in the Loaned Items Log database is:

  • Entry Number
  • Date Loaned
  • Customer
  • Loaned Item
  • Loaned Item Serial Number
  • Item to be replaced
  • Replaced item’s serial number
  • Date Returned
  • Comments

As seen below, when the user selects the Loan an Item action, the necessary input boxes appear.  I added a user-friendly feature here.  The user can either type a new entry for an input box or select a value from a drop down list.  The program remembers all the values ever entered into each input box so that the user does not have to re-type repeated entry values.

 

When the user selects the Return an Item action, as in the following figure, there is only one value the user needs to select.  The program loads into the drop down list all the fields in the database referring to items that have not been returned.  When the user selects an item to return and clicks Submit, the program finds that entry in the database and marks it as returned on the current date and appends the Comments entered to any Comments entered when the item was first loaned.

 

 

This program is also robust and validates all user input.  The source code is attached.


Public Class WebForm1

    Inherits System.Web.UI.Page

 

‘AUTHOR: John Van Hemert

‘DATE CREATED: Spring, 2005

‘This web application uses a database to log hardware loans to Gower Business Systems clients.

 

#Region " Web Form Designer Generated Code "

#End Region

 

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

        'on the first loading of the page, put values

        'from existing database into drop down lists

        If Not Page.IsPostBack Then

            Load_DDLs()

        End If

 

    End Sub

 

    Private Sub Load_DDLs()

        'fills the dataset and datagrid

        'clears and then loads data from existing database into drop down lists

 

        Dim dreader As OleDb.OleDbDataReader

 

        OleDbDataAdapter1.Fill(DsLoanedItems1)

        dgLoanedItems.DataBind()

 

        Clear_Added_DDL_Items(ddlCustomers)

        Clear_Added_DDL_Items(ddlLoanedItems)

        Clear_Added_DDL_Items(ddlLoanedItemSerials)

        Clear_Added_DDL_Items(ddlReplacings)

        Clear_Added_DDL_Items(ddlReplaceeSerials)

        Clear_Added_DDL_Items(ddlReturnItem)

 

        'load past information into drop down lists

        OleDbConnection1.Open()

        dreader = cmdLoanedItemsAll.ExecuteReader()

        While dreader.Read()

            ddlCustomers.Items.Add(dreader(2).ToString())

            ddlLoanedItems.Items.Add(dreader(3).ToString())

            ddlLoanedItemSerials.Items.Add(dreader(4).ToString())

            ddlReplacings.Items.Add(dreader(5).ToString())

            ddlReplaceeSerials.Items.Add(dreader(6).ToString())

        End While

        dreader.Close()

        OleDbConnection1.Close()

 

        'load items currently on loan into drop down list

        OleDbConnection1.Open()

        dreader = cmdItemsOnLoan.ExecuteReader()

        While dreader.Read()

            ddlReturnItem.Items.Add("Entry: " & dreader(0).ToString() & ". Loaned on: " & dreader(1).ToString() & ". To: " & dreader(2).ToString() & ". Item: " & dreader(3).ToString() & ", " & dreader(4).ToString() & ". Replacing: " & dreader(5).ToString() & ", " & dreader(6).ToString())

        End While

        dreader.Close()

        OleDbConnection1.Close()

    End Sub

 

    Private Sub Clear_Added_DDL_Items(ByRef DDL As System.Web.UI.WebControls.DropDownList)

        'Clears all the items in the drop down list (DDL) and restores the

        'first item which is the "Add a new ____" item.

        'This is part of making the web control drop down lists behave like

        'the editable drop down lists of vb.net windows application controls.

 

        Dim strBase As String

 

        strBase = DDL.Items.Item(0).Text

        DDL.Items.Clear()

        DDL.Items.Add(strBase)

    End Sub

 

    Private Sub rblAction_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rblAction.SelectedIndexChanged

        If rblAction.SelectedIndex = 0 Then

            'Make the controls for loaning out an item visible

            'and the controls for returning a loaned item invisible.

            lblCustomer.Visible = True

            lblLoanedItem.Visible = True

            lblReplacing.Visible = True

            lblLoanedSerial.Visible = True

            ddlCustomers.Visible = True

            ddlLoanedItems.Visible = True

            txtLoanedSerial.Visible = True

            ddlReplacings.Visible = True

            txtCustomer.Visible = True

            txtLoanedItem.Visible = True

            ddlLoanedItemSerials.Visible = True

            txtReplacing.Visible = True

            lblReplaceeSerial.Visible = True

            txtReplaceeSerial.Visible = True

            ddlReplaceeSerials.Visible = True

            ddlReturnItem.Visible = False

            lblComments.Visible = True

            txtComments.Visible = True

        ElseIf rblAction.SelectedIndex = 1 Then

            'Make the controls for returning a loaned item out an item visible

            'and the controls for loaning an item invisible.

            lblCustomer.Visible = False

            lblLoanedItem.Visible = False

            lblReplacing.Visible = False

            lblLoanedSerial.Visible = False

            ddlCustomers.Visible = False

            ddlLoanedItems.Visible = False

            txtLoanedSerial.Visible = False

            ddlReplacings.Visible = False

            txtCustomer.Visible = False

            txtLoanedItem.Visible = False

            ddlLoanedItemSerials.Visible = False

            txtReplacing.Visible = False

            lblReplaceeSerial.Visible = False

            txtReplaceeSerial.Visible = False

            ddlReplaceeSerials.Visible = False

            ddlReturnItem.Visible = True

            lblComments.Visible = True

            txtComments.Visible = True

        End If

    End Sub

 

    Private Sub ddlCustomers_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlCustomers.SelectedIndexChanged

        'Uses a text box and a drop down list to make the web control drop down list behave like

        'the editable drop down lists of vb.net windows application controls.

        If ddlCustomers.SelectedIndex = 0 Then

            txtCustomer.Text = ""

        Else

            txtCustomer.Text = ddlCustomers.SelectedValue

        End If

    End Sub

 

    Private Sub ddlLoanedItems_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlLoanedItems.SelectedIndexChanged

        'Uses a text box and a drop down list to make the web control drop down list behave like

        'the editable drop down lists of vb.net windows application controls.

        If ddlLoanedItems.SelectedIndex = 0 Then

            txtLoanedItem.Text = ""

        Else

            txtLoanedItem.Text = ddlLoanedItems.SelectedValue

        End If

    End Sub

 

    Private Sub ddlLoanedItemSerials_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlLoanedItemSerials.SelectedIndexChanged

        'Uses a text box and a drop down list to make the web control drop down list behave like

        'the editable drop down lists of vb.net windows application controls.

        If ddlLoanedItemSerials.SelectedIndex = 0 Then

            txtLoanedSerial.Text = ""

        Else

            txtLoanedSerial.Text = ddlLoanedItemSerials.SelectedValue

        End If

    End Sub

 

    Private Sub ddlReplacings_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlReplacings.SelectedIndexChanged

        'Uses a text box and a drop down list to make the web control drop down list behave like

        'the editable drop down lists of vb.net windows application controls.

        If ddlReplacings.SelectedIndex = 0 Then

            txtReplacing.Text = ""

        Else

            txtReplacing.Text = ddlReplacings.SelectedValue

        End If

    End Sub

 

    Private Sub ddlReplaceeSerials_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlReplaceeSerials.SelectedIndexChanged

        'Uses a text box and a drop down list to make the web control drop down list behave like

        'the editable drop down lists of vb.net windows application controls.

        If ddlReplaceeSerials.SelectedIndex = 0 Then

            txtReplaceeSerial.Text = ""

        Else

            txtReplaceeSerial.Text = ddlReplaceeSerials.SelectedValue

        End If

    End Sub

 

    Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click

        'Updates the database according to which action is selected

 

        'If the user has selected loaning an item

        If rblAction.SelectedIndex = 0 Then

 

            'Call the new loan oledb command.

            With cmdNewLoan

                .Parameters(0).Value = System.DateTime.Now

                .Parameters(1).Value = txtCustomer.Text

                .Parameters(2).Value = txtLoanedItem.Text

                .Parameters(3).Value = txtLoanedSerial.Text

                .Parameters(4).Value = txtReplacing.Text

                .Parameters(5).Value = txtReplaceeSerial.Text

                .Parameters(6).Value = txtComments.Text

            End With

            OleDbConnection1.Open()

            cmdNewLoan.ExecuteNonQuery()

            OleDbConnection1.Close()

 

            lblSuccess.Visible = True

 

            Clear_All()

 

        ElseIf rblAction.SelectedIndex = 1 Then

            'The user has selected Return a Loaned Item

 

            Dim intEntryNumber As Integer

            Dim strOldComments As String

 

            If ddlReturnItem.SelectedIndex = 0 Then

                'If an item has not been selected, ask user to do so.

                'Do not call the ReturnItem oledb command.

                lblSelectReturnItem.Visible = True

            Else

                'Get the Entry number (which is the primary key) of the selected entry.

                intEntryNumber = intGetEntryNumber(ddlReturnItem.SelectedValue)

 

                'Get the comments already entered in the selected entry

                'so that any new comments can be appended.

                strOldComments = strGetOldComments(intEntryNumber)

 

                'Call the ReturnItem oledb command

                With cmdReturnItem

                    .Parameters(0).Value = System.DateTime.Now

                    .Parameters(1).Value = strOldComments & "; " & txtComments.Text

                    .Parameters(2).Value = intEntryNumber

                End With

                OleDbConnection1.Open()

                cmdReturnItem.ExecuteNonQuery()

                OleDbConnection1.Close()

 

                lblSuccess.Visible = True

 

                Clear_All()

 

            End If

        End If

    End Sub

 

    Private Function intGetEntryNumber(ByVal strRecord As String) As Integer

        Dim result As String

        Dim index As Integer = 0

 

        'skip characters before entry number begins

        Do Until Char.IsNumber(strRecord, index)

            index = index + 1

        Loop

 

        'read digits into number until non-digit is found

        Do While Char.IsNumber(strRecord, index)

            result = result & strRecord.Chars(index)

            index = index + 1

        Loop

 

        Return CInt(result)

 

    End Function

 

    Private Function strGetOldComments(ByVal intEntryNumber As Integer) As String

        'Returns any comments entered when the item was loaned

 

        Dim result As String

        Dim CommentReader As OleDb.OleDbDataReader

 

        OleDbConnection1.Open()

        cmdGetOldComments.Parameters(0).Value = intEntryNumber

        CommentReader = cmdGetOldComments.ExecuteReader()

        CommentReader.Read()

        result = CommentReader(0)

        CommentReader.Close()

        OleDbConnection1.Close()

        Return result

    End Function

 

    Private Sub Clear_All()

        'Reloads all drop down lists.

        'Clears all text boxes.

        'Updates the datagrid

 

        Load_DDLs()

 

        txtLoanedSerial.Text = ""

        txtCustomer.Text = ""

        txtLoanedItem.Text = ""

        txtReplacing.Text = ""

        txtReplaceeSerial.Text = ""

        txtComments.Text = ""

    End Sub

 

    Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click

        lblSuccess.Visible = False

        lblSelectReturnItem.Visible = False

        Clear_All()

    End Sub

End Class


WORKS CITED

 

GetNetWise.org.  Guide to Internet Terms: A Glossary.  Online.  25/2/2005. 

http://www.getnetwise.org/glossary.php.

 

Hill, Charles W. L.  Jones, Gareth R.  Strategic Management, 6th ed.  2004.  Houghton

Mifflin Company.

 

Lewis, Richard D.  When Cultures Collide: Managing Successfully Across Cultures, 2nd

ed.  1999.  Nicholas Brealey Publishing Limited.

 

Pries, Ludger.  New Transnational Social Spaces: International migration and transational

companies in the early twenty-first century.  2001.  Routledge.  London, UK.