Forum

Tarih farkı bulma
 
Bildirimler
Hepsini Temizle

Tarih farkı bulma

8 Yazılar
4 Üyeler
0 Reactions
1,502 Görüntüleme
(@ErhanDigin)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 
[#309591]

Merhaba, InfoPath'de tasarladığım bir form var. Formda kullanıcının tarih seçiciden girdiği iki tarih var. Bu tarihler arasındaki farkı aynı formdaki metin kutusuna yazdırmak istiyorum. Nasıl yapabilirim?


 
Gönderildi : 09/02/2012 20:25
(@mesutaladag)
Gönderiler: 326
Reputable Member
(@ErhanDigin)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 

Ben Infopath 2010 kullnıyorum. Sizin gönderdikleriniz 2007 için. Msdn'de =DATEDIF([Start Date],[End Date],"ym") şeklinde bir formul buldum ama formülü kabul etmiyo hata var diyo 🙁


 
Gönderildi : 09/02/2012 21:02
(@serkankonak)
Gönderiler: 1339
Noble Member
 

Makaleler bölümünde yazdığım makale var. Aşağıdaki linkten ulaşabilir excel servicesa bu hesaplamayı yaptırabilirsiniz.

http://www.cozumpark.com/blogs/sharepoint/archive/2011/12/18/_3101_nfopath-forumlar-n-zda-sharepoint-excel-services-ile-hesap-yapt-rmak-g-n-ekleme.aspx

Diğer seçenecekte, iş akışların da eylemler de en altta tarih aralığı fonksiyonu var. Bunu da kullanabilirsiniz. Ama tarihler seçildiğinde iş akışının çalışıp sonucun getirilmesini sağlamak için buton koyarak 2 kere hesaplama yaptırmak gerekir. Çünkü ilk işlemde akış çalışcak ancak sonucu getirecek vakti olmuyacaktır. Buton ile tetiklendiğinde çıkan sonuç gelecektir.

Bunun dışında tarihi parçalayarak ( alt dize gibi fx lerle) işlem yapılabilir.

Datedif excel fonksiyonu,direkt olarak infopath de çalışmaz, siz xpath lere bakmalısınız. Önerim excel services üzerinden işlem yaptırmanızdır. ( orada yaptıracağınız işlem sınırları excel kabiliyetleri ile sınırlıdır ki bu da çok geniş bir alan sağlar.)


 
Gönderildi : 09/02/2012 23:35
(@serkankonak)
Gönderiler: 1339
Noble Member
 

Bu arada Mesut Hocam' ın vermiş olduğu linklerden

http://www.bizsupportonline.net/infopath2007/calculate-date-difference-infopath-rules-formulas.htm  

Çalışıyor... Infopath' in versiyonu önemsiz burada 2010 da da çalışıyor.


 
Gönderildi : 09/02/2012 23:52
(@ErhanDigin)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 

Makalenizdeki örneğe bakarak excel services ile bu hesaplamayı yapmaya çalıştım fakat yeni veri bağlantısı eklerken hata alıyorum. Bağlantı:


http://SiteAdı/_vti_bin/ExcelRest.aspx/Hesaplamalar/Saat.xlsx/Model/Ranges('Sure')?$format=atom&Ranges('BaslangicTarihi')=01.01.2011&Ranges('BitisTarihi')=03.01.2011


Infopath belirtilen Web hizmeti açıklamasını bulamıyor ya da hizmete erişemiyor hatası alıyorum. Tarih formatım tarih + saat şeklinde. Hata bundan kaynaklanıyor olabilir mi?


 


 


 
Gönderildi : 10/02/2012 14:36
(@serkankonak)
Gönderiler: 1339
Noble Member
 

Evet sorun odur. Ancak excel services dan önce yukarıdaki postta linktekini deneyin daha hızlı çözüm alırsınız. Excel services üzerinden hesaplamanızı daha komplike hesaplamalarda kullanabilirsiniz.


 
Gönderildi : 10/02/2012 15:06
(@SatiAdiguzelman)
Gönderiler: 291
Reputable Member
 

Izin talep formunda Tarih farki bulma:

 Ben excel üzerinden =nettoworksday(Tarih1,Tarih2) kullandim. Excel dosyasini sharepoint kitabligina yükledim.

sonucumun infopath eklemeden önce ilk web üzerinden calistirdim:

http://server/_vti_bin/ExcelRest.aspx/xxx/xxx.xlsx/Model/Ranges ('Datumdiff')?Ranges('Tarih1')=09.03.2012&Ranges('Tarih2')=13.03.2012

bana sonuc olarak örnekde 3 getiriyor buda dogru.

sonrasinda infopath forma 3 tane field ekledim: Tarih1  - Tarih2  ve Sonuc

Rest Web service ekledim: http://xxx/_vti_bin/ExcelRest.aspx/xxx/xxx.xlsx/Model/Ranges ('Datumdiff')?$format=atom?Ranges('Tarih1')=09.03.2012&Ranges('Tarih2')=13.03.2012

Tarih1 field (baslangic tarih): yeni kural REST URL degistir:

concat(" http://xxx/_vti_bin/ExcelRest.aspx/xxx/xxx.xlsx/Model/Ranges ('Datumdiff')?$format=atom&Ranges('Tarih1')="; substring-before(Tarih1; "T00:00:00"); "&Ranges('Tarih2')="; substring-before(Tarih2; "T00:00:00"))

Tarih2 field (bitis tarih): 1. Kural Rest URL degistirdim.  2. Kural Rest Webservice sorgula  3. Kural  Sonuc field yazdirmak. Standard olan fv functionu ekledim.

 Simdi iki tarih arasinda ne secersem seceyim bana sonuc olarak ya 1 yada 0 getiriyor.

Hatami bulamiyorum.  Yardimlarinizi bekliyorum simdiden cok tesekkür ederim.


 
Gönderildi : 05/03/2012 20:53
Paylaş: