Printdefinition: Layout vom Designer und SAP Layout gleichzeitig nutzbar?

<![CDATA[

Michael Böhme

Ist es möglich eine Printdefinition einzurichten die wenn die Kopienanzahl = 1 das neue coresuite designer Formular nutzt und bei Kopienanzahl = 0 das Standart SAP Formular ?

Hintergrund:
Wir nutzen 2 verschiedene Formulare für das Angebotswesen. Das normale Angebot und einen Reparaturkostenvoranschlag.

Kostenvoranschlag soll jetzt aus dem Designer kommen und das normale Angebot aus dem SAP-Formular. Entschieden wird über eine SQL Abfrage die eine bestimmtes Feld ausliest und die Kopienanzahl dann auf 1 setzt.

Es ist nicht gewünscht das alte SAP Formular mit dem Designer zu erstellen. (Ich weiss das das die saubere Lösung ist).

Der Mischbetrieb ist das Ziel.

Hat jemand eine Idee? Schon einmal vielen Dank.

Sascha Balke

Hallo Michael,

100% sicher bin ich mir zwar nicht, aber ich glaube nicht, dass das via SQL möglich ist.

Eine recht einfache Sache ist, wenn dein Kunde in einem solchen Fall die "Shift-Taste" gedrückt hält und dann die Preview oder den Druck selbst anklickt. Dann werden nähmlich die Standard SBO-Einstellungen genutzt.

hth

Michael Böhme

Moin Sascha,

das Hintertürchen ist mir schon bekannt. Nur leider betrifft dieses den größeren Geschäftsbereich.

Vieleicht hat ja jemand anderes noch eine Idee.

Dir erst einmal vielen Dank für die Antwort.

Michael

Philipp Knecht

Hallo Michael

Ja auch daran haben wir gedacht.
In der PrintDef findest du im "Extended" Bereich eine Parameter Expression
Gib dort nen SQL Ausdruck ein der ne 1 für Printdef berücksichtigen -> Druck via Designer und ne 0 zurück für Printdef ignorieren -> Druck B1

hth

Michael Böhme

Das hört sich sehr gut an, läuft auch schon 'ein bisschen'. Aber ich habe hier wohl noch ein weiteres Problem.

Das Feld welches ausgelesen wird um die Entscheidung für das Layout (Designer oder B1) kommt aus den benutzerdefinierten Feldern des Angebotes:

Name: U_SNummer, AlphaNum (10 Stellen) unter Belege, Titel
Angelegt wurde dieser Parameter mit:
Key: U_SNummer, Type: Alpha Num, ItemID:U_SNummer, Matrix NO, ROW NO, Form Type: Sales Quotation

Die Anzahl der Kopien in der Prindef sieht wie folgt aus:
SELECT CASE WHEN [%U_SNummer] IS NOT NULL THEN 1 ELSE 0 END

Das ist dann auch die Abfrage unter Exdended die Du angemerkt hast.

Nun der Fehler:

Ist das Feld U_SNummer gefüllt funktioniert es.
Ist das feld U_SNummer leer kommt es zu der Fehlermeldung:

"Get data: Falsche Syntax in der Nähe des 'IS'-Schlüsselwortes."

Korrigiere ich auf > oder < oder = kommt es zu der gleichen Meldung nur mit >,<, =.

Entweder stimmt etwas mit der Typenverträglichkeit nicht oder mit mir ?! Ich glaube mal eine Fehlermeldung gesehen zu haben in der bstimmte Regeln für die Abfrage in der Printdef angemerkt wurden ?!

Idee ?

Christian Gey

[quote]"MBOGLO"]Nun der Fehler:
Ist das Feld U_SNummer gefüllt funktioniert es.
Ist das feld U_SNummer leer kommt es zu der Fehlermeldung:
"Get data: Falsche Syntax in der Nähe des 'IS'-Schlüsselwortes."
Korrigiere ich auf > oder < oder = kommt es zu der gleichen Meldung nur mit >,<, =.
Entweder stimmt etwas mit der Typenverträglichkeit nicht oder mit mir ?! Ich glaube mal eine Fehlermeldung gesehen zu haben in der bstimmte Regeln für die Abfrage in der Printdef angemerkt wurden ?!
Idee ?
[/quote]

Hallo Michael

Ist eigentlich ganz einfach. B1 löst den Rückgabewert nicht als Null-Value auf sondern macht daraus '' D.h. Steht dann dort

SELECT CASE WHEN IS NULL THEN 1 ELSE 0 END....

Die Syntax ist wirklich falsch!

Deine Abfrage müsste korrekt heißen

SELECT CASE WHEN '[%U_SNummer]' <> '' THEN 1 ELSE 0 END.

Allerdings verstehe ich noch nicht ganz warum du das so kompliziert machen willst.

Trage in der Printdefinition unter Parameter Ausdruck einfach folgendes ein:

'[%U_SNummer]' <> ''

Danach sollte es funktionieren ohne das du noch irgendwelche Änderungen bezüglich der Kopienanzahl machen musst.

MfG

Christian Gey

Sascha Balke

An den Lösungsweg von Christian habe ich gar nicht gedacht. :bang:

Michael Böhme

Super Idee, hat geklappt.

Weil Philipp anmerkte das die Abrage eine 1 oder 0 zurückgeben muss habe ich diesen Umweg gewählt.

So macht es die Sache natürlich wesentlich einfacher.

Vielen Dank und schönes Wochenende an alle Helfer !

Michael
0

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post