bad database structure

Hallo,

List and label gefällt mir sehr, aber ich kann es trotzdem nicht benutzen. Seit Tagen spiele ich damit herum, wie man ein lst Datei in ein Previewcontrol laden kann. Dazu habe ich herausgefunden, dass ich dazu zuerst eine ll-Datei erstellen kann. Aber wie? Es steht nirgendwo (oder vielleicht, aber wohl versteckt und nicht ganz klar). Aber ich bin auf dem Halbweg.

In meinem Projekt werden Listen benötigt, welche nur variablen enthalten und Liste, welche Felder und auch Variablen enthalten.

Es gibt fast überall ein Print icon und ich möchte, wenn der User drauf klickt, kommt das Vorschaufenster auf.

Meine Fragen:

  1. Wie kann ich eine lst-Datei in ein Preview control laden?
  2. Wie erstelle ich eine ll-Datei?
  3. Verfügt list and label über ein eigenes preview Fenster? Das heisst, wenn ich Print aufrufe, kommt ein preview Fenster auf, wenn ich es so angebe?

Ich habe mit diesem Code versucht, die lst-Datei als Vorschau anzeigen lassen:

'set dummy datasource
Dim lst As New List(Of String)
lst.Add(1)
ll.DataSource = lst

    'export option for silent "preview-file-print"
    ll.ExportOptions.Clear()
    ll.Core.LlSetOptionString(LlOptionString.PreviewFileName, Application.StartupPath & "\jelentések\fokprotokoll.ll")

    'silent "preview-file-print"
    ll.Print(LlProject.List, Application.StartupPath & "\jelentések\fokprotokoll.lst", False, LlPrintMode.PreviewControl, LlBoxType.None, "", False, "")

Aber ich bekomme die Fehlermeldung: bad database structure, The database structure that was used for the design does not match the database structure at print time.

Ich habe doch gar keine Datenbankstruktur benutzt, als ich meinen ersten Bericht (ein Protokoll) erstellt habe. Was bedeutet das?

List and label ist ein starkes Reportingsystem, ist gut dokumentiert, aber es fehlen die einfachen How-To-s, die Grundbausteine. Die Programmierreferenz ist auch ein typisches Referenzbuch.

Was ich gar nicht verstehe, warum muss man vor dem Ausdrucken zu einem “leeren” Bericht unbedingt ein datasource hinzugefügt werden. Die variablen Felder kommen aus dem Hauptprogramm und ich möchte sie per code dem Bericht übergeben.

Hoffentlich hilft mir jemand.

Hallo,

inzwischen schreite ich mit dem Kennenlernen von List and label gut voran. Aber ich habe noch immer dieses Problem: bad database structure.

Ich finde es seltsam, dass der Design Mode nicht separat zur Verfügung steht. Stellen wir mal die Situation vor: ich bin der Programmierer und der User sagt, ich könnte die Breite eines Textboxes auf einem Bericht breiter stellen. Was muss ich dann tun? Ich muss im Quellcode des Programms die Methode Design aufrufen, und die gewünschte Änderung vornehmen. Anstatt dessen könnte man ein Designer, als ein separates Programm,verwenden.

Dazu habe ich ein Programm begastelt, wo ich meine Berichte verwalten kann. Und das obige Problem tritt hier auf. Ich habe schon meinen ersten Bericht erstellt, habe einige Variablen hinzugefügt, und integrierte es in mein Programm. Es funktioniert auch gut.

Und jetzt möchte ich meinen zweiten Bericht erstellen. Ich rufe Design auf, gebe den Namen ein, platziere ein Textbox und speichere. Und jetzt möchte ich diesen Bericht in mein Previewcontrol laden und zwar so:

Form1.ll.DataSource = New combit.ListLabel15.DataProviders.ObjectDataProvider(kamuadatforras) Form1.ll.AutoDesignerFile = Application.StartupPath & "\jelentések\fokonyv.lst" Form1.Text = Form1.ll.AutoDesignerFile Form1.ll.AutoDestination = LlPrintMode.PreviewControl Form1.ll.PreviewControl = Form1.llviewer Form1.ll.Print(LlProject.List, Form1.ll.AutoDesignerFile, False, LlPrintMode.PreviewControl, LlBoxType.None, "", False, "")

kamuadatforras ist eine leere Klasse.

Und beim Printen bekomme ich die Fehlermeldung: bad database structure, usw. Und ich verstehe nicht, wieso es beim ersten Bericht funktioniert.

ok, jetzt funktioniert es. Das Problem war, dass ich vor dem Aufruf von Design keine datasource gesetzt habe, und meinen 2. Bericht so erstellt habe.

ps: gibt es hier kein Option im Forum, wie z. B. Topic erledigt?