Nedir?
Matemaiksel işlemler için kullanılır.
<Math Operator=""> <Value Target="Integer" /> <Value Target="Integer" /> </Math>
Özellikler
Adı | Açıklama | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operator | İşlem tipini belirler.
|
Örnekler
Örnekler aşağıdaki form verisi setinden oluşmaktadır.
<Production> <Model> <Product Color="Blue"/> <Product Color="Blue"/> <Product Color="Red"/> <Product ListPrice="63.5000"/> <Product ListPrice="63.5000"/> </Model> <Model ProductModelID="1" Name="Classic Vest"> <Product Color="Blue" SafetyStockLevel="30"/> <Product Color="Blue" SafetyStockLevel="15"/> <Product Color="Blue" SafetyStockLevel="20"/> <Product Color="Red" SafetyStockLevel="10"/> <Product Color="Yellow" SafetyStockLevel="45"/> <Product Color="Green" SafetyStockLevel="410"/> </Model> </Production>
ForEach içerisinde verilen veri yolunda Color değeri Blue olan değeri RowCount ı 0 olan değeri her defarında 1 ekleyerek sonucu RowCount a yazar.
<SetVariable Name="$(RowCount)"> <Value Target="Integer">0</Value> </SetVariable> <ForEach Node="/Production/Model/Product[@Color='Blue']"> <SetVariable Name="$(RowCount)"> <Math Operator="Add"> <Value>$(RowCount)</Value> <Value Target="Integer">1</Value> </Math> </SetVariable> </ForEach>
ForEach içerisinde verilen veri yolunda ilk ListPrice ı 5 e bölerek sonucu ListPrice değerine yazar.
<SetVariable Name=""$(ListPrice)""> <Value Target="Integer">0</Value> </SetVariable> <ForEach Node='//Product[1]'> <SetVariable Name="$(ListPrice)"> <Math Operator="Divide"> <Value Target="Decimal">::@ListPrice</Value> <Value Target="Decimal">5</Value> </Math> </SetVariable> </ForEach>
ForEach içerisinde verilen veri yolunda Color değeri Blue olan değeri MaxLevel 0 olan değeri her defasında SafetyStockLevel ile karşılaştırarak büyük olanı MaxLevel a yazar.
<SetVariable Name="$(MaxLevel)"> <Value Target="Integer">0</Value> </SetVariable> <ForEach Node="/Production/Model/Product[@Color='Blue']"> <SetVariable Name="$(MaxLevel)"> <Math Operator="Maximum"> <Value Target="Integer">$(MaxLevel)</Value> <Value Target="Integer">::@SafetyStockLevel</Value> </Math> </SetVariable> </ForEach>
ForEach içerisinde verilen veri yolunda Color değeri Blue olan değeri MinLevel 0 olan değeri her defasında SafetyStockLevel ile karşılaştırarak küçük olanı MinLevel a yazar.
<SetVariable Name="$(MinLevel)"> <Value Target="Integer">0</Value> </SetVariable> <ForEach Node="/Production/Model/Product[@Color='Blue']"> <SetVariable Name="$(MinLevel)"> <Math Operator="Minimum"> <Value Target="Integer">$(MinLevel)</Value> <Value Target="Integer">::@SafetyStockLevel</Value> </Math> </SetVariable> </ForEach>
ForEach içerisinde verilen veri yolunda ilk ListPrice ı 1.18 ile çarparak sonucu ListPrice değerine yazar.
<SetVariable Name=""$(ListPrice)""> <Value Target="Integer">0</Value> </SetVariable> <ForEach Node='//Product[1]'> <SetVariable Name="$(ListPrice)"> <Math Operator="Multiply"> <Value Target="Decimal">::@ListPrice</Value> <Value Target="Decimal">1.18</Value> </Math> </SetVariable> </ForEach>
İlk bölümde yer alan değerin ikinci bölümde yer alan ondalık kısmı kadar yuvarlama yaparak sonucu ilk değer tipinde çevirir. Aşağıdaki örnek için; 20.2378
<Math Operator="Round"> <Value Target="Decimal">20.23784589</Value> <Value Target="Integer">4</Value> </Math>
Round için ek bilgi
İlk Value değeri yuvarlama yapılacak sayıyı, ikinci verilen sayı ise virgülden sonra kaç basamak tutulacağını gösterir.
ForEach içerisinde verilen veri yolunda Color değeri Blue olan değeri StockCount ı 100 olan değeri her defarında 1 azaltarak sonucu StockCount a yazar.
<SetVariable Name="$(StockCount)"> <Value Target="Integer">100</Value> </SetVariable> <ForEach Node="/Production/Model/Product[@Color='Blue']"> <SetVariable Name="$(StockCount)"> <Math Operator="Subtract"> <Value>$(StockCount)</Value> <Value Target="Integer">1</Value> </Math> </SetVariable> </ForEach>
Ayrıca Bakınız