Добрый день!
Подскажите, пожалуйста,
как можно выгрузить в скрипте данные из датасета в формат csv?
Нравится
К примеру, выгрузим в csv файл, имя контрагента, ответственного и вид деятельности
var Dataset = dlData.Dataset; var CopyDataset = Dataset.CreateCopy(); var fso = System.CreateObject("Scripting.FileSystemObject"); try { var f = fso.CreateTextFile("C:\\test.csv", true); } catch (e) {} CopyDataset.Open(); CopyDataset.GotoFirst(); var s; while(!CopyDataset.IsEOF) { s = CopyDataset('Name'); Owner = GetFieldValueFromDisabledField(CopyDataset, 'OwnerName'); if (Owner !== null) { s = s + ',' + Owner;} Activity = GetFieldValueFromDisabledField(CopyDataset, 'ActivityName'); if (Activity !== null) { s = s + ',' + Activity;} f.writeline(s); CopyDataset.GotoNext(); } CopyDataset.Close (); f.Close(); MessageBox('Exported');
dlData - не визуальный компонент окна, к которому привязан DataSet
Данный код предполагает что есть DataSet в котором выгружаются поля Name - имя контрагента,
OwnerName - ответственный, ActivityName - вид деятельности, данные для дата сета берутся с соответствующего сервиса Select Query
Спасибо большое.
А если нужно выбирать путь и название файла?
Вы имеете в виду открывать окно выбора файла (OpenDialog) как на пример в notepad при нажатии Файл -> Открыть ?
Да, т.е. необходимо, чтобы путь "C:\\test.csv" был не зашит в скрипте, а выбирался
Предлагаю использовать конструкцию:
var FileName = System.CreateObject('TSObjectLibrary.Value'); if (!(System.OpenDialog(FileName, '*.*', EmptyStr, "Выберете файл", EmptyStr))) { return; } MessageBox(FileName.Value);
MessageBox(FileName.Value) тут выводиться для проверки результатов.
Также предлагаю посмотреть тему http://community.terrasoft.ru/forum/topic/1060