In my sample XML the object is "ZB". That "ZB" has two points, "AAD" and "AAG". Both points have coördinates, devided by the "|" character. This is a fixed format, I have to deal with it.
Because in our software, we use the data in a dataset. So we convert the XML tot a dataset with the command:
After that, I have 4 tables in my dataset:
Automaticly there are relations and hidden id's added. After that, I connect 2 datagrids with this code. One datagrid with all objects and the second grid shows me the coördinates of the selected object in datagrid 1:
So far so good, everything works fine!
I can databind labels or other textboxes to the point, after clicking a "ZB" object. Its with this code:
What do I want?
I want the objects and coördinates in one datagrid. So I want to create a view, adding a custom column, and see the results back in a datagrid.
I tried the following. All commented lines I tried. I can't find the proper way to build a expression so the coördinates were shown:
You can use this XML to test:
Because in our software, we use the data in a dataset. So we convert the XML tot a dataset with the command:
Code:
Dim myDS As DataSet
Dim fsReadXml As New System.IO.FileStream(myXMLFile, System.IO.FileMode.Open)
myDS.ReadXml(fsReadXml)
After that, I have 4 tables in my dataset:
- ZB
- AAE
- AAG
- point
Automaticly there are relations and hidden id's added. After that, I connect 2 datagrids with this code. One datagrid with all objects and the second grid shows me the coördinates of the selected object in datagrid 1:
Code:
Dim myBS As New BindingSource
myBS.DataSource = myDS
DataGridView1.DataSource = myBS
DataGridView1.DataMember = "ZB"
DataGridView2.DataSource = myBS
DataGridView2.DataMember = "ZB.ZB_AAE.AAE_point"
So far so good, everything works fine!
I can databind labels or other textboxes to the point, after clicking a "ZB" object. Its with this code:
Code:
TextBox1.DataBindings.Clear()
TextBox1.DataBindings.Add(New Binding("text", myBS, "ZB.ZB_AAG.AAG_point.pos"))
What do I want?
I want the objects and coördinates in one datagrid. So I want to create a view, adding a custom column, and see the results back in a datagrid.
I tried the following. All commented lines I tried. I can't find the proper way to build a expression so the coördinates were shown:
Code:
Dim Test As DataColumn = myDS.Tables("ZB").Columns.Add("test", GetType(String))
Test.Expression = "ZB.ZB_AAE.AAE_point"
'Test.Expression = "Child(ZB.ZB_AAE).point"
'Test.Expression = "Child(ZB_AAE).point"
'Test.Expression = "Child(point)"
'Test.Expression = "Child(pos)"
'Test.Expression = "ZB_AAE.point"
'Test.Expression = "ZB.ZB_AAE.point.pos"
'Test.Expression = "point"
'Test.Expression = "point.pos"
'Test.Expression = "Parent.ZB_AAE.AAE_point.pos"
'Test.Expression = "Parent(ZB_AAE).AAE_point"
'Test.Expression = "Parent.ZB"
'Test.Expression = "ZB_AAE.AAE_point.pos"
'Test.Expression = "Child.ZB_AAE.point.pos"
You can use this XML to test:
Code:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!-- File Header -->
<DATA xmlns:nl= "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="file:EN13508.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:gml="http://www.opengis.net/gml">
<ZB>
<AAA>AAA</AAA>
<AAD>1</AAD>
<AAE>
<gml:point srsName="Netherlands-RD" srsDimension="2">
<gml:pos>123|456</gml:pos>
</gml:point>
</AAE>
<AAF>2</AAF>
<AAG>
<gml:point srsName="Netherlands-RD" srsDimension="2">
<gml:pos>234|567</gml:pos>
</gml:point>
</AAG>
</ZB>
<ZB>
<AAA>AAA</AAA>
<AAD>3</AAD>
<AAE>
<gml:point srsName="Netherlands-RD" srsDimension="2">
<gml:pos>345|678</gml:pos>
</gml:point>
</AAE>
<AAF>4</AAF>
<AAG>
<gml:point srsName="Netherlands-RD" srsDimension="2">
<gml:pos>456|789</gml:pos>
</gml:point>
</AAG>
</ZB>
</DATA>
Last edited: