I'm generating crystal report as bill or receipt in my asp.net application after insertion.
I'm doing this inside a modal. Everything works fine and the report also gets generated but it wont somehow show properly in the modal.
It shows up only after I click on the 'Group Tree' button.
I'm using C# with asp.net as front-end and SQL for database.
My ASPX Markup:
<div class="modal-dialog modal-lg">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header bg-default-gradient">
<h4 class="modal-title">Quick Bill Reciept</h4>
<div class="pull-right">
<div class="form-group">
<asp:LinkButton ID="lnkPrint2" runat="server" CssClass="btn btn-success" OnClientClick="PrintFinalReceipt()" CausesValidation="false"> <i class="fa fa-print"></i> Print Receipt</asp:LinkButton>
</div>
</div>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<!-- Modal body -->
<div class="modal-body card-body bg-default-gradient">
<div class="row">
<div class="col-md-12">
<div class="form-group" style="overflow: scroll; width: 100%; height: 50%">
<div id="dvReportFinal">
<CR:CrystalReportViewer ID="rptFinalSales" runat="server" AutoDataBind="true" HasRefreshButton="True" EnableDatabaseLogonPrompt="False" DisplayToolbar="False" ToolPanelView="None" BorderColor="#333300" />
<CR:CrystalReportSource ID="CrystalReportSource2" runat="server">
<Report FileName="Reports/FinalBillHappyCakes.rpt">
</Report>
</CR:CrystalReportSource>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer bg-default-gradient">
</div>
</div>
</div>
And C# Code:
protected void Confirm(object sender, EventArgs e)
{
try
{
if(drpBillType.SelectedIndex.ToString() == "1")
{
foreach (GridViewRow g1 in Gridview1.Rows)
{
string ITEMNAME = (g1.FindControl("drpItemname") as DropDownList).Text;
string QTY = (g1.FindControl("txtQtty") as TextBox).Text;
string UP = (g1.FindControl("txtUnitPrice") as TextBox).Text;
string GST = (g1.FindControl("txtGst") as TextBox).Text;
string TOT = (g1.FindControl("txtTotalPrice") as TextBox).Text;
string InsertQuery = "Insert into Sales(bno,cdate,ctime,deldate,name,mobileno,address,gstno,pan,description,qtty,rate,linetotal,gst,totamt,paidamt,balamt,orderstatus,status,rem,FinancialYear) values(@bno,@cdate,@ctime,@deldate,@name,@mobileno,@address,@gstno,@pan,@description,@qtty,@rate,@linetotal,@gst,@totamt,@paidamt,@balamt,@orderstatus,@status,@rem,@FinancialYear)";
using (SqlConnection con = new SqlConnection(constring))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(InsertQuery, con))
{
cmd.Parameters.AddWithValue("@bno", Convert.ToInt64(lblBillNo.Text));
....
int i = cmd.ExecuteNonQuery();
if (i > 0)
{
BindData();
LoadQuickReceipt();
ClientScript.RegisterStartupScript(this.GetType(), "Pop", "OpenFinalOrderModal();", true);
}
}
}
}
Clear();
Mylogic();
SetInitialRow();
}
else if(drpBillType.SelectedIndex.ToString() == "2")
{
foreach (GridViewRow g1 in Gridview1.Rows)
{
string ITEMNAME = (g1.FindControl("drpItemname") as DropDownList).Text;
string QTY = (g1.FindControl("txtQtty") as TextBox).Text;
string UP = (g1.FindControl("txtUnitPrice") as TextBox).Text;
string GST = (g1.FindControl("txtGst") as TextBox).Text;
string TOT = (g1.FindControl("txtTotalPrice") as TextBox).Text;
string InsertQuery = "Insert into Sales(bno,cdate,ctime,deldate,name,mobileno,address,gstno,pan,description,qtty,rate,linetotal,gst,totamt,paidamt,balamt,orderstatus,status,rem,FinancialYear) values(@bno,@cdate,@deldate,@ctime,@name,@mobileno,@address,@gstno,@pan,@description,@qtty,@rate,@linetotal,@gst,@totamt,@paidamt,@balamt,@orderstatus,@status,@rem,@FinancialYear)";
using (SqlConnection con = new SqlConnection(constring))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(InsertQuery, con))
{
cmd.Parameters.AddWithValue("@bno", Convert.ToInt64(lblBillNo.Text));
....
int i = cmd.ExecuteNonQuery();
if (i > 0)
{
BindData();
LoadOrderReceipt();
ClientScript.RegisterStartupScript(this.GetType(), "Pop", "OpenPendingOrderModal();", true);
}
}
}
}
Clear();
Mylogic();
SetInitialRow();
}
}
catch (Exception ex)
{
throw ex;
}
}
Please help!