Hej, har precis gett mig på Crystal report och det verkar funka fint. Mitt problem är att jag vill inte hårdkoda sökvägen till datakällan. Vill att datakällan ALLTID skall ligga i en undermapp till applikationen. När användaren installerar kan han ju välja vilken mapp programmet skall installeras. I mitt setup projekt ligger databasen med som en undermapp till appen. Finns väl olika sätt antar jag. Ett är väl att skicka med sökvägen via exempelvis en textfil som läggs i undermappen och sedan läser du av sökvägen kodmässigt med streamreader eller liknande. Då behöver du ju bara ändra i textfilen om datakällan ändras. Problemet är igentligen att när jag skapar en rapport anger jag i "wizarden" själva datakällan som rapporten skall bygga på. Det är här jag vill ha själva dynamiken. Typ en relativ sökväg till datakällan utifrån appen. Det borde gå att ange en ny datakälla i runtime på något sätt. Har testat med att ändra datasource men det funkade inte. Det grundläggande problemet är att jag helt enkelt inte kan crystal report så jag måste använda mig av wizarden. HejsanDynamisk sökväg till databas i crystal report
Sv: Dynamisk sökväg till databas i crystal report
Sv:Dynamisk sökväg till databas i crystal report
Sv: Dynamisk sökväg till databas i crystal report
Tror detta kan hjälpa dig en bit på vägen. Här sätts databasen dynamisk till en Crystalrapport i C#.
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using CrystalDecisions.Windows.Forms;
IIdentity wi = WindowsIdentity.GetCurrent();
ReportDocument oRpt=null;
oRpt = new ReportDocument();
oRpt.Load(sReportSource);
ConnectionInfo crConnectionInfo= new ConnectionInfo();
TableLogOnInfo crTableLogOnInfo;
Database crDatabase=null;
Tables crTables=null;
crConnectionInfo.ServerName = "Servernamn";
crConnectionInfo.DatabaseName = "Databsnamn";
crConnectionInfo.UserID = "Username";
crConnectionInfo.Password = "password";
crDatabase = oRpt.Database;
crTables = crDatabase.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables)
{
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
}
crystalReportViewer1.ReportSource = oRpt;