|
Выгрузка из Forms в Excel (удаление разрыва страницы)
|
|||
---|---|---|---|
#18+
Нужно программно перенести разрыв страницы. Сделала в Excel макрос. Там ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 Пытаюсь вывести в Forms используя OLE2. Но не получается ничего((( Вот код. PROCEDURE Page_Breaks (sheet in OLE2.OBJ_TYPE) IS cell OLE2.OBJ_TYPE; args OLE2.LIST_TYPE; vlines OLE2.OBJ_TYPE; Drag OLE2.OBJ_TYPE; BEGIN args:=OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args,'A1'); cell:=OLE2.GET_OBJ_PROPERTY(sheet,'Range',args); OLE2.DESTROY_ARGLIST(args); -----вариант 1------- Drag:=OLE2.GET_OBJ_PROPERTY(cell,'VPageBreaks',args); OLE2.SET_PROPERTY(Drag,'xlToRight',1); OLE2.RELEASE_OBJ(Drag); ------ второй вариант (тоже не работает)------ Drag:=OLE2.GET_OBJ_PROPERTY(cell,'VPageBreaks',args); OLE2.SET_PROPERTY(Drag,'xlToRight',1); OLE2.SET_PROPERTY(Drag,'RegionIndex',1); OLE2.RELEASE_OBJ(Drag); vlines:=OLE2.GET_OBJ_PROPERTY(cell,'VPageBreaks',args); OLE2.SET_PROPERTY(vlines,'DragOff',Drag); OLE2.RELEASE_OBJ(vlines); END; Подскажите, как сделать, чтобы работало? совсем не понимаю((( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2013, 14:51 |
|
Выгрузка из Forms в Excel (удаление разрыва страницы)
|
|||
---|---|---|---|
#18+
TIzolda, В редакторе макроса пользуйтесь F2 Object Browser много информации только оттуда можно получить Ваш код примерно так должен выглядить ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 (sheet in OLE2.OBJ_TYPE) 1) надо получить VPageBreaks --ActiveSheet.VPageBreaks wPageBreaks := CLIENT_OLE2.GET_OBJ_PROPERTY(sheet,'VPageBreaks'); 2)Теперь из этого массива берём с индексом 1 --Index 1 args := CLIENT_OLE2.CREATE_ARGLIST; CLIENT_OLE2.ADD_ARG(args, 1); wPageBreak := CLIENT_OLE2.INVOKE_OBJ(wPageBreaks,'Item',args); CLIENT_OLE2.DESTROY_ARGLIST(args); 3) Вызываем метод DragOff --Sub DragOff(Direction As XlDirection, RegionIndex As Long) Member of Excel.VPageBreak args := CLIENT_OLE2.CREATE_ARGLIST; CLIENT_OLE2.ADD_ARG(args, -4161); --xlToRight Const xlToRight = -4161 (&HFFFFEFBF) CLIENT_OLE2.ADD_ARG(args, 1); --RegionIndex CLIENT_OLE2.INVOKE(wPageBreak,'DragOff',args); CLIENT_OLE2.DESTROY_ARGLIST(args); ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2013, 11:24 |
|
Выгрузка из Forms в Excel (удаление разрыва страницы)
|
|||
---|---|---|---|
#18+
OldBoyOdeSu, и да, у вас OLE2.OBJ_TYPE т.е. все исправить на OLE2. вместо СLIENT_OLE2. кстати знает кто-нибудь отличие OLE2 от СLIENT_OLE2 ? просто у меня при использовании OLE2 даже офис не вызывался, сделал простую замену на СLIENT_OLE2 и всё заработало... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2013, 11:36 |
|
Выгрузка из Forms в Excel (удаление разрыва страницы)
|
|||
---|---|---|---|
#18+
OldBoyOdeSuкстати знает кто-нибудь отличие OLE2 от СLIENT_OLE2 ? OLE2 на сервере СLIENT_OLE2 соотв. на клиенте ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2013, 12:06 |
|
Выгрузка из Forms в Excel (удаление разрыва страницы)
|
|||
---|---|---|---|
#18+
Не получается. вот на этом моменте просто вылетает wPageBreak := CLIENT_OLE2.INVOKE_OBJ(wPageBreaks,'Item',args); Не понимаю почему((( ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2013, 13:00 |
|
Выгрузка из Forms в Excel (удаление разрыва страницы)
|
|||
---|---|---|---|
#18+
TIzolda, wPageBreak OLE2.OBJ_TYPE; wPageBreak := OLE2.GET_OBJ_PROPERTY(sheet,'VPageBreaks'); CLIENT_OLE2 на OLE2 заменили? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2013, 13:06 |
|
|
start [/forum/topic.php?fid=51&fpage=10&tid=1878241]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 242ms |
total: | 368ms |
0 / 0 |