Seite 1 von 2

Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Do, 06. Sep 2018 12:51
von Werner_Bayern
Servus,

bin jetzt von Frax auf LL 22 umgestiegen und nutze dazu ausschließlich die tolle Klasse von Marcus, die ja auch von Combit mitgeliefert wird.

Wozu ich aber kein Beispiel von Combit und hier im Forum nichts finde, steht in der Überschrift. Wie bringe ich den Designer dazu, mir zwischen die 2 Tabellen ein Textfeld einzufügen?
test.PNG
test.PNG (99.52 KiB) 15178 mal betrachtet

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Do, 06. Sep 2018 17:21
von Werner_Bayern
Hab einen möglichen Ansatz gefunden: 2. Kopfzeile für die 2. Tabelle und Bedingung nur 1. Seite...

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Fr, 07. Sep 2018 0:45
von Werner_Bayern
Jetzt hab ich noch das Problem, dass der Text nicht angezeigt wird, wenn die entsprechende Tabelle keine Einträge hat...

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Fr, 07. Sep 2018 8:19
von Muecke
Hallo Werner

Unter Tabelleninhalt-> Datenzeile
hat es rechts unterhalb Layout
Darstellungsbedingungen zum auswählen

Probiere da mal

Gruss
Thomas

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Fr, 07. Sep 2018 11:11
von ramses
Hallo Werner

hat die Klasse bei dir auf Amhieb funktioniert? Resp. Woher hast du die fehlende uuid.lib genommen.
Ich wolle mir diese auch mal ansehen. Habe dann bei der fehlenden LIB und DLL nicht mehr weitergesucht.

Gruss Carlo

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Fr, 07. Sep 2018 11:53
von Werner_Bayern
Servus Thomas,

da hab ich nur das:
test.PNG
test.PNG (5.92 KiB) 15098 mal betrachtet
Hab mir jetzt so geholfen:

Code: Alles auswählen

         if lastrec() == 0
            add_rec()
         endif
Damit kann ich leben, es erscheint jetzt alles so, wie es soll.

Danke.

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Fr, 07. Sep 2018 12:06
von Werner_Bayern
Servus Carlo,

na ja, nicht ganz auf Anhieb. Marcus hat mir geholfen, zu LL 22 werden falsche DLLs ausgeliefert, er hat sie mir geschickt, bzw. kannst die aktuelle Version von seiner HP downloaden.

Wennst Fragen hast, ich könnte schon fast ein Buch schreiben: Umstieg von Frax auf LL... :)

Die UUID.lib hab ich auf meiner Festplatte gefunden, z. B. unter Alaska/crcclass, oder auch auf c:\programme (x86) - Visual Studio und diverse andere Programme :wink:

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Fr, 07. Sep 2018 12:39
von ramses
Hallo Werner

ich verwende LL schon seit vielen Jahren. Ich wollte mir nur einmal die erwähnte Klasse anschauen.
Nach Durchsicht des Source-Codes habe ich gesehen dass diese etwa das gleiche macht wie ich es in meinem Code auch mache.
Mein Code ist einfach speziell nur auf die eigenen Bedürfnisse zugeschnitten......

Damit ist die Sache erledigt.

Danke für den Tip mit der UUID.LIB. Auf einem anderen Rechner habe ich Sie dann noch gefunden.

Gruss Carlo

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Fr, 07. Sep 2018 13:00
von Koverhage
Werner,
ich könnte schon fast ein Buch schreiben: Umstieg von Frax auf LL... :)
Ein Vortrag auf dem Treffen in Münster würde reichen (mir zumindest) aber leider
sind die Plätze ja alle schon belegt.

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Fr, 07. Sep 2018 15:11
von Werner_Bayern
Servus Klaus,

es gab dazu ja schon 2 Vorträge auf den Konferenzen. Schau Dir die Filme an. Ansonsten nimm die Klasse von Marcus, da läuft es fast gleich wie mit Frax, nur im Designer sind dann einige Unterschiede, da muss man sich aber eh einarbeiten. Vom Quellcode her ist nicht viel Unterschied:

Code: Alles auswählen

oListLabel := dsListLabel():New( oFenster)
if oListLabel:Status() == XBP_STAT_FAILURE
   confirmbox(, "List & Label konnte nicht geladen werden: " + var2char(oListLabel:Getlasterror()), "List & Label", XBPMB_OK, XBPMB_CRITICAL)
   oListLabel := NIL
   return .f.
endif
LlPreviewSetTempPath( oListLabel:hJob, temppfad())
oListLabel:Report := "Inventur_Lagerbestand.lst"
oListLabel:AddTable("Bestellungen", "Bestellungen")
oListLabel:DataSetField(select("bestellungen"), "Bestellungen")

oListLabel:AddTable("Rechnungen", "Rechnungen")
oListLabel:DataSetField(select("rechnungen"), "Rechnungen")
oListLabel:DefineVariable("Gesuchter_Artikel", cArtikelWE)
oListLabel:DefineVariable("Ergebnis", cEndText)

// Preview Starten
oListLabel:SetPreview := .t.

if oSystem.ReportDesigner
   oListLabel:Design()
else
   nError := oListLabel:Print()
   if .not. nError == 0
      confirmbox(, oListLabel:GetLastMessage() + CRLF + "Fehler: " + var2char(oListLabel:GetLastError()), "List & Label", XBPMB_OK, XBPMB_CRITICAL)
   endif
endif
oListLabel:close()
Was ich bisher schmerzlich vermisse, bzw. noch nicht weiß, wie es funktioniert:
  • Arrays im Report als Datenquelle
  • Geschwindigkeit - da ist Frax um WELTEN schneller (Version 23 soll lt. Combit performanter sein?). Der Tipp in der Hilfe, einen Report beim Programmstart zu öffnen, bringt bei mir keinen messbaren Vorteil. Die Druckvorschau im Designer ist elendig langsam.
  • Zugriff auf eigene Funktionen aus dem Report heraus
  • Dialoge aus dem Report heraus (z. B. Eingabe eines Wertes, der dann im Report mit ausgegeben wird, oder auf den zugegriffen werden kann)

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Fr, 07. Sep 2018 19:35
von ramses
Hallo Werner

Arraywerte, Daten aus Array's kannst du mit der Funktion LlDefineFieldExt() übergeben. Ich kann dir nur empfehlen dich zuerst direkt mit den LL??? Funktionen zu beschäftigen, so siehst du was grundsätzlich nötig und möglich ist und wie LL arbeitet. Und dir dann deine eigene Klasse oder Funktionen zusammenszustellen.

Einen "Blinden Job" beim Programmstart zu öffnen ist sehr wichtig. Vorallem wenn du mit Threads arbeitest.

Zugriffe aus dem Report auf eigene Funktionen oder Dialoge aus dem Report hinaus sind meiner Meinung nach nicht möglich. Selbst benötige ich beides nicht da ich direkt mit den LL Funktionen Arbeite (ohne die erwähnte Schnittstellen-Klasse) so stehen mir immer alle Funktionen zur Verfügung. LL benutze ich in Diensten da sind Dialoge eh nicht möglich.

Gruss Carlo

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Sa, 08. Sep 2018 9:03
von AUGE_OHR
****************************08:24 08.09.2018
Werner_Bayern hat geschrieben: Fr, 07. Sep 2018 15:11
  • Zugriff auf eigene Funktionen aus dem Report heraus
Xbase++ Code "verstehen" andere Sprachen nicht [-X

Frage : kann man die Preview auf 1 Seite einschränken :?:

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Sa, 08. Sep 2018 10:33
von Koverhage
Jimmy,
kennst Du Frax überhaupt ?

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Sa, 08. Sep 2018 12:25
von ramses
Frage : kann man die Preview auf 1 Seite einschränken :?:
Ja, kann man. Indem man bei Preview nur 1 Seite ausgibt.

Gruss Carlo

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Sa, 08. Sep 2018 13:37
von Werner_Bayern
ramses hat geschrieben: Fr, 07. Sep 2018 19:35 Arraywerte, Daten aus Array's kannst du mit der Funktion LlDefineFieldExt() übergeben.
Servus Carlo,

lt. Beschreibung kann damit nur auf eine einfache Variable zugegriffen werden, nicht jedoch auf ein Array. In Frax ist es egal, ob Du eine DBF oder ein mehrdimensionales Array als Datenquelle übergibst. Damit muss man nicht den Umweg über eine DBF gehen.

Die LlDefineFieldExt() - Funktion hat Marcus auch in seiner Klasse umgesetzt, siehe mein Beispiel:

Code: Alles auswählen

oListLabel:DefineVariable("Gesuchter_Artikel", cArtikelWE)

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Sa, 08. Sep 2018 13:40
von Werner_Bayern
AUGE_OHR hat geschrieben: Sa, 08. Sep 2018 9:03 Xbase++ Code "verstehen" andere Sprachen nicht
Servus Jimmy,

Frax schon!
test.PNG
test.PNG (10.02 KiB) 15016 mal betrachtet

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Sa, 08. Sep 2018 15:04
von ramses
Hallo Werner

du musst natürlich eigenen Code schreiben damit du Daten aus einem Array an LL übergeben kannst. Zu jeder Variablen gehört ja auch der Name über welchen du dieses im Designer plazierst. Siehe in der Programmierref. Kapitel 5.2.3 Variablen, Felder und Datentypen.

Leider liefert Combit die Xbase Code Samples nun mit der DS-Klasse und nicht mehr mit nativem Code aus. Ich fand die früheren nativen Beispiele viel viel einfacher um die Funktionsweise und die Art der Aufrufe / Datenübergabe an LL zu verstehen. Mit der DS-Klasse wird meiner Meinung nach eine Verschleierungsschicht zwischen LL und dich gelegt. Ich kann dir nur nochmals empfehlen für erste Schritte die DS-Klasse beiseite zu legen und versuchen mit den nativen Aufrufen die ersten Schritte zu machen. Nur so kannst du die Funktionsart/Parameter übergabe überhaupt verstehen. Wenn du mit der DS-Klasse arbeitest steht die IMMER zwischen dir und LL und du musst dich mit deren Funktionen und möglichkeiten abfinden oder rumkämpfen weil du ja die tatsächliche Funktionsweise und Möglichkeiten nie kennen gelernt hast.

Ggf. bekommst du ja von Combit noch die führeren Xbase-Samples ohne die DS-Klasse.

Gruss Carlo

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Sa, 08. Sep 2018 16:33
von Werner_Bayern
Servus Carlo,

danke, wird ich bei Gelegenheit machen.

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Sa, 08. Sep 2018 22:25
von AUGE_OHR
Koverhage hat geschrieben: Sa, 08. Sep 2018 10:33 kennst Du Frax überhaupt ?
wir reden hier von L&L und nicht FRAX

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: Sa, 08. Sep 2018 22:42
von AUGE_OHR
Werner_Bayern hat geschrieben: Sa, 08. Sep 2018 13:40 Frax schon!
das ist eine Schnittstellen Beschreibung von Frax aber wie Carlo schon sagte musst du die "füllen".
ob es so was für L&L gibt mag ich bezweifeln ( EVALMACRO) den "andere" Sprachen kennen Codeblock IMHO meistens nicht.

Frage : hat schon jemand L&L über die COM Schnittstelle für Xbase++ gemacht ?

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: So, 09. Sep 2018 10:06
von Koverhage
Wir reden auch von FRAX.

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: So, 09. Sep 2018 10:56
von AUGE_OHR
Koverhage hat geschrieben: So, 09. Sep 2018 10:06 Wir reden auch von FRAX.
NEIN
die Frage des Thread war
bin jetzt von Frax auf LL 22 umgestiegen ...

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: So, 09. Sep 2018 11:49
von ramses
Wenn ja Frax so viele Möglichkeiten bietet bleibt ja noch eine bis jetzt nicht angesprochene Möglichkeit:

Frax soll ja in Delphi geschieben sein, dazu gibt es ja perfekt arbeitende Decompiler.

Frax Decompilieren und die nötigen Typeanpassungen vornehmen und erneut compilieren. Und gut ist.


Cu Carlo

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: So, 09. Sep 2018 18:39
von Werner_Bayern
Servus Carlo,

wie wäre das in diesem speziellen Fall lizenzrechtlich?

Re: Berichtscontainer 2 Tabellen mit Text dazwischen

Verfasst: So, 09. Sep 2018 23:19
von ramses
Hallo Werner

das weiss ich leider auch nicht. Es ist ja so dass der Urheber nichts weiter mehr anpassen kann ....

Gruss Carlo