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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.12.2001, 18:19   #8  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 646 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Ошибка времени выполнения
Здравствуйте, Андрей.

Возможно, что причина вашей ошибки - не совсем корректная формулировка с нашей стороны.
Цитата:
Перекрыть метод FormDataSource::Init()
Слово "перекрыть" здесь, видимо, не совсем уместно. На самом деле Вы должны лишь дописать этот метод. По видмому, Вы удалили вызов метода super() оттуда. Делать этого не стоит, а добавленные Вами строки кода должны обязательно находиться <b>после</b> вызова метода super().

Смысл сообщения об ошибке, выдаваемого Вам, заключается в том, что Вы пытаетесь использовать методы объекта, который еще не иниализирован (инициализация проходит именно в методе super()).

Решение проблемы через executeQuery также корректно (к этому момент объект FormDataSource уже инициализирован), но Вы должны осознавать, что каждый раз при вызове этого метода (а он, в отличие от init, вызывается очень часто) будет происходить присваивание query для dataSource. Теперь, если Вы захотите изменить значение query во время работы (например, по нажатию кнопки), Вам придется добавлять сравнительно сложный код с условиями ветвления в executeQuery. В случае использования метода init Вы присваиваете query лишь начальное значение, которое затем сможете как угодно менять в любых методах своей формы.

Вообще говоря, метод executeQuery лишь выполняет запрос, который присвоен полю query элемента FormDataSource. То, что у Вас не происходила фильтрация при нажатии на кнопку, объясняется тем, что Вы лишь присваивали полю query новые параметры запроса. Для выполнения запроса следует использовать метод executeQuery.

В качестве примера посмотрите мой проект. Я переопределял методы init у InventTable и clicked у кнопки. Попробуйте убрать вызов метода clearRanges.
Вложения
Тип файла: zip project1.zip (2.3 Кб, 260 просмотров)
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
оборотная ведомость по складу необходимо добавить ещё один фильтр jeky DAX: Программирование 21 06.04.2009 19:03
Быстрый способ вывода данных в Excel с картинками Zlojbarsuk DAX: Программирование 10 23.10.2008 20:13
Как в query добавить фильтр по аналитике (Dimension)? Roman812 DAX: Программирование 21 15.07.2005 09:53
Различные типы связей (LinkType) для FormDataSource Maxim Gorbunov DAX: База знаний и проекты 1 16.05.2004 13:20
Гибрид FormTableControl и FormDataSource Андре DAX: Программирование 27 01.10.2003 09:58
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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