выгрузка в csv

Добрый день!
Подскажите, пожалуйста,
как можно выгрузить в скрипте данные из датасета в формат csv?

Нравится

5 комментариев

К примеру, выгрузим в 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

Показать все комментарии