AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.01.2009, 11:40   #1  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Shape in Excel
Привет при портировании кода с экскля в аксапту вылетает ошибка
PHP код:
    ActiveSheet.Shapes("Garant").Select
    Selection
.ShapeRange.Fill.Visible msoTrue
    Selection
.ShapeRange.Fill.Solid
    Selection
.ShapeRange.Fill.ForeColor.SchemeColor 57 
X++:
    COM                         comsheet, Shapes, ShapeRange, Fill, ForeColor, SchemeColor;
    ;
.................................................
    comsheet = m_excelDocument.getWorkSheet(1);
    Shapes   = comsheet.Shapes("Garant");// вылетает ошибка что не правильное количество параметров
    // можно сделать так Shapes   = comsheet.Shapes();
    shape   ?
//    Shapes.Select();
//    ShapeRange =  comRange.ShapeRange();
//    Fill = ShapeRange.Fill();
//    ForeColor = Fill.ForeColor();
//    SchemeColor = ForeColor.SchemeColor();
Да, версия Axapta 3.0 и офис 2003
__________________
Axapta book for developer
Старый 22.01.2009, 11:45   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
В Аксапте никак не добраться . Напишите макрос в Экселе с этим Шейпом и посмотрите потом что он хочет.
Старый 22.01.2009, 11:58   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от MikeR Посмотреть сообщение
X++:
    Shapes   = comsheet.Shapes("Garant");
Ну эту-то бэйсиковщину надо, наверное, разложить на простые одноточечные операторы, как обычно для коллекций, типа:
X++:
shapes = comsheet.Shapes();
shape = shapes.Item("Garant");
За это сообщение автора поблагодарили: MikeR (2).
Старый 22.01.2009, 12:03   #4  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
Сообщение от Gustav Посмотреть сообщение
Ну эту-то бэйсиковщину надо, наверное, разложить на простые одноточечные операторы, как обычно для коллекций, типа:
X++:
shapes = comsheet.Shapes();
shape = shapes.Item("Garant");
Осталось немного бесыковщины , а именно подставить свойство
Код:
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 57
__________________
Axapta book for developer
Старый 22.01.2009, 12:08   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от MikeR Посмотреть сообщение
Осталось немного бесыковщины , а именно подставить свойство
Код:
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 57
Не ленись! Раскладывай дальше на простые члены.
Selection.ShapeRange это и есть твой shape, поэтому как-то так:
X++:
COM comTemp;

comTemp = shape.Fill();
comTemp = comTemp.ForeColor();
comTemp = comTemp.SchemeColor(57);
P.S. Про Select и Selection. Для того, чтобы поменять свойства объекта (шэйпа, ячейки и т.д.) в 99 % случаев не обязательно делать ему Select. Это макрорекордер так бездумно записывает, потому что у него нет другого выхода. Но мы-то не макрорекордеры, мы можем заранее предусмотреть соответствующую переменную вместо Selection.
За это сообщение автора поблагодарили: MikeR (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
gl00mie: Read Excel table via ADO Blog bot DAX Blogs 2 09.04.2010 08:32
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Вызов Item() для коллекций Excel Владимир Максимов DAX: Программирование 15 17.08.2006 19:47
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:29.