![]() |
#9 |
Участник
|
Вот
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). |