12.07.2007, 12:35 | #1 |
Участник
|
Экспорт результатов SQL запроса в CSV
Уважаемые коллеги! с Аксаптой мое знакомство началось недели 2 назад, а с X++ и того меньше. Начальство дало задание написать обработку для выгрузки данных SQL запроса в CSV файл. Была предпринята попытка сделать это таким образом:
Но успехом она не увенчалась, если не сложно поясните в чем моя ошибка. Версия 2,5 X++: static void da_Import_ItemId_To_CSV(Args _args) { Dimensions dimensions; filepath templateFilePath; m_TransportSalesPacking excel; ComExcelDocument_RU excelDoc; IO io; FileName fileName, fileNameFrom; AsciiIO IoFrom, IoClass; IoClass = new AsciiIO(fileName, 'W'); IoFrom = new AsciiIO(fileNameFrom, "R"); if (! IoClass) throw error(strFmt("@DIS100404",fileName)); if (! IoFrom) throw error(strFmt("@DIS100404",fileNameFrom)); static str any2csvField(anyType _perem) { str csvField; ; csvField = '"' + strReplace(_perem,'"',"'") + '"'; if (typeOf(_perem) == Types::STRING) return '"' + strReplace(_perem,'"',"'") + '"'; return strFmt("%1",_perem); } static str con2csvStr(container _con) { counter i; str resu; ; for(i=1; i <= conLen(_con); i ++) { if (i > 1) resu += ";"; resu += m_proc::any2csvField(conPeek(_con,i)); } return resu; } // void csvReport() // { void Insert2CSV(anytype param1, anytype param2, anytype param3, anytype param4) { ; //??? ???? ?????????? ?????? ? CSV io.write(m_proc::con2csvStr([ param1 , param2 , param3 , param4 ])); } boolean atLeastOnePosted = false; boolean allPosted = true; ; this.Insert2CSV( "??????" "???????", "????????????", "??.???", ); // ??????? ???????? ?????? ?????? SELECT InventTable.ItemGroupId, InventTable.ItemId, InventTable.ItemName, InventTableModule.ModuleType, InventTableModuleUnitId, InventTableModule.Price FROM InventTable JOIN InventTableModule WHERE InventTable.ItemGroupId=="???" { this.Insert2CSV( InventTable.ItemGroupId, InventTable.ItemId, InventTable.ItemName, InventTableModule.ModuleType, InventTableModuleUnitId, InventTableModule.Price ); } io.finalize(); al_FileUtils::reportSaveFile(Name_File); } |
|