Страница 7 из 12

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

а кривые руки- ты о чем? у нас вообще запрещено прямое редактирование атрибутов - только через действия - а действия то для избранных ну или для всех

а про новые объекты и вообще про контекстное меню - тоже просто всем было объявлено что работаем только действиями поскольку все объекты содержат кучу служебных атрибутов без которых просто ни одно действие не сработает - а людям нужно что - людей нужно напугать - сказать что если так будешь делать - все будет работать - а если не так то ты ничего не испортишь но и работать ничего не будет и премию ты точно не получишь - так что решайте сами :wink: :wink:

Добавлено: 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 на форму и не мучаться)

и чтоб как нибудь максимально эффективно
допустим юзер где-то чего-то ввел/исправил - и вся таблица пересчиталась бы

просто - если бы вычисляемые поля - то вопросов нет - но к ним нельзя обратиться из функций (наверно)

а если на событиях то вообще не понимаю как это завязать между собой- но должно быть как-то примитивно (просто щас трехмерное мышление временно не работает :wink: )
подскажите :wink:

Добавлено: 21 фев 2008, 11:42
Старик Крупский
По событиям вроде несложно получается. Я бы выбрал событие "Изменение значения переменной" или "Переход к следующей строке массива". Затем, в действии для итоговой колонки (переменной) в текущий индекс записываем результат расчета по текущим индексам других колонок. Под текущим индексом я понимаю текущую выделенную строчку.
Как вариант, можно использовать событие "После нажатия кнопки-переменной" и тогда пересчет можно делать по щелчку на итоговом поле.

Добавлено: 27 фев 2008, 14:05
Александр
И еще вопросик про счетчик отфильтрованного массива

Есть массив - больше 1000 элементов, есть фильтр по различным условиям, т.е. элементов всегда допустим 1000 а на экране поcле фильтра 20

Как сделать такую штуку которая бы показывала то количество которое есть на экране? (может какя функция есть работающая вне формы массива, по факту?)
для того чтобы в случае каких нибудь избыточных фильтров - когда на экране вообше пусто - показать юзеру надпись (под/над массивом) типа - вы ошиблись - элементов '0' измените условия отбора :wink: :wink:

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

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

а вот есть функция
f_GetArrUpperBound( pFormPrice) должна была бы показать сколько осталось после фильтра но говорят без функции f_FormDataToArray не работает

а функцию f_FormDataToArray использовать не хотим потому что боимся перерасхода id в базе

ну и по кругу... :wink: :wink: :wink:

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

на этом наверно вопрос закрыт :wink: :wink:

Добавлено: 28 фев 2008, 10:34
Александр
Еще вопрос по принудительному запуску события

ситуация такая есть событие - Перед закрытием окна формы массива
оно срабатывает только если на форме что-то поменялось - а мне нужно чтобы оно срабатывало всегда

какое условие нужно записать для этого случая???

никто не подскажет?

Добавлено: 28 фев 2008, 13:33
Старик Крупский
Александр писал(а): а функцию f_FormDataToArray использовать не хотим потому что боимся перерасхода id в базе
Слов нет...

Добавлено: 28 фев 2008, 13:35
Александр
слова то есть :wink: еще много слов :wink: :wink: :wink: все покрыто тайной - поэтому и опасаемся :wink: и ищем, и что интересно - находим обходные пути :D нас WorkFlow не испугаешь - мы сами кого хочешь :lol:

Добавлено: 04 мар 2008, 09:25
Александр
Вопрос - как записать значение в массив по индексу?

для чтения есть набор функций f_Get....
а для записи?

Добавлено: 04 мар 2008, 12:00
Anderyt
если не ошибаюсь, один из способов - с помощью действия над переменными.
нужно добавить в действие переменную типа массив, настроить для нее в поле справа то значение, которое нужно присвоить, а потом настроить выражение для индекса элемента.
и вот здесь - самое интересное.
чтобы попасть в окно настройки индекса, нужно ТКНУТЬ (то ли один раз, то ли два) по названию переменной массива в списке переменных действия над переменными. в том месте, где по умолчанию написано [...]
вроде так...

Добавлено: 04 мар 2008, 12:16
Александр
Спасибо! (немного не логично - но работает и ладно)
а вот еще вопрос - как в строку массива встроить и поработать с подмассивом?

есть таблица (массив) - одна из колонок валюта, и я хочу в каждой строке этой колонки сделать выбор валют типа RUB/USD/EUR это первое

а второе как в этом случае правильно обратиться к строке массива содержащей подмассив в плане чтения текущего значения и записи его обратно

т.е. юзер в одной колонке - поставил цену, в другой - выбрал валюту, в третьей нажав на кнопку - запустил валютный калькулятор (действие над объектами) - который должен прочесть текущие данные и вернуть измененные в том числе и другое значение валюты установив его текущим значением подмассива валют - во как :wink: :wink:

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