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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.03.2010, 18:24   #1  
Zlojbarsuk is offline
Zlojbarsuk
Участник
 
26 / 12 (1) ++
Регистрация: 08.08.2007
Колонтитулы в Excel
Добрый день!
Может кто-то подскажет в чем может быть проблема!? Необходимо вывести колонтитулы в Excel. Делаю следующим образом:

X++:
excel = new Com("Excel.application");
WBooks    = excel.Workbooks();
WBook      = WBooks.add();
WSheets = WBook.Worksheets();
WSheet  = WSheets.item(1);
  

 PageSetup = WSheet.PageSetup();        

 PageSetup.CenterFooter('Страница &P из &N');
В результате выводится: "Страница из "

В чем может быть проблема, почему у меня не проставляются номера страниц?
Старый 16.03.2010, 18:43   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Да, странно. У меня всё получается - и в 2003, и в 2007. А данные есть у вас на листе? А Excel какой? Английский или русский?

P.S. Пожелание на будущее - задавая вопрос, выкладывайте не фрагмент, а работоспособный джоб, который можно тут же запустить.

Последний раз редактировалось Gustav; 16.03.2010 в 18:46.
Старый 16.03.2010, 19:21   #3  
Zlojbarsuk is offline
Zlojbarsuk
Участник
 
26 / 12 (1) ++
Регистрация: 08.08.2007
Excel у меня 2003-й, русский.
Выкладываю рабочий job:

X++:
static void Job56(Args _args)
{
    COM Excel;
    com WBooks, WBook;
    com WSheets, WSheet;
    com Cells;
    com Cell;
    com PageSetup;
    com Worksheet;    
    int         i,j;
    ;

    excel = new Com("Excel.application");

    WBooks = excel.Workbooks();
    WBook  = WBooks.add();

    WSheets = WBook.Worksheets();
    WSheet  = WSheets.item(1);
    Cells   = WSheet.Cells();
    
    PageSetup = WSheet.PageSetup();
    PageSetup.CenterFooter('Страница &P из &N');
    
    i = 1;
    
    while (i <= 50)
    {
        j = 1;
 
        cell =  COM::createFromVariant(cells.Item( i,j));
        cell.NumberFormat('@');
        cell.Value2(strfmt('Ячейка %1 - %2',i,j));
        j++;
        
        cell =  COM::createFromVariant(cells.Item( i,j));
        cell.NumberFormat('@');
        cell.Value2(strfmt('Ячейка %1 - %2',i,j));
        j++;
        
        cell =  COM::createFromVariant(cells.Item( i,j));
        cell.NumberFormat('@');
        cell.Value2(strfmt('Ячейка %1 - %2',i,j));
        j++;
        
        i++;
    }    

    excel.visible(true);
}
Старый 16.03.2010, 19:39   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
А вот так если?
X++:
    COMVariant cv;
    ...
    cv = COMVariant::createFromStr(@'Страница &P из &N');
    PageSetup.CenterFooter(cv.bStr());
P.S. Не пробуйте! Это был мозговой штурм (неудачный).

P.P.S. А вот дельфисты, наверное, нам помогут в очередной раз: http://www.delphikingdom.ru/asp/view...?catalogid=920
Попробуйте поменять на русские буквы эС и Ка:
Цитата:
&P &С Номер страницы.
&N &К Общее количество страниц.

Последний раз редактировалось Gustav; 16.03.2010 в 19:52.
За это сообщение автора поблагодарили: Zlojbarsuk (1).
Старый 16.03.2010, 20:27   #5  
Zlojbarsuk is offline
Zlojbarsuk
Участник
 
26 / 12 (1) ++
Регистрация: 08.08.2007
Вот теперь всё получилось!
Оказывается нужно было вставлять русский код форматирования...

А я видать плохо в инете искал, раз не нашел ответ :-(

Хотя у коллеги стоит русский ёксель и у него работает всё нормально...
Да, собственно, я когда макрос записывал, то в макросе как раз латинские буквы были... хм... странно!

Gustav, огромной спасибо!
Старый 17.03.2010, 10:25   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Zlojbarsuk Посмотреть сообщение
Оказывается нужно было вставлять русский код форматирования...

Хотя у коллеги стоит русский ёксель и у него работает всё нормально...
Zlojbarsuk, а не трудно вам будет запустить маленький исследовательский джобик из следующего сообщения: Строка в Excel ? Интересно, что он выдаст у вас и у коллеги...
Старый 17.03.2010, 12:34   #7  
Zlojbarsuk is offline
Zlojbarsuk
Участник
 
26 / 12 (1) ++
Регистрация: 08.08.2007
День добрый!
Ну, собственно, у меня и у коллеги джоб отрабатывает одинаково и возвращает "2".
А если поменять "СУММ" на "SUM", то возвращает "#ИМЯ?".
Но, в случае с колонтитулами у меня Эксель понимает русскую кодировку, а у коллеги латинскую.
У меня Excel 2003 SP3 (русский), у коллеги Excel 2007(русский).
За это сообщение автора поблагодарили: Gustav (2).
Теги
excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
emeadaxsupport: How does the Export to Excel feature work under the hood? Blog bot DAX Blogs 0 07.09.2009 19:05
Колонтитулы в Excel Vitaly_K DAX: Программирование 8 24.12.2008 18:44
[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, время: 18:13.