Benutzung Quickreport
-
Muss ich bei den QDBRTexten was spezielles einstellen?
Nein
Bei dem Detailband?
Nein
Oder spziellen Code?
void __fastcall TForm1::QuickRep1NeedData(TObject *Sender, bool &MoreData) { mySQLQuery1->Next(); MoreData=!mySQLQuery1->Eof; }
-
bei mir funktioert der QReport mit Query wie folgt:
- QuickReport auf Form
- darauf 2 Bands (BandType: rbColumnHeader, rbDetail)
- auf das "Spaltentitel"-Band die QRLabels
- auf das Detail-Band die QRDBTexts
- die QRDBText müssen mit einem DataSet und einem DataField verbunden werden:
-> DataSet ist das Query
-> DataField ist das Feld welches angezeigt werden soll z.B. Namesoweit zu den Einstellungen des Quickreport
beim Query die Abfrage erstellen und dann mit Open() starten, danach den Preview des Qucikreport
Query->Close(); Query->SQL->Clear(); Query->SQL->Add("select * from tabelle"); Query->Open(); FormX->QuickRep->Preview();OnNeedData hab ich nicht verwendet/nicht gebraucht
-
Ich hab mal das mit Table gemacht...müsste ja auch gehen!
Table1->next(); MoreData =! Table1->Eof;er zeigt mir aber trotzdem immer nur einen Datensatz an!
Wenn ich beende und wieder neu zeigt er mir dann einen anderen an....aber nie alle!
Warum denn nur nicht?Bin echt am verzweifeln!
-
@Linnea: naja aber bei DataField kann ich ja nix eingeben wenn ich ein Query habe...und den select zur laufzeit erstelle!
Da kommt ja "Keine SQL Anweisung"!oder hab ich was verpasst?
-
Kamill schrieb:
oder hab ich was verpasst?
Ja.
-
du MUSST bei DataField was eingeben und wenn nicht zur Entwurfszeit, dann zur Laufzeit
QRDBText1->DataField = "Name";
-
Wow!
@Linnea
Also ich hab jetzt mal bei DataField ein Feld meiner Datenbank eingegben, und es geht wirklich

Aber bei jedem Buchstabe den ich eingegebn hab kam immer "Keine SQL Anweisung verfügbar...kann ich das irgendwie umgehen?
@All: langsam sehen wir licht im tunnel!

-
Hallo
natuerlich kannst du das
einfach deinem Query ein SQL-Statement mitgeben
(SELECT * .....)
MfG
Klaus
-
Ja danke leute das funktioniert jetzt!
Jetzt hab ich ein neues problem...ich schreibs einfach mal,wenn ihr meinung seit neuer thread...mach ich einen auf!
Also ich meiner Datenbank eine neue Tabelle hinzugefügt...!
Und wenn ich nun mein Programm starte, kommt Exception, das das Feld "Masterrechte" nicht indiziert ist!
Es ist aber indiziert! (masterrechte ist in einer tabelle die es schon länger gibt!Und die form wo der Fehler verursacht wird hat auch garnix mit der neuen Tabelle zu tun...kann ich da jetzt irgendwas retten oder muss ich neue DB machen?
-
Hallo
schau doch mal mit dem Debuffer
Was/Wer/Wie/Wo der Fehler liegt
Wenn du nicht weiterkommst zeig uns den Codeabschnitt
MfG
Klaus
-
ok werd das morgen auf arbeit gleich machen!
Btw...erstmal schauen wir der debugger so funktioniert...hab den noch nie benutzt!
-
Also Fehler tritt hier auf:
void __fastcall TForm1::Edit1Exit(TObject *Sender) { Form3->Database1->Open(); Form3->Table1->Open(); Form3->Table1->SetKey(); Form3->Table1->Fields->Fields[0]->AsString = Edit1->Text; if (!Form3->Table1->GotoKey()) { } else { } }Fehler is DataBaseError: Feld Masterrechte ist nicht indiziert und kann nicht verändert werden!
Komisch is nur,das bei dem Edit Exit garnix mit Masterrechte gemacht wird!
Sondern nur der Key auf den eingegeben Benutzername gesetzt wird!
Tabelle besteht aus LName,Passwort,Rechte und Masterrechte!
-
Achso, genau bei:
if (!Form3->Table1->GotoKey())Ich hab auch mal ein Backup der Datenbank eingespielt...da tritt fehler nich auf...also liegt definitiv am Programm!
-
Boach was schreib ich für Mist:
[quote="Kamill"]Achso, genau bei:
Ich hab auch mal ein Backup der Datenbank eingespielt...da tritt fehler nich auf...also liegt definitiv am Programm!
Damit mein ich,das der Fehler vorher bei dem Backup nicht auftrat...aber jetzt auch da auftritt...also liegt es nicht an Datenbank!
-
Man kann sich das Leben natürlich auch selbst schwer machen.
Ich würde Dir empfehlen, Linneas Beiträge noch mal sehr aufmerksam durchzulesen.Mit welcher DB arbeitest Du?
Edit: Das nur ein Datensatz ausgeben wird, liegt im Regelfall daran, dass im QR die Eigenschaft DataSet nicht gesetzt ist.
-
Hmm....Linneas Beiträge beziehen sich doch auf Quickreport...und nichtmehr auf den Fehler oder?
Wenn du weißt woran es liegt...sag es mir bitte!!!Ich benutze Access!
-
Dann liegt es wohl an TTable selbst... Wahrscheinlich gibt es hier ein 'Interpretatinsproblem' zwischen der BDE und der JET-Engine. Versuch es mal mit TQuery.
-
Kann grad nix ausprobieren...aber kann ich mit Query genau wie mit Table den Key so setzten?
Oder gibt es da überhaupt eine elegantere möglichkeit?
Ich benutze den Key ja nur dafür...das der Benutzer der sich einloggt...im Programm sien Passwort ändern kann...und das alte schon automatisch drin steht...hoffe ihr versteht das!Wenns einfacher geht wäre mir das natürlich auch recht!