(CC) Textfeld variabel andrucken lassen in Rechnung

8. Dezember 2014 12:45

Hallihallo!

Ich komm grad nicht weiter und mein Handbuch hier hilft mir auch nicht mehr..
Ich weiss einfach nicht mehr, wie man ein Textfeld, das die Text Konstante aus den Globals andruckt, variabel setzen kann. :oops:
Beim einten Feld handelt es sich um einen Export-Text, welcher bei Lieferungen in bestimmte Länder nicht angedruckt werden soll.
Wie kann ich das dem Feld "erklären"?

Danke schon zum Voraus für eure Inputs!

Re: (CC) Textfeld variabel andrucken lassen in Rechnung

8. Dezember 2014 13:24

Hi,

erstelle dir eine neue glob. Variable vom Typ Text (Länge sollte so lang sein, wie der Text der globalen Textkonstante)
-> TextG ist hier in meinem Beispiel die neue glob Variable

dann ersetzt du die Sourceexpr deiner Textbox, in der derzeit die glob. Textkonstante steht, mit TextG

nun musst du nur zur Laufzeit prüfen, wann TextG gefüllt werden soll
Code:
-> im OnAfterGetrecord eines sinnvollen DataItems
IF VerwendeTextkonstante THEN
  TextG := deineGlobaleTextkonstante
ELSE
  TextG := ''


--> VerwendeTextKonstante ist hier natürlich auch nur exemplarisch -> du musst entscheiden, in welchen Ländern der Export-Text gedruckt werden soll - wenn es viele sind, dann vielleicht mit einem neuen Feld an der Tabelle Country/Region

Re: (CC) Textfeld variabel andrucken lassen in Rechnung

8. Dezember 2014 13:32

Zum Ausblenden beim Druck gibt es zwei Ansätze:
  1. Wie von dir beabsichtigt, den Inhalt einer Textbox mal füllen, mal leeren
  2. Sections mal ein-, mal ausblenden (OnPreSection: CurrReport.SHOWOUTPUT an Bedingung knüpfen)
Falls dein Text in einem eigenen DataItem steht (wo nichts anderes als dieser Text gedruckt wird), ist es günstiger und auch eleganter, das DataItem je nach Bedingung (hier: bei bestimmten Ländern) mit CurrReport.BREAK; gar nicht erst ausführen zu lassen. Dann wird die dazu gehörige Section ebenfalls nicht gedruckt.

Da du nun aber explizit nach Möglichkeit 1 gefragt hast:
So wie ich dich verstehe, hast du eine Textbox (und nicht etwa ein Label), welche als SourceExpr den Namen einer Textkonstante trägt. Korrekt?
Um den Inhalt dieser Textbox variabel zu machen, lege eine neue globale Variable (Typ Text, lang genug definieren) an. Trage diese neue Variable als SourceExpr deiner Textbox ein.
Nun musst du per C/AL-Code deine Variable befüllen. Dies machst du dort, wo der Ländercode abgefragt wird. Ich nehme an, im Lieferkopf? Dann dort am Ende des OnAfterGetRecord-Triggers:
Code:
IF [Lieferschein hat Länder X,Y] THEN
  DeineNeueVariable 
:= NameDeinerTextkonstanten
ELSE
  DeineNeueVariable := ''

Re: (CC) Textfeld variabel andrucken lassen in Rechnung

8. Dezember 2014 13:34

Hallo!

Danke für deine Antwort!
Mittlerweile hab ich den Code "gefunden" - eine Abfrage, bzw. ein Ausschluss von einem Land war schon drin.
Hab nur vergessen, dass ich den Footer auswählen muss zum mir den entsprechenden Code anzuzeigen... :roll:
Wird Zeit, dass die Ferien kommen ^^

Im Moment hab ich dort drin (in der OnPreSection()):

IF ("Service Header"."Ship-to Country Code" = 'DE') OR (ShipMethod."Not Tax Free CI" = TRUE) THEN
CurrReport.SHOWOUTPUT(FALSE);

Also kann ich dort einfach noch den Wert des Lieferbedingungscodes als zusätzliches OR einfügen, oder?

IF ("Service Header"."Ship-to Country Code" = 'DE') OR ("Service Header"."Shipment Method Code" = "04") OR (ShipMethod."Not Tax Free CI" = TRUE) THEN
CurrReport.SHOWOUTPUT(FALSE);

Bin mir das von früher anders gewohnt - da ists im FoxPro doch einiges einfacher, nen Report anzupassen :roll: