|
![]() |
#1 |
Участник
|
to Pitersky: Я так и сделал, завел переменную-счетчик (которая увеличивается на 1 после insertText) , но как я уже выше говорил, количество выведенных строк и значение переменной не совпадает! Я так понимаю буфер заполняется сразу несколькими строками и сразу несколько за раз выводит в Excel???
|
|
![]() |
#2 |
северный Будда
|
Как отловить такое место - не знает никто, кроме вас. Подитоги-то могут быть по разным критериям. Я бы вообще высчитывал их не отдельным запросом, а посредством вставки ёксельной функции СУММ в нужных ячейках. Тогда Excel сам просуммирует то, что надо просуммировать
__________________
С уважением, Вячеслав |
|
![]() |
#3 |
Участник
|
теперь понятна задача. решается просто, в цикле вставьте проверку на изменение статьи затрат
X++: //нужный цикл с сортировкой { if ( != ) { //вставить строку итогов постатье в буфер = ; } } //вставить строку итогов постатье в буфер //вставить строку итогов по всемуотчету в буфер |
|
![]() |
#4 |
Участник
|
to ice: Именно так у меня сейчас и написано! :-) Проблема не в том как отловить момент когда она меняется, а как в этот момент понять на какой строке Excel сделать вставку строки с этим подитогом!
to pitersky: Мне бы очень хотелось узнать как можно обратиться к ячейке Excel из аксапты и сделать СУММ, я просто этого не знаю :-) т.е. как обращаться к ячейке если для вывода я исользую insertText?? Расскажите если не трудно? Но опять же для этого надо знать на какую строку встать, правильно? |
|
![]() |
#5 |
Участник
|
в моем примере не нужно вставлять данные во второй буфер, вставлять данные нужно в первый буфер. и тогда вам не понадобится знание ячеек
|
|
![]() |
#6 |
Участник
|
Когда находимся на этом месте:
if (стараястатья != текущаястатья) { //вставить строку итогов постатье в буфер <-- !!! стараястатья = текущаястатья; мне нужно передать в запрос который посчитает подитоги данные из цикла! т.е. я в другом query считаю их, соответственно и заполняю в том же методе строку которую надо вывести в буфер и затем в excel. Строки отчета я тоже заполняю отдельным методом без Query! Все уже считается и заполняется, но место определить ни как не могу. |
|
![]() |
#7 |
Участник
|
Если использовать вариант предложенный ice, как быть с последним поитогом??? т.е. если в запросе будет лишь 1 статья затрат, то вывод поитогов не происходит! Может кто подсказать, как узнать что цикл по QueryRun достиг последней записи???? Спасибо!
X++: //нужный цикл с сортировкой { if ( != ) { //вставить строку итогов постатье в буфер = ; } } //вставить строку итогов постатье в буфер //вставить строку итогов по всемуотчету в буфер |
|
![]() |
#8 |
Участник
|
в примере же написано что выводить в после цикла...выводить подитог по "стараястатья" и тотал (если нужно
пс а чтоб не заморачиваться с переменными, можно органисовать внешний цикл (тотже запрос) с группировкой по статьям, а внутренний запрос фильтровать по текущей статье: X++: //внешний запрос //group by статья { //внутренний запрос //фильтр = статьяизвнешнегозапроса { //вставка в буфер текушей строки } //вставка в буфер подитогов } //вставка в буфер итогов Последний раз редактировалось ice; 31.08.2011 в 11:46. |
|
![]() |
#9 |
Участник
|
У меня немного отличался алгоритм от вашего, в частности insertText происходил в цикле, сейчас вынес его за скобки, добавил строку заполнения буфера, и все хорошо!!! :-)))) Спасибо!
|
|
|
![]() |
||||
Тема | Ответов | |||
Работа с данными в отчете | 31 | |||
функционал Работа с документами и создание договора в Word | 5 | |||
Работа Range на форме | 14 | |||
QBDS проблема с тремя датасоурсами | 5 | |||
Работа Grid в Lookup формах | 0 |
|