powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / FORMS 10g OLE и excel
2 сообщений из 2, страница 1 из 1
FORMS 10g OLE и excel
    #36546192
ORA-600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Используя OLE2 d формсе открываю MS excel в нём открываю нужный файл.
Далее умею записать в ячейку и формулу и число, но у меня не получается вставить строчку и колонку.
Т.е. мне надо между колонками "I"и "J" вставить ещё 1 колонку.

Код: 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.
PROCEDURE ole IS
  MyApplication CLIENT_OLE2.OBJ_TYPE;
  workbooks CLIENT_OLE2.OBJ_TYPE;
  workbook CLIENT_OLE2.OBJ_TYPE;
  worksheets CLIENT_OLE2.OBJ_TYPE;
  worksheet CLIENT_OLE2.OBJ_TYPE;
  Mydocument CLIENT_OLE2.OBJ_TYPE; 
  args CLIENT_OLE2.LIST_TYPE;
  cell CLIENT_OLE2.OBJ_TYPE;
  col CLIENT_OLE2.OBJ_TYPE;
  ncol CLIENT_OLE2.OBJ_TYPE;
  rw CLIENT_OLE2.OBJ_TYPE;
  selection CLIENT_OLE2.OBJ_TYPE;  
BEGIN
  MyApplication:=CLIENT_OLE2.CREATE_OBJ('Excel.application'); 
  CLIENT_OLE2.SET_PROPERTY(MyApplication, 'Visible',  1 );

   -- get a handle on Documents collection
  workbookS:=CLIENT_OLE2.GET_OBJ_PROPERTY(Myapplication,'Workbooks');
  
  -- get a handle on Documents collection
  args:=CLIENT_OLE2.CREATE_ARGLIST;
  CLIENT_OLE2.ADD_ARG(args, 'C:\1.xls');
  workbook :=CLIENT_OLE2.INVOKE_OBJ(workbooks,'Open',args);
  CLIENT_OLE2.DESTROY_ARGLIST(args); 
  
  -- Return object handle to the Worksheets collection for the Workbook
  worksheets:=CLIENT_OLE2.GET_OBJ_PROPERTY(Workbook, 'Worksheets');
  
  -- Return current лист
  worksheet:=CLIENT_OLE2.GET_OBJ_PROPERTY(Worksheets, 'Worksheet');
  args:=CLIENT_OLE2.CREATE_ARGLIST; 
  CLIENT_OLE2.ADD_ARG(args,  1 );
  worksheet:=CLIENT_OLE2.GET_OBJ_PROPERTY(worksheets,'Item',args);
  CLIENT_OLE2.DESTROY_ARGLIST(args);

   args := client_OLE2.CREATE_ARGLIST;
   client_OLE2.ADD_ARG(args, 'I:J'); -- Устанавливаем диапазон столбцов
   col:= client_OLE2.GET_OBJ_PROPERTY(worksheet, 'Columns', args);
   client_OLE2.DESTROY_ARGLIST(args);

END;


Какую команду я должен вписать для вставки столбца и или строки?

Модератор: Тема перенесена из форума "Oracle".
...
Рейтинг: 0 / 0
FORMS 10g OLE и excel
    #36548795
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Forms'е не проверял. По Help'у /макросу Excel'а у объекта Range есть метод Insert. Т.ч. должно быть что-то типа:

-- Выбираем колонку J перед которой вставлять
args := client_OLE2.CREATE_ARGLIST;
client_OLE2.ADD_ARG(args, 'J:J'); -- Устанавливаем диапазон столбцов
col:= client_OLE2.GET_OBJ_PROPERTY(worksheet, 'Columns', args);
client_OLE2.DESTROY_ARGLIST(args);
-- Вставляем перед выбранной колонкой, со сдвигом вправо
args := client_OLE2.CREATE_ARGLIST;
client_OLE2.ADD_ARG(args, -4161 ); -- -4161 xlToRight -4121 xlShiftDown
client_OLE2.INVOKE( worksheet, 'Insert', args);
client_OLE2.DESTROY_ARGLIST(args);
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / FORMS 10g OLE и excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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