AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.10.2011, 11:29   #1  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Есть списочная форма с флоу филдом. На поле с флоу филдом накладывается обычный фильтр. А затем накладывается флоу фильтр. Если записей, удовлетворяющих требованиям совокупности фильтров нет, форма становится неактивной. Есть ли возможность избежать этого?
Старый 06.10.2011, 12:48   #2  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от Васыо Посмотреть сообщение
Есть списочная форма с флоу филдом. На поле с флоу филдом накладывается обычный фильтр. А затем накладывается флоу фильтр. Если записей, удовлетворяющих требованиям совокупности фильтров нет, форма становится неактивной. Есть ли возможность избежать этого?
FlowFilter на отображение записей не влияет, он влияет на расчет FlowField'ов. Я не совсем понял, что значит избежать этого? Ведь если записей нет, то и делать на этой форме нечего, ведь так? Или вы хотите чтобы кнопки у Вас на форме работали?
Старый 06.10.2011, 13:02   #3  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
На отображение записей влияет фильтр, поставленный на поле с флоу филдом. Допустим, я хочу разместить фильтры на самой форме, например, во фрейме в верхней части. И если записей не будет обнаружено, хочу иметь возможность просто поменять фильтр на самой форме. Вот если сделать наоборот - то есть сначала поставить флоу фильтр, а затем фильтр на поле флоу филд так, чтобы записей не было, то форма просто не отобразит записей оставаясь при этом активной.
Старый 06.10.2011, 13:25   #4  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от Васыо Посмотреть сообщение
На отображение записей влияет фильтр, поставленный на поле с флоу филдом. Допустим, я хочу разместить фильтры на самой форме, например, во фрейме в верхней части. И если записей не будет обнаружено, хочу иметь возможность просто поменять фильтр на самой форме. Вот если сделать наоборот - то есть сначала поставить флоу фильтр, а затем фильтр на поле флоу филд так, чтобы записей не было, то форма просто не отобразит записей оставаясь при этом активной.
Но ведь можно открыть фильтры таблицы: Ctrl+F7 и там спокойно поменять что нужно. Если хотите поменять флоу фильтр: Shift+F7. Это все можно сделать, даже если форма не активна )
Кстати, о какой форме идет речь? Стандартная или собственная?
Старый 06.10.2011, 13:34   #5  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Это на любой списочной форме так. Просто мне интересно, можно ли как-то этого избежать? Не красиво как-то пользоваться кнопками управления фильтрами, когда они (фильтры) выведены на форму.
Старый 06.10.2011, 13:36   #6  
Milk is offline
Milk
Участник
 
242 / 12 (1) ++
Регистрация: 08.06.2006
Обычно при отсутствии записей в фильтре становится неактивна форма, если у нее свойство Editable = No. А у вас?
Старый 06.10.2011, 13:43   #7  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Milk, помогло! Только дело оказалось не в Editable, а в InsertAllowed, ModifyAllowed и DeleteAllowed!
Старый 06.10.2011, 14:54   #8  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Хм... Если сделать InsertAllowed = Yes, исчезает проблема с деактивацией формы, но появляется новая проблема: добиваемся того, чтобы на форме не было записей, снимаем фильтр и система пытается вставить в таблицу запись. При этом TextBox нередактируемый.
Старый 06.10.2011, 16:14   #9  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Васыо Посмотреть сообщение
Хм... Если сделать InsertAllowed = Yes, исчезает проблема с деактивацией формы, но появляется новая проблема: добиваемся того, чтобы на форме не было записей, снимаем фильтр и система пытается вставить в таблицу запись. При этом TextBox нередактируемый.
Cделайте:
вся форма Editable = Yes
TableBox (в которой показываются отфильтрованные записи) Editable = No

InserтAllowed итд оставьте в дефолтном значении (т.е <Yes>)
Старый 06.10.2011, 16:30   #10  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Так у меня и есть. Опечатался, конечно TableBox нередактируемый. Проблема лежит именно в области flow field/flow filter. Без фильтрации по flow field полям всё работает прекрасно и замечательно.
Старый 06.10.2011, 22:35   #11  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Васыо Посмотреть сообщение
Так у меня и есть. Опечатался, конечно TableBox нередактируемый. Проблема лежит именно в области flow field/flow filter. Без фильтрации по flow field полям всё работает прекрасно и замечательно.
Навскидку проделал следующее:
завёл новую списочную форму для таблицы Item (SourceTable=Item).
Вся форма: Editable=Yes,
TableBox: Editable=No
InsertAllowed и.т.д. оставил без изменения.

В TableBox поля: No., Description, Inventory (FlowField)

1. Вне TableBox'а завёл TextBox (SourceExpr.= Location Filter (FlowFilter, поле таблицы Item).

2. Вне TableBox'а завёл TextBox (SourceExpr.= "InvQtyFilter" (glob. variable, type=Decimal)
В OnAfterValidate()-trigger'e код:
SETRANGE(Inventory,InvQtyFilter);
Код:
CurrForm.UPDATE;
3. Вне TableBox'а повесил также button "Make Update", в в OnPush()-триггере код:
Код:
CurrForm.UPDATE;
4.Ставлю попеременно фильтр либо по Inventory, либо flowfilter в "Location Filter", или и то и другое вместе, в общем всевозможные
комбинации, результат:
- ТableBox показывает записи соответственно фильтрам, если записей нет, то становится неактивным
- TextВох'ы и button всё время активны, т.е. с ними всё время можно работать и изменять фильтры, вне зависиммости от того, активна TableBox или нет. Короче, вся форма с всеми контролами за исключением TableBox'а всё время активна.
Т.е. всё прекрасно работет.

Попробуйте проделать тоже самое.
Ведь ваша форма, в которой проблемы с неактивностью, делает по-идее то же самое?
Если у всей формы и у TableBox'а убрать значения в property Edtable, т.е. оставить дефолтным <Yes>, то и будет некрасивый эффект как у вас.
Старый 07.10.2011, 09:38   #12  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
AlexB, да, я говорю о такой форме. Только попробуйте в Вашей конструкции сделать следующее:
1. поставьте фильтр по InvQtyFilter;
2. а теперь поставьте flow filter по складу таким образом, чтобы на форме не должно было бы оказаться записей.
Получите ошибку: Внесение изменений в базу данных до начала выполнения транзакции невозможно.
Старый 07.10.2011, 11:29   #13  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Васыо Посмотреть сообщение
AlexB, да, я говорю о такой форме. Только попробуйте в Вашей конструкции сделать следующее:
1. поставьте фильтр по InvQtyFilter;
2. а теперь поставьте flow filter по складу таким образом, чтобы на форме не должно было бы оказаться записей.
Получите ошибку: Внесение изменений в базу данных до начала выполнения транзакции невозможно.
Проверил: у меня ошибка не вылетает.
Проверьте на вашей форме property "PopulateAllFields". Если я в моей форме поставлю в этом property = Yes, то понятное дело,
ошибка вылетает и у меня. Если у вас в этом property = Yes , то вы не сделали как я вам посоветовал:
создать новую форму, никакие property не трогать кроме Editable (property PopulateAllFields=No), и.т.д. т.е. проделать всё как как я уже описал, и увидите, что всё прекарасно работает.
Старый 07.10.2011, 11:56   #14  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
AlexB, а Вы точно делали именно в той последовательности, о которой пишу я? Сначала фильтр на Inventory, затем flow field на склад таким образом, чтобы на форме не оказалось записей? Ещё раз переделал всё заново и снова ошибка, я о ней уже писал выше: Товар Номер 'М00004' уже существует. Не так, так эдак система пытается создать запись. У меня NAV 2009 R2.
Старый 07.10.2011, 12:09   #15  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Вот моя формочка, только без кнопки.
Вложения
Тип файла: fob 50091.fob (8.6 Кб, 439 просмотров)
Старый 07.10.2011, 12:14   #16  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Для простоты эксперимента попробуйте в фильтр по Inventory ввести заведомо несуществующее количество. Flow filter можно даже и не трогать.
Старый 07.10.2011, 12:50   #17  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от Васыо Посмотреть сообщение
AlexB, да, я говорю о такой форме. Только попробуйте в Вашей конструкции сделать следующее:
1. поставьте фильтр по InvQtyFilter;
2. а теперь поставьте flow filter по складу таким образом, чтобы на форме не должно было бы оказаться записей.
Получите ошибку: Внесение изменений в базу данных до начала выполнения транзакции невозможно.
А свойство формы DelayedInsert установить в Да?
Старый 07.10.2011, 13:16   #18  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Если DelayedInsert установить в Да, то ставим фильтр по заведомо несуществующему значению на Inventory, снимаем фильтр и пытаемся что-либо сделать в TableBoxе: "Товар нельзя вставить в эту форму". Если в Нет, то получим "Товар Номер 'такой-то' уже существует".
Старый 07.10.2011, 14:42   #19  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Васыо Посмотреть сообщение
Вот моя формочка, только без кнопки.
Вот ваша же формочка, только я сделал в ней маленькую корректуру, теперь и у вас всё работет.
Решение: в property всей формы строка с TableBoxID=1000000000;
(Нашёл посредством сравнения обьектов в текстовом формате).
Отсутсвие этой строки вело к ошибке.
Очевидно, если делать фому не через ассистента и привесить tablebox позже мануально, то такой строки нет.
Я же делал мою форму с помощью ассистента и у меня эта строка была.
Вложения
Тип файла: zip Form50091_Correct.zip (3.2 Кб, 46 просмотров)
Старый 07.10.2011, 14:46   #20  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
ЧУМА!
AlexB, спасибо!
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:20.