软件开发环境与工具实验三报告

时间:2024.4.13

一.验题目:

     完整单据的设计

二.实验目的:

     通过本次实验,了解单据的类型及重要性,掌握两种单据的设计及制作方法,特别是单据中的编码以及状态的控制,为课程设计做准备。

三.实验要求:

    实验功能要求:

1、实现单据的新增、修改、删除、浏览、审核、弃审等功能。

2、对单据的编码及状态要进行控制。

3、用.NET分层架构设计。

4、单据的具体内容自定。

四.实验内容:

1.单据:

单据是办理货物的交付和货款的支付的一种依据。单据可以表明出口商是否履约,履约的程度。进口商品以单据作为提取货物的货权凭证,有了单据,就表明有了货物

2.单据类型:

     1).带明细的表单;

     2).不带明细的表单;

3.status控件:

一个Status控件通过了一个窗口,通常都在应用程序的底部,应用程序可以在其中显示各种状态数据。一个Status控件最多可以分成16个Panel对象,都保存在一个Panels集合中。

4.数据库的设计:

1).建立名为BD的数据库;

2).数据库中的表的建立:

   1>.用户表(UserInfo):

  

   2>.单据表(BD):  

   3>.单据格式表(CodeFormat):  

5.实验代码:

1>.数据库连接核心代码:

1.1:联机式代码:

Public Function getall2dr(ByVal strWhere As String) As SqlClient.SqlDataReader

        Dim conn As New SqlClient.SqlConnection

        conn.ConnectionString = Mycommon.clsConn.getstrConn

        Dim cmd As New SqlClient.SqlCommand

        cmd.CommandType = CommandType.Text

        cmd.Connection = conn

        If strWhere = "" Then

            cmd.CommandText = "select * from UserInfo"

        Else

            cmd.CommandText = "select * from UserInfo where " & strWhere

        End If

        Dim dr As SqlClient.SqlDataReader

        conn.Open()

        dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)

        Return dr

    End Function

1.2:断开式代码:

Public Function getall2ds(ByVal strWhere As String) As DataSet

        Dim conn As New SqlClient.SqlConnection

        conn.ConnectionString = Mycommon.clsConn.getstrConn

        Dim cmd As New SqlClient.SqlCommand

        cmd.CommandType = CommandType.Text

        cmd.Connection = conn

        If strWhere = "" Then

            cmd.CommandText = "select * from UserInfo"

        Else

            cmd.CommandText = "select * from UserInfo where " & strWhere

        End If

        Dim adp As New SqlClient.SqlDataAdapter

        adp.SelectCommand = cmd

        Dim ds As New DataSet

        adp.Fill(ds, "temp")

        Return ds

    End Function

2>.用户登录核心代码:

Private Sub LOGIN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LOGIN.Click

        Dim dr As SqlClient.SqlDataReader

        dr = o.getall2dr(" UserID='" & Me.user.Text & "'")

        If dr.Read Then

            If dr.Item("Psw") = Me.psw.Text Then

MessageBox.Show("恭喜您登录成功!", "系统提示", MessageBoxButtons.OK,

MessageBoxIcon.Information)

                BD.Show()

                Me.Close()

            Else

MessageBox.Show("密码错误!", "系统提示", MessageBoxButtons.RetryCancel,

MessageBoxIcon.Information)

            End If

        Else

MessageBox.Show("该用户不存在", "系统提示", MessageBoxButtons.OKCancel,

MessageBoxIcon.Information)

        End If

3>.主要功能核心代码:

1).新增:

Private Sub New_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles New.Click

        Me.action = "new"

        Call ClearForm()

End Sub

Sub ClearForm()

        Me.DJBM.Text = Mycommon.clsCodeFormat.getNewCode("合同编码")

      ‘找到类型为合同的表单

        Me.ZDRQ.Text = Format(Now, "yyyy-MM-dd")’制单日期为系统现在时间

        Me.KHMC.Text = ""

        Me.ZDR.Text = user  '制单人为当前登录人

        Me.SHR.Text = ""

        Call btnState(1)

End Sub

2).保存:

Private Sub Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Save.Click

        Dim sr As String'将单据编码,制单日期等传参

        o.dDJBM = Me.DJBM.Text

        o.dZDRQ = Me.ZDRQ.Text

        o.dZDR = Me.ZDR.Text

        o.dKHMC = Me.KHMC.Text

        If action = "new" Then

        sr = o.save'调用保存函数

Public Function save() As String

        strSQL = "insert into BD(DJBM,ZDRQ,KHMC,ZDR) values ('" & dDJBM & "','"

& dZDRQ & "','" & dKHMC & "','" & dZDR & "')"

            Try           

Mycommon.SqlHelper.ExecuteNonQuery(Mycommon.clsConn.

getstrConn,CommandType.Text, strSQL)

                Return "1"

            Catch ex As Exception

                Return "-1" & ex.Message

            End Try

        End Function

3).修改:

        Dim sr As String

        o.dKHMC = Me.KHMC.Text’将修改的客户名称传参

        o.dDJBM = Me.DJBM.Text‘在系统查找修改表单时按单据编码来找

        sr = o.edit'调用修改函数

Public Function edit() As String’修改函数

     strSQL = " update BD set KHMC='" & dKHMC & "'  where DJBM='" & dDJBM & "' "

            Try

           Mycommon.SqlHelper.ExecuteNonQuery

(Mycommon.clsConn.getstrConn, CommandType.Text, strSQL)

                Return "1"

            Catch ex As Exception

                Return "-1" & ex.Message

            End Try

        End Function

4).删除:

        Dim sr As String

        o.dDJBM = Me.DJBM.Text‘将删除的单据编码作为参数传给删除函数

        sr = o.del'调用删除函数

 Public Function del() As String'删除函数

       strSQL = "delete from BD where DJBM='" & dDJBM & "'"

            Try           

       Mycommon.SqlHelper.ExecuteNonQuery

       (Mycommon.clsConn.getstrConn, CommandType.Text,strSQL)

                Return "1"

            Catch ex As Exception

                Return "-1" & ex.Message

            End Try

        End Function

 5).浏览:

 Private Sub View_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles View.Click

        gxgrid()'调用更新函数

 End Sub

Sub gxgrid()'更新数据库和gridview中数据

        Me.DataGridView1.DataSource =o.getall2ds("").Tables(0).DefaultView

End Sub

6).审核:   

Private Sub SH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles SH.Click

        Dim sr As String

        sr = o.search'先检测待审核的表单是否为未审核表,如果是则进行审核

        If sr <> "" Then

            Me.SHR.Text = user

        Else

            Me.ZDR.Text = sr

            Me.SHR.Text = user

        End If

End Sub

Public Function search() As String‘查找函数

        strSQL = " select ZDR from BD whereDJBM='" & dDJBM & "' "

            Try             

        Mycommon.SqlHelper.ExecuteNonQuery

(Mycommon.clsConn.getstrConn, CommandType.Text,strSQL)

                Return cmd.ExecuteScalar

            Catch ex As Exception

                Return "-1" & ex.Message

            End Try

        End Function

7).对表单的状态的控制核心代码:

 Sub btnState(ByVal paction As Integer)

        If paction = 1 Then

            Me.New.Enabled = False’新建按钮

            Me.Del.Enabled = False's删除按钮

            Me.View.Enabled = False'显示按钮

            Me.Edit.Enabled = True'修改按钮

            Me.SH.Enabled = False'审核按钮

            Me.Cancel.Enabled = True'取消按钮

            Me.Save.Enabled = True'保存按钮

        Else

            Me.New.Enabled = True

            Me.Del.Enabled = True

            Me.Edit.Enabled = True

            Me.View.Enabled = True

            Me.Save.Enabled = False

            Me.Cancel.Enabled = False

            If dv.Count = 0 Or dv.Count = 1 Then

                Me.SHY.Enabled = False'首页

                Me.SYY.Enabled = False"上一页

                Me.XYY.Enabled = False'下一页

                Me.MY.Enabled = False'末页

            Else

                If pIndex = 0 Then

                    Me.SHY.Enabled = False

                    Me.SYY.Enabled = False

                    Me.XYY.Enabled = True

                    Me.MY.Enabled = True

                ElseIf pIndex = dv.Count - 1

            Then

                    Me.SHY.Enabled = True

                    Me.SYY.Enabled = True

                    Me.XYY.Enabled = False

                    Me.Edit.Enabled = False

                Else

                    Me.SHY.Enabled = True

                    Me.SYY.Enabled = True

                    Me.XYY.Enabled = True

                    Me.MY.Enabled = True

                End If

            End If

        End If

End Sub

8).翻页控制核心代码:

Private Sub SHY_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs)

Handles SHY.Click

        If dv.Count > 0 Then

            pIndex = 0

            Call showCurrentRow(pIndex)

        End If

    End Sub

Private Sub MY_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles MY.Click

        If dv.Count > 0 Then

            pIndex = dv.Count - 1

            Call showCurrentRow(pIndex)

        End If

    End Sub

 Private Sub SYY_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SYY.Click

        If pIndex > 0 Then

            pIndex -= 1

            Call showCurrentRow(pIndex)

        End If

    End Sub

Private Sub XYY_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles XYY.Click

        If pIndex < dv.Count - 1 Then

            pIndex += 1

            Call showCurrentRow(pIndex)

        End If

    End Sub

9).表单格式代码:

 While dr.Read

        Select Case dr!BMLX

                Case "文本"

                    newCode &= dr!BMZ

                Case "年"

               If dr!BMZ <> Format(Now, "yyyy") Then

                        newCode &= Format(Now,"yyyy")

                        LSH = "X"

                        update(dr!id, Format(Now, "yyyy"))

                        '更新

                    Else

                        newCode &= dr!BMZ

                    End If

                Case "月"

                    If dr!BMZ <> Format(Now,"MM") Then

                        newCode &= Format(Now,"MM")

                        LSH = "X"

                        update(dr!id, Format(Now, "MM"))

                        '更新

                    Else

                        newCode &= dr!BMZ

                    End If

                Case "日"

                    If dr!BMZ <> Format(Now,"dd") Then

                        newCode &= Format(Now,"dd")

                        update(dr!id, Format(Now, "dd"))

                        LSH = "X"

                        '更新

                    Else

                        newCode &= dr!BMZ

                    End If

                Case "流水号"

                    If LSH = "X" Then

                        newLSH = "0001"

                    Else

                        newLSH = Format(CType(dr!BMZ, Decimal) + 1, "0000")

                    End If

                    newCode &= newLSH

                    update(dr!id, newLSH)

                    '更新流水号

            End Select

        End While

10).vb.net的三层架构:

六.执行结果;

1.登录界面如下:

2.表单设计:

3.新增:

4.删除:

5.更新:

6.审核:

七.实验总结:

1.通过这次表单的制作,对系统的开发有了一定的认识;系统开发需要缜密的分析;

2.在制作表单时,单据编码是一个难点;也花费了很长的时间的;

在添加单据编码时,应该参照单据编码类型中的格式进行添加。

3.在制作表单时,对表单上的某些按钮的状态进行控制,应该符合实际的情况,

4.在进行新增和删除时,由于sql语句的问题经常会影响到代码的执行,应该对sql语句进行熟练。

5.在实验室经常由于英文和中文状态的括号问题,经常会花很多的时间修改代码。浪费了很多时间,以后应该避免。

6.对单据的设计有了一定的了解,熟悉,以后应该加以熟练。

更多相关推荐:
软件开发环境与工具实验报告-计算机0801

《软件开发环境与工具》实验报告专业:计算机科学与技术班级:08-01姓名:杨**学号:***20XX年4月19日实验一CASE工具PowerDesigner的使用一、实验目的:安装PowerDesigner,并…

软件开发环境与工具实验报告

课程名称实验项目实验地点专业班级学生姓名指导教师本科实验报告软件开发环境与工具软件开发环境与工具实验报告逸夫楼402学号闫伟张辉20xx年11月13日

软件开发环境与工具实验报告 -2

课程名称实验项目本科实验报告软件开发环境与工具软件开发工具及C程序20xx年11月20日

软件开发环境与工具实验报告

学号北京工商大学计算机学院实验报告专业软件工程班级学号姓名20xx20xx学年第2学期20xx年3月至20xx年7月班级学号同组同学学号无姓名注实验内容及步骤项目的内容如果较多可以加附页

软件开发环境与工具实验报告

课程名称软件开发环境与工具实验项目六个实验实验地点逸夫楼402专业班级学号学生姓名指导教师赵荣香20xx年11月19日1实验一CASE工具PowerDesiner的使用一实验目的和要求实验目的安装PowerDe...

软件开发环境与工具实验报告

课程名称实验项目实验地点专业班级学生姓名指导教师本科实验报告软件开发环境与工具学号吕进来20xx年1月3日

软件开发环境与工具实验报告

课程名称实验项目实验地点专业班级学生姓名指导教师本科实验报告软件开发环境与工具CASE工具PowerDesigner的使用学号20xx年10月

软件开发环境与工具实验1

软件开发环境与工具实验1,内容附图。

软件开发工具与环境-实验报告题目

软件开发工具与环境实验报告题目以学生课程和成绩三个客观体为基本原型可加入其他相关客观体为蚌埠学院设计学生成绩管理系统而完成如下表所列实验要求1实验报告封面填写完整2按照上表顺序依次完成实验报告3步骤可以是文字也...

《软件开发环境与工具》——实验指导书 (20xx版)

软件开发环境与工具实验指导书计算机科学与技术与学院计算机科学系二一三年1目录实验一CASE工具PowerDesiner的使用3实验二熟悉SQL语言5实验三利用Axure制作网页原型7实验四利用VisualStu...

程序设计工具与环境实验报告

第一章Net概述一填空1C语言不允许从而避免了类型定义的混乱2在状态下C语言不能使用指针而是使用委托Delegate来模拟指针的功能3代码编辑器窗口主要分为3个分区包括指示器边距和选定内容边距4在VisualS...

《软件开发基础》实验报告【模板】

实验实验名称实验性质实验地点软件学院软件测试实验室实验日期20xx1013一实验目的二实验要求三实验的环境指硬件和软件环境1硬件环境普遍配置的PC机器2软件环环境操作系统为WindowsXP编译系统为Micro...

软件开发环境与工具实验报告(18篇)