Страница 7 из 12
Добавлено: 24 янв 2008, 09:41
Александр
да база то у всех одним деревом - просто целиком его никто не видит, из главного меню открывают нужные фрагменты и все, а вверх подняться не могут - ну нет вкладки входимость ну что тут поделаешь?
а кривые руки- ты о чем? у нас вообще запрещено прямое редактирование атрибутов - только через действия - а действия то для избранных ну или для всех
а про новые объекты и вообще про контекстное меню - тоже просто всем было объявлено что работаем только действиями поскольку все объекты содержат кучу служебных атрибутов без которых просто ни одно действие не сработает - а людям нужно что - людей нужно напугать - сказать что если так будешь делать - все будет работать - а если не так то ты ничего не испортишь но и работать ничего не будет и премию ты точно не получишь - так что решайте сами

Добавлено: 24 янв 2008, 11:03
Anderyt
предлагаю вопросы скорости и объема обсудить вот здесь:
http://www.lplm.ru/phpBB2/viewtopic.php?p=2199#2199
а то в этой теме уже чего только нет, помимо вопросов по workflow

Добавлено: 20 фев 2008, 10:00
Александр
А вот еще вопрос про пересчет массива или использование в массиве вычисляемых полей
на форме задачи есть массив с подмассивами короче внешне все это дело похоже на лист Excel
вопрос такой мне нужно допустим в первых 4х колонках вводить какие то цифры и в 5-й видеть результат неких операций над этими цифрами и дополнительно в конце видеть сумму по последней (5-й) колоннке по всей таблице в целом.
(конечно было бы круто просто положить OLE таблицу Excel на форму и не мучаться)
и чтоб как нибудь максимально эффективно
допустим юзер где-то чего-то ввел/исправил - и вся таблица пересчиталась бы
просто - если бы вычисляемые поля - то вопросов нет - но к ним нельзя обратиться из функций (наверно)
а если на событиях то вообще не понимаю как это завязать между собой- но должно быть как-то примитивно (просто щас трехмерное мышление временно не работает

)
подскажите

Добавлено: 21 фев 2008, 11:42
Старик Крупский
По событиям вроде несложно получается. Я бы выбрал событие "Изменение значения переменной" или "Переход к следующей строке массива". Затем, в действии для итоговой колонки (переменной) в текущий индекс записываем результат расчета по текущим индексам других колонок. Под текущим индексом я понимаю текущую выделенную строчку.
Как вариант, можно использовать событие "После нажатия кнопки-переменной" и тогда пересчет можно делать по щелчку на итоговом поле.
Добавлено: 27 фев 2008, 14:05
Александр
И еще вопросик про счетчик отфильтрованного массива
Есть массив - больше 1000 элементов, есть фильтр по различным условиям, т.е. элементов всегда допустим 1000 а на экране поcле фильтра 20
Как сделать такую штуку которая бы показывала то количество которое есть на экране? (может какя функция есть работающая вне формы массива, по факту?)
для того чтобы в случае каких нибудь избыточных фильтров - когда на экране вообше пусто - показать юзеру надпись (под/над массивом) типа -
вы ошиблись - элементов '0' измените условия отбора

Добавлено: 27 фев 2008, 18:13
Alexey
Я тут немножко не в теме, что творит, точнее создает Александр, но хотелось бы уточнить, как фильтры работают, если отбор объектов происходит с помощью действия, то добавь переменную, что-то вроде count и считай сколько элементов отобралось count+1, соответственно... если count=0, мессадж "Юзер... лопух...!"

Добавлено: 28 фев 2008, 07:09
Александр
вот отбор элементов массива
f_RetrieveForm ( this , 'vProductTypeCurrent' , 'pFormPrice' )
функция возвращает число отобранных
вот фильтр
f_FilterForm ( this , 'pFormPrice' , '( pAtrOk >0) and ( pAtrInfo =0)')
а эта функция не возвращает число оставшихся - хотя было бы логично - не так ли?

и все это 'действие' WorkFlow над переменными
а вот есть функция
f_GetArrUpperBound( pFormPrice) должна была бы показать сколько осталось после фильтра но говорят без функции f_FormDataToArray не работает
а функцию f_FormDataToArray использовать не хотим потому что боимся перерасхода id в базе
ну и по кругу...

Добавлено: 28 фев 2008, 09:15
Александр
Кстати решение созрело неожиданно - ведь никто не мешает прочитать 1ю строку данного отфильтрованного массива - и убедиться есть она или нет
типа
if(trim(f_GetSFormItem ( this , 'pFormPrice' , f_GetCurrentRow ( this ), 'pObjDescr' ))='',0,1)
на этом наверно вопрос закрыт

Добавлено: 28 фев 2008, 10:34
Александр
Еще вопрос по принудительному запуску события
ситуация такая есть событие - Перед закрытием окна формы массива
оно срабатывает только если на форме что-то поменялось - а мне нужно чтобы оно срабатывало всегда
какое условие нужно записать для этого случая???
никто не подскажет?
Добавлено: 28 фев 2008, 13:33
Старик Крупский
Александр писал(а):
а функцию f_FormDataToArray использовать не хотим потому что боимся перерасхода id в базе
Слов нет...
Добавлено: 28 фев 2008, 13:35
Александр
слова то есть

еще много слов

все покрыто тайной - поэтому и опасаемся

и ищем, и что интересно - находим обходные пути

нас WorkFlow не испугаешь - мы сами кого хочешь

Добавлено: 04 мар 2008, 09:25
Александр
Вопрос - как записать значение в массив по индексу?
для чтения есть набор функций f_Get....
а для записи?
Добавлено: 04 мар 2008, 12:00
Anderyt
если не ошибаюсь, один из способов - с помощью действия над переменными.
нужно добавить в действие переменную типа массив, настроить для нее в поле справа то значение, которое нужно присвоить, а потом настроить выражение для индекса элемента.
и вот здесь - самое интересное.
чтобы попасть в окно настройки индекса, нужно ТКНУТЬ (то ли один раз, то ли два) по названию переменной массива в списке переменных действия над переменными. в том месте, где по умолчанию написано [...]
вроде так...
Добавлено: 04 мар 2008, 12:16
Александр
Спасибо! (немного не логично - но работает и ладно)
а вот еще вопрос - как в строку массива встроить и поработать с подмассивом?
есть таблица (массив) - одна из колонок валюта, и я хочу в каждой строке этой колонки сделать выбор валют типа RUB/USD/EUR это первое
а второе как в этом случае правильно обратиться к строке массива содержащей подмассив в плане чтения текущего значения и записи его обратно
т.е. юзер в одной колонке - поставил цену, в другой - выбрал валюту, в третьей нажав на кнопку - запустил валютный калькулятор (действие над объектами) - который должен прочесть текущие данные и вернуть измененные в том числе и другое значение валюты установив его текущим значением подмассива валют - во как

Добавлено: 04 мар 2008, 12:53
Anderyt
хм... а если сделать простой массив из строк, но для поля этого массива настроить выбор из выпадающего списка? может быть, что то в этом роде?
а считывать - как из обычного массива..
а вдруг?