Formulas Использование формул

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Formulas Использование формул

Сообщение Developer »

Доброго времени всем участникам форума forum.clarionlife.net
При разработке приложений Clarion APP32 есть возможность использовать встроенный редактор формул (закладка Formulas). В связи с этим возникает вопрос, возможно ли и если возможно, конкретно каким образом манипулировать данными при создании формул не только относящейся к текущей записи (строке) с чем не возникает проблем, а создать формулу для манипулирования результатом текущей записи (строки) во взаимодействии в частности с предыдущей и последующей записью (в идеале указываешь значение необходимого поля для вычисления результата):

Условный пример:
DAT:Number DAT:Date DAT:Arrival DAT:Expence DAT:Remainder
Номер Дата Приход Расход Остаток
1 01.01.2012 10 5 5
2 02.01.2012 20 10 15

Result: DAT:Remainder
Statement: DAT:Arrival - DAT:Expence

Данное выражение действует только для данных текщей строки, а необходима формула приводящая к вычислению согласно условного примера.

Выскажите свои мнения или предложите конкретные примеры по данному вопросу.
С Уважением, Developer, cfwdeveloper@gmail.com
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4982
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Re: Formulas Использование формул

Сообщение kreator »

Можно манипулировать, если результат запоминать в локальную переменную. Только вопрос такой - а зачем? Какая задача стоит?
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Formulas Использование формул

Сообщение Developer »

Задача состоит в расчёте конечного сальдо (остатка) по банковской выписке расчётного счёта на основании прихода и расхода за определённый период и её отображения в Browse окне (и аналогичную бухгалтерскую работу).
Использование локальной переменной пробывал, но тогда необходимо её полное отслеживание(обнуление) при повторном вызове Browse - окна или смене Tab-а и т. д.
В связи с этим очень интересует вопрос как задать правильно формулу в которой будет возможность манипулировать данными во взаимодействии с предыдущими и последующими записями на основании заданного диапазона дат или диапазона порядкового номера.
По возможности, подробный пример.
А по большому счёту прошу подсказать, есть ли шаблоны решающие задачи бухгалтерского учёта, аналогично функционалу 1С:Предприятие - Бухгалтерский учёт.

С Уважением, Developer, cfwdeveloper@gmail.com
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4982
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Re: Formulas Использование формул

Сообщение kreator »

Ну это просто. Остатком обзываешь локальную переменную, например LOC:Remainder. Не надо в таблице хранить лишние данные. Загоняешь эту локальную переменную в Browse. Находишь Embed для этого Browse с названием SetQueueRecord. И там пишешь формулу: LOC:Remainder = LOC:Remainder+DAT:Arrival-DAT:Expence. И в каждой строчке Browse будет своё значение остатка.
We are hard at work… for you. :)
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Formulas Использование формул

Сообщение Алексей- Софт-Центр »

Добрый день!
Очень много полезного есть в примерах:
например: Clarion6\Examples\HowTo-ABC\Browses
очень много таких простых "бантиков"
для броузеров АВС и т.д.

Алексей
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Formulas Использование формул

Сообщение Developer »

Всем привет!
Kreator спасибо! Решение работает, по такому-же принципу работает и в формулах. Однако это требует отслеживания локальной переменной и если использовать стандартный Wizard (Browse + Update) то происходит не корректный расчёт при переходе между Tab-ми или Update-ми. Необходимо обнулять локальную переменную.

Спасибо Алексею - Софт-Центр за подсказку! Буду изучать.

Может кто откликнется и предложит готовые типовые шаблоны на данную тему, а также шаблоны аналоги стандартному функционалу 1С:Предприятие - Бухгалтерский учёт.

С Уважением, Developer, cfwdeveloper@gmail.com
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4982
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Re: Formulas Использование формул

Сообщение kreator »

Я бы что ещё сделал бы. Загнал бы обнуление локальной переменной в Embed "ResetQueue" (Т.е. как только очередь заново формируется, надо обнулять). Потом сделал бы Loading Mode для Browse как File. А вот проблема другой сортировки так просто не решается. Если это очень нужно, то в ту же точку вставки надо писать блок со всеми set, next и т.д. (либо если SQL, то запрос аля Select)
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Formulas Использование формул

Сообщение Developer »

Привет всем!
Kreator спасибо! Твои идеи работают! В дальнейшем, поняв принцип возможно получить требуемый результат.
Однако, так я и не получил ответа есть ли шаблоны аналоги стандартному функционалу 1С:Предприятие - Бухгалтерский учёт?
Хотелось бы для решения данного вопроса использовать преимущество Clarion-а посредством шаблонов.

К теме Formulas (Формулы) - Как настроить IDE Clarion 8.0.8973 для автоматической генерации (перегенерации) файлов исходных модулей при добавлении или изменении формулы в решении (удаляеш вручную *.clw прекрасно генерит новые, если есть старые *.clw генерации из APP нет).
P. S. Стоит ли вынести данный вопрос отдельной темой?

С Уважением, Developer, cfwdeveloper@gmail.com
С Уважением, Developer
Ал
✯ Ветеран ✯
Сообщения: 1014
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Re: Formulas Использование формул

Сообщение Ал »

Developer писал(а):Однако, так я и не получил ответа есть ли шаблоны аналоги стандартному функционалу 1С:Предприятие - Бухгалтерский учёт?
Хотелось бы для решения данного вопроса использовать преимущество Clarion-а посредством шаблонов.
видимо нет аналогов...
Есть такая штука http://forum.clarionlife.net/phpbb/view ... 1&start=15, но платная, у меня пока нет, но в письме с реквизитами на оплату от автора получил пример, проверил под 8.2 УТ10.3 - все ОК.
kreator
✯ Ветеран ✯
Сообщения: 4982
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Re: Formulas Использование формул

Сообщение kreator »

К теме Formulas (Формулы) - Как настроить IDE Clarion 8.0.8973 для автоматической генерации (перегенерации) файлов исходных модулей при добавлении или изменении формулы в решении (удаляеш вручную *.clw прекрасно генерит новые, если есть старые *.clw генерации из APP нет).
P. S. Стоит ли вынести данный вопрос отдельной темой?
Если это так, то это проблема. Любое изменение в App влечет за собой новую генерацию .clw. Странно, что никто это не замечал. Надо проверить на досуге.

А по поводу стандартного функционала 1С:предприятие - многим здесь, в частности мне, не понятно, что это. Объяснил бы, что надо. У каждого написан свой функционал, может даже лучше 1С :lol:.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4982
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Re: Formulas Использование формул

Сообщение kreator »

Перегенерация работает! Проверил. Без проблем. Может на зеленый кружок не нажимаешь после изменения формулы?
We are hard at work… for you. :)
Ал
✯ Ветеран ✯
Сообщения: 1014
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Re: Formulas Использование формул

Сообщение Ал »

kreator писал(а):Объяснил бы, что надо. У каждого написан свой функционал, может даже лучше
попишет постоянно на кларионе полгодика хотя бы - глядишь, все и наладится :D
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Formulas Использование формул

Сообщение Developer »

Kreator спасибо за ответы! Однако перегенерация у меня не работает.
Зелёную кнопочку я нажимаю (в смысле сохранить изменения)
Возможно это связано с Windows 7 SP1 или DotNET 4.0
Также иногда среда (IDE) C8 8.0.8973 подвисает или вылетает с ошибкой даже после нормального завершения при закрытом решении.
Думаю надо будет установить Clarion 8.0 на чистые Windows 7 SP1 и Windows XP SP3 для выяснения причины ошибок.

Ал Спасибо за ссылку, попробую связаться с автором, где-то я уже читал об этом, что автор перевёл функционал 1С на Clarion и советовался на каком-то (не помню) форуме о авторском праве на своё решение.

Всем спасибо за советы и решения. Жду очередных откликов.

С Уважением, Developer, cfwdeveloper@gmail.com
С Уважением, Developer
Ал
✯ Ветеран ✯
Сообщения: 1014
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Re: Formulas Использование формул

Сообщение Ал »

Developer писал(а):Однако перегенерация у меня не работает
может так http://forum.clarionlife.net/phpbb/view ... f=1&t=2805 ?
а при работе с формулами может пригодиться EVALUATE(expression)
SDE:Summa = SDE:Quantity*evaluate(SWR:Formula)....
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Formulas Использование формул

Сообщение Developer »

Проблема с перегенерацией при изменении формулы существует!
Как решение её - Tools - Application Options - Generation снять флаг Condition Generation - тогда перегенерация будет всегда.
А вот при установленном флаге (галочке) при изменении формулы, к примеру
DAT:Remainder+DAT:Arrival-DAT:Expence + 5000 а затем
DAT:Remainder+DAT:Arrival-DAT:Expence - 1000 перегенерация не происходит.
Проверено несколько раз на чистой Windows 7 SP1 Русский Clarion 8.0.8973.
Что это баг или так должно быть?

Прошу высказать своё мнение участников форума!

Ал благодарю за дельные советы!

С Уважением, Developer, cfwdeveloper@gmail.com
С Уважением, Developer
Ответить