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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.04.2011, 09:04   #1  
Ilyaae is offline
Ilyaae
Участник
 
46 / 11 (1) +
Регистрация: 23.09.2008
Отчеты в ReportingServices
Всем Доброе!
Может кто писал отчеты в репортинге для DAX 2009, интересует какие таблицы подвязаны для оприходования номенклатуры и сдачи на склад, по каким критериям отбирать?

Заранее благодарствую
Старый 14.04.2011, 11:40   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
Если вы знаете, где в интерфейсе Аксапты у вас находятся приходы, и как посмотреть по конкретному приходу, сдана номенклатура на склад или нет, то могу порекомендовать способ для помощи в создании нужных вам запросов.
Конкретный запрос писать не буду, так как слишком много условий в каждом конкретном случае. Два инструмента, которые вам предложу, возможно помогут вам самому разобраться. Примеры, приведенные мной, абстрактны.

1. Открываете форму закупок (надеюсь, у вас там находятся "приходы" ?). Правой кнопкой мыши - далее из контекстного меню выбираете "Настройка". В открывшейся форме есть последняя закладка "Запрос". В ней видно, какие таблицы задействованы на форме, какие между ними связи, какие критерии отбора заданы.
Вот как это выглядит на экране Нажмите на изображение для увеличения
Название: Запрос.JPG
Просмотров: 188
Размер:	58.1 Кб
ID:	6748

2. Есть замечательная утилита, которая позволяет узнать, какое поле на форме из какой таблицы берется. Чтобы это заработало, можно накатить проект в тестовое приложение вашей Аксапты SharedProject_FormDigger_AX2009.xpo
Утилита описана здесь Где же это поле?! (Form digger)
Вот как это работает в Аксапте: Нажмите на изображение для увеличения
Название: FormDigger.JPG
Просмотров: 310
Размер:	112.6 Кб
ID:	6749
За это сообщение автора поблагодарили: S.Kuskov (2), Ilyaae (1).
Старый 14.04.2011, 11:52   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
2. Есть замечательная утилита, которая позволяет узнать, какое поле на форме из какой таблицы берется.
Обычно эта утилита используется для обратной задачи . Увидеть источник данных понтрола можно и без дополнительных утилит в поле "Системное имя" на вкладке "Выходная форма" окна, скриншот которого вы привели в первом вложении
Старый 14.04.2011, 11:57   #4  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
Согласен, но комбинацию клавиш ALT~ быстрее нажать, да и сама форма быстрее открывается, чем форма настройки. Плюс еще в форм-диггере можно выйти на свойства поля в таблице, на код дисплейного метода.
Встаете на нужное поле на форме и нажимаете ALT~, получается эффект больший, чем от формы настройки.
Старый 14.04.2011, 19:32   #6  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
Упс... Надеюсь, накатили на тестовое приложение?
Попытаемся вылечить:

1) Откройте проект. Нажмите на проекте правой кнопкой мыши. Выберите пункт "Компилировать".
Нажмите на изображение для увеличения
Название: Компиляция.JPG
Просмотров: 153
Размер:	34.8 Кб
ID:	6751

2) Для каждого класса, входящего в проект, сделайте инкрементную компиляцию. Всего в проекте три класса. Нажмите по названию класса правой кнопкой мыши - далее "Надстройки" - далее "Инкрементная компиляция"
Нажмите на изображение для увеличения
Название: Инкремент.JPG
Просмотров: 123
Размер:	67.2 Кб
ID:	6752

3) Активируйте окно "Сообщения компилятора"
Нажмите на изображение для увеличения
Название: Сообщения.JPG
Просмотров: 176
Размер:	67.2 Кб
ID:	6753

4) Посмотрите, чтобы в сообщениях компилятора не было ошибок
Нажмите на изображение для увеличения
Название: Ошибок не найдено.JPG
Просмотров: 196
Размер:	30.1 Кб
ID:	6754
Если в сообщениях компилятора найдены ошибки, то сделайте снимок экрана этих ошибок и покажите их здесь.

5) Попробуйте открыть форму в Аксапте.Если снова появится ошибка, то покажите снимок экрана с ошибкой. Постарайтесь, чтобы все сообщение влезло в картинку.

Последний раз редактировалось Ace of Database; 14.04.2011 в 19:36.
Старый 14.04.2011, 19:39   #7  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
Да, и еще. Если срочно надо реанимировать открытие форм, то зайдите в класс SysSetupFormRun, в метод task(). Там закомментируйте строку
X++:
if (!FormDigger::overloadButton(this, _p1))
Чтобы выглядело так
X++:
//if (!FormDigger::overloadButton(this, _p1))
Тогда комбинация клавиш ALT~ перестанет работать.
Но надеюсь, что все же приведенная выше реанимация поможет

Последний раз редактировалось Ace of Database; 14.04.2011 в 20:10.
Старый 14.04.2011, 20:46   #8  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
Еще появилась одна идея.
Скорее всего, у вас класс SysSetupFormRun был модифицирован, в частности, в него был добавлен метод raiseEvent_W().

Попробуйте экспортировать этот класс из приложения, где у вас формы открываются нормально в приложение, в которое накатили FormDigger.

Затем найдите в этом классе метод task(), в нем перед строкой
X++:
ret = super(_p1);
добавьте строку
X++:
    //EVO: 31.01.09 #DEV02 Find from control by name -->
    if (!FormDigger::overloadButton(this, _p1))
    //EVO: 31.01.09 #DEV02 Find from control by name <--
Старый 15.04.2011, 09:33   #9  
Ilyaae is offline
Ilyaae
Участник
 
46 / 11 (1) +
Регистрация: 23.09.2008
Спасибо. Поступил проще, переписал приложение заного локально. Буду пробовать дальше.
Старый 15.04.2011, 10:04   #10  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
Попробуйте опять накатить проект, только не накатывайте класс SysSetupFormRun.
Проверьте, что все работает. Потом в этом классе в методе task(), перед строкой

X++:
ret = super(_p1);
добавьте строку
X++:
    //EVO: 31.01.09 #DEV02 Find from control by name -->
    if (!FormDigger::overloadButton(this, _p1))
    //EVO: 31.01.09 #DEV02 Find from control by name <--
будет выглядеть так:
X++:
    //EVO: 31.01.09 #DEV02 Find from control by name -->
    if (!FormDigger::overloadButton(this, _p1))
    //EVO: 31.01.09 #DEV02 Find from control by name <--
    ret = super(_p1);
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Покорить .NET в DAX чтобы сделать ручным ReportingServices KingPeas DAX: Программирование 87 11.07.2018 08:23
Изменить отчеты Dreadlock DAX: Программирование 2 04.06.2010 14:17
в следующей версии, "6.0" (или 201Х) т.н. "страндартных" отчетов не будет. ВСЕ отчеты будут построены на RS George Nordic DAX Blogs 23 21.08.2009 09:56
Фин отчеты: может ли работать по нескольким компаниям сразу Arahnid DAX: Функционал 3 30.05.2007 17:46
Отчеты по клиентам Anastasiya DAX: Функционал 2 19.03.2005 12:11
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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