i have developed RDLC report which displays complaint and has columns,
ID, ReceivingDate, Message, Is reply
now it works but problem is that if against each row i may want to open a detailed report. Like if Is Reply of any row is Yes (1), then i should click yes and it might load a new report in viewer which might contain 1 or more rows. i don't know how ?
Sql Query:
Alter PROCEDURE [dbo].[Report_SearchSmsComplaints_RepliesBySmsID_Sp]
@ParentSmsID int
AS
BEGIN
Begin Try
If exists(select * from SdpoReplies_SmsComplaints where ParentSmsID = @ParentSmsID)
Begin
SELECT [ID],
CONVERT(VARCHAR(12), ReceivedMessages.ReceivedDateTime, 113) as ReceivingDate
,[FromMobileNo]
,[Message]
,IsReply_Sdpo = 1
FROM [CmsSMSDb].[dbo].[ReceivedMessages] where ReceivedMessages.ID = @ParentSmsID
End
Else
Begin
SELECT [ID],
CONVERT(VARCHAR(12), ReceivedMessages.ReceivedDateTime, 113) as ReceivingDate
,[FromMobileNo]
,[Message]
,IsReply_Sdpo = 0
FROM [CmsSMSDb].[dbo].[ReceivedMessages] where ReceivedMessages.ID = @ParentSmsID
End
End Try
Begin catch
Select ERROR_MESSAGE() as ErrMsg
End Catch
END
.cs:
protected void btnGenReport_Click(object sender, EventArgs e)
{
try
{
DataSet dss = (DataSet)Session["UserData"];
int UserID = Convert.ToInt32(dss.Tables[0].Rows[0][3].ToString());
int DesigID = Convert.ToInt32(dss.Tables[0].Rows[0][4].ToString());
MyComplaints obj = new MyComplaints();
ReportViewer1.ProcessingMode = ProcessingMode.Local;
ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Reports/Report_GetSmsComplaints_Replies.rdlc");
int SmsID = Convert.ToInt32(txtSmsID.Text);
DataTable dt = ManageRecievedMessage.Report_GetSmsComplaints_RepliesBySmsID(SmsID);
if (dt.Rows.Count <= 0)
{
HiddenFieldSetMessage.Value = "WrongDatesComb";
HiddenFieldShowMessage.Value = "True";
ReportViewer1.Visible = false;
}
else
{
ReportDataSource rpds = new ReportDataSource("DataSet1", dt);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rpds);
ReportViewer1.Visible = true;
}
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
}
}