Страница 1 из 2
Formulas Использование формул
Добавлено: 26 Март 2012, 19:07
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
Re: Formulas Использование формул
Добавлено: 27 Март 2012, 12:10
kreator
Можно манипулировать, если результат запоминать в локальную переменную. Только вопрос такой - а зачем? Какая задача стоит?
Re: Formulas Использование формул
Добавлено: 28 Март 2012, 14:05
Developer
Задача состоит в расчёте конечного сальдо (остатка) по банковской выписке расчётного счёта на основании прихода и расхода за определённый период и её отображения в Browse окне (и аналогичную бухгалтерскую работу).
Использование локальной переменной пробывал, но тогда необходимо её полное отслеживание(обнуление) при повторном вызове Browse - окна или смене Tab-а и т. д.
В связи с этим очень интересует вопрос как задать правильно формулу в которой будет возможность манипулировать данными во взаимодействии с предыдущими и последующими записями на основании заданного диапазона дат или диапазона порядкового номера.
По возможности, подробный пример.
А по большому счёту прошу подсказать, есть ли шаблоны решающие задачи бухгалтерского учёта, аналогично функционалу 1С:Предприятие - Бухгалтерский учёт.
С Уважением, Developer,
cfwdeveloper@gmail.com
Re: Formulas Использование формул
Добавлено: 28 Март 2012, 14:27
kreator
Ну это просто. Остатком обзываешь локальную переменную, например LOC:Remainder. Не надо в таблице хранить лишние данные. Загоняешь эту локальную переменную в Browse. Находишь Embed для этого Browse с названием SetQueueRecord. И там пишешь формулу: LOC:Remainder = LOC:Remainder+DAT:Arrival-DAT:Expence. И в каждой строчке Browse будет своё значение остатка.
Re: Formulas Использование формул
Добавлено: 28 Март 2012, 17:21
Алексей- Софт-Центр
Добрый день!
Очень много полезного есть в примерах:
например: Clarion6\Examples\HowTo-ABC\Browses
очень много таких простых "бантиков"
для броузеров АВС и т.д.
Алексей
Re: Formulas Использование формул
Добавлено: 28 Март 2012, 19:13
Developer
Всем привет!
Kreator спасибо! Решение работает, по такому-же принципу работает и в формулах. Однако это требует отслеживания локальной переменной и если использовать стандартный Wizard (Browse + Update) то происходит не корректный расчёт при переходе между Tab-ми или Update-ми. Необходимо обнулять локальную переменную.
Спасибо Алексею - Софт-Центр за подсказку! Буду изучать.
Может кто откликнется и предложит готовые типовые шаблоны на данную тему, а также шаблоны аналоги стандартному функционалу 1С:Предприятие - Бухгалтерский учёт.
С Уважением, Developer,
cfwdeveloper@gmail.com
Re: Formulas Использование формул
Добавлено: 29 Март 2012, 12:48
kreator
Я бы что ещё сделал бы. Загнал бы обнуление локальной переменной в Embed "ResetQueue" (Т.е. как только очередь заново формируется, надо обнулять). Потом сделал бы Loading Mode для Browse как File. А вот проблема другой сортировки так просто не решается. Если это очень нужно, то в ту же точку вставки надо писать блок со всеми set, next и т.д. (либо если SQL, то запрос аля Select)
Re: Formulas Использование формул
Добавлено: 30 Март 2012, 3:21
Developer
Привет всем!
Kreator спасибо! Твои идеи работают! В дальнейшем, поняв принцип возможно получить требуемый результат.
Однако, так я и не получил ответа есть ли шаблоны аналоги стандартному функционалу 1С:Предприятие - Бухгалтерский учёт?
Хотелось бы для решения данного вопроса использовать преимущество Clarion-а посредством шаблонов.
К теме Formulas (Формулы) - Как настроить IDE Clarion 8.0.8973 для автоматической генерации (перегенерации) файлов исходных модулей при добавлении или изменении формулы в решении (удаляеш вручную *.clw прекрасно генерит новые, если есть старые *.clw генерации из APP нет).
P. S. Стоит ли вынести данный вопрос отдельной темой?
С Уважением, Developer,
cfwdeveloper@gmail.com
Re: Formulas Использование формул
Добавлено: 30 Март 2012, 9:49
Ал
Developer писал(а):Однако, так я и не получил ответа есть ли шаблоны аналоги стандартному функционалу 1С:Предприятие - Бухгалтерский учёт?
Хотелось бы для решения данного вопроса использовать преимущество Clarion-а посредством шаблонов.
видимо нет аналогов...
Есть такая штука
http://forum.clarionlife.net/phpbb/view ... 1&start=15, но платная, у меня пока нет, но в письме с реквизитами на оплату от автора получил пример, проверил под 8.2 УТ10.3 - все ОК.
Re: Formulas Использование формул
Добавлено: 30 Март 2012, 11:21
kreator
К теме Formulas (Формулы) - Как настроить IDE Clarion 8.0.8973 для автоматической генерации (перегенерации) файлов исходных модулей при добавлении или изменении формулы в решении (удаляеш вручную *.clw прекрасно генерит новые, если есть старые *.clw генерации из APP нет).
P. S. Стоит ли вынести данный вопрос отдельной темой?
Если это так, то это проблема. Любое изменение в App влечет за собой новую генерацию .clw. Странно, что никто это не замечал. Надо проверить на досуге.
А по поводу стандартного функционала 1С:предприятие - многим здесь, в частности мне, не понятно, что это. Объяснил бы, что надо. У каждого написан свой функционал, может даже лучше 1С

.
Re: Formulas Использование формул
Добавлено: 30 Март 2012, 11:33
kreator
Перегенерация работает! Проверил. Без проблем. Может на зеленый кружок не нажимаешь после изменения формулы?
Re: Formulas Использование формул
Добавлено: 30 Март 2012, 13:24
Ал
kreator писал(а):Объяснил бы, что надо. У каждого написан свой функционал, может даже лучше
попишет постоянно на кларионе полгодика хотя бы - глядишь, все и наладится

Re: Formulas Использование формул
Добавлено: 30 Март 2012, 22:28
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
Re: Formulas Использование формул
Добавлено: 31 Март 2012, 0:44
Ал
Developer писал(а):Однако перегенерация у меня не работает
может так
http://forum.clarionlife.net/phpbb/view ... f=1&t=2805 ?
а при работе с формулами может пригодиться EVALUATE(expression)
SDE:Summa = SDE:Quantity*evaluate(SWR:Formula)....
Re: Formulas Использование формул
Добавлено: 01 Апрель 2012, 0:50
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