Datenstandard-Prüftool_4.Anhang
Dies ist der Anhang des Datenstandard-Inspektionstools. Sie können die Verarbeitung des Nummernsuffixes des Eigenschaftsnamens, der Simulationsmethode des Standardwörterbuchs, der Referenzinformationen von Eigenschaften, die der Standardprüfung unterliegen, der Lizenz und des VBA-Codes überprüfen. Dies ist eine Fortsetzung des vorherigen Artikels.
Data Standard Check Tool_3. Ergebnisse der Standardprüfung
4. Befestigung des Datenstandard-Inspektionswerkzeugs
4.1. Verarbeitung des numerischen Suffix im Attributnamen
Wenn der Eigenschaftsname ein Nummernsuffix (Postfixnummer) enthält, wird die Nummer ausgeschlossen und das Standardbegriffswörterbuch oder das Standardwortwörterbuch durchsucht. Ein numerisches Suffix wird nach dem Ergebnis des gefundenen Standardbegriffs oder der Standardwortkombination hinzugefügt.
In der obigen Abbildung wird der physische Name des Attributs „Personal Targeting 1“ als „PERSN_TGT_YN1“ erstellt. Das Attributnamen-Endzeichen wurde normalerweise als „ob oder nicht“ identifiziert.
Die Verarbeitungslogik für das numerische Suffix des Eigenschaftsnamens ist wie folgt.
- Suchen und speichern Sie nur die fortlaufenden Nummern (a) auf der Rückseite des zu überprüfenden Eigenschaftsnamens, löschen Sie die Nummern und überprüfen Sie sie
- Als Ergebnis der Untersuchung wird die Zahl a, die in „Kombination aus logischen Standardwortnamen” und „Kombination aus physikalischen Standardwortnamen” gespeichert ist, rechts angehängt
4.2. Standard-Wörterbuch-Simulationsverfahren
Um zu überprüfen, ob die Wortkombination für den eingegebenen Eigenschaftsnamen erfolgreich ist, wenn das Wort physischer Name nicht bestimmt wird, d. h. ob es als Standardbegriff registriert werden kann, wird ein logischer Name im Blatt „Standard Word Dictionary“ registriert. und der physische Name ist „(“ + logisch. Er kann simuliert werden, indem Name + „)“ zusammengesetzt wird. In diesem Fall wird das Element „Standardwort Kombination physischer Namen“ im Ergebnis der Standardprüfung grün angezeigt.
Wenn Sie im Ergebnis der Standardprüfung auf die Schaltfläche „Zum Wortwörterbuch hinzufügen“ klicken, wird der physische Name jedes Wortes als „(“ + logischer Name + „)“ für alle „zusätzlichen Kandidatenwörter“ erstellt und dem Wortwörterbuch hinzugefügt. Bereits registrierte Wörter werden nicht hinzugefügt.
Wenn Sie übrigens automatisch eine Abkürzung für den physikalischen Namen eines Wortes generieren möchten, können Sie die in diesem VBA-Projekt enthaltene Benutzerfunktion „Generate Abbreviation“ verwenden. Der Quellcode der Funktion lautet wie folgt.
Public Function 약어생성(aFullName As String, Optional aMaxSize = 4) As String Dim sFullName As String, sAbbName As String Dim i As Integer '영문 Full Name 중에 포함된 '-' 는 공백으로 변경하여 처리한다. sFullName = Trim(Replace(aFullName, "-", " ")) '/* 영문 Full Name이 숫자로 시작하는 경우 단어 순서를 변경한다. (첫번째, 두번째 단어 순서만 변경) */ Select Case Mid(sFullName, 1, 1) Case "0" To "9" sFullName = Trim(단어순서변경(sFullName)) End Select sFullName = StrConv(sFullName, vbProperCase) sFullName = Replace(sFullName, "A ", "") sFullName = Replace(sFullName, "An ", "") sFullName = Replace(sFullName, "The ", "") If InStr(1, sFullName, " ") = 0 Then '/* 영문FullName이 하나의 단어일 경우*/ If Len(sFullName) <= 4 Then '/* 영문FullName의 길이가 4 이하 일 경우 */ sAbbName = sFullName Else '/* 영문FullName의 4자 이후 단어들이 모두 모음인 경우 - 앞 4자리 단어를 축약어로 사용 */ If 모음제거(Mid(sFullName, 5)) = "" Then sAbbName = Mid(sFullName, 1, 4) Else sAbbName = Mid(sFullName, 1, 1) + 모음제거(Mid(sFullName, 2)) '-- 모음시작 단어 첫모음 살림 '/* 축약 결과 길이제한 : 최대 aMaxSize 자리까지 */ If Len(sAbbName) > aMaxSize Then sAbbName = Mid(sAbbName, 1, aMaxSize) End If End If End If Else '/* 영문FullName이 여러 단어로 구성되어 있을 경우 */ Dim iBlankCnt As Integer iBlankCnt = Len(sFullName) - Len(Replace(sFullName, " ", "")) '각 단어 첫글자 sAbbName = sFullName Dim iPos As Integer, sChar As String, sAbbTmp As String If iBlankCnt = 1 Then '/* 단어수가 2개인 경우 - 각 단어의 시작 2글자 조합으로 생성 */ sAbbName = 모음제거(sAbbName) i = InStr(1, sAbbName, " ") + 1 sAbbName = UCase(Left(sAbbName, 2) + Mid(sAbbName, i, 2)) ElseIf iBlankCnt <= 4 Then '/* 단어수가 4개 이하인 경우 - 첫글자 조합으로 생성 */ For iPos = 1 To Len(sAbbName) sChar = Mid(sAbbName, iPos, 1) If (sChar >= "A" And sChar <= "Z") Or (sChar >= "0" And sChar <= "9") Then sAbbTmp = sAbbTmp + sChar End If If Len(sAbbTmp) >= aMaxSize Then GoTo Exit_For1 Next iPos Exit_For1: sAbbName = sAbbTmp Else '/* 단어의 길이가 최대 허용자리수 이하인 경우 - 그대로 사용 */ If Len(Replace(sFullName, " ", "")) <= aMaxSize Then sAbbName = UCase(Replace(sFullName, " ", "")) Else Dim sInText As String sInText = 등위접속사정리(UCase(sFullName)) '/* 등위접속사가 존재하면 첫글자들로 구성 */ If sInText <> sFullName Then sAbbName = 모음제거(sInText) For iPos = 1 To Len(sAbbName) sChar = Mid(sAbbName, iPos, 1) If (sChar >= "A" And sChar <= "Z") Or (sChar >= "0" And sChar <= "9") Then sAbbTmp = sAbbTmp + sChar End If If Len(sAbbTmp) >= aMaxSize Then GoTo Exit_For2 Next iPos Exit_For2: sAbbName = sAbbTmp Else '/* 두단어로 구성된 경우, 각각의 단어에서 앞 2자리 문자를 가지고 약어 생성 */ Dim iUnitLen As Integer, aWordArray() As String, sWord As String iUnitLen = 2 aWordArray = Split(sFullName) For iPos = 0 To UBound(aWordArray) sWord = aWordArray(iPos) If Len(sWord) = iUnitLen Then sAbbTmp = sAbbTmp + sWord Else If 모음제거(Mid(sWord, iUnitLen + 1)) = "" Then sAbbTmp = sAbbTmp + Mid(sWord, 1, iUnitLen) Else sAbbTmp = sAbbTmp + Mid(Mid(sWord, 1, 1) + 모음제거(이중자음정리(Mid(sWord, 2))), 1, iUnitLen) End If End If Next sAbbName = sAbbTmp End If End If End If End If 약어생성 = UCase(sAbbName) End Function
4.3. Beschreibung der Referenzinformationen der Eigenschaften von Standardinspektionszielen
Bei der Standardisierung werden Eigenschaftsnamen oder Datentypen/-längen geändert. Es werden Elemente zur Verwaltung von Referenzinformationen wie Eigenschaftsname vor Änderung, Spaltenname, Datentyp/-länge oder Notizen während der Standardisierungsarbeit benötigt.
Auf der rechten Seite des Blattes „Objektnamen-Standardisierung“ Standard-Prüfergebnisse werden Elemente erstellt, um zusätzliche Informationen zu Standard-Prüfergebnissen und zusätzliche Referenzinformationen zu verwalten, die für jeden Objektnamen erforderlich sind. Für Referenzinformationen kann der Benutzer notwendige Elemente hinzufügen.
▼ Standards Wartung Zusätzliche Informationen
- Länge des physischen Namens: Die Länge des physischen Namens, der als Ergebnis einer Standardprüfung erstellt wurde. Zeigt die Hintergrundfarbe von Zellen, die die maximale Länge (z. B. 26) überschreiten, in Rot in bedingter Formatierung gemäß der Einstellung der Option für die maximale Länge des physischen Namens an.
- Anzahl der Wörter: Anzahl der kombinierten Wörter physischer Namen, die als Ergebnis einer Standardprüfung erstellt wurden
- _Number: Die Anzahl der '_'-Zeichen im physischen Namen, der als Ergebnis der Standardprüfung erstellt wurde
- Attributname CNT: Die Anzahl der eingegebenen Attributnamen (bei doppeltem Attributnamen, d.h. wenn der Attributname CNT 2 oder mehr ist, wird die Hintergrundfarbe der Zelle rot dargestellt)
▼ Zusätzliche Referenzinformationen
- Eigenschaftsname vor Änderung: Der ursprünglich eingegebene Eigenschaftsname vor der Standardüberprüfung von Eigenschaftsnamen.
- Es wird nicht automatisch festgelegt, aber nach dem Erstellen einer Liste von Eigenschaftsnamen wird der Benutzer direkt durch Kopieren und Einfügen festgelegt.
- Es wird verwendet, um zu überprüfen, wie der Eigenschaftsname ursprünglich eingegeben wurde, wenn der Eigenschaftsname geändert wird, während die Standardprüfung mehrmals ausgeführt wird, und es wird empfohlen, es wann immer möglich zu verwenden.
- Eigenschaftsname nach Änderung: Aktueller Eigenschaftsname (wird automatisch als Formel gesetzt)
- As-Is-Property-Name: As-Is-Property-Name des eingegebenen Property-Namens (erforderlich für As-Is-Tracking)
- As-Is-Spaltenname: As-Is-Spaltenname des eingegebenen Property-Namens (erforderlich für As-Is-Tracking)
- As-Is-Datentyp: As-Is-Datentyp des eingegebenen Eigenschaftsnamens (erforderlich für As-Is-Tracking)
- Ob der Eigenschaftsname geändert wurde oder nicht: Vergleichen Sie den Eigenschaftsnamen vor und nach der Änderung und markieren Sie „O“, wenn er sich geändert hat
- Zu bestätigende Artikel: Erfassen und verwenden Sie Artikel, die während der Standardinspektionsarbeiten überprüft werden müssen, frei
- Sonstiges (bei Bedarf hinzufügen): Fügen Sie eine Spalte rechts neben „Prüfung erforderlich“ hinzu, um erforderliche Elemente zu verwalten
4.4. Lizenz
Es gibt keine Einschränkungen für Benutzer, die dieses Standard-Inspektionstool verwenden müssen und möchten. Der Inhalt der Lizenz wurde kurz unter Anwendung der BSD-2-Lizenz geschrieben.
- Autor: Youngmin Lee
- Email: leeyoungmin@gmail.com
- Blog: https://prodskill.com/
- github: https://github.com/DAToolset
- Lizenzinhalt: Folgt grundsätzlich der im Github-Repository angegebenen BSD-2-Lizenz. Wenn nicht angegeben, befolgen Sie die nachstehenden Anweisungen
- 1. Vertretung des Urheberrechtsinhabers: Der Name des Urheberrechtsinhabers, die E-Mail-Adresse, die Blog-Adresse und die Github-Repository-Adresse müssen unverändert verwendet werden. Wenn Sie den Quellcode ändern und verwenden, können Sie Inhalte hinzufügen, die sich auf den sekundären Autor beziehen.
- 2. Haftungsausschluss: Der Urheberrechtsinhaber kann nicht für Probleme haftbar gemacht werden, die durch die Verwendung dieses Quellcodes und dieser Tools verursacht werden.
- Wenn die oben genannten Bedingungen erfüllt sind, ist es für alle Zwecke zulässig, wie z. B. die persönliche Nutzung wie Lernen/Nutzung, die Nutzung dieses Tools im Geschäftsleben oder die Nutzung des Tools, um es in ein kommerzielles Produkt einzufügen, indem der Quellcode geändert wird .
- Dieser Lizenzinhalt kann nicht entfernt werden.
- Sag mir
- Sie müssen den Quellcode des abgeleiteten Werks nicht offenlegen. Wenn es jedoch kein Problem darstellt, möchte ich Sie bitten, mir mitzuteilen, für welche Nebenarbeiten Sie es verwendet haben. Sie können es per E-Mail senden oder als Blog-Kommentar hinterlassen.
- Bitte teilen Sie uns auch Fehler oder Verbesserungswünsche in der Funktionalität des Tools, Fehler in der Anleitungsdokumentation oder Verbesserungswünsche per E-Mail oder Blog-Kommentar mit.
Zu Ihrer Information wird die Lizenz des offenen Tools im folgenden Blog-Beitrag bekannt gegeben.
https://prodtool.tistory.com/notice/19
#ToDo: Verknüpfung ändern
4.5. Organisieren Sie Ihren VBA-Code
WorkSheet, UserForm, Modul, Klassenliste. Der VBA-Code dieses Tools besteht aus Modul und Klasse, um die Wiederverwendbarkeit und Wartbarkeit zu verbessern. Gemäß dem MVC-Entwurfsmuster ist M (Model) Class, V (View) ist Excel UI und C (Control) ist Module.
▼ Arbeitsblattobjekt
- Programmblatt: shtRun (Standardisierung von Eigenschaftsnamen): Blatt, das die Funktions- und Eigenschaftsliste für die Standardüberprüfung von Eigenschaftsnamen verwaltet
- Datenblatt: Vom Programm referenziertes Blatt: Standardwortwörterbuch, Standardbegriffswörterbuch, Standarddomänenwörterbuch
▼ Formularobjekt
- frmAbout: „Über … ” Formular, das beim Klicken auf die Schaltfläche angezeigt wird. Enthält Anleitungstext
▼ Modulobjekt
- modControlStd: Funktionen im Zusammenhang mit der Standardprüfung, wie z. B. das Erstellen von Standardprüfungsergebnissen und das Hinzufügen von Kandidatenwörtern
- modTest: Testcode
- modUtil: Gemeinsame Funktionen (Protokollierung, Formatierung, Suffix-Entfernung usw.)
- Generierung von Mod-Abkürzungen: Erstellen Sie eine Abkürzung, indem Sie den englischen vollständigen Namen des Wortes und die maximale Anzahl von Ziffern der Abkürzung eingeben
▼ Klassenmodulobjekt
- CDBConnectionUnit: Klasse, die Funktionen wie DB-Verbindung, SQL-Ausführung und Ergebniserzeugung bereitstellt, um Standardwörter/Begriffe/Domänen aus der Standard-Repository-DB zu aktualisieren
- CStdDomain: Klasse einer Standarddomäneneinheit
- CStdDomainDic
- Klasse zum Durchsuchen der Standarddomänenliste als Dictionary-Struktur (Key-Value)
- Schlüssel: Domänenklassifizierungsname
- Wert: Domain Sammlung der entsprechenden Domain-Taxonomie
- CStdTerm: Klasse eines Standardbegriffs
- CStdTermDic
- Klasse zum Durchsuchen von Standardbegriffslisten als Dictionary-Struktur (Key-Value)
- Schlüssel: Begriffslogikname
- Wert: eine Instanz der CStdTerm-Klasse
- Liest das Standard-Terminologiewörterbuch und lädt es als Wörterbuchstruktur in den Speicher
- CStdWord: Klasse eines Standardwortes
- CStdWordCol: Klasse zum Verwalten einer Liste von Homophonen für ein Standardwort
- CStdWordDic
- Klasse zum Durchsuchen von Standardwortlisten als Dictionary-Struktur (Key-Value)
- Schlüssel: Wortlogischer Name
- Wert: Instanzsammlung der CStdWord-Klasse (CStdWordCol-Objekt)
- Verwaltet intern zusätzliches Wörterbuch mit physikalischem Wortnamen als Schlüssel
- Beim Vorgang des Lesens des Standardwortverzeichnisses und Ladens desselben als Verzeichnis in den Speicher werden doppelte logische Namen und doppelte physikalische Namen geprüft.
4.6. Beschreibung der Haupt-VBA-Klasse und Zusammenfassung des allgemeinen Logikflusses
Die Hauptklassen sind „CStdWordDic“, die das Standardwörterbuch verwaltet, „CStdTermDic“, die das Standardwörterbuch verwaltet, und „CStdDomainDic“, die das Standarddomänenwörterbuch verwaltet. Die gesamte Logik wird in der „Standard Check“-Prozedur des „modControlStd“-Moduls abgewickelt.
Zusammengefasst ist es wie folgt.
4.6.1. CStdWordDic-Klasse
Die CStdWordDic-Klasse verwaltet die Liste jedes Standardworts, indem sie die Mitgliedsvariable des Wörterbuchtyps verwendet. Der Schlüssel ist der Wortname (Wortlogikname), der Wert hat im Allgemeinen ein Wortobjekt (CStdWord-Typ). Wenn Duplikate für einen logischen Wortnamen zulässig sind, d. h. wenn Homophone zulässig sind, ist Value ein Collection-Objekt, das mehrere Wortobjekte enthält (CStdWord-Typ). Intern verwaltet es zusätzlich ein Wörterbuch mit dem physikalischen Namen des Wortes als Schlüssel und dem Wortobjekt als Wert.
Um festzustellen, ob es ein Homophon gibt, haben wir überlegt, ob wir es nach dem Typ des Value-Objekts klassifizieren, das Value-Objekt gleich einer Sammlung machen und es danach klassifizieren, ob die Elementanzahl der Sammlung 1 oder 2 ist, oder mehr Es wurde nach Typ klassifiziert.
So erscheint in der „Standard Check“-Prozedur des „modControlStd“-Moduls an mehreren Stellen der folgende Codetyp.
If TypeOf oStdWordObj Is CStdWord Then '논리명이 유일한 경우 Set oStdWord = oStdWordObj sToken = oStdWord.m_s단어논리명 ... ElseIf TypeOf oStdWordObj Is CStdWordCol Then '동음이의어가 있어 논리명이 2개 이상인 경우 b동음이의어Matched = True ... End If
Bitte beachten Sie die folgenden Informationen zum Wörterbuchtyp.
- Der Wörterbuchtyp von Excel VBA hat eine HashMap-Struktur, die aus Schlüssel und Wert besteht.
- Es ist kein Basistyp und wird nach Verweis auf die „Microsoft Scripting Runtime“-Bibliothek verwendet oder als Objekttyp deklariert und mit CreateObject („Scripting.Dictionary“) erstellt, um eine Instanz zu erstellen.
4.6.2. CStdTermDic-Klasse
Die CStdTermDic-Klasse verwaltet die Liste aller Standardbegriffe mithilfe der Member-Variablen vom Typ Wörterbuch. Schlüssel ist der logische Name des Begriffs und Wert ist die Begriffsentität (CStdTerm-Typ). Es wird für die Logik verwendet, die bestimmt, ob Termeinheiten während der Eigenschaftsstandardprüfung übereinstimmen.
4.6.3. CStdDomainDic-Klasse
Die CStdDomainDic-Klasse verwaltet die Liste jeder Standarddomäne mithilfe der Member-Variablen vom Typ Dictionary. Schlüssel ist der Domänenklassifizierungsname, Wert ist die Domänensammlung. Die Elemente der Domänensammlung sind Domänenobjekte vom Typ CStdDomain.
4.6.4. Zusammenfassung des gesamten Logikflusses
Die gesamte Logik ist in der „Standard Check“-Prozedur des Moduls modControl implementiert. Eine kurze Zusammenfassung des Prozesses ist wie folgt.
- Lesen Sie Daten aus jedem Standardwort-/Begriffs-/Domänen-Wörterbuchblatt und erstellen Sie Variablen für jeden Klassentyp. Es ist in der Load()-Prozedur jedes Klassentyps implementiert.
- Liest die Liste der zu prüfenden Eigenschaften und speichert sie im Variant-Array.
- Für jede zu prüfende Eigenschaft wird sie unter Verwendung der Schlüssel-Wert-Struktur des Standardwörterbuchs durchsucht, und das Prüfergebnis wird in einem Array vom Typ Variant gespeichert. Nach Abschluss der Bearbeitung werden die im Variantentyp hinterlegten Prüfergebnisse auf dem Blatt ausgegeben.
Damit ist die Beschreibung des Datenstandard-Prüfwerkzeugs abgeschlossen. Wenn Sie Fragen haben, hinterlassen Sie diese bitte in den Kommentaren.
Das Tool zur Prüfung von Datenstandards finden Sie unten im Github-Repository.
https://github.com/DAToolset/ToolsForDataStandard
<< Liste verwandter Artikel >>
- Data Standard Check Tool_1.Übersicht
- Datenstandard-Inspektionstool_2.1 Bildschirmaufbau, 2.2 Standardinspektionsfunktion
- Datenstandard-Überprüfungstool_2.3 Konfiguration des Datenstandard-Wörterbuchs
- Data Standard Check Tool_3. Ergebnisse der Standardprüfung
- Datenstandard-Prüftool_4.Anhang
- Data Standard Check Tool_v1.33 So beheben Sie den Fehler „Nicht genügend Arbeitsspeicher“
- Data Standard Check Tool Beschreibung Inhalt , Download