Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Акес и ОpenOffice / 25 сообщений из 74, страница 1 из 3
30.05.2007, 13:24
    #34560987
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
может это бред...
кто-нибудь пробовал выводить в ООо
тоже самое что и в ворд и эксель?
...
Рейтинг: 0 / 0
30.05.2007, 13:37
    #34561060
Lamazoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
А подробнее нелзя было расшифровать что такое OO - тут что фсе маги и декодеры чтоли. А вообщето на скока я думаю что OO (Open Office - наверное) должен позволять работать с собой как с объектом - попробуй зделать что то - типа
set obj=createobject ("openoffice.application")
и рассматривай этот объект в locals
...
Рейтинг: 0 / 0
30.05.2007, 13:46
    #34561102
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
насчёт ООо ты угадал.
а вот твоё второе предположение требует проверки, к сожалению как бы ну.....
вот и спрашиваю (чтоб на чужих ошибках научиться), вдруг есть , кто по этим граблям прошёл...
...
Рейтинг: 0 / 0
30.05.2007, 13:48
    #34561107
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
...
Рейтинг: 0 / 0
30.05.2007, 14:42
    #34561333
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
вадянасчёт ООо ты угадал.
а вот твоё второе предположение требует проверки, к сожалению как бы ну.....
вот и спрашиваю (чтоб на чужих ошибках научиться), вдруг есть , кто по этим граблям прошёл...

я на этих граблях до сих пор прыгаю - мое мнение: бесплатных продуктов не бывает, бывают продукты, за которые ВНАЧАЛЕ не платишь...

вот русскоязычный форум: http://community.i-rs.ru/

если есть возможность остаться на MS Office - лучше оставаться на нем.
...
Рейтинг: 0 / 0
30.05.2007, 14:58
    #34561414
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
2nibbles
там я уже засветился

ну тоо что бесплатный сыр только в мышеловке я догадываюсь....

но перед тем как пробовать, хочется послушать мнение бывалых
если не в лом - поделись проблемами, нужно оценить затраты по переходу
...
Рейтинг: 0 / 0
30.05.2007, 15:06
    #34561453
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
вадя2nibbles
там я уже засветился

ну тоо что бесплатный сыр только в мышеловке я догадываюсь....

но перед тем как пробовать, хочется послушать мнение бывалых
если не в лом - поделись проблемами, нужно оценить затраты по переходу

Навскидку:
Длительные (от 20 до 60 сек на моем программерском железе) операции загрузки, открытия, перерасчета листов, глюки при работе с шаблонами (если шаблоны лежат на сетевых ресурсах), невозможность использовать автоматически созданные макро в своем коде, убогий (другого слова не подберешь) редактор исходного кода. Отсутствие внятной документации по языку - тот гуид, что всем предлагается в качестве мануала по программированию, содержит не все необходимые в работе с ООо команды - доискивать приходится на форумах... кстати, идти лучше сразу на англоязычный http://www.oooforum.org/forum/search.phtml - наш в этом случае помогал мне редко.
...
Рейтинг: 0 / 0
19.07.2007, 12:33
    #34669765
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
хочу использовать но не могу разобраться

есть примеры, но ...

http://triteh.ru/libooo/

может кто поможет как из акса открыть документ экселя используя эту приблуду для openoffice
...
Рейтинг: 0 / 0
19.07.2007, 13:09
    #34669942
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
вадяхочу использовать но не могу разобраться

есть примеры, но ...

http://triteh.ru/libooo/

может кто поможет как из акса открыть документ экселя используя эту приблуду для openoffice

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Public Sub ufTest()
Dim oApp As TOpenOffice.Bridge

    Set oApp = New TOpenOffice.Bridge
    
    oApp.Open ("C:\test.xls")
    

End Sub

Имхо, лучше работать напрямую через интерфейс самого OOo.
...
Рейтинг: 0 / 0
19.07.2007, 13:10
    #34669945
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
Эту "приблуду" надо скачать и добавить ссылку на нее в референсы проекта. После этого можно работать как там описано. Открыть документ:

Код: plaintext
1.
2.
3.
4.
5.
Dim t As Object

Set t = CreateObject("TOpenOffice.Bridge")
t.Open "C:\MyFile.xls"
t.Visible = True
Set t = Nothing
...
Рейтинг: 0 / 0
19.07.2007, 13:13
    #34669958
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
тока в референсах надо подключить бибилотеку TOpenOffice... пока приблуду не ковырял, но довольно интересная, хотя, естественно, всех потребностей программиста она охватить не сможет
...
Рейтинг: 0 / 0
19.07.2007, 13:15
    #34669970
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
%?*?%Эту "приблуду" надо скачать и добавить ссылку на нее в референсы проекта. После этого можно работать как там описано. Открыть документ:

Код: plaintext
1.
2.
3.
4.
5.
Dim t As Object

Set t = CreateObject("TOpenOffice.Bridge")
t.Open "C:\MyFile.xls"
t.Visible = True
Set t = Nothing


при таком использовании (через "As Object") добавлять ссылку на библиотеку не нужно - не имеет смысла
...
Рейтинг: 0 / 0
19.07.2007, 13:32
    #34670061
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
авторИмхо, лучше работать напрямую через интерфейс самого OOo.


а это как?


а через эту приблуду много не сделаешь.....
...
Рейтинг: 0 / 0
19.07.2007, 13:35
    #34670081
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
что надо подлючить в референсах от opeNoffice?
я не смог разобраться ...
...
Рейтинг: 0 / 0
19.07.2007, 14:25
    #34670383
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
Ничего. Тут только через CreateObject

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Command1_Click()

Dim objServiceManager As Object
Dim Desktop As Object
Dim Document1 As Object
Dim OpenParams( 0 )

Set objServiceManager = CreateObject("com.sun.star.ServiceManager")

Set OpenParams( 0 ) = OOoPropertyValue("ReadWrite", True)

Set Desktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")

Set Document1 = Desktop.LoadComponentFromURL("file:///C:/MyFile.xls", "_blank",  0 , OpenParams)

End Sub
...
Рейтинг: 0 / 0
19.07.2007, 14:28
    #34670399
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
nibbles %?*?%Эту "приблуду" надо скачать и добавить ссылку на нее в референсы проекта. После этого можно работать как там описано. Открыть документ:

Код: plaintext
1.
2.
3.
4.
5.
Dim t As Object

Set t = CreateObject("TOpenOffice.Bridge")
t.Open "C:\MyFile.xls"
t.Visible = True
Set t = Nothing


при таком использовании (через "As Object") добавлять ссылку на библиотеку не нужно - не имеет смысла

Разумеется. Просто не понял, в чем проблема у автора воспользоваться этой утилиткой. Думал, может проблема с регистрацией.
...
Рейтинг: 0 / 0
19.07.2007, 15:12
    #34670617
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
утиоиту я зарегил, только она не много может...


Код: plaintext
Set OpenParams( 0 ) = OOoPropertyValue("ReadWrite", True)


OOoPropertyValue - функция не определена...


в этом случае , что-то нада регистрировать?
...
Рейтинг: 0 / 0
19.07.2007, 15:37
    #34670722
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
У меня работает. Ну, сделай так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub Command1_Click()

Dim objServiceManager As Object
Dim Desktop As Object
Dim Document1 As Object
Dim OpenParams()

Set objServiceManager = CreateObject("com.sun.star.ServiceManager")

Set Desktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")

Set Document1 = Desktop.LoadComponentFromURL("file:///C:/MyFile.xls", "_blank",  0 , OpenParams)

End Sub
...
Рейтинг: 0 / 0
19.07.2007, 15:54
    #34670795
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
Извиняюсь, тормжу. Вот функция:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function OOoPropertyValue(cName, uValue)
Dim oPropertyValue As Object

Set oPropertyValue = objServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
oPropertyValue.Name = cName
oPropertyValue.Value = uValue

Set OOoPropertyValue = oPropertyValue
End Function
...
Рейтинг: 0 / 0
19.07.2007, 16:03
    #34670835
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
Кстати - только что заметил - уже ведь дали вот эту ссылку - Programming OpenOffice.org with Visual Basic . Там очень подробно и с примерами описано как работать с OpenOffice API. Пользуйтесь - все рабочее.
...
Рейтинг: 0 / 0
19.07.2007, 22:03
    #34671746
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
я у MS английский читать могу, но с этим - проблемы....
если не влом, ткните в то место где написано про то, как работать с экселем через ООо
чтоб и RANGE всё прочее экселевское можно было пользовать.
...
Рейтинг: 0 / 0
19.07.2007, 22:21
    #34671761
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
Скачай вот этот файлик Тут детально сравниваются VBA и SB.
...
Рейтинг: 0 / 0
20.07.2007, 08:05
    #34672014
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
%?*?% Скачай вот этот файлик Тут детально сравниваются VBA и SB.

похоже, на то что требуется.
нада только разобраться..
если удастся, то рантаймовские версии акса можно будет использовать и для создания/заполнения отчетов и в ворде и экселе, а это раширяет возможности.
...
Рейтинг: 0 / 0
20.07.2007, 11:55
    #34672680
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
вот этот код работает:


Код: plaintext
1.
2.
3.
4.
5.
6.
Set ExlDb = CreateObject("com.sun.star.ServiceManager")
Set Desktop = ExlDb.createInstance("com.sun.star.frame.Desktop")
Set Document1 = Desktop.LoadComponentFromURL("file:///C:/NL/накл2.xls", "_blank",  0 , OpenParams)
Set WrkSht = Document1.CurrentController.ActiveSheet
With WrkSht
            
    .getCellRangeByName("грузоотправитель").String = srst![........


а вот пребразовать не могу

Код: plaintext
1.
2.
3.
4.
5.
With WrkSht
   .Rows("21:26").Delete Shift:=xlUp
           .Rows("20:2" & i -  2 ).EntireRow.Insert
            .Rows("19:19").Select
            .Rows("19:19").Copy
            .Rows("20:2" & i -  2 ).Select



поиск не помог
...
Рейтинг: 0 / 0
21.07.2007, 02:04
    #34674792
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Акес и ОpenOffice
Пара функций, для затравки...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
'Insert string, formula or value in a cell and set basics formats
'Calc_InsertStringCell("A1","My Text","0.000", "Arial",18,1,True,True)
'Calc_InsertStringCell("A1","=sum(A2:A3)","0.000", "Arial",18,1,True,True)
'Calc_InsertStringCell("A1",15.17,"0.000,00", "Arial",18,1,True,True)

Sub Calc_InsertStringCell(strCell As String, uTxt, Optional strFormat As String, Optional strFont As String, Optional intSize As Integer, Optional intPos As Integer, Optional blWrp As Boolean, Optional blAutaj As Boolean)
'strCell = Cell Address in A1 layout
'uTxt = String, formula or value to be inserted in strCell
'strFormat = Cell format to applicate (optional)
'strFont = Font name (optional)
'intSize = Font size (optional)
'intPos = 1=Left; 2=Right; 3=Justify Word Wrap; 4=Center (optional)
'blWrp = TextWrapped (optional)
'blAutaj  = ShrinktoFit (optional)

   Dim objCel As Object
   Set objCel = oSheet.getCellByPosition(Calc_ColumnNumber(strCell), Calc_RowNumber(strCell)) 'Format (Column,Row)
   Select Case TypeName(uTxt)
   Case "String"
      If Left(uTxt,  1 ) = "=" Then 'It's a formula
         objCel.setFormula uTxt
      Else 'It's a string
         objCel.setString uTxt
      End If
   Case "Double", "Integer", "Long"
      objCel.SetValue uTxt
   End Select
   If IsMissing(strFormat) = False Then
      If Len(strFormat) >  0  Then 'there is a format
         Calc_FormatRange strCell, strFormat
      End If
   End If
   If Len(strFont) >  0  Then 'There is a font name
      objCel.SetPropertyValue "CharFontName", strFont
   End If
   If intSize >  0  Then 'Ther is a font size
      objCel.SetPropertyValue "CharHeight", intSize
   End If
   If intPos >  0  And intPos <=  4  Then
      '1=Left; 2=Right; 3=Justify Word Wrap; 4=Center
      Select Case intPos
         Case  1 : objCel.SetPropertyValue "ParaAdjust",  0   'Left
         Case  2 : objCel.SetPropertyValue "ParaAdjust",  1   'Right
         Case  3 : objCel.SetPropertyValue "ParaAdjust",  2   'Justify Word Wrap
         Case  4 : objCel.SetPropertyValue "ParaAdjust",  3  'Center
      End Select
   End If
   objCel.SetPropertyValue "ShrinkToFit", blAutaj 'ShrinktoFit
   objCel.SetPropertyValue "IsTextWrapped", blWrp 'TextWrapped
End Sub


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
'Insert strings, formulas or values in 15 columns of a row
'Calc_InsertStringRow("A1","MyText1","MyText2", "MyText3"

Sub Calc_InsertStringRow(strCell As String, Optional uTxt01, Optional uTxt02, Optional uTxt03, Optional uTxt04, Optional uTxt05, Optional uTxt06, Optional uTxt07, Optional uTxt08, Optional uTxt09, Optional uTxt10, Optional uTxt11, Optional uTxt12, Optional uTxt13, Optional uTxt14, Optional uTxt15)
   Dim objCel As Object
   If IsMissing(uTxt01) = False Then Calc_InsertStringCell strCell, uTxt01
   If IsMissing(uTxt02) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  1 ) & Calc_RowNumber(strCell) +  1 , uTxt02
   If IsMissing(uTxt03) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  2 ) & Calc_RowNumber(strCell) +  1 , uTxt03
   If IsMissing(uTxt04) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  3 ) & Calc_RowNumber(strCell) +  1 , uTxt04
   If IsMissing(uTxt05) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  4 ) & Calc_RowNumber(strCell) +  1 , uTxt05
   If IsMissing(uTxt06) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  5 ) & Calc_RowNumber(strCell) +  1 , uTxt06
   If IsMissing(uTxt07) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  6 ) & Calc_RowNumber(strCell) +  1 , uTxt07
   If IsMissing(uTxt08) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  7 ) & Calc_RowNumber(strCell) +  1 , uTxt08
   If IsMissing(uTxt09) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  8 ) & Calc_RowNumber(strCell) +  1 , uTxt09
   If IsMissing(uTxt10) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  9 ) & Calc_RowNumber(strCell) +  1 , uTxt10
   If IsMissing(uTxt11) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  10 ) & Calc_RowNumber(strCell) +  1 , uTxt11
   If IsMissing(uTxt12) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  11 ) & Calc_RowNumber(strCell) +  1 , uTxt12
   If IsMissing(uTxt13) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  12 ) & Calc_RowNumber(strCell) +  1 , uTxt13
   If IsMissing(uTxt14) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  13 ) & Calc_RowNumber(strCell) +  1 , uTxt14
   If IsMissing(uTxt15) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  14 ) & Calc_RowNumber(strCell) +  1 , uTxt15
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Акес и ОpenOffice / 25 сообщений из 74, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]