Nedir?

Matemaiksel işlemler için kullanılır. 

Sentaks
<Math Operator="">
  <Value Target="Integer" />
  <Value Target="Integer" />
</Math>

Özellikler

 AdıAçıklama
 Operator

İşlem tipini belirler.

AdıAçıklama
AddEkleme işlemi için kullanılır
DivideBölme işlemi için kullanılır
MaximumMaksimum değerini bulma işlemi için kullanılır
Minimum

Minimum değerini bulma işlemi için kullanılır

Multiply

Çarpma işlemi için kullanılır

RoundYuvarlama işlemi için kullanılır
SubtractÇıkarma işlemi için kullanılır
  

 

Örnekler

Örnekler aşağıdaki form verisi setinden oluşmaktadır. 

Form Verisi
<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. 

Add - Ekleme işlemi örneği
<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. 

Dvide - Bölme işlemi örneği
<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. 

Maximum - En yüksek sayısı bulma örneği
<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. 

Minimum - En küçük sayıyı bulma örneği
<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. 

Multiply - Çarpma işlemi örneği
<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

Round - Yuvarlama Yöntemi
<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. 

Subtract - Çıkarma İşlemi örneği
<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

SetVariable

Value

 

  • No labels