sirin написал(а):
узнать какой грид связан с каким дата провайдером
Это в принципе легко.
Ниже процедура, которая выводит на новом листе список Grid-ов с привязанными к ним датапровайдерами и линками на область результатов и отдельно список датапровайдеров. Для ее использования должна быть подключена библиотека BEx Analyzer API.
Code:
Option Explicit
Sub Grid_DP_List()
Dim myBExItem As Object
Dim myDP As Object
Dim locCount As Integer
Dim Link As String
Worksheets.Add
locCount = 1
ActiveSheet.Cells(locCount, 1) = "Grid Name"
ActiveSheet.Cells(locCount, 2) = "Grid DP"
ActiveSheet.Cells(locCount, 3) = "DP Query"
ActiveSheet.Cells(locCount, 4) = "Grid Worksheet"
ActiveSheet.Cells(locCount, 5) = "Grid Range"
For Each myBExItem In BEx.Items
If myBExItem.ToString Like "*BExItemGrid*" Then
locCount = locCount + 1
ActiveSheet.Cells(locCount, 1) = myBExItem.Name
ActiveSheet.Cells(locCount, 2) = myBExItem.DataProvider.Name
ActiveSheet.Cells(locCount, 3) = myBExItem.DataProvider.Query
ActiveSheet.Cells(locCount, 4) = myBExItem.WorksheetName
ActiveSheet.Cells(locCount, 5) = myBExItem.Range.Address
Link = "'" & myBExItem.WorksheetName & "'!" & myBExItem.Range.Address
ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(locCount, 5), Address:="", SubAddress:= _
Link, TextToDisplay:=ActiveSheet.Cells(locCount, 5).Text
End If
Next
locCount = 1
ActiveSheet.Cells(locCount, 8) = "DP Name"
ActiveSheet.Cells(locCount, 9) = "DP Query"
For Each myDP In BEx.DataProviders
locCount = locCount + 1
ActiveSheet.Cells(locCount, 8) = myDP.Name
ActiveSheet.Cells(locCount, 9) = myDP.Query
Next
ActiveSheet.Range("A:I").Columns.AutoFit
End Sub