5. August 2009 08:57
Ich habe mir eine gl. Variable angebelgt (Zahlungsbedingungen) des Typ text. Ich möchte, dass sie nur angedruckt wird, falls PaymentTerms.Description gefüllt ist.
Dafür bin ich auf die entsprechende Section und habe folgendes geschrieben.
Zahlungsbedingungen := '';
IF PaymentTerms.Description <> '' THEN
Zahlungsbedingungen := Zahlungsbedingungen;
Leider funktioniert es nicht und ich kann es nicht nachvollziehen.
P.S. Wie geht man vor, wenn man den text Zahlungsbedingungen in mehreren Sprachen haben möchte?
Zuletzt geändert von misterelektro1981 am 6. August 2009 10:21, insgesamt 3-mal geändert.
5. August 2009 09:00
misterelektro1981 hat geschrieben:Zahlungsbedingungen := '';
IF PaymentTerms.Description <> '' THEN
Zahlungsbedingungen := Zahlungsbedingungen; <-- kann auch irgendwie nichts werden, oder? ;)
5. August 2009 09:20
McClane hat geschrieben:misterelektro1981 hat geschrieben:Zahlungsbedingungen := '';
IF PaymentTerms.Description <> '' THEN
Zahlungsbedingungen := Zahlungsbedingungen; <-- kann auch irgendwie nichts werden, oder? ;)
Wieso kann das nichts werden. Ich möchte die Variable Zahlungsbedingungen mit dem Inhalt Zahlungsbedingungen füllen falls in der Beschreibung etwas steht.
5. August 2009 09:25
Hallo Misterelektro1981,
meintest du vielleicht:
- Code:
Zahlungsbedingungen := '';
IF PaymentTerms.Description <> '' THEN
Zahlungsbedingungen := PaymentTerms.Description;
Gruß, Fiddi
5. August 2009 09:35
misterelektro1981 hat geschrieben:McClane hat geschrieben:misterelektro1981 hat geschrieben:Zahlungsbedingungen := '';
IF PaymentTerms.Description <> '' THEN
Zahlungsbedingungen := Zahlungsbedingungen; <-- kann auch irgendwie nichts werden, oder? ;)
Wieso kann das nichts werden. Ich möchte die Variable Zahlungsbedingungen mit dem Inhalt Zahlungsbedingungen füllen falls in der Beschreibung etwas steht.
Was fiddi sagen will: Du leerst die Variable Zahlungsbedingungen, wenn dann PaymentTerms.Description nicht leer ist dann füllt sich die Variable Zahlungsbedingungen mit seinem eigenen Inhalt (und der ist aktuell leer). Fiddis Variante ist da richtiger, bringt aber leider auch nix. Wenn PaymentTerms.Description leer ist bleibt Zahlungsbedingungen auch leer. Wenn PaymentTerms.Description etwas beinhaltet, kriegt Zahlungsbedingungen den gleichen Inhalt. Die Variable Zahlungsbedingungen macht so benutzt keinen Sinn, da du immer auf PaymentTerms.Description zugreifen kannst.
5. August 2009 10:05
Was ich eigentlich nur möchte, und vielleihct etwas komisch umschrieben habe ist, das wenn keine Beschreibung im Feld PaymentTerms.Description also keine Zahlungsbedingung ist, auch nicht das was vor der Textbox im Report steht auftaucht.
Z.B. Eingabe auf der Form in die Textbox des Feldes Description der Table Payment Terms 14 Tage...
=> Ausgabe: Zahlungsbedingungen: 14 Tage...
wird nicht eingegeben, so wird dieser Teil nicht angedruckt.
5. August 2009 10:07
Dann meinst du wahrscheinlich sowas:
- Code:
Zahlungsbedingungen := '';
IF PaymentTerms.Description <> '' THEN
Zahlungsbedingungen := 'Zahlungsbedingungen'; // <-- Text muss in Hochkomma stehen
[edit]Wenn es multilanguagefähig sein soll, dann musst du das Wort "Zahlungsbedingungen" in eine Textkonstante eintragen, wo du auch die Übersetzung für die anderen Sprachen verwaltest.
Deiner Textvariablen weist du dann einfach die Textkonstante anstelle des festen Textes zu:
- Code:
Zahlungsbedingungen := Text50000;
Jedoch müsstest du dann auch selber in der Payment Term Translation nach der Übersetzung suchen:
- Code:
Zahlungsbedingungen := '';
IF PaymentTerms.Description <> '' THEN BEGIN
Zahlungsbedingungen := Text50000; // "Überschriften-Variable" mit der Textkonstanten befüllen
IF PaymentTermsTranslation.GET(PaymentTerms.Code,SalesHeader."Language Code") THEN
PaymentTerms.Description := PaymentTermsTranslation.Description; // Temporär die Übersetzung übertragen - KEIN MODIFY!
END;
5. August 2009 11:12
Danke, es lag an den fehlenden Hochkommata.
Benötige ich die untere Programmierung auf jeden Fall.
Das mit der Textkonstanten mache ich zum ersten mal. Ich lege mir also eine Textkonstante an,a ber wo kann ich jetzt den text für verschiedene Sprachen hinterlegen?
Zwischenfrage: Ich glaube ich könnte das ganze umgehen, wenn ich das Label ein- und ausblenden könnte. Kann man das machen? Ich hatte ja vorher ein Label und hab daraus nun eine Textbox gemacht.
5. August 2009 11:21
misterelektro1981 hat geschrieben:Benötige ich die untere Programmierung auf jeden Fall.
Ist das eine Frage?
Dann: Nein, das brauchst du nur, wenn der Report auch andere Sprachen unterstützen soll.
misterelektro1981 hat geschrieben:Das mit der Textkonstanten mache ich zum ersten mal. Ich lege mir also eine Textkonstante an,a ber wo kann ich jetzt den text für verschiedene Sprachen hinterlegen?
Du musst die Textkonstante im Register "Text Constants" hinterlegen und nicht unter "Variables".
Dort kannst du dann mit dem AssistEdit-Button des Feldes "ConstValue" die Übersetzungen hinterlegen.
misterelektro1981 hat geschrieben:Zwischenfrage: Ich glaube ich könnte das ganze umgehen, wenn ich das Label ein- und ausblenden könnte. Kann man das machen? Ich hatte ja vorher ein Label und hab daraus nun eine Textbox gemacht.
Nein, es können keine einzelnen Controls in Reports ausgeblendet werden.
Dies geht nur pro Section (
CurrReport.SHOWOUTPUT).
5. August 2009 11:59
Vielen Dank für die Mühe ich werde ein Feedback geben.
5. August 2009 12:46
Danke hat funktioniert.
5. August 2009 13:03
Was ich gerade noch gesehen habe. Jetzt funktioniert es, aber wenn etwas nicht gefüllt ist, bleibet quasi ein leerer Platz stehen. D.h. falls nichts gefüllt ist, taucht kein Text auf, der Platz auf dem Report ist aber dennoch belegt.
Warum rutscht dieser denn nicht automatisch hoch? Oder steckt da auch wieder eine Programmierung hinter?
6. August 2009 08:49
Nö, das ist normal. Wenn du eine Textbox an eine Stelle legst, dann bleibt sie dort; egal, ob was drin steht oder nicht. Das könntest du umgehen, indem du deine Texte in 2 Arrays hinterlegst (eines für die Labels, eines für die Texte). Das Array füllst du mit den Informationen, die da stehen sollen (oder eben leer, wenn keine Information gefunden wird). In den Report setzt du von oben nach unten dein Array, machst allerdings vorher noch je ein Compressarray. Dann druckt er schön ohne leere Zwischenzeilen durch.
Nachteil: dann bleiben die leeren Zeilen unten. Aber je nachdem, wie der Report aufgebaut ist, kann man das vielleicht über Sections regeln.
6. August 2009 10:03
Ich habe ja keine Textbox mehr, da ich nur die Textbox so programmieren konnte, das sie unter gewissen Umständen sichtbar ist oder nicht.
Aber das mit dem Array höre ich zum ersten Mal. Kann man soetwas ohne Programmierlizenz machen?
Du meinst aber nicht, dass ich mir weitere Sections dazu baue, oder?
6. August 2009 10:18
Ohne Programmierlizenz? Natürlich nicht.
Was ich meine, kannst du dir zB im Report 206 ansehen, da wird das Adressfeld auch mit einem Array gefüllt. Das kommt zwar aus einer Codeunit, aber das Prinzip ist gleich.
6. August 2009 10:21
Alles klar, danke für die Mühe. Dann wird es wohl erst mal so bleiben müssen.
6. August 2009 10:26
Versteh ich nun nicht. Du kannst doch Code schreiben?¿
6. August 2009 10:32
Achso das meinte ich nicht. Ich habe keine Programmierlizenz. Mit meiner Lizenz kann ich nur die Reports gestalten aber nicht auf Formen programmieren.
Wenn ich das doch lösen kann, kannst du mir beschreiben wie ich vorzugehen habe?
6. August 2009 10:37
Oh. Ich dachte, es ginge dabei um einen Report.
6. August 2009 10:44
Geht es ja auch. Sorry für das Durcheinander.
6. August 2009 10:54
Dann müsstest du das im Report hinkriegen können :) Falls ich alles recht verstanden habe, zumindest
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.