DA# 宏(1):DA#、DA# API、DA# 宏概述

本文介绍了国产数据建模工具DA#,并考察了DA# v5提供的API以及使用它开发的工具DA# Macro。

1. DA# 宏概述

1.1.数据建模工具 DA#

DA#是一款国产软件,可以创建和管理以ERD(实体关系图)表示的数据模型,开发者是Encore(https://en-core.com/)是。

DA#主页: https://www.en-core.com/solution/solution2

DA#屏幕如下。这是打开 DA# 中包含的示例模型的屏幕。

데이터 모델링 도구 DA# 화면
数据建模工具DA#画面

DA#的主要特点如下:

데이터 모델링 도구 DA# 주요 기능
数据建模工具 DA# 主要特性

主要功能之一是 API 支持。

DA# 주요 기능중 API 언급
DA#主要功能中提到的API

DA#从v5.0(2016年发布)开始提供API。作为参考,国外的数据建模工具ERwin和PowerDesigner也提供了API。

1.2. DA# API

1.2.1.为什么数据建模工具需要 API

数据建模工具基本上是一种绘图工具,它将矩形框放置在二维平面上,填充框的内容,并用线连接框。有一个特性迫使您更多地使用鼠标而不是键盘。

  • 生产力原因
    • 鼠标工作的效率低于键盘工作。使用鼠标执行的任务很难自动化,因此每次都必须手动执行类似的任务。 (例如逆向工程、在图表上放置实体(移动位置)、批量更改多个模型的实体名称/属性名称等)
    • 通过创建和使用工具来执行频繁重复的任务,您可以减少完成任务所需的时间,并通过减少或完全消除任何人可能犯的错误来提高质量。
    • 要创建这样的工具,需要数据建模工具提供的 API。
  • 从健康角度考虑的原因
    • 过度使用鼠标会导致腕管综合症的症状。严重时手腕、手指麻木,疼痛剧烈,无法工作。
    • 每个人感受到的疼痛程度差异很大,但就我而言,疼痛往往很严重。
    • 为了减轻一点痛苦,您需要尽量减少鼠标的使用,在这种情况下,利用数据建模工具的 API 会有所帮助。

特别是当数据模型文件不是一两个,而是几十到上百甚至更多,并且想要批量收集信息或更改模型中的某些信息时,利用API就至关重要。

1.2.2. DA# API 概念和对象模型

API(应用程序编程接口)的维基百科定义如下。

API(ApplicationProgrammingInterface[*],应用程序编程接口)是指为控制操作系统或编程语言提供的功能而创建的接口,以便可以在应用程序中使用。主要提供文件控制、窗口控制、图像处理、文本控制等接口。

* 资源: https://ko.wikipedia.org/wiki/API

简单地说,API 是一个应用程序被其他应用程序控制的一种方式。

* 参考 YouTube 视频:DA# 5 API 和便利功能 – DA# 5 启动研讨会(https://www.youtube.com/watch?v=iGS7B-hJE-4)

DA# API手册中的概念图如下。

DA# API 개념도
DA# API概念图

下面是 DA# API 的顶级对象 Application 的图。

DA# API: Application
DA# API:应用

与Excel对象模型类似,DA# API也有对象模型的概念。

参考: Excel VBA教程(三):Excel对象模型

DA# API 的整体对象模型如下。 (官方手册上没有这个,我自己整理的。)

DA# API Object Model
DA# API 对象模型

请参考以下内容。

  • 上图中,深色背景的对象是一个集合对象。
  • 绿色箭头指向相同的对象类型。构成对象模型层次结构的一些对象也出现在其他层次结构的底部。 (目标对象:模型、实体、属性、关系、表)
  • 截至撰写本文时,UDPS 尚未作为成员变量提供,但可以通过函数进行访问。

1.3. DA#宏工具介绍

DA# Macro是一个可以使用DA# v5提供的API对数据模型执行批量操作的工具。它是在 Excel VBA 中实现的,并使用 DA# v5 的 API。

在多个项目中执行与数据模型相关的工作时,我自己开发了它,以提高重复模式工作(获取、设置)和最常使用鼠标的工作(反向)的生产力和质量。 v1.0创建于2018年4月,最新版本为2021年1月12日v2.11。

版本历史如下。第三项“DA#版本”是指该版本宏运行正常的DA#版本(在发布相应版本时确认)。

日期
(版本)
内容DA#版本
2021-08-14
(v2.12)
– 修改了Github上部分许可内容供公众使用
– 删除每个工作表功能底部的消息(如果在单击按钮之前在 DA# 中浮动模态窗口(例如“新建模型”窗口),性能将大大提高)
  –> DA# v5.0.19.32之后,通过操作API时内部打开模态窗口来提高性能,不再需要消息引导。
[修复] 将实体和属性的属性获取方法从数组访问更改为单个属性访问(从 v1.32 恢复更改)
  – 我返回是因为访问数组时出现一些属性值未检索到的问题。
[修复]修复了仅从实体的第一个属性导入属性定义的错误
5.0.20.2 及更高版本
2021-01-12
(v2.11)
[修复] 增加了读取反向输入文件的选项以便可以写入,并且不读取全部并关闭它。5.0.20.2 及更高版本
2021-01-12
(v2.10)
[新增] 新增详细的倒车功能
  – 添加实体组名称文本框(无法设置字体名称和字体大小)
     (添加文本框的API在v5.0.20.2中首次提供,使用前请仔细检查版本!)
5.0.20.2 及更高版本
2021-01-10
(v2.00)
[新增]新增逆向功能:根据Excel文件中的表定义和列定义创建DA#模型
  – 一次反转多个模型(可以设置每个模型的 DBMSType 和定义)
  – 通过设置表格的主题区域并按主题区域划分来反转
  – 通过指定实体组,每个组都被分组并放置在一个主题区域内的一个位置。
  – 稍后添加实体组名称文本框... (目前不提供文本框创建API)
  – 此版本中不包含 UDP 设置(将来需要时将包含)
[修复]将第一行数据的Named Range改为Header(防止删除第一行时出错)
5.0.19.32 及更高版本
2020-12-05
(v1.32)
[增强]实体和属性的属性获取/设置方法从单个属性访问更改为数组访问
  – 性能至少提高 2 至 3 倍
  – 排除一些数组方法未提供的属性(例如属性-DomainName、UDP)
[添加] 属性(集)项添加ReverseTable、ReverseColumn、ReverseType、ReverseLength
5.0.19.32 及更高版本
2020-08-06
(v1.31)
[修复] 处理允许在实体和属性之间输入多行的属性的行分隔符
  – 目标属性:实体定义、数据处理类型、特殊功能、注释、属性定义
  – 更改前:即使在 Excel 中多行输入实体定义,DA# 中反映的结果也会显示在一行中。
  – 更改后:多行正常反映
[修复]修复实体(获取)、属性(获取)表中只有1行时CopyToSet按钮错误的问题
5.0.19.12 及更高版本
2020-03-01
(v1.30)
[修复] 处理更改的属性 (Model.FilePath –> Model.GetFilePath())
[使固定] 指定的 UDP协议如果模型中没有,则添加错误处理
5.0.19.12 及更高版本
2018-11-10
(v1.23)
[修复]更改属性(集)以使用变体数组(不使用转置)5.0.13.7 及更高版本
2018-11-07
(v1.22)
[修复]由按主题领域提取实体和属性列表更改为按模型提取实体和属性列表。
[修复] 执行 Transpose of Variant Array 时出现 Type Mismatch 错误,改为 Range.Offset 方式。
5.0.13.7 及更高版本
2018-09-09
(v1.21)
[修复]更改属性列表加载方法(直接读取为Application.WorksheetFunction.Index –> Variant Array)
[修复]更改GetModel:如果工作目标模型已经打开,则不要再次打开它(使用Model.FilePath属性)
5.0.13.7
2018-09-04
(v1.20)
[修复] 通过更改 Range.Offset(...) 直接访问 Variant Array 来提高性能
[Add] 增加Get/Set项目选择功能
[新增] 新增UDP Get/Set功能
[添加] 新增将打开的模型添加到列表中的功能(可以选择保存并关闭)
5.0.13.4
2018-04-14
(v1.10)
[修复]将对范围值的访问从 Range.Text 更改为 Range.Value2
[修复] 修改为当 Set 中的 Range 值为 VLOOKUP 结果为无效值(例如 #N/A)时跳过。
[修复]调整属性(Get)中提取项目的顺序(更改表名和属性名的位置)
[修复]修复属性(Set)定义项未设置的问题
[添加] 单击“获取/设置”按钮时,“您想继续吗?”短信确认
[添加] 禁用撤消/重做以提高性能 (Model.ActiveAction(False))
[添加]应用ProgressBar来设置
[添加] 添加副本到集合按钮
5.0.11.8
2018-04-08
(v1.00)
首次部署(提供基本的实体/属性获取/设置功能)5.0.11.8

鹰(Excel VBA教程(十):与Excel VBA一起开发和使用的工具)介绍如下。

这是一个提高国产数据建模工具DA#可用性的宏工具。 DA# 提供了一种称为“批量编辑”的出色功能,但只能针对每个型号进行。该工具允许您一次处理多个模型的实体/属性信息获取(Get)、修改(Set)和反向功能。

例如,如果有 100 个数据模型文件,假设您希望通过在整个数据模型中管理的实体名称之前或之后添加特定值(系统名称、任务名称、使用状态等)来更改现有名称。看。


即使使用“批量编辑”功能,也必须逐个打开每个数据模型文件,在“批量编辑”屏幕上进行操作,保存、关闭,然后对下一个文件重复该操作。

如果该任务的目标不多,只需执行一次,则可以手动完成;但如果该任务的目标较多,需要执行多次,则手动处理必然会降低工作效率。


当存在多个数据模型时,通过逆向创建数据模型的功能也需要手动、重复地处理每个模型的逆向设置和执行。当有数十个或数百个数据模型时,需要付出很大的努力。


在这种情况下,本文介绍的 DA# v5 宏工具可能会有所帮助。

DA# 宏执行画面如下。

DA# Macro: Entity(Get)
DA# 宏:实体(获取)
DA# Macro: Entity(Set)
DA# 宏:实体(集)
DA# Macro: Attribute(Get)
DA# 宏:属性(获取)
DA# Macro: Attribute(Set)
DA# 宏:属性(设置)
DA# Macro: Reverse
DA# 宏:反向

DA#宏的主要功能如下。

  • 常用功能
    • 选择模型按钮:选择模型文件(n 个可能)
    • 清除列表按钮:清除当前列表
  • 获取实体/属性
    • 获取实体/获取属性按钮:将所选模型的信息提取到 Excel 中。打开选定的模型,提取信息,关闭,然后按顺序重复下一个模型。
    • 复制到设置按钮:将设置标准值从当前列表复制到设置表(不包括主题区域名称)
  • 设置实体/属性
    • 设置实体/设置属性按钮:将 Excel 列表中的信息反映到所选模型。打开、反映、保存、关闭所选模型,并依次重复下一个模型(如果Excel列表中的值为空,则DA#模型对应的属性值不变)
    • 设置选项
      • 参考值:Excel列表与DA#型号信息对比的参考值
      • 追加模式:是否将Excel值追加到DA#型号信息项的当前值中。
  • 撤销
    • 从表、列、FK(选定)列表 Excel 文件创建 DA# 模型
      • 一次处理多个模型和多个主题领域
      • 核心功能:在一个主题区域内的每个实体组的图表上的位置

1.4. DA#宏下载

您可以在下面的 github 存储库中查看它。
https://github.com/DAToolset/DA-Macro

或者,您可以直接从此 URL 下载。
https://github.com/DAToolset/DA-Macro/raw/main/DA%23%20Macro_v2.12_20210814.xlsm


到目前为止,我们已经了解了 DA#、DA# API 和 DA# 宏工具。接下来我们看看DA#宏的功能。


<< 相关文章列表 >>

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

zh_CN简体中文