分别在btnclick事件上生成2个报告 [英] Generate 2 Reports separately on btnclick event

查看:60
本文介绍了分别在btnclick事件上生成2个报告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我在生成报告时遇到问题.
登录参数出现问题.
我可以轻松地将1个报告打转.无法将数据输入到另一个报告中.
需要在单击事件时分别生成两个报告.

Hi,

I am facing a problem with report generation.
Problem with logon parameters.
I can gneerate 1 report easily.Unable to get data in to the other report.
Need to generate both reports separately on single click event.

Call genFunction.statistics_PaperWork(txtPWdate.Text, txtPWdate.Text)

        rptSource = "\Report\MYSQL-REPORT\DOTS2_DailyPaperWork.rpt"
        rsRptDt = sqlHelper.ExecuteDataTable(CommandType.Text, SqlStr)
        SetReport(rptSource, rsRptDt)
 Call genFunction.Employee_Process_EmpRecap(txtPWdate.Text, "", "")

 SqlStr = genFunction.Find_Time_Diff_EmpRecap(txtPWdate.Text, txtPWdate.Text, "")  
        rptSource = "\Report\MYSQL-REPORT\DOTS2-Employee_Recap.rpt"
        rsRptDt = sqlHelper.ExecuteDataTable(CommandType.Text, SqlStr)
        SetReport(rptSource, rsRptDt)

   End Sub



 
 Private Sub SetReport(ByVal strPath As String, ByVal rptDt As DataTable)
        Dim myTable As CrystalDecisions.CrystalReports.Engine.Table
        Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo

       If strPath = "\Report\MYSQL-REPORT\DOTS2_DailyPaperWork.rpt" Then
            objRpt = New ReportDocument
            objRpt.Load(Server.MapPath("~/") & strPath)
            For Each myTable In objRpt.Database.Tables
          myLogin = myTable.LogOnInfo
          myLogin.ConnectionInfo.ServerName = ConfigurationManager.AppSettings("Server")
                myLogin.ConnectionInfo.DatabaseName = ConfigurationManager.AppSettings("DataBase")
                myLogin.ConnectionInfo.Password = ConfigurationManager.AppSettings("Password")
                myLogin.ConnectionInfo.UserID = ConfigurationManager.AppSettings("UserID")
                myLogin.ConnectionInfo.IntegratedSecurity = "True"
                myTable.ApplyLogOnInfo(myLogin)
            Next
            objRpt.SetDataSource(rptDt)
            objRpt.DataDefinition.FormulaFields.Item("rptGenBy").Text = "totext(''This report is generated by DOTS2.'')"
            objRpt.DataDefinition.FormulaFields.Item("rptPrintDate").Text = "''" & "Date : " & Format(Now(), "dd/MM/yyyy") & "''"
            objRpt.DataDefinition.FormulaFields.Item("rptPrintedBy").Text = "''" & "Printed By : " & ConnectionInfo.LoggedInUser.UserID & "''"
            objRpt.DataDefinition.FormulaFields.Item("rptPrintTime").Text = "''" & "Time : " & Format(Now(), "HH:mm:ss") & "''"
            objRpt.DataDefinition.FormulaFields.Item("storeid").Text = "''" & "Store #:" & glob_Storeid & "''"
            objRpt.DataDefinition.FormulaFields.Item("reportdate").Text = "''" & "Date : " & Format(Now(), "DD/MM/YYYY") & "''"
            objRpt.DataDefinition.FormulaFields.Item("reporttime").Text = "''" & "Time : " & Format(Now(), "HH:MM:SS AM/PM") & "''"
            objRpt.DataDefinition.FormulaFields.Item("FromDate").Text = "''" & modGlobal.RetFormatDate(txtPWdate.Text, "dd/MM/yyyy") & "''"
            If strenddate <> "" Then
                objRpt.DataDefinition.FormulaFields.Item("ToDate").Text = "''" & modGlobal.RetFormatDate(txtPWdate.Text, "dd/MM/yyyy") & "''"
            Else
                objRpt.DataDefinition.FormulaFields.Item("ToDate").Text = "''" & modGlobal.RetFormatDate(txtPWdate.Text, "dd/MM/yyyy") & "''"
            End If

            If Glob_Rpt_Final = True Then

                objRpt.DataDefinition.FormulaFields.Item("rpttitle").Text = "totext(''DAILY PAPERWORK (FINAL)'')"
            Else
                objRpt.DataDefinition.FormulaFields.Item("rpttitle").Text = "totext(''DAILY(PaperWork)'')"
            End If
            crptTemplate.ReportSource = objRpt
            objRpt.PrintToPrinter(1, True, 0, 0)
        End If

        If strPath = "\Report\MYSQL-REPORT\DOTS2-Employee_Recap.rpt" Then
            objRpt1 = New ReportDocument
            objRpt1.Load(Server.MapPath("~/") & strPath)

            For Each myTable In objRpt.Database.Tables
                myLogin = myTable.LogOnInfo
                myLogin.ConnectionInfo.ServerName = ConfigurationManager.AppSettings("Server")
                myLogin.ConnectionInfo.DatabaseName = ConfigurationManager.AppSettings("DataBase")
                myLogin.ConnectionInfo.Password = ConfigurationManager.AppSettings("Password")
                myLogin.ConnectionInfo.UserID = ConfigurationManager.AppSettings("UserID")
                myLogin.ConnectionInfo.IntegratedSecurity = "True"
                myTable.ApplyLogOnInfo(myLogin)
            Next
            objRpt1.SetDataSource(rptDt)
            objRpt1.DataDefinition.FormulaFields.Item("rptGenBy").Text = "totext(''This report is generated by DOTS2.'')"
            objRpt1.DataDefinition.FormulaFields.Item("rptPrintDate").Text = "''" & "Date : " & Format(Now(), "dd/MM/yyyy") & "''"
            objRpt1.DataDefinition.FormulaFields.Item("rptPrintedBy").Text = "''" & "Printed By : " & ConnectionInfo.LoggedInUser.UserID & "''"
            objRpt1.DataDefinition.FormulaFields.Item("rptPrintTime").Text = "''" & "Time : " & Format(Now(), "HH:mm:ss") & "''"
            objRpt1.DataDefinition.FormulaFields.Item("storeid").Text = "''" & "Code: " & glob_Storeid & "''"
            objRpt1.DataDefinition.FormulaFields.Item("FromDate").Text = "''" & modGlobal.RetFormatDate(txtPWdate.Text, "dd/MM/yyyy") & "''"

            If strenddate <> "" Then
                objRpt1.DataDefinition.FormulaFields.Item("ToDate").Text = "''" & modGlobal.RetFormatDate(txtPWdate.Text, "dd/MM/yyyy") & "''"
            Else
                objRpt1.DataDefinition.FormulaFields.Item("ToDate").Text = "''" & modGlobal.RetFormatDate(txtPWdate.Text, "dd/MM/yyyy") & "''"
            End If
            If Glob_Rpt_Final = True Then
                objRpt1.DataDefinition.FormulaFields.Item("rpttitle").Text = "totext(''EMPLOYEE RECAP (FINAL)'')"
            Else
                objRpt1.DataDefinition.FormulaFields.Item("rpttitle").Text = "totext(''EMPLOYEE RECAP'')"
            End If
            crptTemplate.ReportSource = objRpt1
            objRpt1.PrintToPrinter(1, True, 0, 0)
        End If

    End Sub

推荐答案

可能您未设置登录参数.

试试:
Probably you are not setting your login parameters probably.

Try:
myCrystalReprot.SetDatabaseLogon("myUsername", "myPassword");


此外,请查看以下帮助信息:
C#Crystal Reports动态登录参数 [ Crystal Reports在加载时要求输入用户名和密码 [使用具有.NET的Crystal Reports对数据库登录错误进行故障排除 [ ^ ]


Further, see if these help:
C# Crystal Reports Dynamic Logon parameters [^]
Crystal Reports asks for Username and Password while loading[^]
Troubleshooting Database Login Errors using Crystal Reports with .NET[^]


这篇关于分别在btnclick事件上生成2个报告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆