Teilstring als Parameter
Nadine Inhelder
Ist es möglich, in der Layoutdefinition einen Teilstring als Parameter zu definieren? Mein Problem ist, der Parameter den ich eingebe, ist z.B. 01.501043 daraus möchte ich nun eine Parameter 01 und einen Parameter 501043 machen. Weiss jemand wie das geht? Danke!Markus Rewak
Hallo Nadine,hier könnten dir folgende string-operationen nützlich sein:
left():
right():
right(GetData("LD.Par.FreeText"), len(GetData("LD.Par.FreeText"))- instr(GetData("LD.Par.FreeText"),"."))
Markus Rewak
ups, sorry Nachricht wurde unbeasichtigt zu früh abgeschickt....Hallo Nadine,
hier könnten dir folgende string-operationen nützlich sein:
left(): liefert n Zeichen von links zurück
right(): liefert n Zeichen von rechts zurück
mid(): liefert n Zeichen ab einer best. Stelle
len(): liefert die Länge eines Strings
instr(): liefert die Position, ab welcher ein best. Zeichen im String auftaucht.
1.Parameter:
--------------
left(GetData("LD.Par.FreeText"), instr(GetData("LD.Par.FreeText"),"."))
2.Parameter:
---------------
right(GetData("LD.Par.FreeText"), len(GetData("LD.Par.FreeText"))- instr(GetData("LD.Par.FreeText"),"."))
Viele Grüße
Markus
Nadine Inhelder
Hallo MarkusVielen Dank das Du mir geantwortet hast! Jedoch bin ich mir nicht ganz sicher, ob Du mir nicht den Code geschickt hast, den man im Designer selbst verwendet. Mir geht es jedoch um den SQL Code für das Feld "Design Param SQL" in der Layoutdefinition und dort funktioniert das bei mir nicht. Weisst Du gerade an was das liegt?
Liebe Grüsse und nochmals vielen Dank für Deine Bemühungen
Nadine
Markus Rewak
Hallo Nadine,ja das war der code für den designer. Wenn ich Dich richtig verstanden habe dann willst Du 2 Parameter abfragen, diese dann aber als 1 Parameter behandeln. Das wären dann 2 ganz normale Parameter. Dafür braucht man auch keinen SQL-String zu hinterlegen, vorausgesetzt man tätigt die Eingabe manuell.
Im Designer muss Du dann die 2 Parameter dann zusammensetzen.
gruß
Markus
Nadine Inhelder
Hallo MarkusNein ich möchte eine Eingabe als einen Parameter und diesen in zwei aufteilen. Das Problem dabei ist jedoch, dass dieser Parameter so zusammengesetzt ist, dass die erste Hälfte die Rechnungsnummer ist. Da ich eine Abfrage habe, die nach Rechnungsnummern sucht, brauche ich diesen Parameter schon bevor ich in den Designer gehe als einzelnen Wert.
Nadine
Markus Rewak
jetzt haben wir fast alles durch :-)letzter Versuch...Du willst sozusagen dein sql-query anpassen
wenn deine Nr. zum Beispiel folgende ist: '200003.78' (solltest du mit entsprechendem Parameter ersetzen)
rechter Wert:
---------------
select right('200003.78', len('200003.78')- patindex('%.%','200003.78'))
linker Wert:
-------------
select left('200003.78', patindex('%.%','200003.78')-1)
Position eines Pattern ermitteln:
------------------------------------
select patindex('%.%','200003.78')
eingebaut in einer einfachen query um sich einen best. auftrag anzuzeigen:
--------------------------------------------------------------------------------------
select * from ordr
where
docnum =left('200003.78', patindex('%.%','200003.78')-1)
hoffe das hilft dir weiter.
Markus
Nadine Inhelder
Vielen Dank, so funktionierts schon super! Wenn Du mir jetzt noch verraten könntest, wie man anstelle von '200003.78' einen Parameter den man dann eingibt einsetzen kann, wäre die Sache perfekt!Liebe Grüsse
Nadine
Markus Rewak
Hallo Nadine,wenn Du deinen Parameter registiert hast, dann kannst du den ganz einfach in deine query einbauen.
Z.b. dein Paramter heisst SpecialID
dann würde die query z.b. so lauten:
select * from ordr
where
docnum =left('[%SpecialID]', patindex('%.%','[%SpecialID]')-1)
Wenns nicht hinhaut, dann kannst du auch deine query posten.
gruß Markus
Nadine Inhelder
Hallo Markus,das hat funktioniert super :)
Vielen Dank!
Nadine
0
Please sign in to leave a comment.
Comments
0 comments