проблемы с переходом oo2.3 на oo3.3

Автор konstan_tin, 18 января 2013, 13:27

0 Пользователи и 1 гость просматривают эту тему.

konstan_tin

Добрый день Гуру. У меня написана прога (макросы) пару лет назад , еще в версии oo2.3 ,но все не стоит на месте и захотелось перебраться на версию посвежее (может глюклв меньше будет).
Столкнулся с проблемой
1  Worksheets("docum").Rows(22).Insert 'вставили чтроку     Worksheets("docum").Rows(22).Delete 'удалить чтроку  работают очень медленно
Ну просто фатально. Если сравнивать с машиной , то она просто не едет . Может есть какие операторы по вставке-удалению строки более быстрые ? или их можно как-то удалить-вставить несколько строк за 1 команду оптом?

ну и в догонку:
2 вывод на принтер почему-то не заработал , пока не поставил паузу delay(5) на 5 сек
пример текста

ThisComponent.CurrentController.getActiveSheet().setPrintAreas(oRanges())
ThisComponent.Print(Array())
'  MsgBox ThisComponent.CurrentController.dbg_properties
'  MsgBox ThisComponent.CurrentController.dbg_supportedInterfaces
'  MsgBox ThisComponent.CurrentController.dbg_methods
'-------------вернем активную нулевую страницу
call delay(5)   'без этой паузы на принтер не выводит !!!!!
oSheets=ThisComponent.Sheets(0)
ThisComponent.CurrentController.setActiveSheet(oSheets)

удалить чтроку

Yakov

Цитата: konstan_tin от 18 января 2013, 12:27версию посвежее (может глюклв меньше будет)
Если нужна версия посвежее - попробуйте LibreOffice 3.6  http://www.libreoffice.org/download/

JohnSUN

Привет и добро пожаловать на форум!
Цитата: konstan_tin от 18 января 2013, 13:27
1  Worksheets("docum").Rows(22).Insert 'вставили чтроку    
Worksheets("docum").Rows(22).Delete 'удалить чтроку  
работают очень медленно
Ну просто фатально. Если сравнивать с машиной , то она просто не едет .
Это очень странно! Очень-очень странно... Потому что ЭТО вообще не должно работать.
Вот это
  oSheets = ThisComponent.getSheets()
  oSheet = oSheets.getByName("docum")
  oRows = oSheet.getRows()
  oRows.insertByIndex(22, 1)
должно работать... А те строчки, что ты показываешь - это вообще синтаксис VBA, а не StarBasic (родного для ООо). Может, отсюда ноги у тормозов растут?

Цитата: konstan_tin от 18 января 2013, 13:27Может есть какие операторы по вставке-удалению строки более быстрые ? или их можно как-то удалить-вставить несколько строк за 1 команду оптом?
Есть, как не быть. Например, здесь
Цитата: konstan_tin от 18 января 2013, 13:27
ну и в догонку:
2 вывод на принтер почему-то не заработал , пока не поставил паузу delay(5) на 5 сек
Ну, с паузой-то работает? Под какой системой? Принтер по-умолчанию установлен правильно? Локальный? Сетевой?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Hasim

Цитата: JohnSUN от 18 января 2013, 14:21Это очень странно! Очень-очень странно... Потому что ЭТО вообще не должно работать.
Должно работать при включенной поддержке VBA.
Это код VBA MS Office.

JohnSUN

Ну, оговорился... Имелось в виду "не должно БЫЛО работать под 2.3"
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

konstan_tin

Под 2.3 работает нормально . Мне кажется корень вывода на принтер кроется в многозадачности . Просто след операторы возврящают главную страницу как активную , а процедура вывода на принтер не успела завершить работу , поэтому и не выводит .Впрочем многозадачность иногда портит картину мне еще в паре мест проги .