Конечно, понятно, что можно отдельную функцию нарисовать, но может всё намного проще? Какой-нибудь параметр в aHeads, или какой-нибудь параметр самого инитлиста?
В массив aValid адо писать либо значение для макроса (кавычки), либо блок кода.
Результат дествия должен иметь логическое значение .T. или .F.
На старом форуме поищите тему по слову "Урок"
nordk пишет:
В массив aValid адо писать либо значение для макроса (кавычки), либо блок кода.
Результат дествия должен иметь логическое значение .T. или .F.
На старом форуме поищите тему по слову "Урок"
Нашёл. Я и говорю. У меня проблемы с синтаксисом, похоже.
мне нужно что бы после ввода (в aHeads) программа получившееся число делила на 59 без остатка, и прибавляла 59 (скидки/наценки, что бы ндс не полз). Например, набивает продавец наценку 1000 р, что бы программа понимала, что это 16+1*59, то есть не 1000 р, а 1003 р.
Господа, благодаря всеми горячо любимым юзерам, задачка усложняется.
Нужно между реальных строчек с этими самыми сабсами вставить их отображение (т. е. переменные) в процентах. Соответственно, при редактировании процентов всё должно красиво пересчитываться. Т. е. примерно вот так:
Я так понял, это паплик переменные работают на протяжении всей функции и в подфункциях, но значения им присваиваются только перед aHeads, а в aWhen/aValid не обновляются (в отладчике строчка проскакивает ОК, а значения переменным не присваиваются )
Посмотрите на bPreGet, если Вам нужна инициализация значений элементов aIn до создания окна ввода/редактирования.
Этот блок кода для этого и создан.
Если я правильно понимаю Вашу проблему конечно...
NotWar пишет:
When/Valid новые значения им не присваиваются.
Значения им там не присваиваться не могут.
Проверить очень просто.
напишите в один из элементов aWhen
{||test()}
и дальше
FUNCTION TEST()
ALTD()
PERC:=1
RETURN.T.
Потом в отладчике Вы увидите как это все работает....
Действительно до конца не могу понять о чем Вы пишете.
То ли речь идет про обновление экрана - при переприсвоении значений экран никто перерисоывать не будет (я про инструмент)
Или возможно речь про номера элементов массива - аHeads увеличили а aWhen/aValid ему в соответствие не привели - трудно очень понять суть по отрывочной информации
Речь идёт о скидках и наценках (собственно, эти пользовательские сабсы и сабци). Они реально присутствуют в базе. Их как раз этот плагин и высчитывает - округляет что бы нацело на 59 делились, пересчитывает цену. Всего их 4 шт. Но иногда нужно забивать эти скидки не в денежном эквиваленте, а в процентном (от цены). Но процентных полей в базе нету. Т. е. их надо как-то объявить на время работы программы. Что бы вбивая проценты (например, 3 процента от цены) автоматически прорисовывалась (пересчитывалась, нацело делилась на 59 и записывалась в соответствующее поля бд скидка/наценка) в денежном эквиваленте, а в процентном просто рисовалась.
Только я никак не могу понять как это грамотно сделать.