Hi nadeem1218,
I have created sample code by refering the below article which full-fill your requirement.
HTML
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="800px">
</rsweb:ReportViewer>
</div>
</form>
</body>
</html>
C#
private static int finalbalance = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PopulateTrans();
}
}
private void PopulateTrans()
{
ReportViewer1.ProcessingMode = ProcessingMode.Local;
ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/TransactionM.rdlc");
Transaction dstrans = GetData();
ReportDataSource datasource = new ReportDataSource("Transaction", dstrans.Tables[0]);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(datasource);
}
private Transaction GetData()
{
string conString = ConfigurationManager.ConnectionStrings["Constring"].ConnectionString;
SqlCommand cmd = new SqlCommand("SELECT Trans_Date as Date,Action,Debit,Credit,Explanation,Branch FROM Dim_Transaction");
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
sda.SelectCommand = cmd;
using (Transaction trans = new Transaction())
{
sda.Fill(trans, "Transaction");
DataTable dt = trans.Tables["Transaction"];
for (int i = 0; i < (trans._Transaction).Count; i++)
{
string credit = (trans._Transaction).Rows[i]["Credit"].ToString();
string debit = (trans._Transaction).Rows[i]["Debit"].ToString();
if (credit != "" && debit == "")
{
int balance = (trans._Transaction).Rows[i]["Balance"].ToString() == "" ? finalbalance : Convert.ToInt32((trans._Transaction).Rows[i]["Balance"].ToString());
int Testbalance = balance + Convert.ToInt32((trans._Transaction).Rows[i]["Credit"].ToString());
finalbalance = Testbalance;
(trans._Transaction).Rows[i]["Balance"] = finalbalance;
}
else if (debit != "" && credit == "")
{
int balance = (trans._Transaction).Rows[i]["Balance"].ToString() == "" ? finalbalance : Convert.ToInt32((trans._Transaction).Rows[i]["Balance"].ToString());
int Testbalance = balance - Convert.ToInt32((trans._Transaction).Rows[i]["Debit"].ToString());
finalbalance = Testbalance;
(trans._Transaction).Rows[i]["Balance"] = finalbalance;
}
}
return trans;
}
}
}
}
VB.Net
Private Shared finalbalance As Integer = 0
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Not Me.IsPostBack Then
Me.PopulateTrans()
End If
End Sub
Private Sub PopulateTrans()
ReportViewer1.ProcessingMode = ProcessingMode.Local
ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/TransactionM.rdlc")
Dim dstrans As Transaction = GetData()
Dim datasource As New ReportDataSource("Transaction", dstrans.Tables(0))
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(datasource)
End Sub
Private Function GetData() As Transaction
Dim conString As String = ConfigurationManager.ConnectionStrings("Constring").ConnectionString
Dim cmd As New SqlCommand("SELECT Trans_Date as Date,Action,Debit,Credit,Explanation,Branch FROM Dim_Transaction")
Using con As New SqlConnection(conString)
Using sda As New SqlDataAdapter()
cmd.Connection = con
cmd.CommandType = CommandType.Text
sda.SelectCommand = cmd
Using trans As New Transaction()
sda.Fill(trans, "Transaction")
Dim dt As DataTable = trans.Tables("Transaction")
For i As Integer = 0 To (trans._Transaction).Count - 1
Dim credit As String = (trans._Transaction).Rows(i)("Credit").ToString()
Dim debit As String = (trans._Transaction).Rows(i)("Debit").ToString()
If credit <> "" AndAlso debit = "" Then
Dim balance As Integer = If((trans._Transaction).Rows(i)("Balance").ToString() = "", finalbalance, Convert.ToInt32((trans._Transaction).Rows(i)("Balance").ToString()))
Dim Testbalance As Integer = balance + Convert.ToInt32((trans._Transaction).Rows(i)("Credit").ToString())
finalbalance = Testbalance
(trans._Transaction).Rows(i)("Balance") = finalbalance
ElseIf debit <> "" AndAlso credit = "" Then
Dim balance As Integer = If((trans._Transaction).Rows(i)("Balance").ToString() = "", finalbalance, Convert.ToInt32((trans._Transaction).Rows(i)("Balance").ToString()))
Dim Testbalance As Integer = balance - Convert.ToInt32((trans._Transaction).Rows(i)("Debit").ToString())
finalbalance = Testbalance
(trans._Transaction).Rows(i)("Balance") = finalbalance
End If
Next
Return trans
End Using
End Using
End Using
End Function
Screenshot
