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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.08.2017, 11:44   #1  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
LibreOffice (OpenOffice) вставка строк из буфера обмена
Знатокам OpenOffice

Пытаюсь вставить в SCalc аналогично как в Excel:
X++:
void pasteData()
{
    TextBuffer  tb = new TextBuffer();
    COM         cell;
    Com         dispatcher;
    COM         controller;
    COM         frame;
    ;
    
    tb.appendText('Поле11\tПоле21\tПоле31\tПоле41\tПоле51\n');
    tb.appendText('Поле12\tПоле22\tПоле32\tПоле42\tПоле52\n');

    tb.toClipboard();

    dispatcher = app.CreateInstance('com.sun.star.frame.DispatchHelper');

    cell = sheet.getCellRangeByName('A8');
    controller = doc.GetCurrentController();
    controller.select(Cell);

    frame = controller.GetFrame();

    dispatcher.executeDispatch(frame, '.uno:Paste', '', 0, COMVariant::createFromArray(new Array(Types::Class)));
}
Но в момент вставки выводится диалог "Импорт текста".
После нажатия на ОК все нормально вставляется.
Как избавиться от запроса?
Спасибо
Старый 29.08.2017, 07:13   #2  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Поробуйте ".uno:ClipboardFormatItems"
PS: а еще вроде и вставать в ячейку можно с помощью ".uno:GoToCell"
Старый 29.08.2017, 10:25   #3  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Цитата:
Сообщение от Player1 Посмотреть сообщение
Поробуйте ".uno:ClipboardFormatItems"
Не помогло. При простой замене операции вообще ничего не произошло (не вставило данные).
После добавления параметра (PropertyValue) 'SelectedFormat' опять получил диалог.

Цитата:
Сообщение от Player1 Посмотреть сообщение
PS: а еще вроде и вставать в ячейку можно с помощью ".uno:GoToCell"
Вставлять поячеечно можно, но, на примере Екселя, очень долго.
Быстрее вставить всю таблицу одной командой
Старый 29.08.2017, 10:57   #4  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от kia Посмотреть сообщение
Знатокам OpenOffice
Знатоки OpenOffice наверно сидят на OpenOffice форуме и обсуждают такие проблемы там
Старый 29.08.2017, 10:59   #5  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Цитата:
Сообщение от kia Посмотреть сообщение
Не помогло. При простой замене операции вообще ничего не произошло (не вставило данные).
После добавления параметра (PropertyValue) 'SelectedFormat' опять получил диалог.
Давайте тогда почитаем тут про ".uno:InsertRows" http://delphimaster.net/view/1-1222968605

Цитата:
Сообщение от kia Посмотреть сообщение
Вставлять поячеечно можно, но, на примере Екселя, очень долго.
Быстрее вставить всю таблицу одной командой
Я не про это, а про вашу подготовку с помощью cell и select. А вот в ссылке выше также подготавливают для вставки с помощью ".uno:GoToCell". Для однообразности так сказать попробуйте.
Старый 29.08.2017, 15:35   #6  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Цитата:
Сообщение от Player1 Посмотреть сообщение
Давайте тогда почитаем тут про ".uno:InsertRows" http://delphimaster.net/view/1-1222968605

Я не про это, а про вашу подготовку с помощью cell и select. А вот в ссылке выше также подготавливают для вставки с помощью ".uno:GoToCell". Для однообразности так сказать попробуйте.
Ваши предложения сводятся к копирования в пределах SCalc.
Проверил, это работает.
Но необходимо вставить строки вставленные в буфер обмена из АХ с помощью TextBuffer.
Подозреваю, что TextBuffer и SCalc копируют строки в буфер обмена по разному.
Формат вроде одинаковый, может разница в кодировке, но я пока разницу не обнаружил.
Старый 29.08.2017, 18:04   #8  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Цитата:
Сообщение от Player1 Посмотреть сообщение
Этот код работы с буфером видел и даже сам исправил, но он вставляет текст в одну конкретную ячейку.
Старый 29.08.2017, 18:58   #9  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Проверил результат работы сервиса 'com.sun.star.datatransfer.clipboard.SystemClipboard' после копирования в буфер обмена из SCalc и из АХ (TextBuffed).
Для MimeType = text/plain;charset=utf-16 получил все идентично.
НО OpenOffice создает в буфере обмена кучу записей со своим MimeType и наверное их использует для своей вставки, а если сторонние данные, то всегда будет диалог.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Импорт больших данных с экселл в аксапту с помощью буфера обмена Maxat Yermukhanov DAX: Программирование 7 26.09.2012 08:52
Вставка строк в таблицы Аксапты сторонними средствами Андре DAX: База знаний и проекты 1 07.05.2009 16:49
Создание буфера обмена на бездисковых станциях Владимир Максимов DAX: Программирование 9 03.04.2008 11:41
Тормозит копирование строк в буфер обмена ivas DAX: Программирование 20 21.08.2007 15:05
Сохранение/восстановление буфера обмена Peter Savintsev DAX: База знаний и проекты 0 01.04.2006 12:59

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

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

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