DA# Macro_v2.13_20221217 デプロイ
Reverse関連の2つのエラーを修正したDA# Macro_v2.13_20221217を展開します。修正したエラーは次のとおりです。
- [修正] Reverse: templateに指定したAttribute属性値のジャンプ修正(標準化、情報保護の有無、情報保護等級、暗号化の可否、スクランブル)
- [修正] Reverse:情報保護等級の値が設定されていないバグを修正
参考までに、DA# Macro紹介記事(DA# Macro(1): DA#, DA# API, DA# Macro (マクロ) 概要 – 生産性 Skill (prodskill.com)) は v2.12 に基づいて説明した。
1. バグ現象
1.1。 Reverse: template で指定した Attribute 属性値をジャンプする
templateファイルの「Column」シートに指定した値が1つずつ後方に押されて設定されるバグです。たとえば、テンプレートファイルに次のように入力すると、このバグが再現されます。
各Attribute属性に入力できる値は次のとおりです。
- 標準化:指定された値の1つのみを入力可能
- 情報保護の有無:Y/Nのうち1つのみ入力可能
- 情報保護等級:文字列
- 暗号化可:Y/Nのうち1つのみ入力可能
- スクランブル:文字列
入力できる値がそれぞれ異なるため、1つずつ押すと正常に設定されない。
1.2. Reverse:情報保護等級値が設定されていません
上の画像で「情報保護等級」の値を入力してもデータモデルに値が設定されないバグです。 「情報保護等級」の値をY/Nのうち1つだけ入力可能に扱っており、文字列値を無視して入力されない。
2. 修正内容
2.1。 [修正] Reverse: template で指定した Attribute 属性値のジャムを修正
modDAConstTypeモジュールの変更前のコード(一部抜粋)は次のとおりです。
'---------------------------------------------------------------------------------------------------- 'Reverse Attribute property Index Public Const DA_REVATTR_Sequence_IDX As Long = 0 Public Const DA_REVATTR_ModelName_IDX As Long = 1 Public Const DA_REVATTR_EntityName_IDX As Long = 2 Public Const DA_REVATTR_Name_IDX As Long = 3 ... Public Const DA_REVATTR_Inclusive_IDX As Long = 27 Public Const DA_REVATTR_StandardType_IDX As Long = 28 Public Const DA_REVATTR_PrivacyAct_IDX As Long = 29 Public Const DA_REVATTR_PrivacyGrade_IDX As Long = 30 Public Const DA_REVATTR_Encryption_IDX As Long = 31 Public Const DA_REVATTR_EncryptionMethod_IDX As Long = 32
DA_REVATTR_Inclusive_IDX をコメントアウトし、その後定数値を1つずつ減らした。この定数値は、Reverse templateファイル「Column」シートの列順番を表します。
'---------------------------------------------------------------------------------------------------- 'Reverse Attribute property Index Public Const DA_REVATTR_Sequence_IDX As Long = 0 Public Const DA_REVATTR_ModelName_IDX As Long = 1 Public Const DA_REVATTR_EntityName_IDX As Long = 2 Public Const DA_REVATTR_Name_IDX As Long = 3 ... 'Public Const DA_REVATTR_Inclusive_IDX As Long = 27 '2022-12-17 주석 처리(Reverse에는 사용하지 않도록 처리함) Public Const DA_REVATTR_StandardType_IDX As Long = 27 Public Const DA_REVATTR_PrivacyAct_IDX As Long = 28 Public Const DA_REVATTR_PrivacyGrade_IDX As Long = 29 Public Const DA_REVATTR_Encryption_IDX As Long = 30 Public Const DA_REVATTR_EncryptionMethod_IDX As Long = 31
2.2. [修正] Reverse:情報保護等級の値が設定されていないバグを修正
CDAAttributeクラスのSetValueプロシージャに情報保護等級値をGetBoolean関数に変換していた。情報保護等級は Y/N に設定する値ではなく、入力した文字列をそのまま設定しなければならないが、不必要に GetBoolean 関数を実行して値が設定されなかった。
次のようにコードを修正しました。
'DA# Attribute 개체에 값 설정 Public Sub SetValue(ByRef aodAttribute As Modeler5.Attribute) .... '-- 변경 전 코드 arrAttr(Modeler5.ATR_PRIVACYGRADE) = GetBoolean(Me.m_s정보보호등급) '-- 변경 후 코드 arrAttr(Modeler5.ATR_PRIVACYGRADE) = Me.m_s정보보호등급
参考までに、GetBoolean関数は次のように実装されています。
'Text(Y, N)의 Boolean value 변환(True, False) Public Function GetBoolean(aValue As String) As Boolean GetBoolean = IIf(UCase(Trim(aValue)) = "Y", True, False) 'Y=True, Else=False End Function
3. DA# Macro_v2.13_20221217 ダウンロード
バグを修正したバージョンをgithubに置いた。以下のURLからダウンロードできます。
https://github.com/DAToolset/DA-Macro/raw/main/DA%23%20Macro_v2.13_20221217.xlsm