Designer Zeilenumbruch [erledigt]

Moderator: Moderatoren

Antworten
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Designer Zeilenumbruch [erledigt]

Beitrag von Werner_Bayern »

Servus,

was mache ich falsch? Hab 2 Memofelder, die in einem einfachen Report ausgegeben werden sollen. Das 2. Feld wird abgeschnitten, finde aber keine Einstellung, wo das eingestellt werden könnte?
Unbenannt.PNG
Unbenannt.PNG (4.38 KiB) 7233 mal betrachtet
Zuletzt geändert von Werner_Bayern am Mo, 25. Feb 2019 13:10, insgesamt 1-mal geändert.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Designer Zeilenumbruch

Beitrag von Tom »

In den Spalteneigenschaften:
2019-02-24 09_16_02-Tabelleninhalt.png
2019-02-24 09_16_02-Tabelleninhalt.png (23.38 KiB) 7215 mal betrachtet
Herzlich,
Tom
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Designer Zeilenumbruch

Beitrag von Werner_Bayern »

Danke Tom, aber dann wird das draus:
Unbenannt.PNG
Unbenannt.PNG (3.87 KiB) 7197 mal betrachtet
Das ist die Einstellung:
Unbenannt2.PNG
Unbenannt2.PNG (27.41 KiB) 7197 mal betrachtet
Irgendwie bricht LL nicht richtig um? Liegts am Text selbst?
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Designer Zeilenumbruch

Beitrag von Tom »

Du musst statt "Abschneiden" "Umbrechen" wählen.

Innerhalb des Textes macht L&L Umbrüche bei Chr(10), also LineFeed (in L&L heißt die Funktion Chr$()). Wenn der Text Tabs enthält oder gar, wie es hier scheint, mit Leerzeichen formatiert ist, wird es natürlich schwierig. Ich würde dann auch eine nichtproportionale Schrift wählen. Oder den Text zerlegen. Auch da gibt es im Designer Funktionen für.
Herzlich,
Tom
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Designer Zeilenumbruch

Beitrag von Wolfgang Ciriack »

Mach doch auch noch zusätzlich zu "Umbrechen" mal die Spaltenbreite etwas kleiner, vielleicht wird die Spalte auch durch die Formularbreite begrenzt ?
Was passiert bei verkleinern oder verschmälern ?
Viele Grüße
Wolfgang
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Designer Zeilenumbruch

Beitrag von Werner_Bayern »

Servus Tom und Wolfgang,

bringt alles nichts. Ja, es handelt sich um eine Zeile mit Leerzeichen, ohne LF oder CR. Umbrechen hatte ich ja und dachte, das sei die richtige Einstellung - vor allem in Kombination mit Umbruch erzwingen.

Werde mir ein anderes Layout einfallen lassen, oder die Daten anderes aufbereitet in die Temp-DBF für LL schicken.

Gibt's eigentlich in der aktuellen LL-Version die Möglichkeit, ein Daten-Array zu verwenden?
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Designer Zeilenumbruch

Beitrag von Tom »

Diese Möglichkeit gibt es schon immer. L&L ist die Datenquelle egal.
Herzlich,
Tom
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Designer Zeilenumbruch

Beitrag von Werner_Bayern »

Echt jetzt? Geht aber nicht mit der Klasse von Marcus.

Hast ein einfaches Beispiel für mich? Bisher nutze ich LL ausschließlich über Marcus' dsListLabel-Klasse.

Danke!
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Designer Zeilenumbruch

Beitrag von Tom »

Hallo, Werner.

Ich kenne Marcus' L&L-Klasse nicht, aber das Prinzip bei List&Label besteht - im Gegensatz zu vielen anderen Reportgeneratoren - darin, dass es keinen direkten Kontakt zur Datenbank hat. Stattdessen publiziert die Anwendung die Daten, von denen sie möchte, dass sie gedruckt werden können. Ich nehme an, dass es in der Klasse von Marcus Methoden für den Tabellendruck gibt - in diesem Fall schnappt sich die Klasse eine Workarea (die Du vermutlich angibst) und publiziert alle Felder darin über eine Funktion von List&Label, die da "LLDefineFieldExt()" heißt. Mit dieser Funktion vermittelt man dem Drucksystem, dass es ein Feld gibt (also etwas, das sich über den Tabellendruck hinweg verändern wird - dem stehen statische Variable gegenüber, etwa für Kopf- und Umgebungsinformationen), welchen Typ dieses Feld hat und was es enthält. Aber was ein Feld ist, das entscheidet die App selbst. Sie kann also auch ein einfaches, zweidimensionales Array durchwandern und alle Spalteninhalte als Felder übergeben. Oder Daten irgendwie auf andere Art zusammenbauen. (Möglicherweise gibt's das auch in Marcus' Klasse - schau doch mal genauer nach.)

Es gibt in L&L ein Beispiel für Alaska Xbase++. Darin findest Du eine Funktion namens "DefineData". Diese einfache Funktion bekommt die Namen, Typen und Längen von allen Tabellenfeldern einer Workarea zeilenweise übermittelt, und diese Inhalte übergibt sie an L&L. Auf Basis dieser Funktion (oder Prozedure - ist lange her) kann man dasselbe auch mit einem Array machen - man muss nur die vier Arrays "aField", "aType", "aLen" und "aDec" anders bestücken. Und die Druckfunktion ein bisschen umbauen, die es auch im Beispiel gibt - und die "DefineData" für jede zu druckende Tabellenzeile einmal aufruft. Hier kann man auch Ergänzungen vornehmen, also für jede Zeile noch die Ergebnisse von irgendwelchen Funktionen übermitteln, Bilddateipfade, weiß der Geier was.

Und das ist nur ein kleiner Anfang. L&L ist sehr, sehr mächtig. Man kann die tollsten Sachen damit machen. Arraylisten sind im Vergleich Pillepalle.
Herzlich,
Tom
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Designer Zeilenumbruch

Beitrag von Werner_Bayern »

Servus Tom,

merci, schaue ich mir an. DefineField hat Marcus schon drin, aber nur in Verbindung mit einer Tabelle. Ist dann vermutlich aber nicht mehr schwierig, die Klasse entsprechend zu erweitern.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Designer Zeilenumbruch [erledigt]

Beitrag von Tom »

Ist dann vermutlich aber nicht mehr schwierig, die Klasse entsprechend zu erweitern.
Überhaupt nicht. Du kannst auch mehrere Tabellen mischen, oder Array- mit Tabellendaten vermengen usw. usf. - alles kein Problem. Über die Darstellungsbedingungen im Formular, die ja feldinhaltgesteuert sein können, und über die Möglichkeit dort, mehrere Tabellenzeilen für Daten anzulegen, von denen aber nicht immer alle gedruckt werden, kannst Du im Formular auch zwischen Tabellen wechseln, wenn Du etwa eine Elterntabelle hast (z.B. Kunden) und eine (oder mehrere) Kindtabellen (z.B. Aufträge). Es werden immer - scheinbar - Daten aus beiden Tabellen publiziert, aber nur eine ist gültig, worüber ein Feld informiert, das entsprechend von Dir bestückt wird. Es geht mit L&L auch eleganter, Kreuztabellen und ähnliches zu bauen, aber auf diese Art geht es sehr einfach. Sehr hilfreich ist die Feldergruppierung über Präfixe im Feldnamen. Wenn z.B. der Tabellenalias immer mit dem Feldnamen verwendet wird (LlDefineFieldExt(xJob,Alias()+"."+FieldName(n) ...), gruppiert L&L diese Felder automatisch inhaltlich. Und vieles, vieles mehr.
Herzlich,
Tom
Antworten