Macro DA#(1): DA#, API DA#, descripción general de la macro DA#
Este artículo presenta DA#, una herramienta de modelado de datos domésticos, y examina la API proporcionada por DA# v5 y DA# Macro, una herramienta desarrollada a partir de ella.
1. Descripción general de la macro DA#
1.1. Herramienta de modelado de datos DA#
DA# es un software doméstico que puede crear y administrar un modelo de datos expresado en ERD (Diagrama de relación de entidad), y el desarrollador es Encore (https://en-core.com/)soy.
Página de inicio de DA#: https://www.en-core.com/solution/solution2
La pantalla del DA# es la siguiente. Esta es una pantalla con el modelo de ejemplo incluido en DA# abierto.
Las características principales del DA# son las siguientes.
Entre las características principales, hay información sobre el soporte de API.
DA# proporciona API desde v5.0 (lanzado en 2016). Como referencia, ERwin y PowerDesigner, que son herramientas de modelado de datos externas, también proporcionan API.
1.2. API DA#
1.2.1. Por qué las herramientas de modelado de datos necesitan API
Las herramientas de modelado de datos son básicamente herramientas de dibujo que colocan cajas rectangulares en un plano bidimensional, completan el contenido de las cajas y conectan las cajas con líneas. Hay una característica que no tiene más remedio que usar el ratón más que el teclado.
- Razones de productividad
- Trabajar con un mouse es menos productivo que trabajar con un teclado. Las tareas realizadas con un mouse son difíciles de automatizar y requieren que se realicen tareas similares manualmente cada vez. (por ejemplo, ingeniería inversa, colocación de entidades en diagramas (ubicaciones en movimiento), cambio por lotes de nombres de entidades/nombres de propiedades de varios modelos, etc.)
- Al realizar y utilizar tareas que se repiten con frecuencia como herramientas, puede reducir el tiempo de trabajo y mejorar la calidad al reducir o eliminar los errores que cualquiera puede cometer.
- Se necesitan las API proporcionadas por las herramientas de modelado de datos para crear estas herramientas.
- Razones del aspecto de la salud
- Los síntomas del síndrome del túnel carpiano pueden aparecer si usa mucho el mouse. En casos severos, la muñeca y los dedos se entumecen y el dolor es tan intenso que es imposible trabajar.
- El grado de dolor que se siente varía mucho de persona a persona, pero en mi caso parece severo.
- Si desea reducir el dolor aunque sea un poco, debe minimizar el uso del mouse y, en este caso, es útil usar la API de la herramienta de modelado de datos.
En particular, cuando hay docenas a cientos o más archivos de modelos de datos en lugar de uno o dos, la utilización de la API es esencial al recopilar información por lotes o cambiar alguna información de un modelo.
1.2.2. Concepto de API DA# y modelo de objetos
La definición de Wikipedia de API (interfaz de programación de aplicaciones) es la siguiente.
API (Interfaz de programación de aplicaciones[*], interfaz de programación de aplicaciones) se refiere a una interfaz que permite que un programa de aplicación controle funciones proporcionadas por un sistema operativo o lenguaje de programación. Proporciona principalmente interfaces para control de archivos, control de ventanas, procesamiento de imágenes y control de texto.
* fuente: https://ko.wikipedia.org/wiki/API
En pocas palabras, una API es una forma de que una aplicación sea controlada por otras aplicaciones.
* Vídeo de referencia de YouTube: API de DA# 5 y características prácticas: seminario de lanzamiento de DA# 5 (https://www.youtube.com/watch?v=iGS7B-hJE-4)
El diagrama conceptual en el manual de la API DA# es el siguiente.
A continuación se muestra el diagrama de la aplicación, el objeto de nivel superior de la API DA#.
Similar al modelo de objetos de Excel, la API DA# también tiene el concepto de modelo de objetos.
Referencia: Curso de Excel VBA (3): Modelo de objetos de Excel
El modelo de objetos completo de la API DA# es el siguiente. (Esto no está en el manual oficial, y lo organicé yo mismo).
Tenga en cuenta lo siguiente.
- En la figura de arriba, el objeto con un fondo oscuro es un objeto de colección.
- Las flechas verdes apuntan al mismo tipo de objeto. Algunos de los objetos que constituyen la jerarquía del Modelo de objetos también aparecen debajo de otras jerarquías. (Objetos de destino: Modelos, Entidades, Atributos, Relaciones, Tablas)
- UDPS no se proporciona como una variable miembro en la versión actual de DA# (v5.1.0.4) en el momento de escribir este artículo, pero se puede acceder a ella a través de una función.
1.3. Presentamos la herramienta macro DA#
DA# Macro es una herramienta que puede ejecutar operaciones por lotes en modelos de datos utilizando la API proporcionada por DA# v5. Se implementa con Excel VBA y utiliza la API de DA# v5.
Fue desarrollado directamente para aumentar la productividad y la calidad del trabajo de patrones repetitivos (Get, Set) y el trabajo más intensivo del mouse (Reverse) mientras se realiza el trabajo relacionado con los modelos de datos en varios proyectos. Hice v1.0 en abril de 2018 y la última versión es v2.11 el 12 de enero de 2021.
El historial de versiones es el siguiente. El tercer elemento, Versión DA#, significa la Versión DA# en la que la macro de esa versión funciona normalmente (confirmado cuando se distribuye la versión).
Fecha (Versión) | Contenido | Versión DA# |
2021-08-14 (v2.12) | – Contenidos de licencia parcialmente modificados para uso público en Github – Borrar mensaje en la parte inferior de cada función de hoja (el rendimiento mejora mucho si se abre la ventana Modal en el DA# antes de hacer clic en el botón (por ejemplo, ventana Nuevo modelo)) –> Desde DA# v5.0.19.32, el rendimiento se mejoró al abrir la ventana Modal internamente durante la operación de la API, y ya no se requiere la guía de mensajes. [Corrección] Entidad modificada, método de obtención de propiedad de propiedad del acceso de matriz al acceso de propiedad individual (revertir cambio v1.32) – Hubo un problema de que algunos valores de propiedad no se traían al acceder a la matriz, por lo que se restauró [Fijar] Se corrigió un error en el que la definición de propiedad solo obtiene la primera propiedad de una entidad | 5.0.20.2 o posterior |
2021-01-12 (v2.11) | [Fijar] Se agregó la opción de lectura de escritura del archivo de entrada inversa, leer todo y no cerrar | 5.0.20.2 o posterior |
2021-01-12 (v2.10) | [Agregar] Función detallada inversa agregada – Se agregó el cuadro de texto del nombre del grupo de entidades (no se puede configurar el nombre de fuente, el tamaño de fuente) (La API para agregar cuadros de texto se proporciona por primera vez en v5.0.20.2, ¡así que verifique la versión antes de usarla!) | 5.0.20.2 o posterior |
2021-01-10 (v2.00) | [Agregar] Función inversa agregada: modelo DA# creado a partir de definiciones de tablas y definiciones de columnas escritas en archivos de Excel – Invierta varios modelos a la vez (DBMSType para cada modelo, se puede establecer la definición) – Invertir configurando el área temática de la tabla y dividiéndola por área temática – Al designar grupos de entidades, se agrupan y colocan en una ubicación por grupo dentro de un área temática – Agregar el cuadro de texto del nombre del grupo de entidades más tarde… (Actualmente no se proporciona una API de creación de cuadros de texto) – La configuración UDP no está incluida en esta versión (incluida en el futuro si es necesario) [Fijar] Cambie el Rango con nombre de la primera fila de datos a Encabezado (para evitar errores al eliminar la primera fila) | 5.0.19.32 o superior |
2020-12-05 (v1.32) | [Mejorar] Cambie el método get/set de propiedad de entidad y propiedad de acceso de propiedad individual a acceso de matriz – Mejora de rendimiento mínima de 2x a 3x – Excluyendo algunas propiedades que no proporciona el enfoque de matriz (por ejemplo, propiedades-Nombre de dominio, UDP) [Agregar] ReverseTable, ReverseColumn, ReverseType, ReverseLength agregado al atributo (conjunto) | 5.0.19.32 o superior |
2020-08-06 (v1.31) | [Fijar] Manejo de caracteres separadores de línea para propiedades que se pueden ingresar en varias líneas entre entidades y propiedades – Propiedad de destino: definición de entidad, tipo de procesamiento de datos, elemento especial, nota, definición de propiedad – Antes del cambio: incluso si ingresa la definición de entidad en Excel en varias filas, el resultado reflejado en DA# aparece en una fila – Después del cambio: normalmente se reflejan varias filas [Reparar] Corrige el error del botón CopyToSet cuando solo hay 1 fila en la hoja Entidad (Obtener), Atributo (Obtener) | 5.0.19.12 o superior |
2020-03-01 (v1.30) | [Reparar] Manejar la propiedad cambiada (Model.FilePath -> Model.GetFilePath()) | 5.0.19.12 o superior |
2018-11-10 (v1.23) | [Reparar] Atributo cambiado (Conjunto) para usar Variant Array (no usar Transpose) | 5.0.13.7 o posterior |
2018-11-07 (v1.22) | [Fijar] Se cambió de extraer la lista de entidades y atributos por área temática a extraer la lista de entidades y atributos por modelo [Corrección] Se cambió al enfoque Range.Offset debido a un error de falta de coincidencia de tipo al ejecutar Transpose of Variant Array | 5.0.13.7 o posterior |
2018-09-09 (v1.21) | [Fijar] Cambió el método de carga de la lista de atributos (Aplicación.Función de hoja de trabajo.Índice -> Lectura directa como matriz de variantes) [Fijar] GetModel modificado: si el modelo de destino ya está abierto, manéjelo para que no se vuelva a abrir (usando la propiedad Model.FilePath) | 5.0.13.7 |
2018-09-04 (v1.20) | [Fix] Rendimiento mejorado al cambiar Range.Offset (...) acceso directo a Variant Array [Agregar] Se agregó la función de selección de elementos Obtener/Establecer [Agregar] Se agregó la función UDP Get/Set [Agregar] Se agregó una función para agregar un modelo abierto a la lista (seleccionable para guardar y cerrar) | 5.0.13.4 |
2018-04-14 (v1.10) | [Fijar] Cambiar el acceso del valor de rango de Range.Text a Range.Value2 [Fijar] Modificado para omitir cuando el valor de Rango en Establecer es un valor no válido como #N/A como resultado de BUSCARV [Fijar] Ajuste el orden de los elementos de extracción de Atributo (Obtener) (cambie la posición del nombre de la tabla y el nombre del atributo) [Fijar] Se corrigió un error por el cual no se podía establecer la definición de Atributo (Conjunto) [Agregar] "¿Está seguro de que desea continuar?" al hacer clic en el botón Obtener/Establecer. confirmar por mensaje [Agregar] Deshabilitar Deshacer/Rehacer para mejorar el rendimiento (Model.ActiveAction(False)) [Agregar] Aplicar ProgressBar al conjunto [Agregar] Se agregó el botón Copiar al conjunto | 5.0.11.8 |
2018-04-08 (v1.00) | Implementación inicial (proporciona funciones básicas de obtención/establecimiento de entidad/atributo) | 5.0.11.8 |
Águila(Curso Excel VBA (10): Herramientas desarrolladas y utilizadas con Excel VBA) se introdujo de la siguiente manera.
Es una herramienta macro que aumenta la utilización de DA#, una herramienta de modelado de datos domésticos. El DA# proporciona una excelente función llamada 'edición por lotes', pero solo es posible en una unidad modelo. Esta herramienta permite que las funciones de recuperación (Obtener), modificación (Establecer) e inversión de información de entidad/propiedad se procesen para múltiples modelos a la vez.
Por ejemplo, si hay 100 archivos de modelo de datos, suponga que desea cambiar el nombre existente agregando un valor específico (nombre del sistema o nombre comercial, estado de uso, etc.) a todo el modelo de datos en lotes antes o después del archivo administrado. nombre de la entidad ver.
Incluso si usa la función de "edición por lotes", debe abrir cada archivo de modelo de datos uno por uno, guardar, cerrar y repetir el siguiente archivo después de trabajar en la pantalla de "edición por lotes".
Si no hay muchos objetivos para esta tarea y es una tarea que se ejecuta solo una vez, se puede manejar manualmente.
Además, si hay múltiples modelos de datos, la configuración inversa y la ejecución de cada modelo deben repetirse manualmente. Se necesita mucho esfuerzo cuando tiene docenas o cientos de modelos de datos.
En este caso, la herramienta Macro DA# v5 presentada en este artículo puede ayudar.
La pantalla de ejecución de la Macro DA# es la siguiente.
Las funciones principales de DA# Macro son las siguientes.
- Función común
- Botón Seleccionar modelo: seleccionar archivos de modelo (n posibles)
- Botón Borrar lista: restablecer la lista actual
- Obtener entidad/atributo
- Botón Obtener entidad/Obtener atributo: extrae información de los modelos seleccionados a Excel. Abrir modelos seleccionados, extraer información, cerrar e iterar secuencialmente a través del siguiente modelo
- Botón Copiar a conjunto: copia el valor estándar de conjunto de la lista actual a la hoja de conjunto (excluyendo el nombre del área temática)
- Establecer entidad/atributo
- Botón Establecer entidad/Establecer atributo: Refleja la información en la lista de Excel para el modelo seleccionado. Los modelos seleccionados se abren, reflejan, guardan, cierran y el siguiente modelo se repite secuencialmente (si el valor en la lista de Excel está vacío, el valor de propiedad correspondiente del modelo DA# no cambia)
- Establecer opción
- Valor de referencia: valor de referencia para comparar la información de la lista de Excel y el modelo DA#
- Modo de adición: si se debe agregar el valor de Excel al valor actual del elemento de información del modelo DA#
- Contrarrestar
- Cree el modelo DA# a partir de una tabla, columna, lista FK (opcional) archivo de Excel
- Procese múltiples modelos y múltiples áreas temáticas a la vez
- Función central: Disposición en un diagrama para cada grupo de entidades dentro de un área temática
- Cree el modelo DA# a partir de una tabla, columna, lista FK (opcional) archivo de Excel
1.4. Descargar macro DA#
Puede consultarlo en el repositorio de github a continuación.
https://github.com/DAToolset/DA-Macro
Alternativamente, puede descargar directamente desde esta URL.
https://github.com/DAToolset/DA-Macro/raw/main/DA%23%20Macro_v2.12_20210814.xlsm
Hasta ahora, hemos analizado las herramientas DA#, DA# API y DA# Macro. A continuación, veremos las funciones de la Macro DA#.
<< Lista de artículos relacionados >>
- Macro DA#(1): DA#, API DA#, descripción general de la macro DA#
- Macro DA# (2): Función macro DA# (1) - Función común, Entidad Get/Set
- Macro DA# (3): Función de macro DA# (2) - Obtener/Establecer atributo
- Macro DA# (4): Función macro DA# (3) -Reversa
- Macro DA#(5): Notas/notas de uso, descargas, funciones que se agregarán en el futuro, notas
- Macro DA#(6): API del modelador DA#
- Video de demostración de la función macro DA# (YouTube)
- Contenido de la descripción de la macro DA#, descarga