Страница 4 из 12
Добавлено: 14 дек 2007, 21:00
Старик Крупский
Александр, если не лень, проведи эксперимент. Запусти свою форму с массивом, а потом через Query Analyzer сделай запрос к базе. НИЧЕГО нового ты не увидишь!!! Короче, пока карта работы не создана, все что ты видишь в массивах на начале работы - это времянка.
Добавлено: 17 дек 2007, 15:36
Александр
Следующий вопрос
а - скажите (применительно к данной задаче) т.е. работа 2 действия начало и конец (без передачи)-т.е. одна информационная форма
на форме 2 массива
вопрос
а можно ли каким либо образом из этой формы вызвать другую форму например содержащую списки (фильтры) для настройки запросов под массивы (в смысле вызвать юзеру а не мне)
или есть только два варианта
1. - вызвать внешнее действие
2. - добавить в работу еще один шаг(форму) и зациклить его на начало
или может еще можно как-то исхитриться??
вопрос обусловлен тем что текущая форма очень перегружена (сейчас она содержит списки для настройки запросов) и хотелось бы разгрузить ее - с помощью вот таких вот внешних настроечных форм куда вынесены все 'лишние' действия с переменными
ps
не знаю понятно объяснил или нет...
Добавлено: 17 дек 2007, 20:31
Старик Крупский
Вроде бы понятно. Можно добавить в форму задачи другой массив, но сделать его не внедренным, а открывающимся в отдельном окне. Все то же самое, только в свойствах переменной-массива в задаче ставишь радиокнопку в положение "в отдельном окне". откроется он либо по щелчку на поле переменной-массива (а ее в форме задачи можно сделать совсем маленькую - под размер стрелки) или действием по кнопке. Оконные массивы можно делать в стиле сетка (т.е. как обычно), а можно сделать в свободной форме, т.е. ты из формы задачи как бы открываешь еще одну форму задачи, вложенную. В принципе, из вложенной формы можно открыть еще более вложенную. Только вот надо ли
Короче, если немного напрячься (чем, собственно, ты и занимаешься), то желаемого вполне достигнешь. А еще вроде есть события для действий, которые отрабатывают по открытию и закрытию формы массива - это как раз для оконных массивов. А, вот еще... Оконный массив можно открывать в стиле предпечатного просмотра и прямо оттуда печатать. То есть печатная форма какого-нибудь приказа легко делается. Например, есть форма массива, а в ней в заголовке шапка приказа + в области данных массив пунктов приказа (представляешь, а каждая ячейка редактируемая) - кто ответственный, срок исполнения и т.д. Получаешь печатную форму, одновременно отправляешь исполнителям...
Добавлено: 18 дек 2007, 08:17
Александр
с массивами то понятно - но мне нужно на эту форму вывести несколько выпадающих списков..... а массив там нафиг не нужен
Слушай а может можно - создать ФИКТИВНЫЙ массив - только для того чтобы форма открылась?

и на ней разместить все мои списки, а массив сделать вообще не видимым (типа нулевой ширины, и типа его вообще не заполнять)? и тогда вроде все ок - и форма открылась и с переменными поработали и ничего 'лишнего'
так можно?
Добавлено: 18 дек 2007, 08:43
Александр
знаешь какой мне нужен режим:
-
в отдельном окне + свободная форма
тогда я на эту форму закидываю свои списки и получается аккуратненькая формочка с строками - одна из которых непосредственно сам массив (при нажатии на который открывается следующая третья форма)
НО
вот только проблема - все мои проинициализированные выпадающие списки - на форме массива оказываются пустыми

...
хотя я просто добавил их на форму и больше ничего явного с ними не делал...
(- на каждую переменную с выпадающим списком повешено событие по заполнению этого списка - но на форме массива оно почему то не срабатывает
- аналогичные дейсвия привязаны к событию перед открытием формы массива - также не отрабатываются - выпадающие списки - пусты
)
т.е. вопрос такой
1. можно ли на свободной форме массива ОТДЕЛЬНО от него разместить и проинициализировать несколько переменных НЕ СВЯЗАННЫХ с массивом формы непосредственно?
2. и последнее если есть переменная и она участвует сразу в нескольких дочерних окнах - событие на ее изменение будет срабатывать на любом уровне или только в базовом окне?
Добавлено: 18 дек 2007, 11:40
Старик Крупский
Здесь мои познания чисто теоретические, потому что, оконными массивами не особо пользуемся. Там есть мелкие глючки - обещали исправить. Может быть списки заполнять пораньше?
Но мое мнение таково: изменение значения переменной в родительской форме должно приодить к изменению другой переменной в любом случае, независимо от того, в какой форме она находится. Она вообще может не использоваться в формах.
Добавлено: 18 дек 2007, 11:45
Александр
пока смотри какая ситуация...
в родительском окне есть выпадающий список - он инициализируется запросом перед началом работы
допустим выбираем в этом списке какое то значение (ну допустим)
далее
из родительской формы вызываем фиктивный массив на свободной форме которого есть тот же выпадающий список - и значение он имеет то что было выбрано в родительском окне
НО
при нажатии на этом списке (в окне массива) он оказывается пустым
причем я его принудительно инициализирую перед открытием формы фиктивного массива
НО.... он пустой ГАД такой

когда я закрываю форму фиктивного масиива - это пустое значение становится по умолчанию в том же списке родительского окна
Добавлено: 18 дек 2007, 15:49
Александр
Лоция говорит - что все Ок надо modify и там и там использовать - но тогда я вообще теряю нить
переменная то одна - зачем ее два раза modif'фаить ну разные формы - но переменная то одна???? и работа - одна...
не объяснишь - чего я не понимаю в этой жизни?
Добавлено: 18 дек 2007, 21:55
Старик Крупский
Не надо не теряй нить

Ну вот смотри: модифаишь ты, видимо, для того, чтобы подгрузить список. А список-то ты наверняка достал запросом и засунул в другую переменную. И в той переменной у тебя хранится строчка с разделителями. А в списковой переменной ты же не хочешь такую строчку видеть, а хочешь конкретное, удобоваримое значение. И когда ты выбираешь из списка, то списковая переменная принимает выбраннjt тобой значение. А модифаишь ты для того, чтобы в указанной тобой форме указанная тобой переменная приняла указанные тобой значения в указанном тобой виде.
_________________________
Тебя же не удивляет, что в действиях над объектами в форме одного шага переменная может быть защищенная от редактирования, а в форме другого шага - редактируемая. ты это делаешь через свойства не задумываясь, а Лоция за тебя модифаит форму.
_________________________
И здесь то же самое, только твоими руками. Есть две формы переменная имеет определенное значение, а стиль ее редактирования и все остальное - твое творчество.
Добавлено: 19 дек 2007, 07:31
Александр
за сравнение с формами действий - спасибо

теперь начинаю хоть что-то понимать

Добавлено: 20 дек 2007, 09:57
Александр
такой интересный глюк по вышеописанным двум формам базовой и массива
1. есть переменная массив
2. располагаем ее на базовой форме как свободную форму в отдельном окне
3. в этом самом отдельном окне удаляем эту переменную массив из формы этого массива, потому что она там нафиг не нужна - нужна просто форма
4. пишем код для вызова формы массива по кнопке
5. на базовой форме удаляем переменную массив из области формы
и вот с этого самого момента
переменная на базовой форме -самопроизвольно меняет свой тип массив на тип строка - хотя по кнопке все также продолжает открываться внешняя форма массива
и ничего с этим не сделаешь и форму массива никак не найдешь (потому что переменная изменила тип на строку), пока не исключишь и снова не включишь эту переменную в базовую форму работы - тогда она снова становится массивом
во как, или просто у меня от workflow крыша поехала

Добавлено: 20 дек 2007, 22:18
Старик Крупский
Так массив или строка? Тип значения или тип данных?

Заработался ты...
Добавлено: 24 дек 2007, 16:17
Александр
А вот еще вопрос...
внедрил я массив в форму (свой SQL) допустим 4 колонки,
и теперь мне нужно одну из колонок отфильтровать допустим по наличию какого либо ключевого фрагмента в слове - как сделать такой фильтр?
ведь если его внедрять в сам запрос - то он (запрос) отрабатывает медленно (субъективные ощущения), а на форму массива - переменную для фильтра нельзя положить - потому что нарушатся какие-то связи....
или можно ее туда засунуть для использования в фильтре контекстного меню внедренного массива?
Добавлено: 25 дек 2007, 16:21
Старик Крупский
Тебе именно фильтр нужен? Условие where тебя не устроит? Ввел значение фильтра, нажал кнопку и запрос перевыполнился. По крайней мере все индексы элементов массива будут соответствовать номерам строк.
На форму массива одночную переменную положить, да еще и редактировать не очень получится. Если только куда-то в заголовок. Но надо пробовать. Лучше вынеси эту переменную за форму массива, вводи туда значение для фильтрации и применяй по кнопке или по изменению значения переменной. Там есть функция f_FilterForm. А само условие фильтра что-то типа функции pos. Только учти, что она ищет регистрозависимо. Так что используй какой-нибудь upper.
Добавлено: 10 янв 2008, 14:52
Александр
все, вопрос решился дополнительным фильтром f_FilterForm (техподдержка & СК)
...
как все запутано - ужас
Вроде массив и массив... а столько функций
Вроде фильтр массива и фильтр - но нет

, вот вам еще один дополнительный специально для свободных переменных
Вроде массив открыли по кнопке-но нет верните последней функцией число (а где про это написано - что именно последней функцией, именно перед выходом из формы)...
ну это я так
