CalculateDataRights: Boolean;
CalculateDataRights: boolean;
Свойство CalculateDataRights определяет, будут ли рассчитываться права доступа пользователя к ячейкам таблицы.
Возможные значения:
True. По умолчанию. Права доступа будут рассчитываться;
False. Права доступа не будут рассчитываться.
Свойство актуально для использования при построении таблицы с помощью метода IPivot.ObtainTable. Если для пользователей разграничены права доступа на ячейки таблицы, то при расчёте прав доступа можно будет определить операции, доступные конкретному пользователю над ячейками таблицы, с помощью перечисления CubeDataRights.
Для получения подробной информации о правах доступа пользователя к ячейкам таблицы обратитесь к разделу «Отображение прав доступа к данным в виде пиктограмм».
Для выполнения примера предполагается наличие формы, расположенного на ней компонента Button с наименованием «Button1», компонента TabSheetBox с наименованием «TabSheetBox1» и компонента UiErAnalyzer с наименованием «UiErAnalyzer1», являющегося источником данных для TabSheetBox (для примера на Fore.NET используйте компонент TabSheetBoxNet с наименованием «TabSheetBoxNet1» и компонент UiErAnalyzerNet с наименованием «uiErAnalyzerNet1»). В «UiErAnalyzer1» должен быть загружен экспресс-отчет. Пользователю должны быть даны права только на чтение к первой ячейке таблицы.
Добавьте ссылки на системные сборки:
для примера на Fore: Express, Tab, Pivot, Cubes, Ui, Forms;
для примера на Fore.NET: Express, Tab, Pivot, Cubes, Ui, Forms, Forms.Net.
Пример будет выполняться при нажатии на кнопку, реализованную компонентом Button с наименованием «Button1».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
EaxAn: IEaxAnalyzer;
Pivot: IPivot;
Table: IPivotTable;
Begin
//Активируем компонент для получения доступа к данным
UiErAnalyzer1.Active:= True;
//Определим экспресс-отчет, подключенный к компоненту
EaxAn := UiErAnalyzer1.ErAnalyzer;
Pivot := EaxAn.Pivot;
//Определим необходимость расчета прав доступа к данным
Pivot.CalculateDataRights := True;
//Построим таблицу, рассчитаем права доступа пользователя к ячейкам
Table := Pivot.ObtainTable;
//Проверим права доступа пользователя к первой ячейке таблицы
//Если у пользователя есть права только на чтение, будет выведено соответствующее сообщение
If Table.DataRights(0, 0) = CubeDataRights.Read Then
WinApplication.InformationBox("Первая ячейка таблицы доступна только для чтения");
End If;
End Sub Button1OnClick;
Imports System.Windows.Forms;
Imports Prognoz.Platform.Forms.Net;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Pivot;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Ui;
Imports Prognoz.Platform.Interop.Tab;
…
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
EaxAn: IEaxAnalyzer;
Pivot: IPivot;
Table: IPivotTable;
WinAppCls: WinApplicationClass = New WinApplicationClassClass();
Begin
//Активируем компонент для получения доступа к данным
UiErAnalyzerNet1.Active:= True;
//Определим экспресс-отчет, подключенный к компоненту
EaxAn := UiErAnalyzerNet1.ErAnalyzer.ErAnalyzer;
Pivot := EaxAn.Pivot;
//Определим необходимость расчета прав доступа к данным
Pivot.CalculateDataRights := True;
//Построим таблицу, рассчитаем права доступа пользователя к ячейкам
Table := Pivot.ObtainTable();
//Проверим права доступа пользователя к первой ячейке таблицы
//Если у пользователя есть права только на чтение, будет выведено соответствующее сообщение
If Table.DataRights[0, 0] = CubeDataRights.cubdatrigRead Then
WinAppCls.InformationBox("Первая ячейка таблицы доступна только для чтения", New IWin32WindowForeAdapter(Self));
End If;
End Sub;
В результате выполнения примера на форме отобразится таблица с данными, откроется окно с сообщением о правах доступа к первой ячейке таблицы:
См. также: