Показать сообщение отдельно
Старый 11.05.2011, 12:45   #10  
someOne is offline
someOne
Участник
Аватар для someOne
 
174 / 432 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Не сочтите этот способ за извращение, но у меня такой пример сработал.

На мысль навело использование горячих клавиш управления масштабом отчета.

Итак, создаем класс
X++:
class Class1
и методы
X++:
static client void test()
{
    thread thread = new thread();
    ;

    thread.run(classnum(Class1), identifierstr(runThread));
}
Именно этот метод генерирует нажатия HotKeys Alt + D
X++:
static client void runThread(thread _thread)
{
    ;
    System.Windows.Forms.SendKeys::SendWait("%D");
    System.Windows.Forms.SendKeys::SendWait("%D");
    System.Windows.Forms.SendKeys::SendWait("%D");

    System.Windows.Forms.SendKeys::SendWait("%D");
    System.Windows.Forms.SendKeys::SendWait("%D");
    System.Windows.Forms.SendKeys::SendWait("%D");
}
Далее, в самом отчете, например в методе run или Print перекрываем метод

X++:
public void run()
{
    ;
    super();

    Class1::test();
}
И вуаля - масштаб отчета изменился как надо.

Данная идея применима и к любым другим функциям Аксапта, где нет управления методами из кода x++, но есть управление с помощью Hot Keys.

Естественно, работать будет лишь в Dax2009 и Ax4.0, наверное.

Описание используемого метода NET тут -
http://msdn.microsoft.com/ru-ru/libr....sendkeys.aspx
За это сообщение автора поблагодарили: S.Kuskov (2), mazzy (2), ZVV (2), Logger (5).