13.06.2007, 12:56 | #1 |
Постигающий
|
Программное закрытие окна с отчетом
Необходимо закрывать окно с сформированным внутренним отчетом..Поиск результатов не дал, может кто то сталкивался с такими задачами?подскажите пожалста.
|
|
18.06.2007, 16:54 | #2 |
Постигающий
|
UP
может дадите подсказку какой класс отвечает за отображение этого окна с отчетом? задача следующая - в зависимости от галки выводить отчет в excel или формировать внутренний...изначально сделал формирование excel параллельно внутреннему. Теперь надо не сильно нпрягаясь выводить что то одно - либо excel либо аксапта.. хочу просто прятать (закрывать) окно с внутренним отчетом, когда он сформируется, либо не открывать окно вообще, но при этом чтобы срабатывали мои executeSections где я посылаю данные для класса,формирующего Excel - отчет %( |
|
18.06.2007, 18:00 | #3 |
SAP
|
Какая то странная реализация, в твоем случае надо либо писать свой класс типа RunBaseReport либо делать промежуточный класс который и будет перенаправлять вывод либо в класс который обрабатывает Excel отчет либо в стандартный отчет.
|
|
18.06.2007, 18:17 | #4 |
Axapta
|
Андрей К, ужас.
А в чем проблема в зависимости от галки формировать либо один отчет либо другой? Зачем их одновременно выводить?! |
|
18.06.2007, 18:55 | #5 |
Moderator
|
Да ну, не такой уж и ужас ("ужиужас, ужиужас" - ответило эхо ).
Конечно, подобный подход, возможно, не стоит ставить в пример при обучении программированию. Но понять человека можно. Он несколько переусердствовал и теперь просто хочет малой кровью "выпустить лишний пар". И для этого ему совершенно необязательно строить новую котельную. Насколько я понял, по галке нужно либо сделать visible=false и скрытый последующий quit в Excel (и здесь всё понятно с Excel), либо какой-нибудь "visible=false" этому отчету. Я в отчетах аксовских пока не копенгаген (а, напротив, совершеннейшее осло), но может быть есть какой-нибудь такой визибл? |
|
18.06.2007, 19:10 | #6 |
Постигающий
|
Я понимаю ваши "ужоснах'и"...Умом я понимаю что надо было писать отдельный класс для сбора данных и посылки их в excel,и затем в зависимости от галки запускать либо мой отчет либо этот самый класс...Но изначально пошел другим путем..И теперь,когда ставлю галку,у меня и внутренний и внешний отчеты формируются.Раньше это было не критично,но теперь надо бы что то придумать с внутренним отчетом.Поиски заветного визибла ни к чему не привели не знаю что и делать...
|
|
18.06.2007, 19:13 | #7 |
Участник
|
Андрею К. я уж как-то вроде советовал по этому поводу - WinAPI - посылка сообщения на закрытие окна.
Потому что оно не Аксаптовская форма в нашем понимании, имхо. |
|
18.06.2007, 20:39 | #8 |
Axapta
|
А я бы побыстрому это безобразие () переделал. Не сомневаюсь почти, что это будет несложно. Код-то весь уже написать, осталось это все в отдельный класс оформить почти-что копипастом и все.
Иван, ты правда считаешь, что вот такое вот закрытие окна - это нормально? |
|
18.06.2007, 23:03 | #9 |
Moderator
|
Да уж! Я вот два часа назад тоже примерно об этом подумал, поковырявшись со всеми этими WinAPI-шными findWindow, getWindow и т.п... Господи, почему в маленьком настольном Access'е репорты имеют свойство Visible и для каждой секции, и для всего отчета в целом?! Почему в Аксе до этого не доходит-то?!
Казалось бы, есть кнопка ("крестик") закрытия окна - почему же нет аналогичного простого close именно у отчета, а не у окна, которое нужно еще как-то "не вдруг" идентифицировать среди других открытых окон? Ох, маманя, наверное, просветление еще не наступило... |
|
19.06.2007, 08:38 | #10 |
Участник
|
Ну если у них там счет-фактура или таких отчетов много, то побыстрому возможно и не получится. Когда я делал ТОРГ-12 и С/Ф в Excel, то я выгружал оригинальные отчеты в XPO. Ручками с помощью текстового редактора в XPO-хе правращал отчет в класс, затем получившийся полуфабрикат загружал в Аксу и дальше переписывал все ExecuteSection и прочее на аналогичную выгрузку в эксель. Кстати, возможно таким образом как раз и можно имеющийся отчет, переделать в класс с минимальными трудозатратами.
|
|
19.06.2007, 09:31 | #11 |
Участник
|
|
|
19.06.2007, 09:36 | #12 |
Axapta
|
Максим, а какое это имеет отношение к данной теме? Применительно к данной теме этот движок автору ну ни капельки не мешает.
|
|
19.06.2007, 09:52 | #13 |
Участник
|
Я наверное, неправильно тебя понял, я думал, что ты жалуешься на отсутсвие некоего стандартного закрытия окна отчетов в аксапте и ответил в том смысле что стоило бы уже и привыкнуть к неидельности всего движка и не удивляться.
В принципе, я согласен, что лучше переделать в класс, если можно. Наверное, даже можно написать какой-нибудь джобик для автоматизации этого процесса. |
|
19.06.2007, 10:14 | #14 |
Moderator
|
Цитата:
Но слова твои оказывают успокоительный терапевтический эффект. Спасибо, буду привыкать дальше |
|
19.06.2007, 16:28 | #15 |
Постигающий
|
Пишу оторванным пальцем на животе убитого товарища из горящего танка...ничего не поделать , пришлось написать класс для сбора и отправки данных в класс, печатающий в ексель...Спасибо за активность!
|
|
19.06.2007, 17:51 | #16 |
Участник
|
Я делал так - у стандарного отчета не перекрывал send у секций и в них, если ехель - то выводил в ехель, а супер просто не вызывал..
|
|
|
За это сообщение автора поблагодарили: belugin (5), Red Stranger (1). |
19.06.2007, 22:28 | #17 |
Постигающий
|
Интересный вариант...Но ведь окно отчета открывалось?Просто оно было пустое или я ошибаюсь?
|
|
20.06.2007, 00:00 | #18 |
NavAx
|
можно попробовать в init() отчета добавить что то типа
element.printJobSettings().setTarget(PrintMedium::ViewerClass); |
|
20.06.2007, 00:29 | #19 |
Участник
|
|
|
20.06.2007, 10:06 | #20 |
Постигающий
|
Где ж вы раньше были
|
|