Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Группировка столбцов / 8 сообщений из 8, страница 1 из 1
04.08.2011, 09:08
    #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
04.08.2011, 16:04
    #37380879
lexxora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка столбцов
lexxora,

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

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

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

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

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

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

Но нужно теперь понять, как передавать номер столбца. Они же буквами идентифицируются. Например, сгруппировать столбец 2-5 это B:E
Как получить буквы?
...
Рейтинг: 0 / 0
10.08.2011, 12:43
    #37388862
lexxora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка столбцов
Есть что-нибудь как тут ?
Ссылка
...
Рейтинг: 0 / 0
10.08.2011, 13:39
    #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
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Группировка столбцов / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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