Comments(TabSheet: ITabSheet; Row: Integer; Column: Integer): IDataAreaComments;
TabSheet. Таблица листа, которой принадлежит ячейка с данными.
Row. Индекс строки ячейки с данными.
Column. Индекс столбца ячейки с данными.
Свойство Comments возвращает комментарии к ячейке с указанными координатами.
Указываемые координаты должны соответствовать ячейке, относящейся к диапазону ячеек с данными какого-либо среза. Диапазон с данными можно получить, используя свойство IEaxGrid.SpecificRange с параметром EaxRangeType.Internal. Для проверки наличия возможности работы с комментариями используйте свойство IEaxDataAreaSource.HasCommentsSupport.
Для выполнения примера в репозитории предполагается наличие регламентного отчёта с идентификатором REPORT. В качестве источника в отчёт добавлен стандартный куб, в котором включена возможность сохранения комментариев к ячейкам с данными. На базе источника создан срез и визуализатор - таблица.
Добавьте ссылки на системные сборки: Express, Metabase, Report, Tab.
Sub UserProc;
Var
Mb: IMetabase;
Report: IPrxReport;
DataArea: IEaxDataArea;
Slice: IEaxDataAreaSlice;
Grid: IEaxGrid;
TSheet: ITabSheet;
DataRange: ITabRange;
CommentManager: IDataAreaCommentManager;
Comments: IDataAreaComments;
Comment: IDataAreaComment;
i, j: Integer;
Begin
Mb := MetabaseClass.Active;
Report := Mb.ItemById("REPORT").Open(Null) As IPrxReport;
// Аналитическая область данных
DataArea := Report.DataArea;
Slice := DataArea.Slices.Item(0);
If Slice.Source.HasCommentsSupport Then
Grid := Slice.Views.Item(0) as IEaxGrid;
TSheet := Grid.TabSheet;
DataRange := Grid.SpecificRange(EaxRangeType.Internal);
// Менеджер комментариев
CommentManager := DataArea.CommentManager;
Comments := CommentManager.Comments(TSheet, DataRange.Top, DataRange.Left);
For Each Comment In Comments Do
Debug.WriteLine(Comment.Text);
Debug.Indent;
Debug.WriteLine("Ключ: " + Comment.Key.ToString + ". Создан: " + Comment.TimeStamp.ToString + ' ' + Comment.User + ". Права: " + Comment.Rights);
Debug.Write("Coords: ");
j := Comment.Coords.Length;
For i := 0 To j - 1 Step 2 Do
Debug.Write("[Row: " + Comment.Coords[i].ToString + ", Column: " + Comment.Coords[i + 1].ToString + ']');
End For;
Debug.WriteLine("");
Debug.Unindent;
Debug.WriteLine("----------");
End For;
End If;
End Sub UserProc;
При выполнении примера в консоль среды разработки будет выведена информация о комментариях, созданных для первой ячейки с данными у среза аналитической области данных.
См. также: