Гость
Map
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Ole в Forms6i (Из формс в ексель) / 25 сообщений из 28, страница 1 из 2
20.07.2007, 16:01
    #34673910
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Из Forms6i с помощью ole надо в Excel поменять границы у ячеек, у конкрентной ячейки, у группы.
Как это сделать


Пытался сделать так, но нифига не выходит
args:=ole2.CREATE_ARGLIST;
ole2.ADD_ARG(Args, 'C5:K8');
cell:=ole2.get_OBJ_property(worksheet, 'range', Args);
ole2.DESTROY_ARGLIST(Args);
ole2.Invoke(cell,'select');
ole2.set_property(cell, 'Selection.Borders(xlDiagonalDown).LineStyle', 'xlContinuous');

Объясните пожалуйста назначение строки cell:=ole2.get_OBJ_property(worksheet, 'range', Args);
В ней разных случаях используются разные параметры например
cell:= ole2.GET_OBJ_PROPERTY(Application, 'Cells', args);


Буду очень признателен на ссылки с какой нить литературой, а также на различные примеры. В частности мне надо будет вставлять гиперссылку, менять цвет у части текста в ячейке и т.п.
...
Рейтинг: 0 / 0
20.07.2007, 16:11
    #34673942
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
я бы сделала процедуру, которая выполняет экселевский макрос, а уже все это в макросе
...
Рейтинг: 0 / 0
20.07.2007, 16:15
    #34673958
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Это как? Хочу через Ole, но такой вариант на будующее хотелось бы знать
...
Рейтинг: 0 / 0
20.07.2007, 16:26
    #34673989
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
пожалуйста, наслаждайтесь:
http://www.orafaq.com/forum/t/46164/0/
а вообще ссылок есть в инете
...
Рейтинг: 0 / 0
20.07.2007, 16:39
    #34674034
pan159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Давайте мейл, пришлю библиотеку для вывода в Excel через OLE. Там это есть.
...
Рейтинг: 0 / 0
20.07.2007, 16:42
    #34674044
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
andrey046 собака mail точка ru
...
Рейтинг: 0 / 0
20.07.2007, 16:51
    #34674069
pan159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Выслал
...
Рейтинг: 0 / 0
20.07.2007, 16:58
    #34674098
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Получил, спасибо.
С OLE придеться наверно до понедельника подождать.
...
Рейтинг: 0 / 0
23.07.2007, 11:18
    #34676577
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
up
...
Рейтинг: 0 / 0
23.07.2007, 13:47
    #34677161
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Как мне кажется ошибка в этом месте:
cell:=ole2.get_OBJ_property(worksheet, 'range', Args);
нужно использовать другие параметры
...
Рейтинг: 0 / 0
23.07.2007, 19:28
    #34678362
UK0IAI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Вот дежурные примеры, только вы с переменными типа exl.cell.obj
сами разберитесь - это уже юзается тогда когда ЯЧЕЙКА екселя уже ВЫБРАНА
(метод select был применен). Заметьте что появляются "спец_фразы" типа
obj1 := ole2.get_obj_property(exl.cell.obj, 'Font'); . Это значит что если мы хотим изменить некие свойства ячейки мы тоолжны снача сделать ole2.get_obj_property для той ячейки (объекта) которая "хранится в переменной exl.cell.obj)


Код: 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.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
     if ColumnWidth is not null then -- чтобы ширину колонки задать всего 1 раз (когда шапку печатаем)
        ole2.set_property(exl.cell.obj, 'ColumnWidth', ColumnWidth);
     end if;  

     --ФОРМАТ В ТЕКСТ
     IF EXL.VAL_TYPE = 'CHR' THEN
     		ole2.set_property(exl.cell.obj, 'NumberFormat', '@');
     END IF;
     --ФОРМАТ В ЧИСЛО     
     IF EXL.VAL_TYPE = 'NUM' THEN
     		ole2.set_property(exl.cell.obj, 'NumberFormat', '#,##0.00');
     END IF;
     
     ole2.set_property(exl.cell.obj, 'Value', P_VAL);
  
     if exl.PrnBold then
        obj1 := ole2.get_obj_property(exl.cell.obj, 'Font'); -- (excell_cell - текущая ячейка)   	
        ole2.set_property(obj1, 'Bold',  1 );
        ole2.release_obj (obj1); -- надо делать релез для использ переменных
                                -- если не сделать -  получим ошибку при закрытии екселя     
     end if;	
    	
	--Форматы данных: 
	--ole2.set_property(excel_cell, 'NumberFormat', formatstring); 
	--formatstring - не ораклевый, а из экселя ;)).

    --Установить цвет ячейки------------------------
    if EXL.BACKGROUND is not null then
    	 obj1 :=OLE2.get_OBJ_property(exl.cell.obj, 'Interior');  
       OLE2.set_property(obj1, 'ColorIndex', EXL.BACKGROUND);
       OLE2.RELEASE_OBJ(obj1);
    end if;  

    --Установить рамку----------------------------
	  if exl.CELL_BORDER is not null then 
	  	obj1 := OLE2.get_OBJ_property(exl.cell.obj, 'Borders');		
    	OLE2.set_property(obj1, 'ColorIndex', exl.CELL_BORDER); -- exl.CELL_BORDER = магическое число....равно некой КОНСТАНТЕ что в екселе есть ==из дебагера узнается при прогоне дежурного макроса ....(ну в екселе самом)

    	OLE2.RELEASE_OBJ(obj1);
    end if;	
    
    -- Установить выравнивание по горизонту
   	if Exl.TEXT_ALIGN is not null then
   		 if Exl.TEXT_ALIGN = 'RIGHT' then
   		 	  OLE2.set_property(exl.cell.obj, 'HorizontalAlignment', - 4152 );
   		 end if;	  
   		 if Exl.TEXT_ALIGN = 'CENTER' then
   		 	  OLE2.set_property(exl.cell.obj, 'HorizontalAlignment', - 4108 );
   		 end if;	  
   		 if Exl.TEXT_ALIGN = 'LEFT' then
   		 	  OLE2.set_property(exl.cell.obj, 'HorizontalAlignment', - 4131 );
   		 end if;	  
   	end if;	 

	-- Установить выравнивание по ВЕРТИКАЛИ
   	if Exl.VERTICAL_ALIGN is not null then
   		 if Exl.VERTICAL_ALIGN = 'UP' then
   		 	  OLE2.set_property(exl.cell.obj, 'VerticalAlignment', - 4160 );
   		 end if;	  
   		 if Exl.VERTICAL_ALIGN = 'CENTER' then
   		 	  OLE2.set_property(exl.cell.obj, 'VerticalAlignment', - 4108 );
   		 	  OLE2.set_property(exl.cell.obj, 'WrapText',	TRUE);
   		 end if;	  
   		 if Exl.VERTICAL_ALIGN = 'DOWN' then
   		 	  OLE2.set_property(exl.cell.obj, 'VerticalAlignment', - 4107 );
   		 end if;	  
   	end if;	 
    -- ЗАДАТЬ ШРИФТ
    IF Exl.FONT_FAMILY is NOT NULL THEN
        obj1 := ole2.get_obj_property(exl.cell.obj, 'Font'); -- (excell_cell - текущая ячейка)   	
        ole2.set_property(obj1, 'Name', Exl.FONT_FAMILY);
        ole2.release_obj (obj1); 
    end if;	
    -- ЗАДАТЬ ВЫСОТУ ШРИФТА
    IF Exl.FONT_WEIGHT is NOT NULL THEN
        obj1 := ole2.get_obj_property(exl.cell.obj, 'Font'); -- (excell_cell - текущая ячейка)   	
        ole2.set_property(obj1, 'Size', Exl.FONT_WEIGHT);
        ole2.release_obj (obj1); 
    	 
    END IF;
    -- УСТАНОВИТЬ ЦВЕТ ШРИФТА
    IF Exl.FONT_COLOR is NOT NULL THEN
        obj1 := ole2.get_obj_property(exl.cell.obj, 'Font'); -- (excell_cell - текущая ячейка)   	
        ole2.set_property(obj1, 'ColorIndex', Exl.FONT_COLOR);
        ole2.release_obj (obj1); 
    END IF;
    -- ВЫСОТА СТРОКИ
    IF Exl.VAL_HIGH is NOT NULL THEN     --- обратите внимание - алгоритм!!
        args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(args, r_row);   --- r_row = номер произвольной строки екселя 
        obj1 := ole2.get_obj_property(worksheet.obj, 'Rows',args); -- (excell_cell - текущая ячейка)   	
        OLE2.DESTROY_ARGLIST(args);
        ole2.set_property(obj1, 'RowHeight', Exl.VAL_HIGH );
        ole2.release_obj (obj1); 
    end if;    
 
...
Рейтинг: 0 / 0
24.07.2007, 14:50
    #34680309
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Каким типом надо объявить EXL?
...
Рейтинг: 0 / 0
24.07.2007, 15:01
    #34680371
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Не понял комментарий к данному блоку, где тут искать excell_cell ?
IF Exl.FONT_WEIGHT is NOT NULL THEN
obj1 := ole2.get_obj_property(exl.cell.obj, 'Font'); -- (excell_cell - текущая ячейка)
ole2.set_property(obj1, 'Size', Exl.FONT_WEIGHT);
ole2.release_obj (obj1);

END IF;
...
Рейтинг: 0 / 0
24.07.2007, 15:23
    #34680476
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Ваш код:
IF Exl.VAL_HIGH is NOT NULL THEN --- обратите внимание - алгоритм!!
args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(args, r_row); --- r_row = номер произвольной строки екселя
obj1 := ole2.get_obj_property(worksheet.obj, 'Rows',args); -- (excell_cell - текущая ячейка)
OLE2.DESTROY_ARGLIST(args);
ole2.set_property(obj1, 'RowHeight', Exl.VAL_HIGH );
ole2.release_obj (obj1);
end if;

Преобразовал к такому:
args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(args, 5); --- r_row = íîìåð ïðîèçâîëüíîé ñòðîêè åêñåëÿ
obj1 := ole2.get_obj_property(worksheet, 'Rows',args); -- (excell_cell - òåêóùàÿ ÿ÷åéêà)
OLE2.DESTROY_ARGLIST(args);
ole2.set_property(obj1, 'RowHeight', 200 );
ole2.release_obj (obj1);

Т. е. у меня не worksheet.obj, а просто worksheet. Что такое worksheet.obj и как оно объявляется? Фрагменты кода где используется exl.cell.obj тоже не понял.
...
Рейтинг: 0 / 0
25.07.2007, 09:02
    #34682016
UK0IAI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Я торопился и не мог перевести...

мои "exl.cell.obj" - это прикладные переменные (пользователльского типа), объявленные в прикладном пакадже с именем EXL и они имеют тип ole2.obj_type. Вам конечно можно юзать вашу worksheet которая объявлена в начале процедуры.

Я вам показал общие примеры - как форматировать ексел, какие конструкции (магические слова) при этом прописывать.
...
Рейтинг: 0 / 0
25.07.2007, 15:57
    #34683475
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Проделал различные комбинации, все тут приводить не буду, не смог ни закрасить ячейку ни рамку наложить и т.д., Excel даже не открывался. Получилось только высоту строки менять. Не могли бы Вы привести более подробный пример хотя для одного действия с ячейкой. Чтобы все в одной процедуре было. Буду очень признателен. Так же не понял что значит "это уже юзается тогда когда ЯЧЕЙКА екселя уже ВЫБРАНА"

PROCEDURE TO_EXCEL2 IS
application ole2.obj_type;
workbooks ole2.obj_type;
workbook ole2.obj_type;
worksheets ole2.obj_type;
worksheet ole2.obj_type;
cell ole2.obj_type;
obj1 ole2.obj_type;
cell1 ole2.obj_type;
args ole2.list_type;
BEGIN
--Êóñîê èíèöèàëèçàöèè
application:= ole2.create_obj('Excel.Application');
workbooks:= ole2.get_obj_property(application, 'Workbooks');
args:= ole2.create_arglist;

DEFAULT_VALUE('NO SET','GLOBAL.DIR');
IF :GLOBAL.DIR='NO SET' THEN
:GLOBAL.DIR:=Utility.Current_Dir();
END IF;
--ole2.add_arg(args,:GLOBAL.DIR||'ÆÓÐÍÀË_ÂÕÎÄßÙÈÕ.XLS');
ole2.add_arg(args,'C:\ORAPROG\Êèä\ÆÓÐÍÀË_ÂÕÎÄßÙÈÕ.XLS');

workbook:=OLE2.Invoke_Obj( workbooks,'Open', args);
ole2.destroy_arglist(args);
worksheets:=ole2.get_obj_property(workbook, 'Worksheets');

args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG( args, 1 );
worksheet:=OLE2.GET_OBJ_PROPERTY( workbook, 'Worksheets',args);
ole2.destroy_arglist(args);

--ÂÑÒÀÂÊÀ ÒÅÊÑÒÀ  ß×ÅÉÊÓ
args:= ole2.create_arglist;
ole2.add_arg(args, 4);
ole2.add_arg(args, 2);
cell:= ole2.GET_OBJ_PROPERTY(Application, 'Cells', args);
ole2.Invoke(cell,'select');
ole2.destroy_arglist(args);
ole2.set_property(cell, 'Value','ASDASDASDASDASDASDASD');

--Óñòàíîâèòü öâåò ÿ÷åéêè------------------------
/*ÁÛËÎ:
if EXL.BACKGROUND is not null then
obj1 :=OLE2.get_OBJ_property(exl.cell.obj, 'Interior');
OLE2.set_property(obj1, 'ColorIndex', EXL.BACKGROUND);
OLE2.RELEASE_OBJ(obj1);
end if; */
--ÑÄÅËÀË
args:= ole2.create_arglist;
ole2.add_arg(args, 4);
ole2.add_arg(args, 2);
obj1 :=OLE2.get_OBJ_property(Application, 'Interior',ARGS);
ole2.destroy_arglist(args);
OLE2.set_property(obj1, 'ColorIndex', 10);
OLE2.RELEASE_OBJ(obj1);


ole2.set_property(application, 'Visible', True);

--ole2.release_obj(cell);
ole2.release_obj(worksheet);
ole2.release_obj(worksheets);
ole2.release_obj(workbook);
ole2.release_obj(workbooks);
ole2.release_obj(application);

EXCEPTION WHEN Others THEN
--ole2.release_obj(cell);
ole2.release_obj(worksheet);
ole2.release_obj(worksheets);
ole2.release_obj(workbook);
ole2.release_obj(workbooks);
ole2.release_obj(application);
raise;

END;
...
Рейтинг: 0 / 0
25.07.2007, 20:18
    #34684169
UK0IAI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
вот рабочий пример из инета,
а во вложенном файле - я даю образец формы. Это что то "нечто"...пофиксенное, но работает.

Общая тема - вывели в ексел, запустили запись макроса, кликаем разные форматы, потом возвращемся в листинг и ставим опции. Я это все вообще то из БД зачитывал, и форматировал когда то.


Код: 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.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
procedure from_inet is

   application     OLE2.OBJ_TYPE;
   workbook        OLE2.OBJ_TYPE;
   workbooks       OLE2.OBJ_TYPE;
   worksheet       OLE2.OBJ_TYPE;
   worksheets      OLE2.OBJ_TYPE;
   cell            OLE2.OBJ_TYPE;
   column          OLE2.OBJ_TYPE;
   row             OLE2.OBJ_TYPE;
   font            OLE2.OBJ_TYPE;

   args            OLE2.List_Type;
BEGIN
   application := OLE2.CREATE_OBJ('Excel.Application');
   OLE2.SET_PROPERTY(application, 'Visible', 'True');
   workbooks := OLE2.GET_OBJ_PROPERTY(application, 'Workbooks');
   workbook := OLE2.INVOKE_OBJ(workbooks,'Add');

   worksheets := OLE2.GET_OBJ_PROPERTY(workbook, 'Worksheets');
   worksheet := OLE2.INVOKE_OBJ(worksheets,'Add');

   --Set default for columns F, G and H 
   args := OLE2.CREATE_ARGLIST;
   OLE2.ADD_ARG(args, 'F:H');  --Columns F thru H
   column := OLE2.GET_OBJ_PROPERTY(worksheet, 'Columns', args);
   OLE2.DESTROY_ARGLIST(args);
   font := OLE2.GET_OBJ_PROPERTY(column, 'Font', args);
   OLE2.SET_PROPERTY(font, 'Name', 'Courier New');
   OLE2.SET_PROPERTY(font, 'Size',  12 );
   OLE2.SET_PROPERTY(font, 'Strikethrough', 'True');
   OLE2.SET_PROPERTY(font, 'Bold', 'True');
   OLE2.SET_PROPERTY(font, 'ColorIndex',  5 );  --Dark Blue
   OLE2.RELEASE_OBJ(font);   
   --Set width for columns F thru H to 25
   OLE2.SET_PROPERTY(column, 'ColumnWidth',  25 );
   OLE2.RELEASE_OBJ(column);

   --Set default for rows 1 through 20
   args := OLE2.CREATE_ARGLIST;
   OLE2.ADD_ARG(args, '1:20');  --Rows 1 thru 20
   row := OLE2.GET_OBJ_PROPERTY(worksheet, 'Rows', args);
   OLE2.DESTROY_ARGLIST(args);
   OLE2.SET_PROPERTY(row , 'RowHeight',  12 );
   OLE2.RELEASE_OBJ(row);

   --Set row 4 height
   args := OLE2.CREATE_ARGLIST;
   OLE2.ADD_ARG(args,  4 );  --Row 4
   row := OLE2.GET_OBJ_PROPERTY(worksheet, 'Rows', args);
   OLE2.DESTROY_ARGLIST(args);
   OLE2.SET_PROPERTY(row , 'RowHeight',  25 );
   OLE2.RELEASE_OBJ(row);

   --Set cell B4
   args := OLE2.CREATE_ARGLIST;
   OLE2.ADD_ARG(args,  4 );  --Row 4
   OLE2.ADD_ARG(args,  2 );  --Column B
   cell := OLE2.GET_OBJ_PROPERTY(worksheet, 'Cells', args);
   OLE2.DESTROY_ARGLIST(args);
   OLE2.SET_PROPERTY(cell, 'Value', 'Hello Excel!');
   font := OLE2.GET_OBJ_PROPERTY(cell, 'Font', args);
   OLE2.SET_PROPERTY(font, 'Name', 'Arial');
   OLE2.SET_PROPERTY(font, 'FontStyle', 'Italic');
   OLE2.SET_PROPERTY(font, 'Size',  20 );
   -- possible Underline values = 2, 4, 5, -4119
   OLE2.SET_PROPERTY(font, 'Underline', - 4119 );
   OLE2.SET_PROPERTY(font, 'Bold', 'True');
   OLE2.SET_PROPERTY(font, 'ColorIndex',  3 );  --Red
   OLE2.RELEASE_OBJ(font);
   OLE2.RELEASE_OBJ(cell);

   --Set cell F4
   args := OLE2.CREATE_ARGLIST; 
   OLE2.ADD_ARG(args,  4 );
   OLE2.ADD_ARG(args,  6 );
   cell := OLE2.GET_OBJ_PROPERTY(worksheet, 'Cells', args);
   OLE2.DESTROY_ARGLIST(args);
   OLE2.SET_PROPERTY(cell, 'Value', 'Good Bye Excel!');
   OLE2.RELEASE_OBJ(cell);

   --Set cell B7
   args := OLE2.CREATE_ARGLIST; 
   OLE2.ADD_ARG(args,  7 );
   OLE2.ADD_ARG(args,  3 );
   cell := OLE2.GET_OBJ_PROPERTY(worksheet, 'Cells', args);
   OLE2.DESTROY_ARGLIST(args);
   OLE2.SET_PROPERTY(cell, 'Value',  9 );
   OLE2.RELEASE_OBJ(cell);

   --Set cell C7
   args := OLE2.CREATE_ARGLIST; 
   OLE2.ADD_ARG(args,  7 );
   OLE2.ADD_ARG(args, 'B');
   cell := OLE2.GET_OBJ_PROPERTY(worksheet, 'Cells', args);
   OLE2.DESTROY_ARGLIST(args);
   OLE2.SET_PROPERTY(cell, 'Value',  4 );
   OLE2.RELEASE_OBJ(cell);

   --Set formula for cell D7
   args := OLE2.CREATE_ARGLIST; 
   OLE2.ADD_ARG(args, '7');
   OLE2.ADD_ARG(args, 'D');
   cell := OLE2.GET_OBJ_PROPERTY(worksheet, 'Cells', args);
   OLE2.DESTROY_ARGLIST(args);
   OLE2.SET_PROPERTY(cell, 'Formula', '=B7*C7');
   OLE2.RELEASE_OBJ(cell);

   OLE2.RELEASE_OBJ(worksheet);
   OLE2.RELEASE_OBJ(worksheets);
   OLE2.RELEASE_OBJ(workbook);
   OLE2.RELEASE_OBJ(workbooks);
   OLE2.RELEASE_OBJ(application);
EXCEPTION
    WHEN others THEN
       OLE2.Release_Obj( application );
       message('Error');
END;
...
Рейтинг: 0 / 0
25.07.2007, 23:43
    #34684335
Mainframe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
В формзах, которые работают через аппссервер и на клиенте апплет (jinitiator), оле нету.
Хотя, если есть гарантия сидеть на Forms 6i долго, то сойдет.
...
Рейтинг: 0 / 0
26.07.2007, 10:04
    #34684810
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
MainframeВ формзах, которые работают через аппссервер и на клиенте апплет (jinitiator), оле нету.
Хотя, если есть гарантия сидеть на Forms 6i долго, то сойдет.

вот ужос-то, а у меня работает как-то наверное webutil неправильный :((
...
Рейтинг: 0 / 0
26.07.2007, 10:53
    #34684997
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Да и на application сервере, если он Windows, OLE2 работает :=) Тругое дело да - не кроссплатформенное. А кто обещал другое :=)
...
Рейтинг: 0 / 0
26.07.2007, 11:29
    #34685131
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Большое спасибо. С ячейкой вроде освоился. Назрел следующий вопрос. Если в книге заранее был включен вид разметка страниц, то данные вставляются очень долго (за секунду где то ячейки 3). Хотелось бы после заполнения данными листа включить этот вид программно. Сделал макрос в Екселе он выдал следующее:
ActiveWindow.View = xlPageBreakPreview
В дебагере посмотрел что xlPageBreakPreview равно 2. Но вот какой код для этого нужен не понял, метод тыка результата не дал. Пробовал примерно такое:

List_:= ole2.GET_OBJ_PROPERTY(Application, 'Workbook');
vid := OLE2.get_OBJ_property(List, 'ActiveWindow');
OLE2.set_property(vid, 'View', 2);
OLE2.RELEASE_OBJ(List_);
OLE2.RELEASE_OBJ(vid);

Не могу найти информацию какие могут быть парамерты в GET_OBJ_PROPERTY ('Workbook','Workbooks' и прочее). Также не ясна ситуация с OLE2.Invoke_Obj
...
Рейтинг: 0 / 0
26.07.2007, 20:52
    #34687390
UK0IAI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
не очень понял, но может быть это?

Код: plaintext
1.
2.
ole2.set_property (app, 'ScreenUpdating', false);   --выключает

ole2.set_property (app, 'ScreenUpdating', TRUE);  --включает 

за одно покажу как читать из екселя (если мою форму открывали, то к ней подходит) :-))

Код: 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.
function  GET (P_ROW NUMBER, P_COL NUMBER) return varchar2 IS
	prizn BOOLEAN;
	obj1 ole2.obj_type;
	r_val varchar2( 2000 );
BEGIN
	prizn := exl.cell_define(P_ROW, P_COL); 
             r_val := exl.cell_value;
	exl.close_cell;
	return (r_val);
END;	

function  cell_value return varchar2 is 
    buff   varchar2( 255 ); 
    begin
  
   if ole2.get_num_property (cell, 'Value') =  0  then
        buff:= ltrim(rtrim(ole2.get_char_property (cell.obj, 'Value')));
   else         		
        buff:= to_char(ole2.get_num_property (cell.obj, 'Value'));
   end if;
   return buff;
   exception when OTHERS then
      error_txt := 'OLE-000 Неопределенная ошибка OLE-EXCEL';
      return null;
end;
Не могу найти информацию какие могут быть парамерты в GET_OBJ_PROPERTY ('Workbook','Workbooks' и прочее). Также не ясна ситуация с OLE2.Invoke_Obj

Здесь юзаются все имена объектов екселя. Или иного OLE приложения. Например ворда или аутлука
...
Рейтинг: 0 / 0
27.07.2007, 10:01
    #34687895
Forms_Excel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Вот такой вид я хочу включит из формса после того как заполню лист данными

Модератор: Тема перенесена из форума "Oracle".
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
15.03.2016, 22:07
    #39192772
voracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
pan159,

мне тоже иожно выслать ? заранее спасибо !!
maxusemail@gmail.com
...
Рейтинг: 0 / 0
27.01.2017, 13:28
    #39392992
Миша78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ole в Forms6i (Из формс в ексель)
Ребята, не у кого нет ссылки или дистрибутива Oracle Forms 6i. Хочу изучить, нашел доки, а дистрибутива в инете нет.
mihnih78@inbox.ru

Спасибо.
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Ole в Forms6i (Из формс в ексель) / 25 сообщений из 28, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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