フォーム名の一覧を作成するメソッド
日付 | 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->)