ich hoffe, ich fange nicht an zu nerven. nur, mit diesen infos kommt vielleicht jemandem eine idee. hab auf businessobjects nachgeschaut, dort folgende aussage gefunden:
Zitat
It is not possible to report of a secured Access
database using a native connection. See knowledge
base article C2010460 for more information.
hab ich also den besagten artikel angeschaut, dort das gefunden:
Zitat
As a workaround, convert the native connection to an ODBC or OLE DB connection which supports Access session security
? heisst das, ich soll crystal direkt eine OleDbConnection mitgeben? das wäre ja eigentlich die einfachste Lösung, nur komm ich nicht drauf, wie das gehen soll X(
Die einzige Möglichkeit, die ich noch sehe, ist, den Passwortschutz meiner DB zu entfernen. Aber dann stehen meine ganzen Daten völlig ungeschützt rum, nur wegen CR...
Es ist mir gelungen, die Attribute Datenbank, User und Passwort zu setzen. Für meine Access Datenbank (.mdb) habe ich eine System Database (.mdw) erstellt. Wenn ich die oben genannten Attribute setze und den Report zu erstellen versuche, kommt die Meldung, die System Database wurde nicht gefunden.
Kann ich den Ort diese System Database auch irgendwie angeben? Oder gibt es in Access die Möglichkeit, diese .mdw Datei direkt einzubinden, so dass Access automatisch diese Datei verwendet?
Ich komm wirklich nicht mehr weiter, bin für jeden noch so kleinen Tipp dankbar
mittlerweile bin ich soweit, dass ich für alle tabellen (Mainreport und Subreports) die richtigen Logon Informationen gesetzt habe. Beim exportieren des Reports bekomme ich aber immer noch die Exception, dass die Datenbank (diejenige, die vor dem Verändern der Informationen eingestellt war) nicht gefunden wurde. Natürlich, die gibts ja dort nicht.
Nun frage ich mich, wo ich die neuen Verbindungsinformationen sonst noch setzen muss (kann?). Hat da jemand Erfahrung damit?
Ich hab auch schon versucht, zusätzlich zu den einzelnen Tabellen noch die setDatabaseLogon Methode des Reports selbst aufzurufen, hat auch nichts gebracht.
Wenn irgendjemand schon mal ein ähnliches Problem hatte oder auch nur ansatzweise weiss, in welche Richtung ich suchen muss, wäre ich sehr dankbar!
ist es möglich dass ich tatsächlich für jeden subreport und für JEDE EINZELNE TABELLE in der Datenbank, die angesprochen wird, die Verbindungsinformationen manuell setzen muss?
Denn wenn ich report.setDatabaseLogon aufrufe, hat das keinerlei Auswirkungen auf die Verbindungsinfo der Tabellen --> Exception DB nicht gefunden
Wahrscheinlich ist der Weg über das DataSet wirklich die geschicktere Variante, dann kann man das DS auch ausserhalb Crystal erstellen und dann übergeben...
Leider ist die Zeit sehr knapp, ich muss schnellstens fertig werden, deshalb liegt eine solche Umstellung nicht mehr drin. Aber bei meinem nächsten Projekt dann!
danke erstmals. Das Problem ist, dass ich keine Möglichkeit finde, dem Report einen ConnectionString zu übergeben. Es gibt die Methode setDatabaseLogon(), dort kann man aber nur alle Attribute (Datenbank, Benutzer, Passwort) einzeln angeben.
Aber das mit dem Pfad werde ich machen.
Dann muss ich mir diese Angaben wohl aus meinem ConnectionString zusammenschnipseln...
In meiner Applikation kann der Benutzer Reports erstellen lassen (Crystal Reports).
Die Datenbankverbindung habe ich direkt im Report angegeben. Gibt es eine Möglichkeit, diese Verbindung dynamisch zu gestalten?
Wenn das Programm ausgeliefert wird, ändert sich ja die URL der Datenbank (Access).
Ich habe gesehen, dass es die setDataSource() Methode gibt. Die funktioniert aber scheinbar nur mit DataSets.
Ich versuche gerade, mir ein Setup für mein Programm zu erstellen. Eigentlich wollte ich InnoSetup verwenden. Doch leider unterstützt dieses keine .msm files, also schlag ich mich jetzt mit dem Setup-Erstellungs-Ding von VS 2005 rum.
In meiner Applikation werden auch Crystal Reports verwendet, die nötigen .msm files habe ich alle brav in mein Setup Projekt hinzugefügt.
Nach dem Build habe ich das Setup File auf einem anderen Rechner auszuführen versucht. Folgende Meldung erscheint:
Zitat
Unable to locate application file "Setup1.msi"
Google findet zwar ein paar Foreneinträge, nirgendwo wird aber beschrieben woran das liegt beschreibe denn wie dieser Fehler behoben werden kann.
Ich muss dieses Setup wirklich möglichst schnell haben, bin für jeden Tip dankbar, auch, ich welche Richtung ich vielleicht suchen könnte etc.
E: was mir gerade noch aufgefallen ist: das setup file ist nur 400 kb gross. das kann nicht wirklich sein...
das Problem ist gelöst. Es lag nicht an der Syntax, wie ich vermutete, sondern an der Logik. Ich habe versucht mit NULL Werten auf einen Fremdschlüssel zu Joinen, was verständlicherweise nicht ging...
Ich weiss, dass Crystal Fragen hier oft unbeantwortet bleiben, trotzdem versuche ich es hier, da es eigentlich um das VS 2005 geht.
Ich erstelle mir aus dem VS2005 einen Report, Datenquelle ist eine Access Datenbank. Im Database-Expert kann man ja für jeden Link zwischen zwei Tabellen die Join-Art auswählen. Normalerweise ist das bei mir INNER JOIN, in einem bestimmten Fall brauche ich aber RIGHT. Wenn ich das einstelle und den Report ausführe, bekomme ich folgende Fehlermeldung:
Zitat
Verknüpfungsausdruck nicht unterstützt
Ich habe herausgefunden, dass in Access die Syntax so lautet:
RIGHT(...)
VS erstellt mir aber:
RIGHT OUTER(...)
, was oben gezeigten Fehler auslöst.
Kennt da vielleicht jemand eine Lösung? Gibt es dafür eine Einstellung?
hmm, langsame beginne ich zu verstehen. vielen dank für diese lektion in sauberem design! werde ich sicher umsetzen (versuchen) in einem nächsten projekt.
danke erstmals. werde mich erstmals über Factory-Methoden schlaumachen, bevor ich hier weiterfrage.
wenn ich dich aber richtig verstehe, habe ich am schluss noch ein command-objekt, das ich immer wieder verwende. nur, wie macht man das dann z.B. bei einem DataAdapter? der braucht ja u.U. vier commands (select,insert,update,delete). und mein command kann ja nicht gleichzeitig mehrere befehle enthalten.
ich hatte schon ähnliche probleme, und bin bei diesem thread sofort neugierig geworden
was meinst du mit?
Zitat
Die Alternative ist natürlich, alles als Parameter durchzureichen (bzw. einem Property zuzuweisen) und irgendwo innerhalb von Objekten die Referenz abzulegen.
heisst das, dass die klasse, die "zuoberst" im klassenmodell steht, die connection erstellt und dann nach "unten" durchgibt? dass also jede klasse, die ein objekt einer anderen klasse erstellt, dieser neuen klasse die connection übergibt?
es interessiert mich allgemein, ich habe nicht jetzt dieses problem.
SELECT t.TeilnehmerNr, t.Anrede, t.Name, t.Vorname, t.PersonalNr, e.Bezeichnung Endgerät, a1.Bezeichnung Abteilung_1, a2.Bezeichnung Abteilung_2, t.E_Mail
FROM Teilnehmer t inner join Endgeraet e on t.egId = e.egId
inner join Abteilung1 a1 on t.abt1Id = a1.abt1Id
inner join Abteilung2 a2 on t.abt2Id = a2.abt2Id
ich hab das nun mal "von hand" geschrieben, gut möglich, dass noch schreibfehler drin sind.
ev. musst du um die einzelnen joins noch klammern machen, bin ich mir nicht sicher
Ist es vielleicht irgendwie möglich, dass Texte aus der Datenbank in enem DataGridView formatiert dargestellt werden? Im Moment zeit es mir für einen Zeilenumbruch z.B. ein Sonderzeichen an.
Das einzige Property, das in die Richtung geht und ich gefunden habe, ist "WordWrap", doch das bezieht sich nur darauf, ob Texte, die zu lang für die Spalten sind, in mehere Zeilen unterteilt werden.
ich hab das gleiche Problem wie damals dschmoegner: mit dem Designer hab ich ein Icon einem Form zugewiesen. Im Properties-Window wird mir das Icon auch korrekt angezeigt, wenn ich das Programm aber nacher ausführe, erscheint anstatt des Icons nur eine kleine graue Fläche (ich nehme an, das Standardicon).
Einen festen Pfad eingeben möchte ich eigentlich nicht. Weiss jemand wie das geht?
Wenn ich im VS eine neue Connection erstelle, kann ich auswählen, ob sensitive Daten (z.B. Passwort) im ConnectionString gespeichert werden sollen. Wenn ich den ConnectionString im app.config speichere, kann ja jeder darauf zugreifen...
Das erscheint mir etwas unsicher.
Wie macht ihr das, dass das Datenbankpasswort sicher gespeichert ist? Im Quellcode?
erstmal danke für die schnelle antwort.
so in der art hätte ich mir das auch gedacht, aber werden dann die Daten im DataSet nicht zweimal lokal gespeichert?
Datenklasse:
dataSet = new DataSet(); //1. mal gespeichert
//dataSet füllen
public DataSet getDataSet()
{
return this.dataSet;
}
Formklasse
Datenklasse dk = new Datenklasse();
DataSet dataSet = Datenklasse.getDataSet(); //2. mal gespeichert
}
Ich hab ein ziemlich lästiges Problem: Ich habe im in VS2005 integrierten Crystal Reports ein Chart (Balkendiagramm erstellt). Es funktioniert auch wunderbar, nur zeigt es mir in der Legende blöde Namen an z.B: "Sum of @F_CountPeriode1".
Wie kann ich das ändern, dass er statt dessen nun nur "Periode 1" anzeigt? Im Crystal Handbuch ist von "Beschriftungsaliasing" die Rede, das man in der Vorschau für den Bericht vornehmen könne.
Dieses Handbuch bezieht sich aber auf die Originalversion, und im VS2005 kann man in der Vorschau keine Felder bearbeiten.
Hat vielleich jemand eine Idee, wie ich die Legendenbeschriftungen ändern kann?