フォーム名の一覧を作成するメソッド
| 日付 | 2011/07/01 |
|---|---|
| ID | 76296 (英語原文参照) |
| バージョン | v12 |
| プラットフォーム | Mac/WIn |
この記事は、最新ではないバージョンに関連した方法について解説しています。
最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。
MSCでストラクチャファイルの検証を実行すると, XML形式の検証ログファイルが出力されます。このログファイルには, すべてのプロジェクトフォーム名およびテーブルフォーム名が記載されているので, これを解析してフォーム名を抽出すれば, 特定のテーブルに関連付けられたフォームの一覧を作成することができます。
//Get_Forms
C_POINTER($1)
C_TEXT($2)
ARRAY TEXT($elemRef_a;0)
ARRAY TEXT($formName_a;0)
C_TEXT($elemRef;$rootRef;$tableName;$formName;$path;$xPath)
C_INTEGER($loopIndex;$namePos;$numParams)
$numParams:=Count parameters
If ($numParams>1)
$tableName:=$2
End if
//In specify the actual name of the database
$path=Get 4D folder(Logs Folder)+"_Verify_Log.xml"
$rootRef:=DOM Parse XML source($path)
If ($numParams>1)
//element step[7] contains the information for the table forms
$xPath:="/verifylog/step[7]/step"
Else
//element step[6] contains the information for the project forms
$xPath:="/verifylog/step[6]/step"
End if
$elemRef:=DOM Find XML element($rootRef;$xPath;$elemRef_a)
For ($loopIndex;1;Size of array($elemRef_a))
DOM GET XML ATTRIBUTE BY NAME($elemRef_a{$loopIndex};"title";$formName)
If ($numParams>1)
$namePos:=Position($tableName;$formName)
If ($namePos>0)
$formName:=Substring($formName;Length($tableName)+4)
APPEND TO ARRAY($formName_a;$formName)
End if
Else
APPEND TO ARRAY($formName_a;$formName)
End if
End for
DOM CLOSE XML($rootRef)
COPY ARRAY($formName_a;$1->)