Report: wenn leer nicht drucken [erledigt]

Übergeordnete Themen zum gesamten Paket passend
Antworten
Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Report: wenn leer nicht drucken [erledigt]

Beitrag von Werner_Bayern »

Servus,

leider finde ich nirgends eine Einstellung, um in einem Report Statics nicht zu drucken, wenn sie leer sind. Mit .visible gehts ja nicht - vor allem auch nicht per indirection. Ich hab 10 Statics von ...Text1 bis ...Text10 und würde das gern in einer Schleife behandeln:

Code: Alles auswählen

FOR i = 1 TO 10
	if blabla then
		{"STC_Artikel_Preis" + i}.visible = FALSE
	end
END
Aber das funktioniert nicht...

Wie geht sowas?
Zuletzt geändert von Werner_Bayern am 27. April 2021, 13:47, insgesamt 1-mal geändert.
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Report: wenn leer nicht drucken

Beitrag von satmax »

Wennst einfach einen Leerstring reinmachst:

STC_Artikel_Preis=""

wird nichts gedruckt.

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Report: wenn leer nicht drucken

Beitrag von Herbert »

versuch's mit ..visible nicht .visible

Alternativ kannst im Control bei UI "Reset if zero" setzen, so wird bei keinem Wert nichts angezeigt.

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Report: wenn leer nicht drucken

Beitrag von Werner_Bayern »

Hab mir selber ein Ei gelegt, in der Caption der Controls steht das drin:

Code: Alles auswählen

[%WIN_Rechnung.EDT_Artikel2%]
Jetzt ist das nie leer. Wie wertet man das zur Laufzeit aus? Das funktioniert nicht:

Code: Alles auswählen

IF {"STC_Artikel_Text" + i}..Empty THEN
IF {"STC_Artikel_Text" + i} = "" THEN
Reset if zero ist bei beiden Controlarten (Artikel_Text und Artikel_Preis) aktiviert, war mein 1. Gedanke.
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Report: wenn leer nicht drucken

Beitrag von Herbert »

"Reset if zero" macht doch genau das während der Laufzeit...

Versuch's mal so:

Code: Alles auswählen

IF nospace({"STC_Artikel_Text"+numtostring(i,"1d"),indcontrol}) ="" THEN
das ",indcontrol" ist sinnvoll, damit der compiler mehr weiss und das Programm schneller arbeitet. Da sind übrigens noch andere sinnvolle Variablen bei der Indirection dabei.

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Report: wenn leer nicht drucken

Beitrag von Werner_Bayern »

Servus Herbert,

nein, funktioniert auch nicht. Es wird vermutlich immer nur das Control ausgewertet, aber nicht der Ausdruck im Control selbst. In Xbase++ würde man schreiben:

Code: Alles auswählen

if empty(&(xAusdruck))
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Report: wenn leer nicht drucken

Beitrag von satmax »

Sorry, ich verstehe es nicht, helft mir auf die Sprünge: wenn nichts drinnen steht kann ja nicht s gedruckt werden, wo ist da eigentlich das Problem?

Oder geht's dir um das Unterdrücken von Leerzeilen?

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Report: wenn leer nicht drucken

Beitrag von Herbert »

Also, das reset if zero ist die Lösung.
In diesem Fall bleibt das Control unsichtbar.
Falls ein Control als leer gedruckt wird, bleibt ein eventueller Hintergrund davon bestehen.

Was ich vermute: Falls keine Links hinter den Items stehen, musst du bei jedem Durchlauf vorher den Inhalt auf leer setzen.

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Report: wenn leer nicht drucken

Beitrag von Werner_Bayern »

satmax hat geschrieben:
15. April 2021, 06:25
Oder geht's dir um das Unterdrücken von Leerzeilen?
Korrekt! Jetzt sieht der Fenster so aus:
Win_Auftrag.PNG
Win_Auftrag.PNG (15.17 KiB) 2638 mal betrachtet
das wird in den Report übernommen:
Report.PNG
Report.PNG (5.66 KiB) 2638 mal betrachtet
und wird dann so gedruckt:
Ausdruck.PNG
Ausdruck.PNG (7.51 KiB) 2638 mal betrachtet
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Report: wenn leer nicht drucken

Beitrag von Werner_Bayern »

Herbert hat geschrieben:
15. April 2021, 07:41
Was ich vermute: Falls keine Links hinter den Items stehen, musst du bei jedem Durchlauf vorher den Inhalt auf leer setzen.
Mache ich meiner Meinung nach:

Code: Alles auswählen

FOR i = 1 TO 10
	IF NOT {"WIN_Rechnung_Auftrag.EDT_Artikel" + i} = ""
		{"STC_Artikel_Preis" + i} = {"WIN_Rechnung_Auftrag.EDT_Preis" + i}
		{"STC_Artikel_Text" + i} = {"WIN_Rechnung_Auftrag.EDT_Artikel" + i}
	ELSE
		{"STC_Artikel_Preis" + i}..Visible = False
		{"STC_Artikel_Text" + i}..Visible = False
	END
END
Beim Opening RPT_Auftrag.
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Report: wenn leer nicht drucken

Beitrag von satmax »

IMHO ist das ein Klassiker für eine Table. Egal ob die die Table mit einem SQL Query oder via Funktion befüllst, aber so würde ich das nicht machen. Mit einer Table geht dann alles von selbst, egal ob eine oder 100 Rechnungspositionen....
Werner_Bayern hat geschrieben:
15. April 2021, 15:39
satmax hat geschrieben:
15. April 2021, 06:25
Oder geht's dir um das Unterdrücken von Leerzeilen?
Korrekt! Jetzt sieht der Fenster so aus:

Win_Auftrag.PNG

das wird in den Report übernommen:
Report.PNG

und wird dann so gedruckt:
Ausdruck.PNG

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Report: wenn leer nicht drucken

Beitrag von Werner_Bayern »

Ich Depp,

die leeren Zeilen wurden tatsächlich nicht gedruckt, bloß habe ich das nicht bemerkt, weil ich davon ausging, dass dann der untere Teil mit Netto, UST und Gesamtsumme nach oben rutscht. Das tut es aber nicht - und es gibt da wohl auch keine Option dazu.

Herbert hat mir telefonisch geholfen, ich hatte schon den Tipp von satmax teilweise umgesetzt und eine Table gemacht, wollte die aber mit tableAddLine() füttern. Lt. Herbert macht das mehr Probleme, als es bringt. Er hat mir eine Array-Structur empfohlen, die dann die Datenquelle ist.

So funktioniert es jetzt! Danke an alle nochmal!
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

Antworten