Lotusscript

Тема в разделе "Lotus - Программирование", создана пользователем Xalet, 14 май 2009.

  1. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Доброго времени суток всем.
    Возникли некоторые вопросы по ЛС. Вообще он очень похож на бейсик. Но в некоторых моментах отличается. Собственно вопрос:

    Есть код на ВБ:

    Код (Text):
    Dim Doc As Object
    Dim Sheet As Object
    Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
    Dim CellAddress As New com.sun.star.table.CellAddress
    Doc = StarDesktop.CurrentComponent
    Sheet = Doc.Sheets(0)
    CellRangeAddress.Sheet = 0
    CellRangeAddress.StartColumn = 1
    CellRangeAddress.StartRow = 1
    CellRangeAddress.EndColumn = 2
    CellRangeAddress.EndRow = 2
    CellAddress.Sheet = 0
    CellAddress.Column = 0
    CellAddress.Row = 5
    Sheet.moveRange(CellAddress, CellRangeAddress)
    Как сделать его аналог на ЛС?

    ругается на :

    Код (Text):
    Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
    Dim CellAddress As New com.sun.star.table.CellAddress
    Спасибо.
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Код (Text):
    As Varinat
    , не?
     
  3. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    На такое не ругается. Но и не работает.
    Код (Text):
    CellRangeAddress.Sheet = 0
    в этом месте ошибка: Variant doesn't contains an object
     
  4. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Сорри за оффотоп, но будь я LS, я бы тоже ругнулся, что какую-то сивуху пытаются втюхать :rolleyes:

    А по делу да, Variant.

    Можешь потом попробовать set CellAddress = CreateObject ("com.sun.star.table.CellRangeAddress")
     
  5. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Чего я ток не пробовал. Так тоже не работает. CellRangeAddress это не объект, а структура.

    Нашел. Если вдруг кому понадобится, то структуры для ОпенОфиса создаются серис менеджером:

    Код (Text):
    Set obj = svcMgr.Bridge_getStruct("com.sun.star.table.CellRangeAddress")
     
  6. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    писать выгрузку в OO зло:rolleyes: Но зато написав раз,не паришься уже. Там хрен пойми как обращаться к объектам. Методом проб и ошибок, взяв в руки бубен через продолжительное время получается :)
     
  7. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Так оно у меня написано было уже. Но на джаве и работало через бридж. Появилось мнение, что так оно медленно работает. Решили переделать без джавы. В эксель всё в разы проще делается, но он денег стоит и предлагать клиенту как решение не особо хорошо.
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    главное, чтобы клиенту к экселю не пришлось доставлять еще и ОО :)
     
  9. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    у меня они вместе дружно живут и симфони еще в нагрузку. Не проблемма точно. ИМХО
     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    проблема не в совместимости двух продуктов на одной машине, а в том, что клиенту это лишняя задача :)
     
  11. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    так это смотря в каких целях использовать... Если только распечатать отчет, то пользователь может и не знать, что у него стоит ОО вообще.
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    спорщик :)
    если ты в конторе из 10-20 человек и админ и разраб, то да, ты себе поставил и забыл...
    а если ты пишешь для конторы, серьезной конторы, у которой стандарты и всякая остальная чепуха, и если эта чепуха не совпадает с той, что ты используешь, то для конторы это лишняя задача ;)
     
Загрузка...

Поделиться этой страницей