| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		MARINA KRAMARENKO Участник
 
  Вступление в Клуб: 26.08.2013
  | 
		
			
				 Вт Апр 22, 2014 09:02   Создание OLE объектов | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				В данный момент OLE объект в ИБСО можно создать с помощью экранной формы, вручную выбрав файл WORD/EXCEL/PDF.
 
Кто-нибудь разбирался как это работает в Навигаторе? 
 
Наверняка вызываются определенные Windows API для создания OLE контейнеров. Хотелось бы разобраться и создать нечто подобное, только без участия экранных форм Навигатора.
 
Может сталкивались с подобной задачей? Необязательно в ИБСО. | 
			 
		  | 
	 
	
		  | 
	 
	
		Alkov Профи
 
  Вступление в Клуб: 23.09.2010
  | 
		
			
				 Вт Апр 22, 2014 10:05    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				В смысле создание OLE контейнеров без привязки к ИБСО и к Ораклу ?
 
Тогда почему вопрос здесь ? думаю в инете найти примеры можно для любого языка... | 
			 
		  | 
	 
	
		  | 
	 
	
		MARINA KRAMARENKO Участник
 
  Вступление в Клуб: 26.08.2013
  | 
		
			
				 Вт Апр 22, 2014 10:53    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| Можно в любой оракловой базе. Желательно, конечно, в ИБСО или РБО. | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Вт Апр 22, 2014 12:46    | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				 	  | MARINA KRAMARENKO пишет: | 	 		  | Можно в любой оракловой базе. Желательно, конечно, в ИБСО или РБО. | 	  
 
 
Вы ничего не путаете?
 
OLE в оракловой базе вряд ли будет работать.
 
ОЛЕ - это фишка os windows, и при чём тут Oracle, который может быть поставлен на os HP, unix или ещё 33 разных ос?
 
 
Вы с РБО/ИБСО работаете посредством чего? АРМов.
 
АРМы выполняются где? На стороне клиента.
 
На стороне клиента - ОС Windows, и АРМ может выполнять функции, специфичные для этой ОС. Но - АРМ, как прослойка, а не код, исполняющийся хз где, может, за тыщу километров от клиента.
 
А в базе выполняется почти исключительно только sql и pl/sql
 
 
Так что вы, конечно, можете написать свой собственный АРМ, со своими контейнерами, блекджеком и прочим.
 
 
Ну или написать внешнюю java-процедуру с CORBA, опять же блекджеком и в общем, не слушайте меня, вы с этим не справитесь.
  Последний раз редактировалось: Random (Вт Апр 22, 2014 12:53), всего редактировалось 1 раз | 
			 
		  | 
	 
	
		  | 
	 
	
		MARINA KRAMARENKO Участник
 
  Вступление в Клуб: 26.08.2013
  | 
		
			
				 Вт Апр 22, 2014 12:52    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Все верно. 
 
Но мне нужно сделать exe-шник, который будет вызываться из ИБСО и делать необходимые преобразования бинарных файлов в OLE объекты, которые потом можно будет сохранять в базу. 
 
Примерно так сейчас происходит работа с OLE через Навигатор.
 
Вопрос как раз в том, как с наименьшими трудозатратами создать этот сторонний функционал и прикрутить его в ИБСО. | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Вт Апр 22, 2014 12:57    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | MARINA KRAMARENKO пишет: | 	 		  Все верно. 
 
Но мне нужно сделать exe-шник, который будет вызываться из ИБСО и делать необходимые преобразования бинарных файлов в OLE объекты, которые потом можно будет сохранять в базу. 
 
Примерно так сейчас происходит работа с OLE через Навигатор.
 
Вопрос как раз в том, как с наименьшими трудозатратами создать этот сторонний функционал и прикрутить его в ИБСО. | 	  
 
 
Visual Basic Script.
 
 
Runtime.Shell(Pathname As String, Windowstyle As Long)
 
 
Описание
 
Запуск внешнего приложения (exe-файл).
 
 
[бла-бла]
 
Пример 	  | Код: | 	 		  
 
Public Function Main(LastControl)
 
 
  if LastControl is Button then
 
     if MsgBox("Запустить внешнюю программу?", vbYesNo, "Навигатор") = vbYes then
 
        Dim fn, fs, ec
 
 
        fn = "C:\TEMP\ExitCode.exe"
 
        Set fs = CreateObject("Scripting.FileSystemObject")
 
 
       if fs.FileExists(fn) then
 
               ec = Form1.ScriptShell(fn, 8+1)
 
               MsgBox "ExitCode = " & ec
 
 
       else
 
               MsgBox "Файл " & fn & " не существует."
 
       end if
 
 
        Set fs = Nothing
 
     end if
 
  end if
 
 
Main = True
 
End Function
 
 | 	  
 
 
Например,, результатом работы программы ExitCode.exe будет являться текстовый файл, который с экранной формы АРМ Навигатор легко можно забрать на сервер и уже там обработать и запихнуть в табличку.
  Последний раз редактировалось: Random (Вт Апр 22, 2014 13:04), всего редактировалось 1 раз | 
			 
		  | 
	 
	
		  | 
	 
	
		MARINA KRAMARENKO Участник
 
  Вступление в Клуб: 26.08.2013
  | 
		
			
				 Вт Апр 22, 2014 13:03    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Ну да. Так работают Excel и Word API, и никто нам голову пока не откручивал    
 
 
А тут я хочу вызывать функционал посложнее, который будет делать преобразования. Наверняка же есть стандартные инструменты, которые будут отрабатывать с помощью ехе-шника. | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Вт Апр 22, 2014 13:06    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | MARINA KRAMARENKO пишет: | 	 		  Ну да. Так работают Excel и Word API, и никто нам голову пока не откручивал    
 
 
А тут я хочу вызывать функционал посложнее, который будет делать преобразования. Наверняка же есть стандартные инструменты, которые будут отрабатывать с помощью ехе-шника. | 	  
 
 
Ага.
 
То есть вы спрашиваете совета не по работе с Oracle, а как написать свою собственную программу в виде exe-шника, которая будет работать со стандартными OLE-контейнерами и что-то сделает в результате? | 
			 
		  | 
	 
	
		  | 
	 
	
		MARINA KRAMARENKO Участник
 
  Вступление в Клуб: 26.08.2013
  | 
		
			
				 Вт Апр 22, 2014 13:14    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Почему бы и не поделиться опытом?
 
1. Вопрос в том, что использует Навигатор ИБСО для таких преобразований.
 
2. В ИБСО я как-то прикручивала процедуры JAVA, которые обеспечивали функционал, которого не хватало. Хотелось бы сделать нечто подобное и теперь. | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Вт Апр 22, 2014 13:23    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | MARINA KRAMARENKO пишет: | 	 		  Почему бы и не поделиться опытом?
 
1. Вопрос в том, что использует Навигатор ИБСО для таких преобразований.
 
2. В ИБСО я как-то прикручивала процедуры JAVA, которые обеспечивали функционал, которого не хватало. Хотелось бы сделать нечто подобное и теперь. | 	  
 
 
Извините, вряд ли я тут чем-то помогу.
 
Что касается WORD или EXCEL, то наша подсистема отчётности создаёт COM-объект через функцию VBS CreateObject, затем заставляет его выполнить VB-скрипт, заполняющий и форматирующий данные.
 
 
И, хотя вроде как в модели данных есть OLE-объекты, на практике я с ними не работал. | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |