EditInPlace + DIM

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

EditInPlace + DIM

Сообщение gopstop2007 »

Привет всем!
Есть Browse в него добавляю поле Users SHORT,DIM(20), поле(вернее поля [...]) используется как EditInPlace, при компиляции появляются ошибки. Если отключить EIP то все компилируется без ошибок, как-то можно это обойти? Ну не хочется плодить однотипные поля.

outwaresusers FILE,DRIVER('TOPSPEED'),NAME('outwaresusers.TPS')
OUT:WaresKey KEY(+OUT:WARES),DUP,NOCASE,OPT
RECORD RECORD
OUT:NWARES SHORT
OUT:WARES STRING(60)
OUT:PRICE DECIMAL(11,4)
OUT:PRICEOut DECIMAL(11,4)
OUT:EXPENSES DECIMAL(9,2)
OUT:SumGr DECIMAL(9,2)
OUT:Users SHORT,DIM(20)
END
END

Clarion 6.3 9058 ABC (Windows XP SP3)

Спасибо за внимание!
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5163
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Re: EditInPlace + DIM

Сообщение kreator »

Я так понимаю, ругается на имя метода класса, не нравятся квадратные скобки. Что делать? В 'Column Specific' на закладке 'Class' измени 'Object Name' с EditInPlace::OUT:Users[1] на EditInPlace::OUT:Users1, например. И всё покатит.
We are hard at work… for you. :)
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Re: EditInPlace + DIM

Сообщение gopstop2007 »

Спасибо, помогло!
Век живи-век учись, и все равно умрешь дураком. :)
А как сделать при подсчитывании Sum(Totaling) колонок в Browse используя массив LOC:Sum SHORT,DIM(20). Ситуация схожа с вышеуказанной, но к сожалению -
kreator писал(а):... измени 'Object Name' с EditInPlace::OUT:Users[1] на EditInPlace::OUT:Users1, ...
не проходит :(
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5163
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Re: EditInPlace + DIM

Сообщение kreator »

В закладке 'Totaling' ставишь:
Total Target Field: LOC:Sum[1]
Total Type: Sum
Field To Total: OUT:Users[1]
Total Based On: Each Record Read

Такой вариант не проходит?
We are hard at work… for you. :)
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Re: EditInPlace + DIM

Сообщение gopstop2007 »

нет не проходит
kreator писал(а):В закладке 'Totaling' ставишь:
Total Target Field: LOC:Sum[1]
Total Type: Sum
Field To Total: OUT:Users[1]
Total Based On: Each Record Read
с полем Field To Total: OUT:Users[1] проблем нет, а вот с итоговым Total Target Field: LOC:Sum[1] проблема
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5163
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Re: EditInPlace + DIM

Сообщение kreator »

Ну исправь вручную файл с расширением *.clw, на который ругается. Найди процедуру ResetFromView.
Закоментируй - ! OUT:Users[1]:Sum REAL ! Sum variable for browse totals
Напиши своё - OUT:Users1:Sum REAL ! Sum variable for browse totals
Ну и дальше по тексту тоже исправь.
Вариант №2 - поправить шаблоны, чтобы генерилась переменная без квадратных скобок.
Вариант №3 - вставить текст выше в Embeds. Только проблема - как закоментировать ненужный блок. В Clarion# есть конструкция !~ ~!. Обычный Clarion это не поддерживает.
We are hard at work… for you. :)
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Re: EditInPlace + DIM

Сообщение gopstop2007 »

Жаль, что только так. Мда ведь вроде как стандартная ситуация, или в кларионе не любят массивы. Понятно что в ручную можно ВСЕ написать, но зачем шаблоны? Насчет закоментировать, а OMIT не подойдет?
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5163
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Re: EditInPlace + DIM

Сообщение kreator »

Посмотри, в какие точки в процедуре ResetFromView ставяться нужные тебе операторы. И вставь туда сделанные вручную коды циклов.
А, вообще, понятие массива в базах данных не нужно. Все равно в Appgen'е нужно написать 20 строчек.
И последний аргумент. Когда-нибудь придется переводить Вашу программу под SQL. А там массивов нет изначально.
We are hard at work… for you. :)
Ответить