Opens a standard dialog box that is used to set up parameters of data adapter for different elements of a regular report map.
Command parameters are passed in the Data property. Executing the command requires to specify an array of the Variant type in this property, the elements of this array contain the following values:
Value type | Description |
Element 1: IPrxReport | The regular report, on a page of which a map is created. |
Element 2: IPrxMap | The map, which is set up. |
Element 3: IMapLayer | The map layer, which is set up. |
Element 4: IPrxMapDataAdapter | The data adapter, which parameters need must be changed. If the element is specified, values of elements 5 and 6 are set automatically. If the Null value is passed, the dialog box is used to set up a new data adapter. The type of the adapter to be created must be also defined in the element 5 of the array. |
Element 5: PrxMapAdapter | Data adapter type. Optional element. It is specified if the Null value is passed in the element 4. |
Element 6: PrxAdapterDataType | Type of data placement for adapter. Optional element. If the existing adapter is edited (Element 4), and type of data placement is set (Element 6), it is impossible to select another type in the dialog box. |
The command is used only for regular reports. Executing the command shows the data adapter described by the IPrxMapDataAdapter, interface if the OK button is clicked in the dialog box, and empty value if the Cancel button is clicked.
NOTE. On closing the dialog box by clicking the OK button a new instance of data adapter is always returned. Therefore it is necessary to reassign the data adapter to the object, for which it was set up for the changes to be applied.
Executing the example requires a form with the Button1 button, the ReportBox component and the UiReport component named UiReport1, which is used as a data source for the ReportBox component. A map is positioned on active sheet of the regular report linked to UiReport1 component. A map indicator is created for the Regions layer.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Report: IPrxReport;
PrxMap: IPrxMap;
Map: IMap;
Layer: IMapLayer;
VisualColor: IMapVisualColorProperty;
Da: IPrxMapDataAdapter;
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Data: Array;
Result: Variant;
Begin
Report := UiReport1.Report;
PrxMap := (Report.ActiveSheet As IPrxTable).TabSheet.Objects.Item(0).Extension As IPrxMap;
Map := PrxMap As IMap;
//Map layer
Layer := Map.Layers.FindByName("Regions");
//Parameters of map indicator color fill
VisualColor := (Layer.Visuals.Item(0) As IMapAreaVisual).Color;
//Adapter for map indicator color fill
Da := VisualColor.DataAdapter As IPrxMapDataAdapter;
Target := WinApplication.Instance.GetPluginTarget("Report");
Context := Target.CreateExecutionContext;
Data := New Variant[4];
Data[0] := Report;
Data[1] := Map;
Data[2] := Layer;
Data[3] := Da;
Context.Data := Data;
Result := Target.Execute("ShowDataAdapterDialog", Context);
If Result <> Null Then
Da := Result;
VisualColor.DataAdapter := Da;
End If;
End Sub Button1OnClick;
Clicking the button opens a standard dialog box that is used to set up data adapter. The adapter that is used to bind data to map indicator color fill is set up in the dialog box. If the OK button is clicked in the dialog box, the adapter is updated in color fill options.
Executing the example requires a form, the Button1 button on the form, the ReportBoxNet component and the UiReportNet component named UiReportNet1, which is used as a data source for the ReportBoxNet component. A map is positioned on active sheet of the regular report linked to UiReport1 component. A map indicator is created for the Regions layer.
Imports Prognoz.Platform.Interop.Map;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Ui;
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
Report: IPrxReport;
PrxMap: IPrxMap;
Map: IMap;
Layer: IMapLayer;
VisualColor: IMapVisualColorProperty;
Da: IPrxMapDataAdapter;
WinApp: WinApplication = New WinApplicationClass_2();
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Data: Array;
Result: Object;
Begin
Report := UiReportNet1.ReportUi.Report;
PrxMap := (Report.ActiveSheet As IPrxTable).TabSheet.Objects.Item[0].Extension As IPrxMap;
Map := PrxMap As IMap;
//Map layer
Layer := Map.Layers.FindByName["Regions"];
//Map indicator parameters
VisualColor := (Layer.Visuals.Item[0] As IMapAreaVisual).Color;
//Settings of adapter for map indicator color fill
Da := VisualColor.DataAdapter As IPrxMapDataAdapter;
Target := WinApp.GetPluginTarget("Report");
Context := Target.CreateExecutionContext();
Data := New Object[4];
Data[0] := Report;
Data[1] := Map;
Data[2] := Layer;
Data[3] := Da;
Context.Data := Data;
Result := Target.Execute("ShowDataAdapterDialog", Context, Null);
If Result <> Null Then
Da := Result As IPrxMapDataAdapter;
VisualColor.DataAdapter := Da;
End If;
End Sub;
Clicking the button opens a standard dialog box that is used to set up data adapter. The adapter that is used to bind data to map indicator color fill is set up in the dialog box. If the OK button is clicked in the dialog box, the adapter is updated in color fill options.
See also: