変換されたサブテーブルとそのフィールドに対するポインタ
日付 | 2009/06/19 |
---|---|
ID | 75803 (英語原文参照) |
バージョン | 11 |
プラットフォーム | Mac & Win |
サブテーブルを有するストラクチャは、4D v11 SQLに変換した場合、以前サブテーブルであったテーブルは、特殊なテーブルに変換されます。そのようなテーブルに対するポインタを取得するには、少しの工夫が必要です。
変換されたサブテーブルには、定まった命名規則があります。たとえば、"[MyTable]MySubtable"というサブテーブル名は、"[MyTable_MySubtable]"になります。そのような訳で、サブテーブル、またはそのフィールドに対するポインタは、次のような方法で所得することができます。
C_LONGINT($Pos) C_TEXT($TableName_T;Subtable_T;Field_T) C_POINTER($Subtable_P;$Field_P) $TableName_T:="[OneTable]Subjects'Subject" $Pos:=Position("'";$TableName_T) Field_T:=Substring($TableName_T;$Pos+1) $TableName_T:=Substring($TableName_T;1;$Pos-1) Subtable_T:=Replace String($TableName_T;"]";"_")+"]" EXECUTE FORMULA("$Subtable_P:=(->"+Subtable_T+")") EXECUTE FORMULA("$Field_P:=(->"+Subtable_T+Field_T+")")