Thursday, 17 January 2013

Generatring A Report Based on Employee Name.





step1:Create a new  Crystal Report --Go To Vistual Studio - File-New- Website-Name-CrystalReport1.rpt
After that we design like this.

Step2: Creating A new Web Page  -- Go To Vistual Studio - File-New- Website-Name-Employee.aspx

step3:Write The Below Code in employee.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="EmployeeTimesheetEmpRpt.aspx.cs" Inherits="EmployeeTimesheetEmpRpt" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">

<table widht="100%">
     
        <tr>
            <td colspan="2">
                <table align="center" style="width: 100%">
                    <tr>
                        <td>
                            <asp:Label ID="lblEmployee" Text="Employee" runat="server"></asp:Label>
                        </td>
                        <td>
                            <asp:DropDownList ID="ddlEmployee" runat="server" Width="150px">
                            </asp:DropDownList>
                            <asp:RequiredFieldValidator ID="RfvEmployee" runat="server" ControlToValidate="ddlEmployee"
                                CssClass="failureNotification" InitialValue="-1" ErrorMessage="Please Select Employee"
                                ToolTip="employee is required" ValidationGroup="Timesheet">Please Select Employee</asp:RequiredFieldValidator>
                        </td>
                    </tr>
                 
                    <tr>
                        <td class="style1" colspan="2" align="left">
                            <asp:Button ID="btnView" runat="server" Text="View All Employees" ValidationGroup="Timesheet" onclick="btnView_Click"
                                 />
                     
                        </td>

                        <td class="style1" colspan="2" align="center">
                            &nbsp;</td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>


</asp:Content>


step4:Write the code in employee.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using HRMcore;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

public partial class EmployeeTimesheetEmpRpt : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            BindEmployees();
    }
    protected void btnView_Click(object sender, EventArgs e)
    {
        try
        {
            int empId = Convert.ToInt32(ddlEmployee.SelectedValue);

            DataTable dt = null;
            dt = EmployeeTimeSheetDataAccess.GetTimeSheetReportByEmp(empId);
            if (dt != null && dt.Rows.Count > 0)
            {
               
                ReportDocument cryRpt = new ReportDocument();
                cryRpt.Load(Server.MapPath("~/rptEmployeeWise.rpt"));
                cryRpt.SetDataSource(dt);
                // ReportViewer.ReportSource = cryRpt;
                cryRpt.ExportToHttpResponse(ExportFormatType.Excel, Response, true, "EmployeeTimeSheet");
            }
            Session["Timesheet"] = dt;
        }
        catch (Exception ex)
        {
            AppLog.Error(ex);
        }
    }
    public void BindEmployees()
    {

        DataTable dt = new DataTable();
        dt = EmployeeDataAccess.GetAllEmployee();
        ddlEmployee.DataSource = dt;
        ddlEmployee.DataTextField = "Name";
        ddlEmployee.DataValueField = "id";
        ddlEmployee.DataBind();
        ListItem item = new ListItem("--Select Employee---","-1");
        ddlEmployee.Items.Insert(0, item);
    }

}







No comments:

Post a Comment