powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Группировка столбцов
8 сообщений из 8, страница 1 из 1
Группировка столбцов
    #37379887
lexxora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Подскажите, пожалуйста, как группировать столбцы. Это стандартная функция в excel
Меню-Данные-Группа и структура-Группировать
В excel это выглядет так:
Код: plaintext
1.
Columns("H:I").Select
Selection.Columns.Group
В формсах функция по изменению ширины столбца выглядет так:
Код: plaintext
1.
temp := oleexcel.SelectRange( 1 , 1 , 1 , 1 );
temp:= oleexcel.SET_WIDTH( 3 );

Сама функция SET_WIDTH:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	FUNCTION SET_WIDTH(p_width VARCHAR2)
		RETURN PLS_INTEGER IS
	BEGIN
		IF (p_width IS NOT NULL) then
			CLIENT_OLE2.SET_PROPERTY(oleexcel.excelobjr, 'ColumnWidth', p_width);
		END IF;
		RETURN  1 ;
	EXCEPTION
		WHEN OTHERS THEN
			RETURN  0 ;
	END;

Код: 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.
function SelectRange(beginrow in number, begincolumn in number,
	endrow in number, endcolumn in number)
	return pls_integer is

obj1 client_ole2.obj_type;
temp1 varchar2( 16 );
temp2 varchar2( 16 );
begin
	if (excelobjr is not null) then
  	client_ole2.release_obj(excelobjr);
	end if;
	arglist := client_ole2.create_arglist;
	client_ole2.add_arg(arglist, beginrow);
	client_ole2.add_arg(arglist, begincolumn);
	obj1 := client_ole2.get_obj_property(excelobjc, 'Item', arglist);
	client_ole2.destroy_arglist(arglist);
	temp1 := client_ole2.get_char_property(obj1, 'Address');
	client_ole2.release_obj(obj1);
	arglist := client_ole2.create_arglist;
	client_ole2.add_arg(arglist, endrow);
	client_ole2.add_arg(arglist, endcolumn);
	obj1 := client_ole2.get_obj_property(excelobjc, 'Item', arglist);
	client_ole2.destroy_arglist(arglist);
	temp2 := client_ole2.get_char_property(obj1, 'Address');
	client_ole2.release_obj(obj1);
	arglist := client_ole2.create_arglist;
	client_ole2.add_arg(arglist, temp1);
	client_ole2.add_arg(arglist, temp2);
	excelobjr := client_ole2.get_obj_property(excelobjs, 'Range', arglist);
	client_ole2.destroy_arglist(arglist);
	return  1 ;
exception
	when others then
		return  0 ;
end;

Как с помошью CLIENT_OLE2 группировать столбцы?
...
Рейтинг: 0 / 0
Группировка столбцов
    #37380879
lexxora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lexxora,

Уже эта страница в гугл влетела. по запросу в гугле get_obj_property group выдается эта страница. Но решения так и нет. Жду вашего решения. Или дайте ссылку где можно почитать про get_obj_property, какие свойства можно передавать.
...
Рейтинг: 0 / 0
Группировка столбцов
    #37381395
AndrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lexxora,

Не совсем по теме,но
Про Forms OLE и массивы
...
Рейтинг: 0 / 0
Группировка столбцов
    #37382935
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLE2.Invoke не работает?

Первый попавшийся в google пример про методу Merge...теоретически, метод Group должно вызываться аналогично

http://www.orafaq.com/forum/t/77825/2/
...
Рейтинг: 0 / 0
Группировка столбцов
    #37387552
lexxora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

не получилось запустить, даже с 'Merge'
...
Рейтинг: 0 / 0
Группировка столбцов
    #37388505
lexxora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

все отлично, все заработало

Но нужно теперь понять, как передавать номер столбца. Они же буквами идентифицируются. Например, сгруппировать столбец 2-5 это B:E
Как получить буквы?
...
Рейтинг: 0 / 0
Группировка столбцов
    #37388862
lexxora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть что-нибудь как тут ?
Ссылка
...
Рейтинг: 0 / 0
Группировка столбцов
    #37389031
lexxora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lexxora,

Переработал под свои нужды. Если кому нужно...

Код: 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.
create or replace 
FUNCTION NameCol (N number) RETURN varchar2 IS

str VARCHAR2( 100 );
var number;
Value number;
FUNCTION mchar( m number) RETURN VARCHAR2 IS
i Integer;
BEGIN
  i:=m+ 64 ;
   return Chr(i);
  
END;
BEGIN
 
 if (N <  1 ) and (N> 702 ) then 
   null;
   else
  str:='';   
  Value:=N;
  
  if Value<= 26  then
      begin
         str:=mchar(Value);

				  return (str);
        end; 
      end if;

end if;


if  mod(Value, 26 ) =  0  then 
	str:=mchar(  floor((Value- 1 )/ 26 ))||'Z';
else 
		str:=mchar(  floor(Value/ 26 ))||mchar( mod(Value, 26 ));
END IF;	
 return (str);
END;
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Группировка столбцов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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