Page tree
Skip to end of metadata
Go to start of metadata
Tekrar eden kayıtları silme - VKN si aynı olan kayıtları siler.
  <Group Description="Tekrar eden kayıtları sil">
    <Delete Node="/*/Liste/Data/Template[VKN=preceding::VKN]" />
  </Group>

 

Süreç içerisinde listelenmiş birden çok satırdaki alanı tek bir satırda göstermek amacı ile ekleme yaparken aynı isimde olanları belirlemek için xpath contains özelliği kullanılabilir. 

Contains ve string-length kullanımı
  <ForEach Node="/*/FirmaBilgileri/Liste/Sablon[@guid!='{00000000-0000-0000-0000-000000000000}' ]">
    <If>
      <Then>
        <Condition>
          <Not>
            <Value Culture="" Target="None">eval::contains(/*/FormBilgileri/FirmaAd,FirmaAdi)</Value>
          </Not>
        </Condition>
        <Perform>
          <Set Node="/*/FormBilgileri/FirmaAd">
            <StringConcat>
              <Evaluate Target="None" Culture=""><![CDATA[/*/FormBilgileri/FirmaAd]]></Evaluate>
              <Value Culture="" Target="None">-</Value>
              <Value Culture="" Target="None">eval::./FirmaAdi</Value>
            </StringConcat>
          </Set>
        </Perform>
      </Then>
    </If>
  </ForEach>
  <SetVariable Name="$(firstLength)">
    <Math Operator="Subtract">
      <Value Culture="" Target="None">eval::string-length(/*/FormBilgileri/FirmaAd)</Value>
      <Value Culture="" Target="Integer">1</Value>
    </Math>
  </SetVariable>
  <Set Node="/*/FormBilgileri/FirmaAd">
    <SubString StartIndex="1" Length="$(firstLength)">
      <Evaluate Target="None" Culture=""><![CDATA[/*/FormBilgileri/FirmaAd]]></Evaluate>
    </SubString>
  </Set>
preceding-sibling kullanımı
        <SetVariable Name="$(Bilgilendirilecekler)">
          <Value />
        </SetVariable>
        <ForEach Node="/*/processingInfo/workItem[not(completedBy = preceding-sibling::workItem/completedBy)]">
          <SetVariable Name="$(Bilgilendirilecekler)">
    		<Value Culture="" Target="None">eval::concat('$(Bilgilendirilecekler)', completedBy, ';')</Value>
          </SetVariable>
        </ForEach>
        <SetVariable Name="$(length)">
          <Math Operator="Subtract">
            <Math Operator="Multiply">
              <Evaluate Target="None" Culture="">count(/*/processingInfo/workItem[not(completedBy = preceding-sibling::workItem/completedBy)])</Evaluate>
              <Value>37</Value>
            </Math>
            <Value>1</Value>
          </Math>
        </SetVariable>
        <SetVariable Name="$(Bilgilendirilecekler)">
			<Value Culture="" Target="None">eval::substring('$(Bilgilendirilecekler)',0,'$(length)')</Value>

        </SetVariable>
        <Value>$(Bilgilendirilecekler)</Value>
floor ve div ile bölme işlemi kullanımı
  <Set Node="Sure/Gun">
    <Evaluate Target="Decimal" Culture=""><![CDATA[floor(Sure/Saat div 24)]]></Evaluate>
  </Set>
Bölüm sonrası kalanı alma - mod
  <Set Node="Sure/Saat">
    <Evaluate Target="Decimal" Culture=""><![CDATA[Sure/Saat mod 24]]></Evaluate>
  </Set>
  • No labels