.::Eralp Erat's Solutions Diary::..

{#Every way that I Can share!}-MS Dynamics CRM

MS Dynamics Crm Tips And Tricks - 7 ( Crm'de client side için çalışma anında yaşanan Türkçe karakter probleminin çözümü + dinamik/statik lookup filtereleme için..)

clock Nisan 7, 2010 03:55 by author NetZero2

Selamlar ;

Microsoft Dynamics CRM 3'den 4'e upgrade yaptığımız bir müşteride il / ilçe / mahalle... şeklinde birbirleriyle cascade ilişki barındıran account giriş ekranında bu ilişkinin dinamik olarak kotarılabilmesi adına haliyle javascipt yaziyor olmam gerekti.Bunun için Microsoft 'un resmi olarak desteklemediği fakat bunun dışında da malesef alternatif çözüm bulmakta zorlandığımız bir çözüm metodumuz var.

Aslında aşağıda vereceğim bilgi 2 problemin çözümünü sağlıyor.Birincisi alanlar arası bağlantısal ilişki  diğeride TR probleminin çözümü.. 

Bunun için crm server'da yer alan lookupsingle.aspx dosyasını bulup editlememiz gerekiyor..

Öncelikle client onload'da çalışan metodu editliyoruz.

   17 function window.onload()

   18 {

   19    /* ERALP JS 17 AGUSTOS INJECTION */

   20    var xFind = document.getElementById('findValue');

   21    if (xFind)

   22    {

   23       var xMyEraFetchValue = document.getElementById('findValue').value;

   24       if (xMyEraFetchValue != null && xMyEraFetchValue.toString().length != 0)

   25       {

   26          for(var b = 0; b < 50; b ++ )

   27          {

   28             xMyEraFetchValue = xMyEraFetchValue.replace('[s]', 'ş').replace('[c]', 'ç').replace('[g]', 'ğ').replace('[-]', 'ı').

   29             replace('[u]', 'ü').replace('[o]', 'ö').replace('[S]', 'Ş').replace('[C]', 'Ç').

   30             replace('[G]', 'Ğ').replace('[--]', 'I').replace('[U]', 'Ü').

   31             replace('[O]', 'Ö').replace('[---]', 'İ');

   32          }

   33       }

   34       xFind.value = xMyEraFetchValue;

   35       lookupSearch();

   36    }

   37    /* ERALP .. */

   38    crmGrid.OnSelectionChange = handlePropertiesBtn;

   39    crmGrid.OnBeforeFormLoad = handleDblClick;

   40    crmGrid.SetParameter("disableDblClick", "0");

   41 

   42    if (IsNull(window.dialogArguments))

   43    btnRemoveValue.disabled = ! _enableRemoveButton;

   44    else

   45    btnRemoveValue.disabled = IsNull(window.dialogArguments.items) || (window.dialogArguments.items.length == 0);

   46 

   47    if ( ! checkMode( _mode, LookupBrowse ) )

   48    {

   49       findValue.focus();

   50       findValue.NotifyFocus();

   51    }

   52    else

   53    {

   54       crmGrid.focus();

   55    }

   56    handlePropertiesBtn();

   57 }

 

 Yukarıda belirtilen injection fonksiyon sayesinde bu formun her yüklenmesi esnasında client'da ilgili input type text elementin içerisnde gösterilecek olan karakterlerde var olan Türkçeleştirme problemi replace edilerek çözümlenmiş oluyor.Sayfa encoding'inden tutunda her bir yere kadar durumu detaylıca incelediğimi hatırlıyorum lakin en direkt bir çözüm olmadığı gibi olabilecek en efektif çözüm olarakda bunu görüyorum.Burda dikkat çekilmesi gereken bir noktada karşı taraftan verinin bize gelirken de belli bir algoritmaya göre char by char replace edilmesi gerektiği.Ters - düz mantığıyla hareket ediyoruz.JS kısmında o kodu yazarken takılırsanız lütfen yardım isteyin benden.Ek olarak field bazlı disabled / enabled durumlarını ve açılan search ekranında bu işlemden sonra artık search yapılamayacağını çünkü filterın kodla verildiğinide unutmamanızda fayda var.

 

 

   17 <script language="javascript" type="text/javascript">

   18 protected override void OnLoad( EventArgs e )

   19 {

   20    base.OnLoad(e);

   21    crmGrid.PreRender += new EventHandler( crmgrid_PreRender );

   22 }

   23 

   24 void crmgrid_PreRender( object sender , EventArgs e )

   25 {

   26    if (Request["search"] != null && Request["search"].StartsWith("<fetch"))

   27    {

   28       crmGrid.AddParameter("fetchxml", Request["search"]);

   29       crmGrid.Parameters.Remove("searchvalue");

   30       this._showNewButton = false;

   31    }

   32 }

   33 </script>

 

Yukarıdaki iki metoduda mutlaka aynı formun onload kısmına yer almalı.Bu sayede oluşacak olan grid'in datasource u otomatik olarak filtrelenmiş oluyor.

Aşağıda yazan kod bloğu dinamik olmayan filtrelemeye güzel bir örnek.Siz bunu yukarıdaki yapıyı kullanarak herhangi bir pickist'in onchange'ine basarak ekranda yer alan bir lookup field'ı rahatlıkla filtreleyebilirsiniz. 

 

   17 crmForm.all.parentaccountid.lookupbrowse = 1;

   18 crmForm.all.parentaccountid.additionalparams = "fetchXml=<fetch mapping='logical'><entity name='account'><all-attributes/><order attribute='name' descending='false'/><filter type='and'><condition attribute='parentaccountid' operator='not-null'/></filter></entity></fetch>";

   19 crmForm.all.parentaccountid.additionalparams += "&selObjects=1&findValue=0";

 

Yeni bir Microsoft CRM Dynamics ipucunda görüşmek üzere.

 

Sevgiler.

 

E2

 

Not : Yukarıda yer alan for döngüsünü 50 ye kadar itere etmem yerine belli bir pattern ile tek seferde tüm aksiyonu alabilirdim.ilk fırsatta onuda yazacağım buraya.

6 kişi tarafından 4.3 olarak değerlendirildi

  • Currently 4,333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


OpenXML artık bir ISO standardı!! Beklenen mutlu son!!

clock Nisan 2, 2008 08:53 by author IThinkable

Selamlar ;


OpenXML artık bir ISO standardı . 87 Üye Ülkenin katılımıyla gerçekleşen standartlaşma süreci bugün itibarıyla nihayete erdi ve Open XML açık dosya saklama standardı olarak ISO tarafından onaylandı. Open XML 87 Ülkenin %86'sı gibi büyük bir çoğunluğunun desteğini aldı.

 

ECMA'nın konuyla ilgili açıklamasına http://www.ecma-international.org/news/TC45_current_work/ISO_and_IEC_approve_Office_Open_XML.htm linkinden erişebilirsiniz.

 

Microsoft'un basın duyurusuysa http://www.microsoft.com/presspass/press/2008/apr08/04-01OpenXMLVotePR.mspx linkinde yer almakta.

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Yazar Hakkında

Eralp

Uludağ Üniversitesi bilgisayar programcılığı sonrasında işletme fakültesini bitiren Erat ; 1999 yılından bu yana yazılım sektörünün içerisinde yer almış ve ilgili olduğu projelerin çözüm üretilmesin de aktif olarak rol oynamıştır.Yaklaşık 6 yılını Türkiye’nin dört bir tarafında yer alan devlet hastanelerin bilgi yönetim sistemlerini tasarlamak ve geliştirmekle geçirmiş ; LIS , IVR ve Linux sistemlerinin entegrasyonu konusunda uzmanlaşmıştır.Bu konuda halen danışmanlık hizmeti vermektedir..Uzun yıllar “Object Pascal” ile uygulama geliştirmiştir.MCP , MCAD.NET ve MCSD.NET,MCTS (MS CRM 4 Customization) unvanlarına sahiptir..Aynı zamanda Mobile Cihazlar konusunda 2007 yılında Microsoft tarafından MVP unvanına layık görülmüştür.
Çeşitli kurumsal projelerin mimari tasarım ve yazılımlarını gerçekleştirmiştir.Son zamanlarda ağırlıklı olarak Microsoft Dynamics CRM ,Sharepoint ve entegrasyon bazlı olarak Axapta(Microsoft ERP) & Project Server projelerinde yer almaktadır.CRM ve Sharepoint konusunda başta finans sektörü olmak üzere Türkiye'nin alanında en büyük firmalarına kurumsal eğitimler vermektedir.Yazılım konusunda en büyük hayali, Türkiye’mizin bir yazılım üssü haline gelebilmesinde ön ayak olmaktır. Yazılımın belli bir forma sıkıştırılmasından hiç haz etmeyen ve fanatikliği değil sadece kaliteyi ön plana çıkarabilmek adına deneyimlerini ve yeni teknolojiler hakkında oluşan bilgi ve birikimlerini üniversitelerde genç dimağlarla paylaşmaktan büyük mutluluk duymaktadır. Halen orta ve büyük ölçekli kurumsal çözümler üreten bir yazılım evinde geliştirici takım lideri olarak çalışmalarını sürdürmekte ve aynı zamanda Macintosh/Objective C programlama konusunda kendini geliştirmektedir:).2007 yılında Boğaziçi Üniversitesi Makine Mühendisliği bölümünde C# eğitimleri vermiştir.Sakarya Üniversitesi e-Bilişim dalında MBA yapmaktadır.

Yazılım geliştirme konusunda birebir özel ders verilmektedir.Konuyla ilgili lütfen eralp.erat@gmail.com adresine iletişim bilgilerini mail atınız.

 

Calendar

<<  Ağustos 2010  >>
PaSaÇaPeCuCuPa
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

View posts in large calendar

Sign in