AddDataSourceLinkedObject(Id: String; Object: IMetabaseObject): IAdhocDataSourceObject;
AddDataSourceLinkedObject(Id: string; Object: Prognoz.Platform.Interop.Metabase.IMetabaseObject): Prognoz.Platform.Interop.AdHoc.IAdhocDataSourceObject;
Id. Идентификатор объекта аналитической панели;
Object. Объект репозитория.
Метод AddDataSourceLinkedObject добавляет блок типа «Экспресс-отчет», «Регламентный отчет» или «Аналитическая панель».
Для добавления источника данных к визуализаторам используйте свойство IAdhocReport.AddDataSourceObject.
Для выполнения примера в репозитории предполагается наличие аналитической панели с идентификатором «DASHBOARD_ADSLO» и экспрес-отчета с идентификатором «EXP_ADSLO».
Добавьте ссылки на системные сборки: Adhoc, Metabase.
Sub UserProc;
Var
mb: IMetabase;
Dashboard: IAdhocReport;
DsObjs, DsOdjsL: IAdhocDataSourceObjects;
i: Integer;
DsObj: IAdhocDataSourceObject;
mbo, mbol: IMetabaseObject;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем аналитическую панель
mbo := mb.ItemById("DASHBOARD_ADSLO").Edit;
Dashboard := mbo As IAdhocReport;
// Получаем источники данных аналитической панели
DsObjs := Dashboard.DataSourceObjects;
DsOdjsL := Dashboard.DataSourceLinkedObjects;
DsOdjsL.RemoveById("EXP_ADSLO");
//Добавляем новый связанный источник данных
mbol := mb.ItemById("EXP_ADSLO") As IMetabaseObject;
DsObj := Dashboard.AddDataSourceLinkedObject("EXP_ADSLO", mbol);
For i := 0 To DsOdjsL.Count - 1 Do
// Получаем идентификатор источника данных
DsObj := DsOdjsL.Item(i);
Debug.WriteLine("идентификатор источника данных " + (i + 1).ToString + " - " + DsObj.Id);
End For;
mbo.Save;
End Sub UserProc;
В результате выполнения примера в окно консоли будут выведены идентификаторы источников данных. В аналитическую панель будет добавлен связанный источник данных.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Adhoc;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
Dashboard: IAdhocReport;
DsObjs, DsOdjsL: IAdhocDataSourceObjects;
i: Integer;
DsObj: IAdhocDataSourceObject;
mbo, mbol: IMetabaseObject;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем аналитическую панель
mbo := mb.ItemById["DASHBOARD_ADSLO"].Edit();
Dashboard := mbo As IAdhocReport;
// Получаем источники данных аналитической панели
DsObjs := Dashboard.DataSourceObjects;
DsOdjsL := Dashboard.DataSourceLinkedObjects;
DsOdjsL.RemoveById("EXP_ADSLO");
//Добавляем новый связанный источник данных
mbol := mb.ItemById["EXP_ADSLO"] As IMetabaseObject;
DsObj := Dashboard.AddDataSourceLinkedObject("EXP_ADSLO", mbol);
For i := 0 To DsOdjsL.Count - 1 Do
// Получаем идентификатор источника данных
DsObj := DsOdjsL.Item[i];
System.Diagnostics.Debug.WriteLine("идентификатор источника данных " + (i + 1).ToString() + " - " + DsObj.Id);
End For;
mbo.Save();
End Sub;
См. также: