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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.04.2010, 12:51   #1  
kair84 is offline
kair84
Участник
 
47 / 58 (2) ++++
Регистрация: 15.04.2010
Адрес: Belarus
да смотрел, вот код:
X++:
//Import from Mazzy forum
public void InsertText(BookMark      _bookMark,
                          TextBuffer    _text,
                          int           _workSheet = 1)
{
  COM         XLSWorkSheet, XLSrange;
  TextBuffer  tempBuffer;             // To store clipboard contents
  ;

    if (! m_comDocument)
    {
      throw error(StrFmt("@DIS6401", this.getApplicationName()));
    }
    else
    {
      // Initializing XLSWorkSheet object
      XLSWorkSheet    = this.getWorkSheet(_workSheet);
      if (!XLSWorkSheet)
        throw error("@DIS6043");

      // Initializing XLSRange object
      XLSrange        = this.findRange(_bookMark,_workSheet);
      if (!XLSrange)
        throw error("@SYS27391");
      XLSrange.select();


      // Storing clipboard contents
      tempBuffer = new TextBuffer();
      tempBuffer.fromClipboard();


      // Preparing text to be inserted
      _text.toClipboard();     

      // Inserting text from clipboard

      XLSWorkSheet.pasteSpecial(1); // 1 - "Text only" mode  
//      XLSWorkSheet.pasteSpecial(3); 
//      XLSWorkSheet.PasteSpecial(COMVariant::createFromStr("Текст"));
//        XLSWorkSheet.pasteSpecial(-4163);


      // Restoring clipboard contents
      tempBuffer.toClipboard();
    }// if

  return;
}
Старый 15.04.2010, 13:19   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Попробуйте сделать по аналогии с этим моим сообщением: Параметры pastespecial()

А именно:

1. Закомментируйте у себя строку "XLSrange.select();" - она ни к чему в моем случае
2. Вместо "XLSWorkSheet.pasteSpecial(1);" напишите "XLSrange.pasteSpecial(1);"

Плюс обратите внимание вот на это: Ускорение экспорта в Excel - и там про терминал. Вы уверены, что буфер, передающийся в процедуру - тот, который нужен? Не происходит ли подмена на локальный или наоборот?

Последний раз редактировалось Gustav; 15.04.2010 в 13:30.
Теги
excel, pastespecial

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод всех меток из заданного уровня на заданных языках в Excel wojzeh DAX: Программирование 0 19.03.2010 23:45
Помогите сделать действие в Excel через COM kashperuk DAX: Программирование 25 10.09.2007 15:59
dynamicsusers: DL Tips And Tricks: ADO Database Reader (Jet way) - Excel Example Blog bot DAX Blogs 0 02.08.2007 03:50
Экспорт в Excel - поле формата "Дата" Ned DAX: Программирование 15 25.04.2003 10:01

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

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

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