public object DataParameterValue(IDataParameterTemplate template) { if (values.ContainsKey(template.Name)) { return(ConversionHelper.Convert(values[template.Name], ConversionHelper.ToType(template.DbType), DBNull.Value)); } return(DBNull.Value); }
private static string GetParameterValue(IDataParameterTemplate parameter, IEnumerable <MsReportParameter> reportParameters) { foreach (MsReportParameter reportParameter in reportParameters) { if (reportParameter.Name.Equals(parameter.Name)) { foreach (string value in reportParameter.Values) { return(value); } } } return(null); }
public IDataParameter CreateParameter(IDataParameterTemplate parameterTemplate) { IDataParameter parameter = Command().CreateParameter(); parameter.DbType = parameterTemplate.DbType; DbParameter db = parameter as DbParameter; if (db != null) { db.IsNullable = parameterTemplate.IsNullable; } parameter.ParameterName = parameterTemplate.Name; return(parameter); }
public static void PopulateReportDataSources(Report report, Rdl rdl) { IList <IReportDataCommandTemplate> datasources = new List <IReportDataCommandTemplate>(); for (int i = 0; i < rdl.Items.Length; i++) { if (rdl.ItemsElementName[i].Equals(RdlChildElement.DataSets)) { DataSets dataSets = (DataSets)rdl.Items[i]; foreach (DataSet dataSet in dataSets.DataSet) { ReportDataCommandTemplate reportDataCommandTemplate = new ReportDataCommandTemplate(dataSet.Name); ReportDataMap reportDataMap = new ReportDataMap(); foreach (object dataSetItem in dataSet.Items) { DataSetQuery queryType = dataSetItem as DataSetQuery; RdlFields fieldCollection = dataSetItem as RdlFields; if (queryType != null) { for (int j = 0; j < queryType.Items.Length; j++) { switch (queryType.ItemsElementName[j]) { case DataSetQueryChildElement.CommandType: reportDataCommandTemplate.CommandType = (CommandType)Enum.Parse(typeof(CommandType), queryType.Items[j].ToString()); break; case DataSetQueryChildElement.CommandText: reportDataCommandTemplate.CommandText = queryType.Items[j].ToString(); break; case DataSetQueryChildElement.QueryParameters: DataSetQueryParameters queryParameters = (DataSetQueryParameters)queryType.Items[j]; foreach (DataSetQueryParameter queryParameter in queryParameters.QueryParameter) { string xname = queryParameter.Name; if (xname.StartsWith("@", StringComparison.OrdinalIgnoreCase)) { xname = queryParameter.Name.Substring(1); } IDataParameterTemplate parameter = report.ReportParameter(xname); if (parameter == null) { throw new ReportParameterException( "Report does not define parameter: " + xname); } reportDataCommandTemplate.Parameters.Add(parameter); } break; case DataSetQueryChildElement.DataSourceName: reportDataCommandTemplate.DataSourceName = queryType.Items[j].ToString(); break; } } } else if (fieldCollection != null) { RdlField[] fields = fieldCollection.Field; for (int c = 0; c < fields.Length; c++) { DataMapEntry newEntry = new DataMapEntry(); newEntry.FieldName = fields[c].Name; for (int d = 0; d < fields[c].ItemsElementName.Length; d++) { switch (fields[c].ItemsElementName[d]) { case RdlFieldType.Item: if (fields[c].Items[d] is System.Xml.XmlElement) { newEntry.TypeName = ((System.Xml.XmlElement)fields[c].Items[d]).InnerText; } break; case RdlFieldType.DataField: newEntry.ColumnName = fields[c].Items[d].ToString(); break; } } reportDataMap.AddDataMapEntry(newEntry); } } } reportDataCommandTemplate.DataMap = reportDataMap; datasources.Add(reportDataCommandTemplate); } } } report.ReportDataCommandTemplates = datasources; }