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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.02.2011, 19:10   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от tolstjak Посмотреть сообщение
Может быть написать макрос, который бы удалял это апострофы перед открытием ?
Показалось занятным, соорудил джоб:
X++:
{
    ComExcelDocument_RU doc = new ComExcelDocument_RU();

    COM     xlApp;
    COM     wbook;
    COM     activeSheet;
    COM     range;

    COMEnum2Object  cellCollection;
    COM             cell;
    COMVariant      prefChar;
    ;

    doc.NewFile('',true);
    wbook = doc.getComDocument();

    xlApp = wbook.Parent();
    activeSheet = xlApp.ActiveSheet();

    range = activeSheet.Range('A1:A100');
    range.Value2("'30101810100000000859"); // 1. выводим значения с ведущим апострофом (одинарной кавычкой)

    print 'Загляните в окошко Excel';
    pause;

    range.NumberFormat('@'); // 2. форматируем заполненный диапазон как Текст

    cellCollection = new COMEnum2Object(range);

    // 3. перебирая ячейки диапазона, удаляем ведущий апостроф, если находим
    for (cell = cellCollection.getFirst(); cell; cell = cellCollection.getNext())
    {
        prefChar = cell.PrefixCharacter();
        if (prefChar.bStr() == "'")
        {
            cell.Value2(cell.Value2()); // "удаляем" = переписываем значение само на себя
        }
    }

    info('Еще раз загляните в окошко Excel');
}
НО! НО... Признаться, не очень понимаю, почему у Вас не сработало предварительное форматирование как текст:
Цитата:
Сообщение от tolstjak Посмотреть сообщение
столбец, в который выводится счет, делал текстовым- не помогает.
Вот, вроде всё работает:
X++:
{
    ComExcelDocument_RU doc = new ComExcelDocument_RU();

    COM     xlApp;
    COM     wbook;
    COM     activeSheet;
    COM     range;
    ;

    doc.NewFile('',true);
    wbook = doc.getComDocument();

    xlApp = wbook.Parent();
    activeSheet = xlApp.ActiveSheet();

    range = activeSheet.Range('A1:A100');

    range.NumberFormat('@'); // предварительное форматирование КАК ТЕКСТ ячеек вывода коррсчета
    range.Value2("30101810100000000859"); // выводим значения коррсчета БЕЗ апострофа
}
В общем, что имеем в сухом остатке? Поговорили об апострофе, короче
За это сообщение автора поблагодарили: tolstjak (1).
Старый 25.02.2011, 08:16   #2  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от Gustav Посмотреть сообщение
Показалось занятным, соорудил джоб:
[xpp]
В общем, что имеем в сухом остатке? Поговорили об апострофе, короче
Большое спасибо за очень развернутый ответ. Все понятно.
__________________
Александр
Старый 26.05.2011, 16:51   #3  
kair84 is offline
kair84
Участник
 
47 / 58 (2) ++++
Регистрация: 15.04.2010
Адрес: Belarus
Заработало
Забыл отписаться, все заработало через COM объект RecordSet, теперь для построения отчетов который выводятся в Excel, нет необходимости ставить сей продукт от MS, на каждую клиентскуб тачку.....

если интересно позже выложу подробности.
Теги
excel, pastespecial

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод всех меток из заданного уровня на заданных языках в Excel wojzeh DAX: Программирование 0 19.03.2010 23:45
Помогите сделать действие в Excel через COM kashperuk DAX: Программирование 25 10.09.2007 15:59
dynamicsusers: DL Tips And Tricks: ADO Database Reader (Jet way) - Excel Example Blog bot DAX Blogs 0 02.08.2007 03:50
Экспорт в Excel - поле формата "Дата" Ned DAX: Программирование 15 25.04.2003 10:01

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

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

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