10 Nisan 2010 Cumartesi

Ms Crm için yapılmış bir GoogleMap uygulaması


Merhaba arkadaşlar bugün sizlere  google api lerini kullanarak küçük bir  google map uygulaması yapacağım.  Ayrıca yaptığımız uygulamayı crm de firma varlığına entegre ederek database den enlem ve boylamı  çekerek marker  aracılığıyla haritada firmanın adresini ayrıntılarıyla göstereceğim.  Şimdi uygulamayı  yazmayı başlayalım. Öncelikle visual stadio açarak yeni bir web proje açalım  ve ismine GoogMapWebSite diyelim.
  
Daha sonra cs dosyasını açarak kodları yazmaya başlayalım. Comment out yaptığım yerlerde bazı açıklamalar yaptım.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string id = Request.QueryString["oid"].ToString();//burada firmanın guid’ini alıyoruz
        SqlConnection conn = new SqlConnection("Data source=MSCRMDYNAMICS; initial catalog=ERCAN_MSCRM; Integrated Security=SSPI;");
        string sql = "SELECT  new_longitude,new_latitude FROM account WITH(NOLOCK) where accountId='" + id + "' and deletionstatecode<>2 ";
       //sql query’mi yazıp enlem ve boylamı çekiyorum.
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        da.Fill(ds);

        try
        {
            Double a = Convert.ToDouble(ds.Tables[0].Rows[0]["new_latitude"]);
            Double b = Convert.ToDouble(ds.Tables[0].Rows[0]["new_longitude"]);

/*Enlem ve boylam boş değil ise aspx sayfasını source’una yazdığım initialize adlı bir fonksiyona yoluyorum, boş ise hata mesajı veriyorum.*/

            if ((ds.Tables[0].Rows[0]["new_latitude"] != DBNull.Value) && (ds.Tables[0].Rows[0]["new_longitude"] != DBNull.Value))
            {
                string javascript = "";
                RegisterStartupScript("Close", javascript);
            }
           
          
              
        }
        catch
        {
            string javascript = "";
            RegisterStartupScript("Close", javascript);
           
        }
       
    }
}
Şimdi sıra geldi aspx sayfımıza source’una  yazacağımız  kodlara

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Ercan’s Maptitle>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">script>
<script type="text/javascript">
    var geocoder;
    var map;
  
    function initialize(a,b) {
       
        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(a,b);
        var myOptions = {
            zoom: 15,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP//burada yap
        }
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
      
          var marker = new google.maps.Marker({
      position: latlng,
      map: map,
      title:"The Account Address !"
  });
  }
script>
head>
<body style="margin:0px; padding:0px;"  >
    <form id="form1" runat="server">
<div id="map_canvas" style="width:100%; height:100%">
     <asp:ScriptManager ID="ScriptManager1" runat="server">
    asp:ScriptManager>
    div>
    form>
body>
html>

Son olarak yaptığımız uygulamayı bir button aracılığıyla crm’e ekleyeceğim. İlk olarak  ISV.Config dosyasını  export ediyoruz.

 ve dosyayı visual stadio ile açıp aşağıdaki kodu ekliyoruz.
<Button JavaScript="var id= crmForm.ObjectId; window.open('/ISV/GoogMapWebSite/Default.aspx?oid='+id,'mywindow', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no,width=473,height=322');" PassParams="1" WinParams="" WinMode="0">
                         

                           <Titles>
                               <Title LCID="1033" Text="Google Map" />
                          Titles>
                          <ToolTips>
                               <ToolTip LCID="1033" Text="Google Map" />
                          ToolTips>
                    Button>
Son olarak  kodu ekleyip save edip dosyayı import  ediyorum. 

Şimdi test edelim bu arada ekranda button görünmüyorsa ayarlardan (settings) sistem ayarlarına giriyoruz daha sonra özeleştirmeyi tıklıyoruz. Ve aşağıda gösterdiğim değerleri seçip tamam a tıklıyoruz.  


Bu işlemi bitirdikden sonra altaki gibi bir görüntü ortaya çıkacaktır.



Umarım işinize yarar başka bir yazımda görüşmek dileğiyle........

Hiç yorum yok:

Yorum Gönder