Tips

変換されたサブテーブルとそのフィールドに対するポインタ

日付2009/06/19
ID75803 (英語原文参照)
バージョン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+")")