Скрипт по выводу информации о файлах
Нужно изменить скрипт для вывода информации по файлам в базе данных. Пытаюсь написать скрипт, который из базы данных на базе devexpress c# выведет информацию о файлах в проекте. Получилось вывести только оглавление проектов и то не всегда выводит. Сразу скажу, что не силен в C#. Строки из за которых бывают ошибки возьму в комментарий.
using Ascon.Pilot.ClientCore.Search;
using Ascon.Pilot.DataClasses;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using Ascon.Pilot.Core;
using Ascon.Pilot.Client.Search;
using Ascon.Pilot.Pilot.Reports;
using System.Xml.Serialization;
using DevExpress.XtraReports.Parameters;
int i = 0;
int j = 0;
string[] FileName = new string[15000];
ReportContext context = new ReportContext();
private void PilotReport_DataSourceDemanded(object sender, System.EventArgs e)
{
LongRunning.Start(this, () => {
var project = Parameters["Project"].Value as RObject;
if(project == null)
throw new Exception("Проект не выбран");
//label3.Text = project.Attributes["project_name"].ToString();
//if(project.Attributes == null)
//throw new Exception("Error");
var fileTypes = context.GetTypes().Where(x => x.HasFiles).Select(x => x.Id).ToArray();
var objectsBuilder = QueryBuilder.CreateObjectQueryBuilder();
objectsBuilder.Must(ObjectFields.TypeId.BeAnyOf(fileTypes));
var objects = context.GetObjects(objectsBuilder, project.Id).ToList();
DataSource = objects;
});
}
private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
var obj = (RObject)PilotReport.GetCurrentRow();
LongRunning.Start(this, () => {
var File = GetFileName(obj);
});
tableCell3.Text = FileName[j];
j++;
}
private List<string> GetFileName(RObject obj)
{
List<string> result = new List<string>();
if(obj == null)
return result;
foreach(var file in obj.Files)
{
FileName[i]+= file.Name.ToString();
FileName[i]+= ", ";
}
i++;
return result;
}