基于CASS开发EXCEL批量导入宗地属性

时间:2022-01-24 05:45:41

基于CASS开发EXCEL批量导入宗地属性

摘要: 本文陈述了基于cass开发excel批量导入宗地属性的必要性;阐述了CASS程序二次开发的原则;讨论了程序设计的具体流程;剖析了各程序模块的实现,并给出了部分典型代码;希望能给广大同行带来抛砖引玉的作用。

关键词:CASS,EXCEL,宗地,VBA

中图分类号:F291 文献标识码:A

宗地权属调查分为所有权调查和使用权调查两部分。城镇土地权属调查为宗地使用权调查,城镇城郊结合部、城中村也会牵涉宗地所有权调查,宗地权属调查为城镇土地调查核心,其调查质量的优劣,直接影响到宗地使用者、所有者权益,成果资料的使用。该项工作的技术性、政策性、经验性强,各宗地划分标准不一,给调查工作带来较大难度,如何做好权属调查工作,提高调权属调查的录入速度,是调查单位面临的一大难题[1]。

南方CASS是目前国内广泛使用的地籍调查成图软件,因其功能强大,通俗易懂,便于操作且能与GIS软件进行数据无缝接口,被广泛应用于宗地权属调查。本文结合自身参与的城镇地籍与农村宅基地地籍调查项,探讨基于CASS开发EXCEL批量导入宗地属性,在现阶段具有一定的理论与实践意义。

1 开发语言LISP与VBA

1.1 LISP语言

AutoLISP语言是一种运行在AutoCAD环境下的LISP编程语言,或称为AutoCAD的一种嵌入式语言。它采用了与CommandLISP(一种通用的LISP语言版本)相近的语法及习惯约定,并吸收了LISP语言的主要函数,同时增加了针对AutoCAD特点的许多功能,如:可以把AutoLISP和AutoCAD的绘图命令透明地结合起来,使设计和绘图完全融为一体。利用AutoLISP语言编程可以实现对AutoCAD当前图形数据库进行直接访问和修改。

在LISP语言中,最基本的数据类型是符号表达式。LISP语言的特点是程序和数据都采用符号表达式的形式,即一个LISP程序可以把另一个LISP程序作为它的数据进行处理。因此使用LISP语言编程十分灵活,看起来是一个一个的函数调用。支持递归定义也是Auto LISP语言的重要特性。

AutoLISP语言是提供给用户的主要二次开发工具之一。用AutoLISP语言编写应用程序,可以为AutoCAD增加新的命令或修改AutoCAD,以适应用户的特殊需要[2]。

1.2 VBA语言

VBA是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码。这样用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化[3]。

因此,对于在工作中需要经常使用CASS套装软件的用户,学用VBA 有助于使工作自动化,提高工作效率。另外,由于VBA 可以直接应用CASS 套装软件的各项强大功能,所以对于程序设计人员的程序设计和开发更加方便快捷。

2 开发依据与原则

基于CASS开发EXCEL批量导入宗地属性程序的开发依据与原则如下:

(1) 设计依据为最新地籍调查有关设计规范、制图标准以及设计手册等;保证数据库、计算方法和设计方法的准确性。

(2) 软件包开发设计首先要突出专业水平,把专业设计思想转化为计算机语言是专业软件包的关键所在。

(3) 符合设计人员思维习惯及设计习惯,人机界面友好,操作简单,易掌握。

(4) 适用性强,容易修改,容易扩充,容易发展。

(5) 尽量使用效率高、功能强的计算机语言及开发工具。

(6) 严格执行标准化及规范化。

(7) 通过数据库的内部设计与读取,提高宗地属性的输入速度,真正发挥计算机的优势,把项目技术人员从繁重的生产工作中解脱出来。

3 程序设计流程图

基于CASS开发EXCEL批量导入宗地属性程序设计流程图如图1所示:

图1 程序设计流程图

4 程序实现

4.1 EXCEL接口

首先新建或者打开已有的Excel工作薄,在AutoCAD VBA编辑器中选择“工具”菜单一>“引用”,选择合适的Microsoft Excel Object Library。然后声明Exce1.Application、Exce1.Workbook、Exce1.Worksheet对象各一个,用Getobject函数实现AutoCAD VBA对Excel的自动控制。下面是实现这个功能的部分典型程序代码如下:

Private Sub UserForm_Initialize()

lstFile.Clear

If Left(Version, 2) = "15" Then

Set objDBX = CreateObject("ObjectDBX.AxDbDocument.1")

Set objDBX22 = CreateObject("ObjectDBX.AxDbDocument.1")

ElseIf Left(Version, 2) = "16" Then

Set objDBX = CreateObject("ObjectDBX.AxDbDocument.16")

Set objDBX22 = CreateObject("ObjectDBX.AxDbDocument.16")

ElseIf Left(Version, 2) = "17" Then

Set objDBX = CreateObject("ObjectDBX.AxDbDocument.17")

Set objDBX22 = CreateObject("ObjectDBX.AxDbDocument.17")

End If

End Sub

4.2 CASS宗地属性读取

CASS的宗地属性存储于软件的内部MDB数据库中,可以通过对MDB数据库的读取,实现CASS宗地属性的提取,该模块程序的部分典型代码如下:

Dim sFiles() As String

'TreeSearch "c:\123" ,".xls",a()

Dim strcopy As String

If copyText.Text = "" Then

MsgBox "请添加地籍图目录!"

Exit Sub

End If

If pasteText.Text = "" Then

MsgBox "请添加地形图目录!"

Exit Sub

End If

strcopy = copyText.Text

lstFile.Clear

TreeSearch strcopy, "*.dwg", sFiles()

Dim adText As AcadText

Dim adMText As AcadMText

Dim adSS As AcadSelectionSet

Dim fType(0 To 1) As Integer, fData(0 To 1)

Dim i As Integer

If lstFile.ListCount = 0 Then

MsgBox "请添加所要操作的图形!"

Exit Sub

End If

4.3 CASS与EXCEL衔接

CASS与EXCEL衔接主要是通过软件的开放接口,该模块程序的部分典型代码如下:

Public Exeelapp As Exce1.Application

Public Excelbook As Exce1.WorkbookceI工作簿对象

Pubhc Excelsheet As Exce1.Wl0rksheetcel工作表对象

Public Sub Lianexcel() ’连接Excel的Sub过程

Msg Boxvb Cr Lf &“现在准备连接Excel工作表!”&vbCrLf& “请确认Excel工作表已经打开!”,

64,”欢迎使用CASS开发EXCEL批量导入宗地属性程序!” ’连接Excel之前要确保有已打开的Excel工作簿

Set Excelapp=Get Object(,”Exce1.application”)’连接Excel工作簿

Msg Box”连接Excel工作簿成功!”,64,“欢迎使用CASS断面系统!”

Excelapp.Visible=True’设置工作簿可见

Set Excelsheet=Excelapp.Active Sheet ’给工作表赋值

End Sub ’结束Sub过程。

4.4 EXCEL数据导入CASS宗地属性

该模块是程序最重要的核心模块,程序的部分典型代码如下:

Private Sub droplayer(ByVal road As String)

On Error Resume Next

If Err.Number = -2147352567 Then

Err.Clear

Exit Sub

End If

objDBX.Open road

Dim t As AcadEntity

For Each t In objDBX.ModelSpace 'ThisDrawing.Layers.Item("TK")

If t.Layer "JZD" And t.Layer "JZP" And t.Layer "0" Then

t.Delete

End If

Next

objDBX.SaveAs road

End Sub

5 小 结

本文针对实践中碰到的基于CASS 批量导入EXCEL宗地属性问题,根据CASS数据库结构与EXCEL开放接口方案,基于CASS基础上用LISP与VBA语言开发CASS 批量导入EXCEL宗地属性程序。程序虽然针对大数据运行速度有限,但却从根本上解决了CASS 与EXCEL的衔接。本文论述由浅入深,希望能对广大从事CASS软件行业的同行带来一定的理论与实践意义。

参考文献

[1] 负小苏,等.第二次全国土地调查培训教材[M].中国农业出版社,2007.

[2] 望勇,朱海勇,陈宜金,等.基于MapGIS和AutoCAD的土地整理现状图设计[J].测绘通报,2011(9):59—61.

[3] 南方测绘集团.南方CASS软件使用手册[Z].

上一篇:机械电气控制的特点分析 下一篇:概述氧化沟工艺的发展及特点