Print Page | Close Window

change logon info at running time(ms access)

Printed From: Crystal Reports Book
Category: Crystal Reports for Visual Studio 2005 and Newer
Forum Name: Writing Code
Forum Discription: .NET programming API, report integration
URL: http://www.crystalreportsbook.com/forum/forum_posts.asp?TID=253
Printed Date: 05 May 2024 at 1:34am


Topic: change logon info at running time(ms access)
Posted By: HSoft
Subject: change logon info at running time(ms access)
Date Posted: 27 Feb 2007 at 9:12pm
hi there,
I'd like to ask the solution for my problem.
I made a new project using ms access 2003,crystal report 9, and visual studio 2005.

I just made a simple access dbase with 1 table(Table 1) and protected with password, o I forgot this table has 2 field(id and desc).
After that I made simple report that using DAO connectivity(save data with report option is disabled).

At last I made simple program(windows app) using visual studio 2005.
I put the CrystalReportViewer component, and these is the code :


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace prj
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void crystalReportViewer1_Load(object sender, EventArgs e)
        {
           
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            crystalReportViewer1.ReportSource = System.Environment.CurrentDirectory + "\\Report1.rpt";
            crystalReportViewer1.LogOnInfo[0].ConnectionInfo.UserID = "Admin";
            crystalReportViewer1.LogOnInfo[0].ConnectionInfo.Password = "12";
            crystalReportViewer1.LogOnInfo[0].ConnectionInfo.DatabaseName = System.Environment.CurrentDirectory + "\\db.mdb";
            crystalReportViewer1.LogOnInfo[0].ConnectionInfo.ServerName = System.Environment.CurrentDirectory + "\\db.mdb";
        }
    }
}


and the problem is  when I move the access database file to other location, the viewer shows a box to be confirmed by my UserID and password,
my question is how must I write in the program so that the box doesnt come out.

thanks




Replies:
Posted By: HSoft
Date Posted: 04 Mar 2007 at 6:24pm
could anyone help please ?


Posted By: BrianBischof
Date Posted: 05 Mar 2007 at 1:43am
Hey - sorry I can't chime in yet. I've been buried in the XI book and haven't had time to debug your code for 2005. If I was using 2003, I would first instantiate a new LogonInfo object, assign its properties as you did (but skip DatabaseName b/c its already in the ServerName property) and then add the object to the viewer's LogonInfo class. After that I would assign the report to the ReportSource property. But again, I haven't had time to do it in 2005 yet to see if this is still a recommended way or not. 

-------------
Please support the forum! Tell others by linking to it on your blog or website:<a href="http://www.crystalreportsbook.com/forum/">Crystal Reports Forum</a>


Posted By: HSoft
Date Posted: 05 Mar 2007 at 6:15pm
ok, thanks to your effort for helping me bro

I'll try first


Posted By: HSoft
Date Posted: 05 Mar 2007 at 7:10pm
Originally posted by BrianBischof

Hey - sorry I can't chime in yet. I've been buried in the XI book and haven't had time to debug your code for 2005. If I was using 2003, I would first instantiate a new LogonInfo object, assign its properties as you did (but skip DatabaseName b/c its already in the ServerName property) and then add the object to the viewer's LogonInfo class. After that I would assign the report to the ReportSource property. But again, I haven't had time to do it in 2005 yet to see if this is still a recommended way or not. 


I've change the code into this :


        private void Form1_Load(object sender, EventArgs e)
        {

ConnectionInfo crConnectionInfo = new ConnectionInfo();
crConnectionInfo.UserID = "Admin";
crConnectionInfo.Password = "12";
            crystalReportViewer1.ReportSource = System.Environment.CurrentDirectory + "\\Report1.rpt";
            crystalReportViewer1.LogOnInfo[0].ConnectionInfo = crConnectionInfo;
           
        }

but the error still there.

FYI , once again, I change the database file location,
so the location when I made the report and when I tried to run the program is different, so I change the server/database name property.



Posted By: BrianBischof
Date Posted: 05 Mar 2007 at 7:45pm
Check out this post. He is coding it the way I recommend in my book. See if you can apply this to your report. As another idea, create a simple database with no security. Then get the code to work with ONLY changing the database location. If you get that working, then turn on user security. That way you aren't potentially trying to fix two bugs at once without realizing it. Just focus on getting location to work using this code and then add on.

http://www.crystalreportsbook.com/forum/forum_posts.asp?TID=275 - http://www.crystalreportsbook.com/forum/forum_posts.asp?TID=275


-------------
Please support the forum! Tell others by linking to it on your blog or website:<a href="http://www.crystalreportsbook.com/forum/">Crystal Reports Forum</a>


Posted By: HSoft
Date Posted: 05 Mar 2007 at 11:52pm
thanks bro, solved with this

        private void Form1_Load(object sender, EventArgs e)
        {
            ReportDocument crReport = new ReportDocument();
            string sTemplatePath = System.Environment.CurrentDirectory + "\\Report1.rpt";
            crReport.Load(sTemplatePath);
            TableLogOnInfo crTableLogOnInfo = new TableLogOnInfo();
            ConnectionInfo tConnInfo = new ConnectionInfo();
            tConnInfo.DatabaseName = System.Environment.CurrentDirectory + "\\db.mdb";
            tConnInfo.Password = "12";
            foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crReport.Database.Tables)
            {
                crTableLogOnInfo = crTable.LogOnInfo;
                crTableLogOnInfo.ConnectionInfo = tConnInfo;
                crTable.ApplyLogOnInfo(crTableLogOnInfo);
            }

            crystalReportViewer1.ReportSource = crReport;
        }


I'll try in my another project, thanks again



Print Page | Close Window