AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 28.04.2023, 12:13   #1  
Aleksey2020 ist offline
Aleksey2020
Участник
 
17 / 10 (1) +
Registriert seit: 25.02.2020
Не переходит к следующей записи датасорса
Прогоняю по нажатию кнопки на форме цикл по отмеченным записям. пока не вызываю класс внутри перебираются все записи, но если вызываю класс по печати отчёта, то отрабатывает только одна. Куда копать?
Выдаётся эксель отчёт и цикл заканчивается на одной записи..
Alt 28.04.2023, 12:14   #2  
Pandasama ist gerade online
Pandasama
Участник
 
469 / 140 (5) +++++
Registriert seit: 11.08.2014
Ort: Барнаул
Извините, но ничего не понятно.
"не переходит к следующей" - в классе?
Покажите код, где в классе перебираете. Покажите, как в класс курсор передаете.
Alt 28.04.2023, 12:43   #3  
Aleksey2020 ist offline
Aleksey2020
Участник
 
17 / 10 (1) +
Registriert seit: 25.02.2020
Код кнопки на форме стандартный по обходу датасорса for (record = table_ds.getFirst(true)?..table_ds.getNext()) { вызываем класс печати отчёта Printclass = new.. printclass.run();} несмотря на отмеченные несколько записей точка останова в цикл после формирования экселя не попадает. Если вместо формирования отчёта пишу info(), то попадает столько раз, сколько записей отмечено
Alt 28.04.2023, 13:06   #4  
Pandasama ist gerade online
Pandasama
Участник
 
469 / 140 (5) +++++
Registriert seit: 11.08.2014
Ort: Барнаул
по-прежнему не очень понятно
Alt 28.04.2023, 13:24   #5  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.449 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
Скорее всего класс Printclassс где-то внутри себя портит переданный ему курсор. Попробуйте передавать в класс печати копию курсора. Для этого объявите ещё одну переменную табличного типа и проинициализируйте её через метод data
This post has been rated by: Pandasama (3), Aleksey2020 (1).
Alt 28.04.2023, 17:36   #6  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
А ответы по теме Передать выборку по таблице из класса в класс не помогли,
Или тут что-то другое?
В любом случае, код, которые есть в методе getFormRecord класса FormLetterне помню чтобы когда-то подводил.
Правда там нужно сразу передавать переменную датасорса, но ей сполне можно получить из курсора (конечно с проверкой что передан курсор именно по датасорсу).
Alt 28.04.2023, 18:33   #7  
Владимир Максимов ist offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1.720 / 1207 (44) ++++++++
Registriert seit: 13.01.2004
Blog-Einträge: 3
Если я правильно понял, то у него есть класс-отчета, который формирует отчет по одной записи таблицы. И ему надо выбрать несколько записей на форме и по каждой из них сформировать по отдельному отчету

Т.е. не стоит задача передать в класс-отчета список. В отчет всегда передается одна запись. И, вероятно, что-то там с этой записью происходит из-за чего "следующую" запись в цикле уже просто не находит.

Т.е. тут совет от S.Kuskov подходит. Или передавать в класс не напрямую запись из DataSource или уже в классе при получении запись сделать ее "перевыбор" (через Find()), чтобы разорвать связь с DataSource

В идеале, передавать в класс-отчета не саму запись, а ее идентификатор (RecId или номер документа). Тогда такой проблемы вообще не возникнет.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Alt 29.04.2023, 14:16   #8  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
Ну, если так, то да - без просмотра кода выборки и кода работы с курсором в классе отчета понять сложно.
Ну и, без информации о том, что за формирование Excel (SSRS с сохранением, использование OpenXML, использование чего-то типа стандартных классов формирования Excel или вообще прямая работа с COM или NET) подсказать что-то невозможно.

PS: хотя, возможно, что для автора русский язык не является родным и ему проще задать вопрос хотя бы на английском?
Alt 22.05.2023, 12:02   #9  
Aleksey2020 ist offline
Aleksey2020
Участник
 
17 / 10 (1) +
Registriert seit: 25.02.2020
Zitat:
Zitat von S.Kuskov Beitrag anzeigen
Скорее всего класс Printclassс где-то внутри себя портит переданный ему курсор. Попробуйте передавать в класс печати копию курсора. Для этого объявите ещё одну переменную табличного типа и проинициализируйте её через метод data
Благодарю, действительно ломался датасорс формы в классе печати. Не ожидал, что передавая запись в другой класс как record за ней тащатся все отмеченные строки датасорса. Ещё и возвращаются испорченные. Спасибо.
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ошибка записи в SalesParmSubLine FrolovAndy DAX: Программирование 2 09.01.2018 15:48
Курсор перешел к следующей записи на клиенте, на сервере этого сделать уже нельзя PavelSR DAX: Программирование 22 01.11.2012 07:33
Существование следующей записи в запросе PavelSR DAX: Программирование 24 28.09.2006 11:39
Отчет: перекрытие fetch() убивает буфер записи в display-методе Zabr DAX: Программирование 1 18.02.2005 18:45
Автоматическое увеличение значения поля при создании новой записи. sguryev DAX: Программирование 3 06.02.2003 14:00

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 07:16 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.