CftClub.ru
Клуб специалистов ЦФТ-Банк

OOXML скопировать строки таблицы в ворде

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеСр Июл 25, 2018 10:59   OOXML скопировать строки таблицы в ворде Ответить с цитатой
Полезность: Нет оценки
Всем привет вроде эта ф-ция должна скопировать в ворде в 1й таблице, 10 строку и вставить её в 11ю

Код:
::[OOXML].[API_DOC_SAX].copyTblRow(1, 10, 11);


Но что то не копирует. Куда копать, что я забыл?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеСр Июл 25, 2018 13:10    Ответить с цитатой
Полезность: Нет оценки
Либо номер таблицы некорректный, либо строки 11 нет.
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеСр Июл 25, 2018 13:42    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Либо номер таблицы некорректный, либо строки 11 нет.


Строк много (>20), мне надо 10ю скопировать в 11ю со сдвигом, чтобы в 10й снова заполнять данные с 2го (другого счета) счета.
Таблица тоже только одна на странице.
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеЧт Июл 26, 2018 09:21    Ответить с цитатой
Полезность: Нет оценки
Ни у кого нет такой проблемы? Или никто не пользуется таким методом?

Попробовал сделал руками чистый лист и таблицу, все равно не копирует, где то что то видимо ковырнуть надо, что не представляю Crying or Very sad
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Июл 26, 2018 11:22    Ответить с цитатой
Полезность: Нет оценки
Много примеров дистрибутивных операций с copyTblRow - попробуй проверить на них. Кстати версия word какая, мб шаблон не xml?
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеЧт Июл 26, 2018 11:26    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Много примеров дистрибутивных операций с copyTblRow - попробуй проверить на них. Кстати версия word какая, мб шаблон не xml?


Версия 16, а что значит шаблон не XML? Делаю чистый лист в ворде, сохраняю в wrd.dotx, загружаю с клиента в Справочнике шаблонов, там же ставлю галку Печать в формате XML
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Июл 26, 2018 12:00    Ответить с цитатой
Полезность: Нет оценки
Цитата:
там же ставлю галку Печать в формате XML


у меня такой галки нет
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Июл 26, 2018 12:12    Ответить с цитатой
Полезность: Нет оценки
Проверил ::[OOXML].[API_DOC_SAX].copyTblRow(1, 10, 11);
- работает, м.б. какие-то лишние галки, или загрузить wrd.docx
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеЧт Июл 26, 2018 13:16    Ответить с цитатой
Полезность: Нет оценки
Пытаюсь выяснить. Может в РБО немного другие галки, но либы одинаковые. При попытке прогрузить docx шаблон запуск операции ругается что не может открыть его. В самой либе смущает путь word/ что это за путь он должен быть в корне ФИО или он так виртуальный?

Код:

procedure copyTblRow
   ( p_tab               integer
   , p_row_src            integer
   , p_row_pos            integer
   )
is
   v_doc      xmlType;
   v_doc_path   varchar2(4000)   := 'word/document.xml';
begin
   if v_files_ctx.exists(v_doc_path) then
      v_doc   := GetXmlCtx(v_doc_path);
         evalXQ
         ( p_doc      == v_doc
         , p_xq      ==
                  'declare namespace w = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
                           copy $c   :=  . modify (
                           let $cnt   := 0
                           return(
                              insert node ($c//w:tbl)[' || p_tab || ']/w:tr['|| p_row_src ||']
                              before ($c//w:tbl)[' || p_tab || ']/w:tr['|| p_row_pos ||']
                              ))
                           return $c');
         ReloadXmlCtx(v_doc_path,v_doc);
   end if;
end;
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеЧт Июл 26, 2018 14:41    Ответить с цитатой
Полезность: Нет оценки
У меня такое впечатление что ей как то подключать надо. delrow тоже не работатет. Ну или номер таблицы действительно не тот, но как его узнать если на чистом листе я таблицу только одну создал?
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Июл 30, 2018 09:42    Ответить с цитатой
Полезность: Нет оценки
Код:
       test:= ::[OOXML].[API_DOC_SAX].getTblCount();
       debug_pipe('test='||test,0);


Понял только одно, почему не работает - таблицы не видит. Почему не видит - вопрос не могу решить.
В ИБСО все аналогично и работает, в РБО ничего не работает
Crying or Very sad
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru