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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.07.2009, 15:23   #1  
stalker25 is offline
stalker25
Участник
 
20 / 15 (1) ++
Регистрация: 04.03.2009
Печать формы
Я вроде посмотрел весь форум но так и не нашёл, как распечатать саму форму? ctrl+p работает, но метод print() почему то нет, делал на основе печать репорта, но не получается, может кто подскажет примерчик, или как запустить саму форму напечать?
Старый 23.07.2009, 15:32   #2  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Что вы подразумеваете под словами "распечатать саму форму" и что значит "как запустить саму форму напечать"?
Старый 23.07.2009, 15:36   #3  
stalker25 is offline
stalker25
Участник
 
20 / 15 (1) ++
Регистрация: 04.03.2009
к сожалению то самое, всю форму, если интересно на ней activx control с web контентом, поэтому вопрос как запустить принт самой формы?
Старый 23.07.2009, 15:44   #4  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
например, клавиши alt + prtScr, далее вставка в ворд и печать
Старый 23.07.2009, 15:59   #5  
stalker25 is offline
stalker25
Участник
 
20 / 15 (1) ++
Регистрация: 04.03.2009
а по другому, ведь ctrl+p работает же а как из кода?
Старый 23.07.2009, 16:06   #6  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Простите, я опять не понял. Что значит "распечатать форму"? Вам надо на принтер скриншот отправить? Или же каким-либо образом все содержимое произвольной формы, с учетом того, что в каких-то частях формы могут быть скроллеры и на экран не все влезает? Или Автоотчет по ctrl+P же вроде именно он вызывается?
Старый 23.07.2009, 16:14   #7  
stalker25 is offline
stalker25
Участник
 
20 / 15 (1) ++
Регистрация: 04.03.2009
"Или же каким-либо образом все содержимое формы, с учетом того, что в каких-то частях формы могут быть скроллеры и на экран не все влезает?" вот это, как я понял из-за того что на форме нет datasource вместо автоотчёта, с помощью ctrl+p печатается вся форма, а не делается автоотчёт. Так вот как этот ctrl+p вызвать из X++?
Старый 23.07.2009, 16:25   #8  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
По ctrl+p всего лишь вызывается форма SysTableForm.
Старый 23.07.2009, 16:35   #9  
stalker25 is offline
stalker25
Участник
 
20 / 15 (1) ++
Регистрация: 04.03.2009
хммм нет у меня вызывается сразу принтер, как например если б из эксплоера вызвать ctrl+p ...
Старый 23.07.2009, 16:49   #10  
stalker25 is offline
stalker25
Участник
 
20 / 15 (1) ++
Регистрация: 04.03.2009
обрисую полностью ситуацию есть form с контролом activex (Microsoft Web Browser) как распечатать этот контрол на принтере? так как при ctrl+p вызывается, сразу принтер из windows? как это сделать из кода?
Старый 23.07.2009, 17:17   #11  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Вот для начала. По нажатию Ctrl+P фотографирует форму и кладет рисунок в буфер обмена.

Перекрыть метод task() на форме
X++:
public int task(int _taskId)
{
    int         ret;
    //  DSPIC -->
    Image       image;
    #define.Key_CtrlP(278)
    //  DSPIC <--

    ret = super(_taskId);

    //  DSPIC -->
    if (_taskId == #Key_CtrlP)
    {
        image = new Image();
        image.captureWindow(this.hWnd());
        image.clipboardCopy();
    }
    //  DSPIC <--

    return ret;
}
Второй этап - посласть картинку из буфера обмена на принтер, скрестив доработку с формой SysPrintForm если я правильно понял задачу...

Если нужно не через SysPrintForm, то можно продумать вариант с WinApi::PrintDlg - вызывает виндошный диалог принтера перед печатью (Ctrl+P). Нужно посмотреть, как ему подсунуть буфер обмена для печати, либо получится сделать минуя буфер.

Последний раз редактировалось DSPIC; 23.07.2009 в 17:31. Причина: PrintDlg
Старый 23.07.2009, 18:18   #12  
stalker25 is offline
stalker25
Участник
 
20 / 15 (1) ++
Регистрация: 04.03.2009
спасибо за внимание, я посмотрел syshelp formu и там почти то что нужно, только мне не понятно как activex.document() засунуть в олекоманд, или как делается выборка и убирается header time and date ...

X++:
void print()
{
    OleCommand oleCommand;
    COMVariant parm;
    ;

    oleCommand = new OleCommand( browser1.Document() );


    parm = new COMVariant(COMVariantInOut::Out);

    oleCommand.exec('',6,1,parm);
Старый 23.07.2009, 20:35   #13  
stalker25 is offline
stalker25
Участник
 
20 / 15 (1) ++
Регистрация: 04.03.2009
Вобщем заработало
X++:
void print()
{
    OleCommand oleCommand;
    COMVariant parm;
    ;

    oleCommand = new OleCommand( browser1.Document().Interface() );


    parm = new COMVariant(COMVariantInOut::Out);

    oleCommand.exec('',6,1,parm);
}
тока такой вопрос как мне распечатать сразу, как определить что страница загрузилась, может есть какие то идеи?
За это сообщение автора поблагодарили: oip (5).
Теги
буфер обмена, печать, скриншот, форма

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обновление DataSource из формы Печать\Новый отчет. Poleax DAX: Программирование 19 13.04.2011 09:28
OZKA's DAX Journal: Модификация формы "Должностные лица". Blog bot DAX Blogs 0 30.09.2008 22:05
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07

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

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

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