I have started creating reports using crystal reports
. I am able to show everything using dataset
and sql
except for the auto-row numbering
.
Here's my code:
SqlConnection cnn;
string connectionString = null;
string sql = null;
connectionString = "data source=Kim; initial catalog=DBO;user id=sa; password=passw0rd";
cnn = new SqlConnection(connectionString);
cnn.Open();
sql = "select Name as DataColumn1, Age as DataColumn2, from tbl1";
SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
cnn.Close();
DataSet2 ds = new DataSet2();
dscmd.Fill(ds, "DataTable2");
CrystalReport1 objRpt = new CrystalReport1 ();
objRpt.SetDataSource(ds.Tables[0]);
CrystalReportViewer1.ReportSource = objRpt;
CrystalReportViewer1.RefreshReport();
The Result of the report is like this:
No Name Age
Kim 22
Ian 29
Aris 27
Need to show the report like this:
No Name Age
1 Kim 22
2 Ian 29
3 Aris 27
Can you give me idea on how to add row number.
Automatic sequential numbering in crystal report
Field Explorer, right-click "Running Total Fieids" - New
Configuration.
3.1 Select Field to set (Choose a field to summarize)
3.2 Click to select Custom Field values
3.3 Select "Type of summary" to set ( 'Type of summary' to 'distinct count')
3.4 Set "Evaluate" (Set ‘for each record’)
3.5 Set "Reset"(set ‘never’)
3.6 Click OK.
Then add the field to report
You can change the select query to
which will produce expected result.
In 'Reset' choose 'Never'
Click OK Add the field to the report.![enter image description here](https://i.stack.imgur.com/omCxQ.jpg)
Creating a
'RecordNumber'
special field would be the most simple and easy way to achieve it. Record Number Field is used to number each record printed in the Details section of your report.In crystal report their is option to add auto increment field,no need to fetch rownumber from database
Use datatable and take DS.tables[0].rows.count and take a count inside and which increments with every loop iteration.