Реализация источника данных API
Если необходимые данные для отчёта хранятся в сторонней системе, в модуле предусмотрена возможность использования API, как источника данных.
Для создания источника данных API разработайте и зарегистрируйте на сервере приложений Docsvision расширение с реализацией функций получения данных. Функции должны принимать словарь параметров ReportLib.ReportParametersCollection в формате .json, реализовать логику получения данных и возвращать DataTable с результирующей выборкой в формате .json для дальнейшего ее использования провайдером FastReport в отчёте.
Пример метода серверного расширения, который должен получать параметр documentId, содержащий id документов, которые будут выведены в таблицу с указанием id автора:
public class ServerExtension : StorageServerExtension
{
[ExtensionMethod]
public string GetAuthors(string jsonParameters)
{
ReportParametersCollection parameters = JsonCon-vert.DeserializeObject<ReportParametersCollection>(jsonParameters);
DataTable dt = new DataTable("TableName");
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Author", typeof(String));
foreach (string documentId in parameters["documentId"])
{
DataRow row = dt.NewRow();
Document document = objectContext.GetObject<Document>(documentId);
row["Name"] = document.MainInfo.Name;
row["Author"] = document.MainInfo.Author;
dt.Rows.Add(row);
}
string jsonDT = JsonConvert.SerializeObject(dt);
return jsonDT;
}
}
Данное расширение должно быть зарегистрировано под именем ReportAPISourceServerExtension. После этого в карточке отчёта в таблице данных отчёта может быть создана строка с типом источника данных API, именем источника в шаблоне TableName и функцией GetAuthors.