Forum

Tarih farkı bulma
 
Bildirimler
Hepsini Temizle

Tarih farkı bulma

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

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: 327
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ş: