14.04.2003, 09:31 | #1 |
Участник
|
Помогите разобраться
Ниже пример Jobа, в котором возникает ошибка, которая мне непонятна.
С помощью внутренней функции нельзя получить данные, если поле является Base Enumом. Как это обойти? Очень надо. static void Job1(Args _args) { LedgerJournalTrans LedgerJournalTrans; str 30 GettingFieldName; anytype GetField(common common, str 30 FieldName) { anytype Ret; ret = common.(fieldName2id(common.TableId, FieldName)); return Ret; } ; select * from LedgerJournalTrans; GettingFieldName = "Txt"; print (LedgerJournalTrans.(fieldName2id(LedgerJournalTrans.TableId, GettingFieldName))); GettingFieldName = "AccountType"; print (LedgerJournalTrans.(fieldName2id(LedgerJournalTrans.TableId, GettingFieldName))); GettingFieldName = "Txt"; print (GetField(LedgerJournalTrans, GettingFieldName)); GettingFieldName = "AccountType"; print (GetField(LedgerJournalTrans, GettingFieldName)); pause; } |
|
14.04.2003, 09:59 | #2 |
Участник
|
Запустил твой job в 3.0 - всё работает :-)
|
|
14.04.2003, 11:37 | #3 |
Участник
|
Но у меня 2.5 и другого пока не предвидется.
|
|
14.04.2003, 11:44 | #4 |
Участник
|
Похоже это БАГ. Обошел проблему таки образом.
static void smz_Job4(Args _args) { LedgerJournalTrans LedgerJournalTrans; str 30 GettingFieldName; anytype GetField(common common, str 30 FieldName) { return common.(fieldName2id(common.TableId, FieldName)); } ; select * from LedgerJournalTrans; GettingFieldName = "Txt"; print (LedgerJournalTrans.(fieldName2id(LedgerJournalTrans.TableId, GettingFieldName))); GettingFieldName = "AccountType"; print (LedgerJournalTrans.(fieldName2id(LedgerJournalTrans.TableId, GettingFieldName))); GettingFieldName = "Txt"; print (GetField(LedgerJournalTrans, GettingFieldName)); GettingFieldName = "AccountType"; print (GetField(LedgerJournalTrans, GettingFieldName)); pause; } |
|