My XML file is As Below:
<?xml
version="1.0"
encoding="UTF-8"
standalone="no"?>
<Fields>
<Field
ID="1"
Datatype="Option"
Enabled="1"
FieldClass="Normal"
Name="Document
Type" CaptionML="ENU=Document
Type"
OptionString="Quote,Order,Invoice,Credit
Memo,Blanket Order,Return Order"
OptionCaptionML="ENU=Quote,Order,Invoice,Credit
Memo,Blanket Order,Return Order"
BlankNumbers="DontBlank"
BlankZero="0"
SignDisplacement="0"
Editable="1"
NotBlank="0"
Numeric="0"
DateFormula="0"
ClosingDates="0"
Title="0"
ValidateTableRelation="1"
TestTableRelation="1"
ExtendedDatatype="None"/>
<Field
ID="2"
Datatype="Code"
DataLength="20"
Enabled="1"
FieldClass="Normal"
Name="Sell-to
Customer No."
CaptionML="ENU=Sell-to
Customer No."
BlankNumbers="DontBlank"
BlankZero="0"
SignDisplacement="0"
Editable="0"
NotBlank="0"
Numeric="0"
DateFormula="0"
ClosingDates="0"
Title="0"
ValidateTableRelation="1"
TestTableRelation="1"
ExtendedDatatype="None">
<TableRelations
TableID="18"
TableName="Customer"
FieldID="0"/>
</Field>
<Field
ID="3"
Datatype="Code"
DataLength="20"
Enabled="1"
FieldClass="Normal"
Name="Document
No." CaptionML="ENU=Document
No." BlankNumbers="DontBlank"
BlankZero="0"
SignDisplacement="0"
Editable="1"
NotBlank="0"
Numeric="0"
DateFormula="0"
ClosingDates="0"
Title="0"
ValidateTableRelation="1"
TestTableRelation="1"
ExtendedDatatype="None">
<TableRelations
TableID="36"
TableName="Sales
Header" FieldID="3">
<Filters
FilterGroup="0"
FieldID="1"
FilterType="FIELD"
FilterValue="1"/>
</TableRelations>
</Field>
<Field
ID="4"
Datatype="Integer"
Enabled="1"
FieldClass="Normal"
Name="Line
No." CaptionML="ENU=Line
No." BlankNumbers="DontBlank"
BlankZero="0"
SignDisplacement="0"
Editable="1"
NotBlank="0"
Numeric="0"
DateFormula="0"
ClosingDates="0"
Title="0"
ValidateTableRelation="1"
TestTableRelation="1"
ExtendedDatatype="None"/>
<Field
ID="5"
Datatype="Option"
Enabled="1"
FieldClass="Normal"
Name="Type"
CaptionML="ENU=Type"
OptionString="
,G/L Account,Item,Resource,Fixed Asset,Charge (Item)"
OptionCaptionML="ENU="
,G/L Account,Item,Resource,Fixed Asset,Charge (Item)""
BlankNumbers="DontBlank"
BlankZero="0"
SignDisplacement="0"
Editable="1"
NotBlank="0"
Numeric="0"
DateFormula="0"
ClosingDates="0"
Title="0"
ValidateTableRelation="1"
TestTableRelation="1"
OnValidate="134"
ExtendedDatatype="None"/>
<Field
ID="6"
Datatype="Code"
DataLength="20"
Enabled="1"
FieldClass="Normal"
Name="No."
CaptionML="ENU=No."
BlankNumbers="DontBlank"
BlankZero="0"
SignDisplacement="0"
Editable="1"
NotBlank="0"
Numeric="0"
DateFormula="0"
ClosingDates="0"
Title="0"
ValidateTableRelation="1"
TestTableRelation="1"
OnValidate="135"
ExtendedDatatype="None">
<TableRelations
TableID="7"
TableName="Standard
Text" FieldID="0">
<Conditions
FieldID="5"
ConditionType="CONST"
ConditionValue="0"/>
</TableRelations>
<TableRelations
TableID="15"
TableName="G/L
Account" FieldID="0">
<Conditions
FieldID="5"
ConditionType="CONST"
ConditionValue="1"/>
</TableRelations>
<TableRelations
TableID="27"
TableName="Item"
FieldID="0">
<Conditions
FieldID="5"
ConditionType="CONST"
ConditionValue="2"/>
</TableRelations>
<TableRelations
TableID="156"
TableName="Resource"
FieldID="0">
<Conditions
FieldID="5"
ConditionType="CONST"
ConditionValue="3"/>
</TableRelations>
<TableRelations
TableID="5600"
TableName="Fixed
Asset" FieldID="0">
<Conditions
FieldID="5"
ConditionType="CONST"
ConditionValue="4"/>
</TableRelations>
<TableRelations
TableID="5800"
TableName="Item
Charge" FieldID="0">
<Conditions
FieldID="5"
ConditionType="CONST"
ConditionValue="5"/>
</TableRelations>
</Field>
<Field
ID="5800"
Datatype="Boolean"
Enabled="1"
FieldClass="Normal"
Name="Allow
Item Charge Assignment"
CaptionML="ENU=Allow
Item Charge Assignment"
BlankNumbers="DontBlank"
BlankZero="0"
SignDisplacement="0"
Editable="1"
InitValue="1"
NotBlank="0"
Numeric="0"
DateFormula="0"
ClosingDates="0"
Title="0"
ValidateTableRelation="1"
TestTableRelation="1"
OnValidate="206"
ExtendedDatatype="None"/>
<Field
ID="5801"
Datatype="Decimal"
Enabled="1"
FieldClass="FlowField"
Name="Qty.
to Assign"
CaptionML="ENU=Qty.
to Assign"
BlankNumbers="DontBlank"
BlankZero="0"
SignDisplacement="0"
Editable="0"
NotBlank="0"
Numeric="0"
DateFormula="0"
ClosingDates="0"
Title="0"
ValidateTableRelation="1"
TestTableRelation="1"
ExtendedDatatype="None">
<CalculationFormula
FlowType="Sum"
ReverseSign="0"
Table="5809"
Field="8">
<TableFilters>
<Filter
FilterGroup="0"
FieldID="1"
FilterType="FIELD"
ValueIsFilter="0"
OnlyMaxLimit="0"
FilterValue="1"/>
<Filter
FilterGroup="0"
FieldID="2"
FilterType="FIELD"
ValueIsFilter="0"
OnlyMaxLimit="0"
FilterValue="3"/>
<Filter
FilterGroup="0"
FieldID="3"
FilterType="FIELD"
ValueIsFilter="0"
OnlyMaxLimit="0"
FilterValue="4"/>
</TableFilters>
</CalculationFormula>
</Field>
<Field
ID="5802"
Datatype="Decimal"
Enabled="1"
FieldClass="FlowField"
Name="Qty.
Assigned"
CaptionML="ENU=Qty.
Assigned"
BlankNumbers="DontBlank"
BlankZero="0"
SignDisplacement="0"
Editable="0"
NotBlank="0"
Numeric="0"
DateFormula="0"
ClosingDates="0"
Title="0"
ValidateTableRelation="1"
TestTableRelation="1"
ExtendedDatatype="None">
<CalculationFormula
FlowType="Sum"
ReverseSign="0"
Table="5809"
Field="9">
<TableFilters>
<Filter
FilterGroup="0"
FieldID="1"
FilterType="FIELD"
ValueIsFilter="0"
OnlyMaxLimit="0"
FilterValue="1"/>
<Filter
FilterGroup="0"
FieldID="2"
FilterType="FIELD"
ValueIsFilter="0"
OnlyMaxLimit="0"
FilterValue="3"/>
<Filter
FilterGroup="0"
FieldID="3"
FilterType="FIELD"
ValueIsFilter="0"
OnlyMaxLimit="0"
FilterValue="4"/>
</TableFilters>
</CalculationFormula>
</Field>
</Fields>
Searching
Code
///
<summary>
///
///
</summary>
///
<param name="XMLPath">File
Path</param>
///
<param name="SearchNode">Search
Node</param>
///
<param name="AttributeName">Attribute
Node</param>
///
<param name="AttributeValue">Attribute
Value</param>
///
<param name="Connectionstring">Database
ConnectionString</param>
private void
InsertintoTableRelationInfo(string XMLPath,
string SearchNode,
string AttributeName, string
AttributeValue, string Connectionstring)
{
#region Table
RelationInfo
XmlDocument
doc = new
XmlDocument();
doc.Load(XMLPath);
System.Text.StringBuilder
str = new
StringBuilder();
XmlNodeList nodes =
doc.GetElementsByTagName(SearchNode);
foreach (XmlNode
node in nodes)
{
if (node.HasChildNodes)
{
foreach (XmlAttribute
attribute in node.Attributes)
{
if (attribute.Name == AttributeName)
{
if (attribute.Value == AttributeValue)
{
for (int
i = 0; i < node.ChildNodes.Count; i++)
{
string name
= node.ChildNodes[i].Name;
/*
* Check ChildNode
*/
if (name ==
"TableRelations")
{
foreach
(XmlAttribute chieldAttribute
in node.ChildNodes[i].Attributes)
{
/*
* Check ChildNode Attribute
*/
if (chieldAttribute.Name
== "TableID")
{
_TableRelationsTableID =
Convert.ToInt32(chieldAttribute.Value);
}
if (chieldAttribute.Name
== "TableName")
{
_TableName = chieldAttribute.Value;
}
if (chieldAttribute.Name
== "FieldID")
{
_TableFieldID =
Convert.ToInt32(chieldAttribute.Value);
}
}
_CalculationFormulaFlowType =
"TableRelation";
using (dbNavXmlDataContext
db = new
dbNavXmlDataContext(Connectionstring))
{
db.USP_INSERT_TableRelationInfo(_ObjectType, _ObjectID, _ID,
Convert.ToInt32(AttributeValue),
_TableRelationsTableID, _TableName, _TableFieldID, _CalculationFormulaFlowType,
_ReverseSign);
}
}
if (name ==
"CalculationFormula")
{
foreach
(XmlAttribute chieldAttribute
in node.ChildNodes[i].Attributes)
{
if (chieldAttribute.Name
== "FlowType")
{
_CalculationFormulaFlowType =
chieldAttribute.Value;
}
if (chieldAttribute.Name
== "ReverseSign")
{
_ReverseSign =
Convert.ToInt32(chieldAttribute.Value);
}
}
using (dbNavXmlDataContext
db = new
dbNavXmlDataContext(Connectionstring))
{
db.USP_INSERT_TableRelationInfo(_ObjectType, _ObjectID, _ID,
Convert.ToInt32(AttributeValue), _TableRelationsTableID,
_TableName, _TableFieldID, _CalculationFormulaFlowType, _ReverseSign);
}
}
}
}
}
}
}
#endregion
}
}