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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.04.2006, 08:53   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Вот
X++:
static void ODBCConnection2Excel(Args _args)
{
    LoginProperty           LP          = new LoginProperty();
    OdbcConnection          myConnection;
    Statement               myStatement;
    ResultSet               myResult;
    DictTable               dictTable   = new DictTable(tableNum(InventTable));
    ComExcelDocument_Ru     Excel       = new ComExcelDocument_Ru();
    Com                     Doc;
    Com                     App;
    Com                     Worksheet;
    Com                     Range;
    int                     i = 1;
    ;
    Excel.newFile("", false);
    doc = Excel.getComDocument();
    App = doc.Application();
    Worksheet = App.ActiveSheet();

    LP.setDSN("Axapta");
/*    LP.setUsername("");       // Если необходимо - устанавливаем имя и пароль для подключения
    LP.setPassword("");*/
    try    
    {        
        myConnection = new OdbcConnection(LP);    
    }    
    catch    
    {        
        info("Check username/password.");        
        return;    
    }
    myStatement = myConnection.createStatement();
    myResult = myStatement.executeQuery(
        strfmt("SELECT %3, %4 FROM %1 WHERE DataAreaId = '%2'",
            dictTable.name(DBBackend::Sql), curext(), 
            dictTable.fieldName(fieldnum(InventTable, ItemId), DBBackend::Sql),
            dictTable.fieldName(fieldnum(InventTable, ItemName), DBBackend::Sql)));


    Range = Worksheet.Range("A1");
    Range.NumberFormat("@");
    Range.Value2(dictTable.fieldObject(fieldnum(InventTable, ItemId)).label());

    Range = Worksheet.Range("B1");
    Range.NumberFormat("@");
    Range.Value2(dictTable.fieldObject(fieldnum(InventTable, ItemName)).label());

    while (myResult.next())
    {
        Range = Worksheet.Range(ComExcelDocument_Ru::numToNameCell(1, i+1));
        Range.NumberFormat("@");
        Range.Value2(myResult.getString(1));

        Range = Worksheet.Range(ComExcelDocument_Ru::numToNameCell(2, i+1));
        Range.NumberFormat("@");
        Range.Value2(myResult.getString(2));

        if (i > 100) break;
        i++;
    }
    Range = Worksheet.Range("A1", "B1");
    Range = Range.EntireColumn();
    Range.AutoFit();

    Excel.visible(true);
}
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Sada (1).
Теги
odbc, интеграция, программно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вспомогательный класс для импорта из Excel через ADO gl00mie DAX: База знаний и проекты 80 10.04.2017 10:55
класс InventSumDateValueReportDim Физические запасы? Poleax DAX: Программирование 12 01.07.2008 15:27
Проблема с передачей контролов из формы в класс matew DAX: Программирование 0 28.04.2008 17:37
Какой потомок "вызвал" родительский класс? somebody DAX: Программирование 5 09.08.2005 14:52
Класс xSysLastValue Maxim Gorbunov DAX: База знаний и проекты 0 27.11.2001 17:39

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

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

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