private void GetTable(CrystalDecisions.ReportAppServer.DataDefModel.Table table, XmlWriter writer)
{
writer.WriteStartElement("Table");
writer.WriteAttributeString("Alias", table.Alias);
writer.WriteAttributeString("ClassName", table.ClassName);
writer.WriteAttributeString("Name", table.Name);
writer.WriteStartElement("ConnectionInfo");
foreach (string propertyId in table.ConnectionInfo.Attributes.PropertyIDs)
{
// make attribute name safe for XML
string attributeName = propertyId.Replace(" ", "_");
writer.WriteAttributeString(attributeName, table.ConnectionInfo.Attributes[propertyId].ToString());
}
writer.WriteAttributeString("UserName", table.ConnectionInfo.UserName);
writer.WriteAttributeString("Password", table.ConnectionInfo.Password);
writer.WriteEndElement();
var commandTable = table as CRDataDefModel.CommandTable;
if (commandTable != null)
{
var cmdTable = commandTable;
writer.WriteStartElement("Command");
writer.WriteString(cmdTable.CommandText);
writer.WriteEndElement();
}
writer.WriteStartElement("Fields");
foreach (CrystalDecisions.ReportAppServer.DataDefModel.Field fd in table.DataFields)
{
GetFieldDefinition(fd, writer);
}
writer.WriteEndElement();
writer.WriteEndElement();
}