{"id":658,"date":"2008-01-04T19:48:25","date_gmt":"2008-01-05T02:48:25","guid":{"rendered":"http:\/\/members.crystalreportsbook.com\/crystal-reports-xi\/1611-c-code-listings\/"},"modified":"2008-01-04T19:48:25","modified_gmt":"2008-01-05T02:48:25","slug":"1611-c-code-listings","status":"publish","type":"post","link":"http:\/\/www.crystalreportsonlinetraining.com\/training\/1611-c-code-listings\/","title":{"rendered":"16.11 C# Code Listings"},"content":{"rendered":"<h1>C# Code Listings<\/h1>\n<p>The C# code listings are equivalent to the VB.NET code listings.<\/p>\n<p>         <code_Caption>Listing 16-1. Mapping the parameters in the ReportDocument class.<\/code_Caption><br \/>\n         <code>CrystalReport1 MyReport = new CrystalReport1();<\/code><br \/>\n         <code>MapParameterFieldDefinitions(MyReport.DataDefinition.ParameterFields, 0);<\/code><br \/>\n         <code>\u2026<\/code><br \/>\n         <code>public void MapParameterFieldDefinitions(<\/code><br \/>\n         <code>CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions<\/code><br \/>\n         <code>ParameterFieldDefinitions, int Indent)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>foreach(CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition<\/code><br \/>\n         <code>ParameterFieldDefinition in ParameterFieldDefinitions)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>MapParameterFieldDefinition(ParameterFieldDefinition, Indent);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>public void MapParameterFieldDefinition(<\/code><br \/>\n         <code>CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition<\/code><br \/>\n         <code>ParameterFieldDefinition, int Indent)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>Output(\"Name: \" + ParameterFieldDefinition.ParameterFieldName, Indent);<\/code><br \/>\n         <code>Output(\"PromptText: \" + ParameterFieldDefinition.PromptText, Indent + 2);<\/code><br \/>\n         <code>Output(\"ValueType: \" +<\/code><br \/>\n         <code>ParameterFieldDefinition.ParameterValueKind.ToString(), Indent + 2);<\/code><br \/>\n         <code>Output(\"Kind: \" +<\/code><br \/>\n         <code>ParameterFieldDefinition.DiscreteOrRangeKind.ToString(), Indent + 2);<\/code><br \/>\n         <code>if (ParameterFieldDefinition.CurrentValues.Count>0)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>Output(\"Current Values: \", Indent + 2);<\/code><br \/>\n         <code>MapParameterValues(ParameterFieldDefinition.CurrentValues, Indent + 4);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>if (ParameterFieldDefinition.DefaultValues.Count>0)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>Output(\"Default Values\", Indent + 2);<\/code><br \/>\n         <code>MapParameterValues(ParameterFieldDefinition.DefaultValues, Indent + 4);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>public void MapParameterValues(CrystalDecisions.Shared.ParameterValues ParameterValues, int Indent)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>foreach(CrystalDecisions.Shared.ParameterValue ParameterValue in<\/code><br \/>\n         <code>ParameterValues)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>if (ParameterValue is CrystalDecisions.Shared.ParameterRangeValue)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>MapParameterRangeValue((CrystalDecisions.Shared.ParameterRangeValue)<\/code><br \/>\n         <code>ParameterValue, Indent);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>else<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>MapParameterDiscreteValue(<\/code><br \/>\n         <code>(CrystalDecisions.Shared.ParameterDiscreteValue)ParameterValue,<\/code><br \/>\n         <code>Indent);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>public void MapParameterDiscreteValue(<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterDiscreteValue ParameterValue, int Indent)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>Output(\"Value: \" + ParameterValue.Value.ToString(), Indent);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code>public void MapParameterRangeValue(<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterRangeValue ParameterValue, int Indent)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>Output(\"Value: \" + ParameterValue.StartValue.ToString() + \" to \" + ParameterValue.EndValue.ToString(), Indent);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code_Caption>Listing 16-2. Use the report document to modifya discrete parameter.<\/code_Caption><br \/>\n         <code>CrystalDecisions.Shared.ParameterDiscreteValue ParameterDiscreteValue;<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterValues ParameterValues;<\/code><br \/>\n         <code>\/\/Use the ReportDocument object to create two default parameters<\/code><br \/>\n         <code>CrystalReport1 MyReport = new CrystalReport1();<\/code><br \/>\n         <code>CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition ParameterFieldDefinition;<\/code><br \/>\n         <code>\/\/Step 1: Get a reference to the property field to modify<\/code><br \/>\n         <code>ParameterFieldDefinition = MyReport.DataDefinition.ParameterFields[\"Location\"];<\/code><br \/>\n         <code>\/\/Step 2: Instantiate a ParameterValues collection object<\/code><br \/>\n         <code>ParameterValues = new CrystalDecisions.Shared.ParameterValues();<\/code><br \/>\n         <code>\/\/Step 3: Instantiate a ParameterValue object<\/code><br \/>\n         <code>\/\/This example uses a discrete value<\/code><br \/>\n         <code>ParameterDiscreteValue = new CrystalDecisions.Shared.ParameterDiscreteValue();<\/code><br \/>\n         <code>\/\/Step 4: Assign a value to the object<\/code><br \/>\n         <code>ParameterDiscreteValue.Value = \"Louisville, KY\";<\/code><br \/>\n         <code>\/\/Step 5: Add it to the ParameterValues collection using the Add() method<\/code><br \/>\n         <code>ParameterValues.Add(ParameterDiscreteValue);<\/code><br \/>\n         <code>\/\/Step 6: Repeat steps 3-5 for additional parameters<\/code><br \/>\n         <code>ParameterDiscreteValue = new CrystalDecisions.Shared.ParameterDiscreteValue();<\/code><br \/>\n         <code>ParameterDiscreteValue.Value = \"San Diego, CA\";<\/code><br \/>\n         <code>ParameterValues.Add(ParameterDiscreteValue);<\/code><br \/>\n         <code>\/\/Step 7: Assign the ParameterValues collection to the parameter field<\/code><br \/>\n         <code>\/\/Do this for either the CurrentValues or DefaultValues collection<\/code><br \/>\n         <code>ParameterFieldDefinition.ApplyDefaultValues(ParameterValues);<\/code><br \/>\n         <code>\/\/Step 8: Print or Preview the report<\/code><br \/>\n         <code>crystalReportViewer1.ReportSource = MyReport;<\/code><br \/>\n         <code_Caption>Listing 16-3. Use the viewer to modify a range parameter.<\/code_Caption><br \/>\n         <code>CrystalDecisions.Shared.ParameterFields ParameterFields;<\/code><br \/>\n         <code>CrystalDecisions.Shared.IParameterField ParameterField;<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterRangeValue ParameterRangeValue;<\/code><br \/>\n         <code>\/\/Step 1: Assign the report object to the viewer<\/code><br \/>\n         <code>CrystalReport1 MyReport = new CrystalReport1();<\/code><br \/>\n         <code>crystalReportViewer1.ReportSource = MyReport;<\/code><br \/>\n         <code>\/\/Step 2: Reference the ParameterFields collection<\/code><br \/>\n         <code>ParameterFields = crystalReportViewer1.ParameterFieldInfo;<\/code><br \/>\n         <code>\/\/Step 3: Reference the ParameterField<\/code><br \/>\n         <code>ParameterField = ParameterFields[\"DateRange\"];<\/code><br \/>\n         <code>\/\/Step 4: Create a ParameterValue object<\/code><br \/>\n         <code>\/\/This example uses a range value object.<\/code><br \/>\n         <code>\/\/You could also use a discrete value object.<\/code><br \/>\n         <code>ParameterRangeValue = new CrystalDecisions.Shared.ParameterRangeValue();<\/code><br \/>\n         <code>\/\/Step 5: Assign a value to the object<\/code><br \/>\n         <code>ParameterRangeValue.StartValue = \"1\/4\/1997\";<\/code><br \/>\n         <code>ParameterRangeValue.EndValue = \"1\/20\/1997\";<\/code><br \/>\n         <code>\/\/Step 6: Add the ParameterValue object to either the<\/code><br \/>\n         <code>\/\/CurrentValues or DefaultValues collection<\/code><br \/>\n         <code>ParameterField.CurrentValues.Add(ParameterRangeValue);<\/code><br \/>\n         <code_Caption>Listing 16-4. Modify a discrete parameter using the report object.<\/code_Caption><br \/>\n         <code>public void SetParameterDiscreteWithReport(<\/code><br \/>\n         <code>CrystalDecisions.CrystalReports.Engine.ReportDocument MyReport,<\/code><br \/>\n         <code>string ParameterName, object ParameterValue, string SubreportName)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition<\/code><br \/>\n         <code>ParameterFieldDefinition;<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterDiscreteValue ParameterDiscreteValue;<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterValues ParameterValues;<\/code><br \/>\n         <code>ParameterFieldDefinition =<\/code><br \/>\n         <code>MyReport.DataDefinition.ParameterFields[ParameterName, SubreportName];<\/code><br \/>\n         <code>ParameterValues = new CrystalDecisions.Shared.ParameterValues();<\/code><br \/>\n         <code>ParameterDiscreteValue =<\/code><br \/>\n         <code>new CrystalDecisions.Shared.ParameterDiscreteValue();<\/code><br \/>\n         <code>ParameterDiscreteValue.Value = ParameterValue;<\/code><br \/>\n         <code>ParameterValues.Add(ParameterDiscreteValue);<\/code><br \/>\n         <code>ParameterFieldDefinition.ApplyCurrentValues(ParameterValues);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code_Caption>Listing 16-5. Modify a range parameter using the report object.<\/code_Caption><br \/>\n         <code>public void SetParameterRangeWithReport(<\/code><br \/>\n         <code>CrystalDecisions.CrystalReports.Engine.ReportDocument MyReport,<\/code><br \/>\n         <code>string ParameterName, object StartValue, object EndValue, CrystalDecisions.Shared.RangeBoundType LowerBoundType, CrystalDecisions.Shared.RangeBoundType UpperBoundType, string SubreportName)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition<\/code><br \/>\n         <code>ParameterFieldDefinition;<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterRangeValue ParameterRangeValue;<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterValues ParameterValues;<\/code><br \/>\n         <code>ParameterFieldDefinition = MyReport.DataDefinition.ParameterFields<\/code><br \/>\n         <code>[ParameterName, SubreportName];<\/code><br \/>\n         <code>ParameterValues = new CrystalDecisions.Shared.ParameterValues();<\/code><br \/>\n         <code>ParameterRangeValue = new CrystalDecisions.Shared.ParameterRangeValue();<\/code><br \/>\n         <code>ParameterRangeValue.StartValue = StartValue;<\/code><br \/>\n         <code>ParameterRangeValue.EndValue = EndValue;<\/code><br \/>\n         <code>ParameterRangeValue.LowerBoundType = LowerBoundType;<\/code><br \/>\n         <code>ParameterRangeValue.UpperBoundType = UpperBoundType;<\/code><br \/>\n         <code>ParameterValues.Add(ParameterRangeValue);<\/code><br \/>\n         <code>ParameterFieldDefinition.ApplyCurrentValues(ParameterValues);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code_Caption>Listing 16-6. Modify a discrete parameter using the viewer control.<\/code_Caption><br \/>\n         <code>public void SetParameterDiscreteWithViewer(<\/code><br \/>\n         <code>CrystalDecisions.Windows.Forms.CrystalReportViewer crystalReportViewer1,<\/code><br \/>\n         <code>string ParameterName, object ParameterValue, string SubreportName)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>CrystalDecisions.Shared.IParameterField ParameterField;<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterDiscreteValue ParameterDiscreteValue;<\/code><br \/>\n         <code>ParameterField = crystalReportViewer1.ParameterFieldInfo[ParameterName,<\/code><br \/>\n         <code>SubreportName];<\/code><br \/>\n         <code>ParameterDiscreteValue =<\/code><br \/>\n         <code>New CrystalDecisions.Shared.ParameterDiscreteValue();<\/code><br \/>\n         <code>ParameterDiscreteValue.Value = ParameterValue;<\/code><br \/>\n         <code>ParameterField.CurrentValues.Add(ParameterDiscreteValue);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code_Caption>Listing 16-7. Modify a range parameter using the viewer control.<\/code_Caption><br \/>\n         <code>public void SetParameterRangeWithViewer(<\/code><br \/>\n         <code>CrystalDecisions.Windows.Forms.CrystalReportViewer crystalReportViewer1,<\/code><br \/>\n         <code>string ParameterName, object StartValue, object EndValue, CrystalDecisions.Shared.RangeBoundType LowerBoundType, CrystalDecisions.Shared.RangeBoundType UpperBoundType, string SubreportName)<\/code><br \/>\n         <code>{<\/code><br \/>\n         <code>CrystalDecisions.Shared.IParameterField ParameterField;<\/code><br \/>\n         <code>CrystalDecisions.Shared.ParameterRangeValue ParameterRangeValue;<\/code><br \/>\n         <code>ParameterField = crystalReportViewer1.ParameterFieldInfo<\/code><br \/>\n         <code>[ParameterName, SubreportName];<\/code><br \/>\n         <code>ParameterRangeValue = new CrystalDecisions.Shared.ParameterRangeValue();<\/code><br \/>\n         <code>ParameterRangeValue.StartValue = StartValue;<\/code><br \/>\n         <code>ParameterRangeValue.EndValue = EndValue;<\/code><br \/>\n         <code>ParameterRangeValue.LowerBoundType = LowerBoundType;<\/code><br \/>\n         <code>ParameterRangeValue.UpperBoundType = UpperBoundType;<\/code><br \/>\n         <code>ParameterField.CurrentValues.Add(ParameterRangeValue);<\/code><br \/>\n         <code>}<\/code><br \/>\n         <code_Caption>Listing 16-8. Modify parameters using the report object.<\/code_Caption><br \/>\n         <code>CrystalReport1 MyReport = new CrystalReport1();<\/code><br \/>\n         <code>SetParameterDiscreteWithReport(MyReport, \"MyBirthday\", new DateTime(1968,5,23), \"\");<\/code><br \/>\n         <code>SetParameterRangeWithReport(MyReport, \"DateRange\",new DateTime(1997,2,1), new DateTime(1997,3,1), CrystalDecisions.Shared.RangeBoundType.BoundInclusive, CrystalDecisions.Shared.RangeBoundType.BoundExclusive, \"\");<\/code><br \/>\n         <code>crystalReportViewer1.ReportSource = MyReport;<\/code><br \/>\n         <code_Caption>Listing 16-9 Modify parameters using the viewer control.<\/code_Caption><br \/>\n         <code>CrystalReport1 MyReport = new CrystalReport1();<\/code><br \/>\n         <code>crystalReportViewer1.ReportSource = MyReport;<\/code><br \/>\n         <code>SetParameterDiscreteWithViewer(crystalReportViewer1, \"CustomerId\",<\/code><br \/>\n         <code>\"DotNet Tech\", \"\");<\/code><br \/>\n         <code>SetParameterRangeWithViewer(crystalReportViewer1, \"DateRange\",<\/code><br \/>\n         <code>new DateTime(1997, 1, 1),new DateTime(1997, 2, 1), CrystalDecisions.Shared.RangeBoundType.BoundInclusive, CrystalDecisions.Shared.RangeBoundType.BoundExclusive, \"\");<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>C# Code Listings The C# code listings are equivalent to the VB.NET code listings. Listing 16-1. Mapping the parameters in the ReportDocument class. CrystalReport1 MyReport = new CrystalReport1(); MapParameterFieldDefinitions(MyReport.DataDefinition.ParameterFields, 0); \u2026 public void MapParameterFieldDefinitions( CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions ParameterFieldDefinitions, int Indent) { foreach(CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition ParameterFieldDefinition in ParameterFieldDefinitions) { MapParameterFieldDefinition(ParameterFieldDefinition, Indent); } } public void MapParameterFieldDefinition( CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition ParameterFieldDefinition, int Indent) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36,2],"tags":[],"class_list":["post-658","post","type-post","status-publish","format-standard","hentry","category-chapter-16-modifying-parameters-and-formulas","category-crystal-reportsnet-2003","entry"],"_links":{"self":[{"href":"http:\/\/www.crystalreportsonlinetraining.com\/training\/wp-json\/wp\/v2\/posts\/658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.crystalreportsonlinetraining.com\/training\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.crystalreportsonlinetraining.com\/training\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.crystalreportsonlinetraining.com\/training\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.crystalreportsonlinetraining.com\/training\/wp-json\/wp\/v2\/comments?post=658"}],"version-history":[{"count":0,"href":"http:\/\/www.crystalreportsonlinetraining.com\/training\/wp-json\/wp\/v2\/posts\/658\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.crystalreportsonlinetraining.com\/training\/wp-json\/wp\/v2\/media?parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.crystalreportsonlinetraining.com\/training\/wp-json\/wp\/v2\/categories?post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.crystalreportsonlinetraining.com\/training\/wp-json\/wp\/v2\/tags?post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}