必赢网址-必赢437-www437com

热门关键词: 必赢网址,必赢437,www437com

某机械设备CAD系统的构造与设计,中单引号的两

MS-SQL Server 中单引号的两种处理方法

   和数据库打交道要频繁地用到 SQL 语句,除非你是全部用控件绑定的方式,但采用控件绑定的方式存在着灵活性差、效率低、功能弱等等缺点。因此,大多数的程序员极少或较少用这种绑定的方式。而采用非绑定方式时许多程序员大都忽略了对单引号的特殊处理,一旦SQL语句的查询条件的变量有单引号出现,数据库引擎就会报错指出SQL语法不对,本人发现有两种方法可以解决和处理这种单引号的问题(以VB为例子)。

  ---- 方法一:利用转义字符处理SQL语句。下面的函数可以在执行SQL语句前调用,执行处理后的结果即可产生正确的结果。

  代码如下:

  Function ProcessStr(str As String)

  Dim pos As Integer

  Dim stedest As String

  pos = InStr(str, “'“)

  While pos 〉0

  str = Mid(str, 1, pos) & “'“ & Mid(str, pos + 1)

  pos = InStr(pos + 2, str, “'“)

  Wend

  ProcessStr = str

  End Function

  ---- 其中str参数是你的SQL字符串。函数一旦发现字符串中有单引号出现,就在前面补上一个单引号。

  ---- 方法二:利用数据对象中的参数。可以利用ADODB.COMMAND对象,把含有单引号的字符串传递给COMMAND,然后执行查询等操作即可。

  ---- 以上两种方法比较,方法一增加了系统处理时间,方法二简洁、高效,如果采用存储过程,然后再传递参数给存储过程,存储过程是预编译的,这样系统的效率更高。

  ---- 下面就举例子加以说明。

  ---- 新建一个项目,项目中有一个窗体(Form1),两个命令按钮,一个MSFlexGrid,名称分别为:Command1,Command2,MSFlexGrid1,一个COMBOX(COMBO1),它的内容预先设定为“Paolo''f“、“Paolo'f“。Command1演示方法一,Command2演示方法二,MSFlexGrid1存储方法二查询(SELECT)结果。对于其他的SQL操作(INSERT、DELTER、UPDATAE)方法极为类似,笔者就不再赘述。例子中用到SQL SERVER中的PUBS数据库中的EMPLOYEE表,同时可以用SQL语法把其中两条记录中的FNAME改为“Paolo''f“、“Paolo'f“。 SQL语法如下:

  update employee set fname=“ Paolo''''f“

  where emp_id='PMA42628M'

  update employee set fname=“ Paolo''f“

  where emp_id='PMA42628M'

  ---- 程序如下:

  ---- 首先把前面的函数加入。

  ---- 在窗体的通用中声明如下变量:

  Dim cnn1 As ADODB.Connection '连接

  Dim mycommand As ADODB.Command '命令

  Dim rstByQuery As ADODB.Recordset '结果集

  Dim strCnn As String '连接字符串

  Private Sub Form_Load()

  Set cnn1 = New ADODB.Connection '生成一个连接

  strCnn = “driver={SQL Server};“ & _

  “server=ZYX_pc;uid=sa;pwd=PCDC;database=pubs“ '

  没有系统数据源使用连接字符串

  'strCnn = “DSN=mydsn;UID=sa;PWD=;“

  'DATABASE=pubs;Driver={SQL Server};SERVER=gzl_pc“ '

  如果系统数据源MYDSN指向PUBS数据库,也可以这样用

  cnn1.Open strCnn, , , 0 '打开连接

  End Sub

  Private Sub Command1_Click() '演示字符处理

  Dim i As Integer

  Dim j As Integer

  Set parm = New ADODB.Parameter

  Set mycommand = New ADODB.Command

  Dim str As String

  str = Combo1.Text

  str = ProcessStr (str)

  mycommand.ActiveConnection = cnn1 '

  指定该command 的当前活动连接

  mycommand.CommandText = “ select * from

  employee where fname = '“ & str & “'“

  mycommand.CommandType = adCmdText '表明command 类型

  Set rstByQuery = New ADODB.Recordset

  Set rstByQuery = mycommand.Execute()

  i = 0

  Do While Not rstByQuery.EOF

  i = i + 1 ' i 中保存记录个数

  rstByQuery.MoveNext

  Loop

  MSFlexGrid1.Rows = i + 1 '动态设置MSFlexGrid的行和列

  MSFlexGrid1.Cols = rstByQuery.Fields.count + 1

  MSFlexGrid1.Row = 0

  For i = 0 To rstByQuery.Fields.count - 1

  MSFlexGrid1.Col = i + 1

  MSFlexGrid1.Text = rstByQuery.Fields.Item(i).Name

  Next '设置第一行的标题,用域名填充

  i = 0

  'Set rstByQuery = mycommand.Execute()

  rstByQuery.Requery

  Do While Not rstByQuery.EOF

  i = i + 1

  MSFlexGrid1.Row = i '确定行

  For j = 0 To rstByQuery.Fields.count - 1

  MSFlexGrid1.Col = j + 1

  MSFlexGrid1.Text = rstByQuery(j) '添充所有的列

  Next

  rstByQuery.MoveNext

  Loop '这个循环用来填充MSFlexGrid的内容

  End Sub

  Private Sub Command2_Click()'参数方法

  Dim i As Integer

  Dim j As Integer

  Set parm = New ADODB.Parameter

  Set mycommand = New ADODB.Command

  ' parm_jobid.Name = “name1“ this line can be ommited

  parm.Type = adChar '参数类型

  parm.Size = 10 '参数长度

  parm.Direction = adParamin put '参数方向,输入或输出

  parm.Value = Combo1.Text '参数的值

  mycommand.Parameters.Append parm '加入参数

  mycommand.ActiveConnection = cnn1 '

  指定该command 的当前活动连接

  mycommand.CommandText = “ select *

  from employee where fname =? “

  mycommand.CommandType = adCmdText '表明command 类型

  Set rstByQuery = New ADODB.Recordset

  Set rstByQuery = mycommand.Execute()

  i = 0

  Do While Not rstByQuery.EOF

  i = i + 1 ' i 中保存记录个数

  rstByQuery.MoveNext

  Loop

  MSFlexGrid1.Rows = i + 1 '动态设置MSFlexGrid的行和列

  MSFlexGrid1.Cols = rstByQuery.Fields.count + 1

  MSFlexGrid1.Row = 0

  For i = 0 To rstByQuery.Fields.count - 1

  MSFlexGrid1.Col = i + 1

  MSFlexGrid1.Text = rstByQuery.Fields.Item(i).Name

  Next '设置第一行的标题,用域名填充

  i = 0

  rstByQuery.Requery

  Do While Not rstByQuery.EOF

  i = i + 1

  MSFlexGrid1.Row = i '确定行

  For j = 0 To rstByQuery.Fields.count - 1

  MSFlexGrid1.Col = j + 1

  MSFlexGrid1.Text = rstByQuery(j) '添充所有的列

  Next

  rstByQuery.MoveNext

  Loop '这个循环用来填充MSFlexGrid的内容

  End Sub

  ---- 查询部分可以用存储过程以提高处理效率,减低网络流量。

  ---- 本程序在NT WORKSTATION 4.0 SP4、SQL SERVER 7.0 上调试通过

Server 中单引号的两种处理方法 和数据库打交道要频繁地用到 SQL 语句,除非你是全部用控件绑定的方式,但采用控件绑定的方式存在...

1.数据库设计部分内容

4.1系统开发目标

(1)系统功能分析【袋装咖啡网上销售系统】

该咖啡进销系统的使用主要是客户和销售管理员。客户可以通过系统浏览咖啡信息,查询咖啡的余量,产生订单。销售管理员通过系统可以对客户信息、供应商信息、咖啡信息以及销售的信息进行管理。

前台客户功能:1)咖啡信息模块:咖啡信息的浏览,查询搜索等

                         2)顾客信息管理模块:处理顾客信息的注册、登录

                          3)订单模块:查询、修改(订单可以分成两个部分,一部分记录地址、邮编                               等信息,另一部分记录咖啡数量、咖啡编号等信息)

后台管理员功能:1)供应商管理:对供应商信息进行增加、删除、修改、查询

                            2)咖啡数据管理:插入、删除、修改

  建立一个集设计、选型、建模、出图为一体的某机械设备CAD系统。最终实现通过修改某机械设备的主要参数自动生成一套新的某机械设备三维实体模型和工程图的目的。 

(2)将实体转换为关系模式

        1)供应商(供应商编号,供应商名称,供应商地址,供应商联系方式)

        2)咖啡(咖啡编号,咖啡名称,咖啡价格)

        3)供应单(供应商编号,咖啡编号,供应量)

        4)进货单(进货单编号,咖啡编号,供应商编号,咖啡数量,进货单价,进货日期)

        5)入库单(入库单编号,咖啡编号,咖啡数量,入库日期)

       6)顾客(顾客编号,顾客名字,顾客联系方式)

       7)销售单(销售单号,咖啡编号,顾客编号,咖啡数量,销售金额,销售日期)

       8)出库单(出库单号,咖啡编号,咖啡数量,出库日期)

       9)库存单(咖啡编号,咖啡名称,咖啡数量)

      10)管理员表(管理员编号、密码、管理员名字、联系方式)

4.2 系统开发环境与工具

2.vb语言设计的前端界面

硬件环境 :图形工作站,内存4G,要求配有图形加速卡,显示1024*768,USB接口、光驱和其他外部设备

1.欢迎页面:提供三种身份

图片 1

软件环境:操作系统为Windows XP/Win2000/NT 等。主流三维实体造型软件SolidWorks2011或更高版本,面向对象的Visual Basic6.0作为二次开发工具,Access 提供后台数据支持。

2.游客身份进入:进入咖啡数据界面。

(若已有顾客账号可直接下单,若没有可以跳到顾客登录注册界面进行注册。)

图片 2

图片 3

图片 4

若已有顾客账号可直接下单,若没有可以跳到顾客登录注册界面进行注册。

4.3 系统架构及系统工作流程

3.顾客身份进入(登录成功后跟以游客身份进入所看到的一样)

图片 5

图片 6

图片 7

4.3.1 系统架构

4.管理员身份进入

图片 8

图片 9

图片 10

图片 11

查询销售单

图片 12

销售单查询结果

图片 13

输入编号时,会查询销售单添加咖啡名字后,可以插入出库单做出库处理

图片 14

                过渡界面

3.【重点】SQL SERVER数据库和vb语言设计的前端如何连接

1.打开vb界面——>工程——>部件——>勾选Microsoft ADO Data Control 6.0——>应用——>点击左侧窗口栏右边列倒数第二个图标——>将图标放到第一个窗口的某个位置——>右击——>ADODC属性页——>使用连接字符串(将连接字符串复制好,用于各窗口与数据库进行代码连接)——>生成——>应用

图片 15

图片 16

图片 17

                主界面

4.前端界面实现代码

图片 18

总体设计参数                    总体布置

Form1:

Private Sub Command1_Click()

Form5.Show

End Sub

Private Sub Command2_Click()

Form2.Show

End Sub

Private Sub Command3_Click()

Form3.Show

End Sub

Private Sub Form_Load()

End Sub

        结构件        运行机构        起升机构        标准件  通用件

Form2:

Private Sub Command2_Click()

Dim SQL As String

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

SQL = "Provider=********;Password=********;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

If Trim(Text1.Text) = "" Then

MsgBox "顾客编号不能为空,请重新输入!", vbOKOnly + vbExclamation, "错误"

Text1.SetFocus

Else

SQL = "select * from Customer  where CustomerNo ='" & Text1.Text & "'"

rs.Open SQL, cn, adOpenKeyset, adLockPessimistic

If rs.EOF Then

MsgBox "顾客编号不存在,请重新输入!", vbOKOnly + vbExclamation, "错误"

Text1 = ""

Text1.SetFocus

Else

If Trim(rs.Fields(1)) = Trim(Text2) Then

MsgBox "登录成功!"

rs.Close

Unload Me

Form5.Show

Else

MsgBox "密码错误,请重新输入!", vbOKOnly + vbExclamation, "错误"

End If

End If

End If

End Sub

Private Sub Command1_Click()

Dim SQL As String

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

SQL = "Provider=*********;Password=********;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

If Trim(Text1.Text) = "" Then

MsgBox "顾客编号不能为空,请重新输入!", vbOKOnly + vbExclamation, "错误"

Else

Text1.Text = Trim(Text1.Text)

SQL = "select  CustomerNo  from  Customer  where CustomerNo = '" & Text1.Text & "'"

rs.Open SQL, cn

If rs.EOF = False Then

MsgBox "用户名已存在,请重新输入!", vbOKOnly + vbExclamation, "错误"

Else

rs.Close

Dim str1 As String

Set cn = New ADODB.Connection

Set rs = New ADODB.Recordset

SQL = "Provider=**********;Password=*********;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

SQL = "select * from Customer  where CustomerNo = '" & Trim(Text1.Text) & "'"

rs.Open SQL, cn, 3, 2

If Text1.Text = "" Or Text2.Text = "" Then

MsgBox "输入的所有信息都不能为空!"

Else

cn.Execute ("insert into Customer (CustomerNo,CustomerName,CustomerTel) values('" + Text1.Text + " ','" + Text2.Text + " ', '" + Text3.Text + " ') ")

MsgBox "注册成功!"

End If

End If

End If

End Sub

Private Sub Form_Load()

End Sub

      桥架 小车架  设计选型模块 模型模块 设计选型模块 模型模块 

Form4:

Private Sub Command2_Click()

Dim SQL As String

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

SQL = "Provider=***********;Password=*********;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

If Trim(Form4.Text1.Text) = "" Then

MsgBox "咖啡不能为空,请重新输入!", vbOKOnly + vbExclamation, "错误"

Else

Text1.Text = Trim(Text1.Text)

SQL = "select CoffeeNo from  Coffee where CoffeeNo = '" & Text1.Text & "'"

rs.Open SQL, cn

If rs.EOF = False Then

MsgBox "已存在,请重新输入!", vbOKOnly + vbExclamation, "错误"

Else

rs.Close

Dim str1 As String

Set cn = New ADODB.Connection

Set rs = New ADODB.Recordset

SQL = "Provider=***********;Password=*********;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee;"

cn.Open SQL

SQL = "select * from Coffee where CoffeeNo = '" & Trim(Form4.Text1.Text) & "'"

rs.Open SQL, cn, 3, 2

If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then

MsgBox "输入的所有信息都不能为空!"

Else

cn.Execute ("insert into Coffee (CoffeeNo,CoffeeName,CoffeePrice) values('" + Text1.Text + "','" + Text2.Text + "','" + Text3.Text + "') ")

MsgBox "成功!"

Unload Me

End If

End If

End If

End Sub

Private Sub Command1_Click()

Dim SQL As String

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

SQL = "Provider=**********;Password=********;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

If Trim(Form4.Text1.Text) = "" Then

MsgBox "咖啡编号不能为空,请重新输入!", vbOKOnly + vbExclamation, "错误"

Else

SQL = "select * from Coffee  where CoffeeNo ='" & Form4.Text1.Text & "'"

rs.Open SQL, cn, adOpenKeyset, adLockPessimistic

If rs.EOF Then

MsgBox "咖啡编号不存在,请重新输入!", vbOKOnly + vbExclamation, "错误"

Text1 = ""

Text1.SetFocus

Else

rs.Close

Dim str1 As String

Set cn = New ADODB.Connection

Set rs = New ADODB.Recordset

SQL = "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

SQL = "select * from Coffee where CoffeeNo = '" & Trim(Form4.Text1.Text) & "'"

rs.Open SQL, cn, 3, 2

str1 = MsgBox("你确定要修改吗!", vbOKCancel + 32, "提示")

If str1 = vbOK Then

If Form4.Text1.Text = "" Or Form4.Text2.Text = "" Or Form4.Text3.Text = "" Then

MsgBox "输入的所有信息都不能为空!"

Else

rs("CoffeeNo") = Trim(Text1.Text)

rs("CoffeeName") = Trim(Text2.Text)

rs("CoffeePrice") = Trim(Text3.Text)

rs.Update

MsgBox "修改成功!"

Unload Me

Form8.Show

End If

End If

End If

End If

End Sub

Private Sub Command3_Click()

Dim str1 As String

Set cn = New ADODB.Connection

Set rs = New ADODB.Recordset

SQL = "Provider=***********;Password=**********;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

SQL = "select * from Coffee  where CoffeeNo ='" & Form4.Text1.Text & "'"

rs.Open SQL, cn, 3, 2

str1 = MsgBox("你确定要删除吗!", vbOKCancel + 32, "提示")

If str1 = vbOK Then

If Text1.Text = "" Then

MsgBox "咖啡编号不能为空!"

Text1.Text = ""

Text1.SetFocus

Else

rs.Delete

rs.Update

MsgBox "删除成功!"

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Text1.SetFocus

End If

End If

End Sub

Private Sub Command4_Click()

Dim SQL As String

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

SQL = "Provider=**********;Password=*********;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

If Trim(Form4.Text1.Text) = "" Then

MsgBox "咖啡编号不能为空,请重新输入!", vbOKOnly + vbExclamation, "错误"

Else

SQL = "select * from Coffee  where CoffeeNo ='" & Form4.Text1.Text & "'"

rs.Open SQL, cn, adOpenKeyset, adLockPessimistic

If rs.EOF Then

MsgBox "咖啡编号不存在,请重新输入!", vbOKOnly + vbExclamation, "错误"

Text1 = ""

Text1.SetFocus

Else

SQL = "select * from Coffee where CoffeeNo = '" & Form4.Text1.Text & "'"

Text1.Text = rs("CoffeeNo")

Text2.Text = rs("CoffeeName")

Text3.Text = rs("CoffeePrice")

End If

End If

End Sub

Private Sub Form_Load()

End Sub

4.3.2 系统工作流程

From11:

Private Sub Command1_Click()

Dim SQL As String

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

SQL = "Provider=************;Password=*********;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

If Trim(Form11.Text1.Text) = "" Then

MsgBox "订单编号不能为空,请重新输入!", vbOKOnly + vbExclamation, "错误"

Else

SQL = "select * from SaleList  where SalesNo ='" & Form11.Text1.Text & "'"

rs.Open SQL, cn, adOpenKeyset, adLockPessimistic

If rs.EOF Then

MsgBox "订单编号不存在,请重新输入!", vbOKOnly + vbExclamation, "错误"

Text1 = ""

Text1.SetFocus

Else

SQL = "select * from SaleList where SalesNo = '" & Form11.Text1.Text & "'"

Text1.Text = rs("SalesNo")

Text2.Text = rs("CoffeeNo")

Text3.Text = rs("CustomerNo")

Text4.Text = rs("CoffeeAmount")

Text5.Text = rs("SalesMoney")

Text6.Text = rs("SalesTime")

End If

End If

End Sub

Private Sub Form_Load()

Dim SQL As String

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

SQL = "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Data Source=ASUS;Initial Catalog=daizhuangcoffee"

cn.Open SQL

If Trim(Form11.Text1.Text) = "" Then

MsgBox "订单编号不能为空,请重新输入!", vbOKOnly + vbExclamation, "错误"

Else

SQL = "select * from SaleList  where SalesNo ='" & Form11.Text1.Text & "'"

rs.Open SQL, cn, adOpenKeyset, adLockPessimistic

If rs.EOF Then

MsgBox "订单编号不存在,请重新输入!", vbOKOnly + vbExclamation, "错误"

Text1 = ""

Text1.SetFocus

Else

SQL = "select * from SaleList where SalesNo = '" & Form11.Text1.Text & "'"

Text1.Text = rs("SalesNo")

Text2.Text = rs("CoffeeNo")

Text3.Text = rs("CustomerNo")

Text4.Text = rs("CoffeeAmount")

Text5.Text = rs("SalesMoney")

Text6.Text = rs("SalesTime")

End If

End If

End Sub

    设计模块

总体布置  装配体设计  零件设计  更新零部件模型  更新装配体模型  更新工程图

     标准件 通用件

4.4  系统设计

  某机械CAD系统对机械设备的设计是自上而下的,首先确定大的总体布置尺寸,再确定部件尺寸,最后确定零件尺寸。模型更新于此相反先要更新零件模型,最后才能更新部件模型。在上级窗口中确定了大的装配尺寸,将被引用到下级窗口,并且不允许在下级窗口修改,从而保证整机设计的系统性。

  历次设计记录表为全程支持的,只要系统运行,它就处于打开状态,用来存储主梁、通用件、标准件的记录号、及其他子窗口的界面数据。有了它的支持您的设计不必一次完成,每次从新打开系统都可以继续您上次未完成的设计,不必担心从新开始。

      标准件、通用件库的支持使得设计选型更加方便,在其他程序界面可以直接调用标准件和通用件界面,选取标准件或通用件。标准件和通用件界面同时可以完成数据库完善的功能,可以不断增加新的记录。

4.4.1 程序启动界面设计及编程

      当主程序载入时,屏幕显示启动界面,下拉式探出,待整个主程序都载入内存,即消失。通过时钟控制窗口高度来实现下拉式弹出效果,根据判断主窗口显示状态决定是否卸载启动窗口。

 Option Explicit ‘强制变量声明

 Private Sub Form_Load()

 Timer1.Interval=10

 Timer1.Enabled=True

  guodu.Height=100

 End Sub

 Private Sub Timer1_Timer()

 If(guodu.Height<4395) Then

       guodu.Height=guodu.Height+65 ' 控制窗口的高度递增

 Else

        MDIForm1.Show

        If MDIForm1.WindowState=2 Then   '如果主程序加载完成,则卸载启动窗口

                 Timer1.Enabled=False

                  Unload Me

        End If

 End if 

 End Sub

 4.4.2 主界面设计及编程

4.4.2.1 主界面设计

      主界面是机械CAD系统的最主要的人机接口,其友好程度将直接影响到该系统的使用性能。

      程序主窗口为MDI窗口,分四个区:菜单区、工具条区、视图区、状态栏区。由以下控件组成:菜单栏、工具栏、状态栏、Picture控件、按钮、eDrawing控件、Imagelist控件。

     1) 菜单栏主要内容主要实现各模块调用功能:

       总体设计   :系统设计,设计参数,总体布置,小车布置,预览模型,退出

  桥架结构:主梁,端梁,中间梁,轨道 

       运行机构:大车运行机构,小车运行机构-〉设计选型;模型与图纸

  起升机构:主起升机构,副起升机构->设计选型,机构布置,卷筒组,定滑轮装置,吊钩组

  小车架:总体布置,主起升主梁,小车架端梁

  标准件:轴承,联轴器,螺栓,螺母,平垫圈,弹簧垫圈

  通用件:轴承座,车轮、减速器、制动器、起升电机、运行电机

       帮助:帮助主题,关于

  2)工具栏共有7个快捷按钮,提供连接到主梁、端梁、中间梁、大车运行机构、小车运行机构、主起升机构、副起升机构模块的快捷方式。

  3)视图区主要完成模型预览的功能。由两个Picture 控件分成两部分,右边的部分分为模型显示区,左边部分为模型视图控制区,共有6个按钮完成主视、俯视、左视、等轴测、适应屏幕、关闭等视图转化控制。同时,可以通过鼠标动态旋转模型,通过鼠标中间滚轮放大缩小视图,通过鼠标右键菜单有更多试图选项,试区界面是共用界面,还可以被其他模块界面调用,以便观察模型生成后的效果,如运行机构,起升机构等都会调用此界面。

  视图区的功能在很大程度上依靠eDrawing控件。对eDrawing控件做简要说明。eDrawing应用程序是随同SolidWorks一同发行的应用软件,给您提供生成、观阅、及共享您的3D模型和2D工程图的威力。

  eDrawings应用程序编程接口(API)是一个针对eDrawings的OLE编程接口,作为MicrosoftActiveX控件来实现。可以使用eDrawingsAPI来自定义eDrawings Viewer. 创建交互式网页和转换文件。该API中包含可通过VisualBasic(VB)调用的函数。这些功能提供了到eDrawings环境的直接访问途径。在VB环境下将eDrawings Controls 引入,即可将eDrawings作为一个控件使用,并通过API函数来访问或直接控制eDrawins.

        视图区并非一直出现在程序主界面上,而是在有模型显示需要时才出现,同时又考虑到它将被不同的模块所调用所以由两个公共函数来控制视图区的出现和隐藏,分别是 printmodel(str) ,Closemodel(str) ,以公共函数的形式写在Moudle1模块里。

  4)状态栏用于显示操作提示和状态信息。

 4.4.2.2 主界面编程

  基本思路:

  程序分MDIForm1窗体程序代码和Model1模块程序代码。MDIForm1主窗体代码完成的主要功能是:建立系统数据库的连接;建立与SolidWorks主程序的连接;打开历次设计记录表;调整窗口中各部件的位置、初始化界面;指定菜单栏、工具栏的单击事件,指定状态栏的显示内容。Model1模块代码里主要存放整个系统软件共用的公共变量,公共函数等。

       1)主窗体MDIForm1的窗体代码:   

  Private Sub MDIForm_Load() '界面初始化

       Picture1.Visible=False

       Picture2.Visible=False

       Me.StatusBar1.Panels(1).Text="机械设计"

  Me.StatusBar1.Panels(2).Text="日期:"+Format(Date,“yyyy年mm月dd日”)

       Set swApp=CreateObject("Sldworks.Application")  '建立与SolidWorks主程序的连接

  Set conn=New ADODB.Connection   '建立系统数据库连接

  conn.ConnectingString="Provider=microsoft.jet.oledb.4.0;data source=" & App.Path &"某机械设计.mdb"

       conn.Open

       Set rs=New ADODB.Recordset   '定义记录集对象

  rs.CursorLocation=adUseClient

       rs.Open "历次设计记录",conn,adOpenStatic,adLockOptimistic

       rs.MoveLast

  End Sub

       当窗口大小发生变化时应该自动调整主窗口内各控件的位置,以使各个控件都在窗口内,由MDIForm_Resize()函数完成这个功能。

  Private Sub MDIForm_Resize()

       Picture1.Width=Me.Width * 1/5

本文由必赢网址发布于机械设备,转载请注明出处:某机械设备CAD系统的构造与设计,中单引号的两

您可能还会对下面的文章感兴趣: