Framework

Value Parameter

BY KARL HAJEK

Parameterübergabe per Value in Verbindung mit Listboxen und dynamischem SQL

Wie Sie ja wissen, spielen MD-Tokens in MD-Premium.NET AFW eine fundamentale Rolle bei der Zusammenstellung der SQL-Selects. Eine Besonderheit stellt dabei der SQL-Text dar, der die Auswahlliste in Listboxen festlegt. Bis zur Version 5.2.040.0005 war es nur möglich, Felder im Format {FELDNAME} zu referenzieren, was die negative Auswirkung hatte, dass dieser Platzhalter lediglich ersetzt wurde - bei Zeichenfeldern problematisch und bei Datumsfeldern ein regelrechter Stolperstein.

In der Version 5.2.040.0005 wurde dies korrigiert und eine Parameterübergabe per Value ermöglicht. Stellen Sie dazu einfach vor den Variablennamen einen Doppelpunkt {:FELDNAME} und der Parameter wird unabhängig vom Datentyp korrekt übergeben. Beachten Sie dabei auch, dass das Umschließen des Parameters mit Hochkommas bei Zeichenfeldern nicht mehr erfolgen darf.

DCI_DLG_KAMINS
Vorher
Kopieren
<FieldInfo Name="KAMAC_ID" Title="Startaktivität" ExpressionType="Int32">
	<GUIControl Name="imageComboBoxEdit">
		<mdc:ListItems >
			<mdc:SQL>
				select KAMAC_ID, BEZEICHNUNG, IMAGE_NR 
				from mdkamac
				where Klient_ID = Md_Klient.GetNr 
				and Kam_ID = (select Kam_ID from mdkamd where ROWID=CHARTOROWID('{ROW_ID}'))
				
				and KamAC_ID in 
				(select KAMAC_ID from mdkamac 
				where Klient_ID = Md_Klient.GetNr 
				and NVL(NO_SA,0) = 0
				and Kam_ID=(select Kam_ID from mdkamd where ROWID=CHARTOROWID('{ROW_ID}')))
			</mdc:SQL>
		</mdc:ListItems>
	</GUIControl>
</FieldInfo>
Nachher
Kopieren
<FieldInfo Name="KAMAC_ID" Title="Startaktivität" ExpressionType="Int32">
	<GUIControl Name="imageComboBoxEdit">
		<mdc:ListItems >
			<mdc:SQL>
				select KAMAC_ID, BEZEICHNUNG, IMAGE_NR 
				from mdkamac
				where Klient_ID = Md_Klient.GetNr 
				and Kam_ID = (select Kam_ID from mdkamd where ROWID=CHARTOROWID({:ROW_ID}))
				and KamAC_ID in 
				(select KAMAC_ID from mdkamac 
				where Klient_ID = Md_Klient.GetNr 
				and NVL(NO_SA,0) = 0
				and Kam_ID=(select Kam_ID from mdkamd where ROWID=CHARTOROWID({:ROW_ID})))
			</mdc:SQL>
		</mdc:ListItems>
	</GUIControl>
</FieldInfo>