2015年12月10日 星期四

Reset CSS – 重置歸零 – 網頁排版在各瀏覽器一致化

Reset CSS – 重置歸零 – 網頁排版在各瀏覽器一致化
只要在寫 CSS 前掛上這一段「Reset CSS」的語法,就可以解決各大瀏覽器初始化的差異


  1. <style>
  2. /* v1.0 | 20080212 */
  3.  
  4. html, body, div, span, applet, object, iframe,
  5. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  6. a, abbr, acronym, address, big, cite, code,
  7. del, dfn, em, font, img, ins, kbd, q, s, samp,
  8. small, strike, strong, sub, sup, tt, var,
  9. b, u, i, center,
  10. dl, dt, dd, ol, ul, li,
  11. fieldset, form, label, legend,
  12. table, caption, tbody, tfoot, thead, tr, th, td {
  13. margin: 0;
  14. padding: 0;
  15. border: 0;
  16. outline: 0;
  17. font-size: 100%;
  18. vertical-align: baseline;
  19. background: transparent;
  20. }
  21. body {
  22. line-height: 1;
  23. }
  24. ol, ul {
  25. list-style: none;
  26. }
  27. blockquote, q {
  28. quotes: none;
  29. }
  30. blockquote:before, blockquote:after,
  31. q:before, q:after {
  32. content: '';
  33. content: none;
  34. }
  35.  
  36. /* remember to define focus styles! */
  37. :focus {
  38. outline: 0;
  39. }
  40.  
  41. /* remember to highlight inserts somehow! */
  42. ins {
  43. text-decoration: none;
  44. }
  45. del {
  46. text-decoration: line-through;
  47. }
  48.  
  49. /* tables still need 'cellspacing="0"' in the markup */
  50. table {
  51. border-collapse: collapse;
  52. border-spacing: 0;
  53. }
  54. </style>


DownLoad: http://meyerweb.com/eric/tools/css/reset/reset.css

Source: http://meyerweb.com/eric/tools/css/reset/

Reference: http://www.flycan.com/article/css/reset-css-562.html

ASP.NET 選擇性引數函式範例

ASP.NET 選擇性引數函式範例


cs
  1. ///
  2. /// 選擇性引數函式範例
  3. ///
  4. public partial class tsExampleMethod : System.Web.UI.Page
  5. {
  6. protected void Page_Load(object sender, EventArgs e)
  7. {
  8. ExampleClass anExample = new ExampleClass();
  9. string a = anExample.ExampleMethod(1, "One", 1);
  10. string b = anExample.ExampleMethod(2, "Two");
  11. string c = anExample.ExampleMethod(3);
  12.  
  13. Response.Write(a);
  14. Response.Write(b);
  15. Response.Write(c);
  16. }
  17. }


  1. class ExampleClass
  2. {
  3. private string _name;
  4.  
  5. // Because the parameter for the constructor, name, has a default
  6. // value assigned to it, it is optional.
  7. public ExampleClass(string name = "Default name")
  8. {
  9. _name = name;
  10. }
  11.  
  12. // The first parameter, required, has no default value assigned
  13. // to it. Therefore, it is not optional. Both optionalstr and
  14. // optionalint have default values assigned to them. They are optional.
  15. public string ExampleMethod(int required, string optionalstr = "default string",
  16. int optionalint = 10)
  17. {
  18. return string.Format("{0}: {1}, {2}, and {3}.", _name, required, optionalstr,
  19. optionalint);
  20.  
  21. }
  22. }

2015年12月9日 星期三

Searching in SQL Multiple Keyword

SQL 多條件查詢

使用逗號間隔多關鍵字查詢及對多個欄位進行搜查,組合條件為"或"。
※逗號前後不可留空白,否則會查出全部的資料



SQL
  1. DECLARE @strKeyword VARCHAR(512);
  2. SET @strKeyword = 'john,howard,lee';
  3.  
  4. SELECT * FROM v_HRM_Evaluation
  5. JOIN dbo.FN_SPLIT_TBL(@strKeyword,',') tblB
  6. ON name + batchnumber + jobtitles +
  7. CONVERT(varchar(30),joblevel) + workingfunc +
  8. ogno + ogname + ouno + ouname + ename + status +
  9. CONVERT(varchar(30),cdt,120) LIKE '%'+tblB.Value+'%'
  10. WHERE 1=1


FN_SPLIT_TBL
  1. --註:字串切割,用在單一欄位多條件同時查詢,如:(Select * from Table Where name like '%張%' or name like '%陳%' or name like '%王%')
  2. --引用範例(一):
  3. --select tblA.* from t_HRM_Evaluation tblA join dbo.FN_SPLIT_TBL('張,陳,王',',') tblB on tblA.name like '%'+tblB.Value+'%'
  4. --引用範例(二):
  5. --SELECT dbo.[FN_SPLIT](Name.Value, 2, '=') as Name,
  6. --dbo.[FN_SPLIT](Age.Value, 2, '=') as Age,
  7. --dbo.[FN_SPLIT](Job.Value, 2, '=') as Job,
  8. --dbo.[FN_SPLIT](Location.Value, 2, '=') as Location,
  9. --dbo.[FN_SPLIT](Add_Date.Value, 2, '=') as Add_Date
  10. --FROM HR data
  11. -- CROSS APPLY FN_SPLIT_TBL(data.Details, '|') Name
  12. -- CROSS APPLY FN_SPLIT_TBL(data.Details, '|') Age
  13. -- CROSS APPLY FN_SPLIT_TBL(data.Details, '|') Job
  14. -- CROSS APPLY FN_SPLIT_TBL(data.Details, '|') Location
  15. -- CROSS APPLY FN_SPLIT_TBL(data.Details, '|') Add_Date
  16. --WHERE Name.Pos = 1 AND Age.Pos = 2 AND Job.Pos = 3 AND Location.Pos = 4 AND Add_Date.Pos = 5
  17.  
  18. CREATE FUNCTION [dbo].[FN_SPLIT_TBL](@InExp varchar(8000), @Sep varchar(10)) --SELECT * FROM DBO.[FN_SPLIT_TBL]('TEST1,TEST2', ',')
  19. RETURNS @Res TABLE(
  20. Pos int,
  21. Value varchar(max))
  22. AS
  23. BEGIN
  24. WITH Pieces(pn, start, stop) AS (
  25. SELECT 1, 1, CHARINDEX(@Sep, @InExp)
  26. UNION ALL
  27. SELECT pn + 1, stop + 1, CHARINDEX(@sep, @InExp, stop + 1)
  28. FROM Pieces
  29. WHERE stop > 0
  30. )
  31.  
  32. INSERT INTO @Res
  33. SELECT pn, SUBSTRING(@InExp, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
  34. FROM Pieces OPTION (MAXRECURSION 0);
  35.  
  36. RETURN;
  37. END


FN_SPLIT
  1. --註:無
  2. --引用範例(一):
  3. --SELECT
  4. --dbo.[FN_SPLIT](data.Name, 2, '=') as Name,
  5. --dbo.[FN_SPLIT](data.Age, 2, '=') as Age,
  6. --dbo.[FN_SPLIT](data.Job, 2, '=') as Job,
  7. --dbo.[FN_SPLIT](data.Location, 2, '=') as Location,
  8. --dbo.[FN_SPLIT](data.Add_Date, 2, '=') as Add_Date
  9. --FROM (
  10. -- SELECT
  11. -- dbo.[FN_SPLIT](Details, 1, '|') as Name,
  12. -- dbo.[FN_SPLIT](Details, 2, '|') as Age,
  13. -- dbo.[FN_SPLIT](Details, 3, '|') as Job,
  14. -- dbo.[FN_SPLIT](Details, 4, '|') as Location,
  15. -- dbo.[FN_SPLIT](Details, 5, '|') as Add_Date
  16. -- FROM HR) data
  17.  
  18.  
  19.  
  20. CREATE FUNCTION [dbo].[FN_SPLIT] ( --SELECT DBO.FN_SPLIT('TEST1 , TEST2', 2, ',')
  21. @s varchar(512),
  22. @i int,
  23. @sep char(1) = ',')
  24. RETURNS varchar(512)
  25. AS
  26. BEGIN
  27. DECLARE @Ret VARCHAR(512);
  28.  
  29. WITH Pieces(pn, start, stop) AS (
  30. SELECT 1, 1, CHARINDEX(@sep, @s)
  31. UNION ALL
  32. SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
  33. FROM Pieces
  34. WHERE stop > 0
  35. )
  36. SELECT @Ret =
  37. RTRIM(SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END))
  38. FROM Pieces
  39. WHERE pn = @i
  40.  
  41. RETURN @Ret;
  42. END

Searching in ASP.Net GridView Multiple Parameters

Searching in ASP.Net GridView Multiple Parameters

cs
  1. private void BindData()
  2. {
  3.     string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
  4.     string query = "select * from customers where (name like '%' + @name + '%' or @name = '') and (age = @age or @age= 0) and (mobile = @mobile or @mobile= '') and (city = @city or @city= '')";
  5.     SqlCommand cmd = new SqlCommand(query);
  6.     cmd.Parameters.AddWithValue("@name", txtName.Text.Trim());
  7.     cmd.Parameters.AddWithValue("@age", txtAge.Text.Trim() == "" ? 0 txtAge.Text.Trim());
  8.     cmd.Parameters.AddWithValue("@mobile", txtMobile.Text.Trim());
  9.     cmd.Parameters.AddWithValue("@city", ddlCity.SelectedIndex > 0 ? ddlCity.SelectedValue : "");
  10.     using (SqlConnection con = new SqlConnection(conString))
  11.     {
  12.         using (SqlDataAdapter sda = new SqlDataAdapter())
  13.         {
  14.             cmd.Connection = con; sda.SelectCommand = cmd;
  15.             using (DataSet ds = new DataSet())
  16.             {
  17.                 sda.Fill(ds);
  18.                 GridView1.DataSource = ds;
  19.                 GridView1.DataBind();
  20.             }
  21.         }
  22.     }
  23. }
  24.  


ref url:

CRM2011 How to get Options Set Value in DataBase?

CRM2011 How to get Options Set Value in DataBase?



StringMap table
  1. SELECT AttributeValue, Value
  2. FROM StringMap
  3. WHERE ObjectTypeCode = 1 -- entity type code 1 = account
  4. AND AttributeName = 'statecode' --fieldname


Entity Type Code
  1. SELECT EntityId, Name, ObjectTypeCode
  2. FROM [MetadataSchema].[Entity]
  3. ORDER BY Name

2015年12月8日 星期二

CRM2011 Get Entity/Attribute's Display Name from CRM database

CRM2011 Get Entity/Attribute's Display Name from CRM database
從資料庫取得CRM2011 Attribute Display Name







  1. SELECT EntityView.Name AS EntityName, LocalizedLabelView_1.Label AS EntityDisplayName,
  2. AttributeView.Name AS AttributeName, LocalizedLabelView_2.Label AS AttributeDisplayName
  3. FROM LocalizedLabelView AS LocalizedLabelView_2 INNER JOIN
  4. AttributeView ON LocalizedLabelView_2.ObjectId = AttributeView.AttributeId RIGHT OUTER JOIN
  5. EntityView INNER JOIN
  6. LocalizedLabelView AS LocalizedLabelView_1 ON EntityView.EntityId = LocalizedLabelView_1.ObjectId ON
  7. AttributeView.EntityId = EntityView.EntityId
  8. WHERE LocalizedLabelView_1.ObjectColumnName = 'LocalizedName'
  9. AND LocalizedLabelView_2.ObjectColumnName = 'DisplayName'
  10. AND LocalizedLabelView_1.LanguageId = '1033'
  11. AND LocalizedLabelView_2.LanguageId = '1033'
  12. AND EntityView.Name IN ('Account','Contact')
  13. ORDER BY EntityName, AttributeName


reference from: http://jianwang.blogspot.tw/2009/03/get-entityattributes-display-name-from.html

2015年11月5日 星期四

CRM2011 使用Advanced Find取得Mail Regarding數量

CRM2011 使用Advanced Find取得Mail Regarding數量


指定下列兩個條件:
Activity Type Equals E-mail
Regarding Contains Data(like) Null



PS:
說明Regarding Contains Data(like) Null:
強制加入此條件不設定任何範圍,表示只要有Regarding Mail都會被找出來。如圖
以上Thanks

2015年11月2日 星期一

Ajax TabContainer

Ajax TabContainer



HTML:
  1. <body>
  2. <form id="form1" runat="server">
  3. <div>
  4.  
  5. <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
  6. </ajaxToolkit:ToolkitScriptManager>
  7. <ajaxToolkit:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0"
  8. Width="287px">
  9. <ajaxToolkit:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1">
  10. <ContentTemplate>
  11. Tab Content 1
  12. <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
  13. </ContentTemplate>
  14. </ajaxToolkit:TabPanel>
  15. <ajaxToolkit:TabPanel runat="server" HeaderText="TabPanel2" ID="TabPanel2">
  16. <ContentTemplate>
  17. Tab Content 2
  18. <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
  19. <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
  20. </ContentTemplate>
  21. </ajaxToolkit:TabPanel>
  22. <ajaxToolkit:TabPanel ID="TabPanel3" runat="server" HeaderText="TabPanel3">
  23. <ContentTemplate>
  24. Tab Content 3
  25. <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
  26. <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
  27. <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
  28. </ContentTemplate>
  29. </ajaxToolkit:TabPanel>
  30. </ajaxToolkit:TabContainer>
  31. </div>
  32. </form>
  33. </body>

2015年10月28日 星期三

JavaScript TextBox Number Range

JavaScript TextBox Number Range



JavaScript:
  1. <script language="javascript" type="text/javascript">
  2. function textbox(obj, maxvalue, minvalue) {
  3. if (obj.value != "") {
  4. if (parseInt(obj.value) == obj.value && parseInt(obj.value) >= minvalue && parseInt(obj.value) <= maxvalue) {
  5. //do nothing
  6. }
  7. else {
  8. alert('Please enter ' + minvalue + ' - ' + maxvalue + '');
  9. obj.value = "";
  10. }
  11. }
  12. }
  13. </script>

HTML:
  1. <body>
  2. <form id="form1" runat="server">
  3. <div>
  4. <asp:TextBox ID="TextBox1" runat="server" TextMode="Number"></asp:TextBox>
  5. <asp:TextBox ID="TextBox2" runat="server" TextMode="Number"></asp:TextBox>
  6. </div>
  7. </form>
  8. </body>

C#:
  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. //onblur
  4. TextBox1.Attributes.Add("onblur", "textbox(" + TextBox1.ClientID + ", 10, 0)");
  5. TextBox2.Attributes.Add("onblur", "textbox(" + TextBox1.ClientID + ", 5, 1)");
  6.  
  7. //onkeydown
  8. //TextBox1.Attributes.Add("onkeydown", "textbox(" + TextBox1.ClientID + ", 10, 0)");
  9. //TextBox2.Attributes.Add("onkeydown", "textbox(" + TextBox1.ClientID + ", 5, 1)");
  10. }

2015年10月14日 星期三

UpdatePanel use Script

UpdatePanel use Script


C#:
  1. ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "alert", "alert('Member Registered Sucessfully');", true)

2015年7月28日 星期二

ASP.NET System.Threading.ThreadAbortException: 執行緒已經中止

ASP.NET System.Threading.ThreadAbortException: 執行緒已經中止


Error Msg:
System.Threading.ThreadAbortException: 執行緒已經中止。     於 System.Threading.Thread.AbortInternal()     於 System.Threading.Thread.Abort(Object stateInfo)     於 System.Web.HttpResponse.AbortCurrentThread()     於 WebHRM.login.btnLogin_Click(Object sender, EventArgs e)


解決方案:https://support.microsoft.com/zh-tw/kb/918181
<%@ Page Language="C#" Async="true"%>

HttpResponse.Redirect 方法 endResponse 參數不設為 false 時,就會發生這個問題。 根據預設值,endResponse 參數設定為 true。



轉貼連結:http://www.dotblogs.com.tw/boei/archive/2010/07/11/16485.aspx
將網頁轉出成word的時候,最後會來個Response.End()來結束它的輸出,但都會發生<System.Threading.ThreadAbortException> 執行緒已經中止,雖然不會造成系統上的什麼問題。
解決方法:
1.    繼續用Response.End(),外面用try – catch包住,但try – catch會比較消耗資源,所以不考慮。
2.    改用HttpContext.Current.ApplicationInstance.CompleteRequest(),可以跳過Application_EndRequest 事件的執行。
 
如果使用Response.Redirect 或 Server.Transfer 方法也發生一樣狀況的話,就可以使用Response.Redirect(String url, bool endResponse),endResponse就設為False,因為Response.Redirect內部會用到Response.End(),設為False就是要停用Response.End()方法。

2015年7月7日 星期二

How to set Option set value to null CRM 2011




JavaScript:
  1. function OnLoadForm(){
  2. setTwoOptionNull("new_tender");
  3. }
  1. function setTwoOptionNull(twoOption) {
  2. var isCreateForm = Xrm.Page.ui.getFormType() == 1;
  3. var twoOptionField = Xrm.Page.getAttribute(twoOption);
  4. var twoOptionValue = twoOptionField.getValue();
  5. if (isCreateForm) {
  6. twoOptionField.setValue(null); // set the value to null on create
  7. twoOptionField.setSubmitMode("always"); // required to store the null value
  8. document.getElementById("rad_" + twoOption + "1").onclick = function () {
  9. if (twoOptionValue == false) {
  10. twoOptionField.setValue(true);
  11. twoOptionField.setValue(false);
  12. }
  13. }
  14. }
  15. }

2015年6月11日 星期四

ASP.NET Using foreach loop with DataList on Submit

ASP.NET Using foreach loop with DataList on Submit
在送出之前將 DataList 的 Items 使用迴圈取出

HTML:
  1. <form id="form1" runat="server">
  2. <asp:DataList ID="DataList1" runat="server" Width="99.9%" RepeatDirection="Vertical">
  3. <ItemStyle BorderWidth="1" />
  4. <ItemTemplate>
  5. <asp:HiddenField ID="hifDlobjectype_code" runat="server" Value="A1234" />
  6. </ItemTemplate>
  7. </asp:DataList>
  8.  
  9. <asp:Button ID="btnSubmit" runat="server" Text="送出" Width="100px" OnClick="btnSubmit_Click" />
  10. </form>

C#:
  1. protected void btnSubmit_Click(object sender, EventArgs e)
  2. {
  3. try
  4. {
  5. DataList dl = DataList1;
  6.  
  7. foreach (DataListItem dli in dl.Items)
  8. {
  9. string hifDlobjectype_code = ((HiddenField)dli.FindControl("hifDlobjectype_code")).Value;
  10. }
  11. }
  12. catch (Exception)
  13. {
  14.  
  15. throw;
  16. }
  17. }

2015年6月10日 星期三

ASP.NET Timer

ASP.NET Timer

網頁每隔10秒自動重新整理網頁,搭配UpdatePanel使用


HTML:
  1. <body>
  2. <form id="form1" runat="server">
  3. <asp:ScriptManager ID="ScriptManager1" runat="server">
  4. </asp:ScriptManager>
  5. <asp:Timer ID="Timer1" runat="server" Interval="10000" OnTick="Timer1_Tick"
  6. oninit="Timer1_Init">
  7. </asp:Timer>
  8. <div>
  9. <asp:Label ID="Label1" runat="server" Text="網頁開啟時間:"></asp:Label>
  10. <asp:Label ID="Label2" runat="server" Text=""></asp:Label>
  11. <p>
  12. </p>
  13. <asp:UpdatePanel ID="UpdatePanel1" runat="server">
  14. <Triggers>
  15. <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
  16. </Triggers>
  17. <ContentTemplate>
  18. <asp:Label ID="Label3" runat="server" Text="每隔10秒重新整理:"></asp:Label>
  19. <asp:Label ID="Label4" runat="server" Text=""></asp:Label>
  20. </ContentTemplate>
  21. </asp:UpdatePanel>
  22. <p>
  23. </p>
  24. </div>
  25. </form>
  26. </body>

C#:
  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. Label2.Text = DateTime.Now.ToString();
  4. Label4.Text = DateTime.Now.ToString();
  5. }
  6.  
  7. protected void Timer1_Init(object sender, EventArgs e)
  8. {
  9. Timer1.Interval = 10000; //每10秒執行一次
  10. }
  11.  
  12. protected void Timer1_Tick(object sender, EventArgs e)
  13. {
  14. Label4.Text = "UpdatePanel1 refreshed at " + DateTime.Now.ToString();
  15. }

2015年6月3日 星期三

ASP.NET Access Master Page Control

Access Master Page Control



Get Master1-TextBox1
C#:
  1. MasterPage master1 = Master.Master;
  2. TextBox textbox1 = master1.FindControl("TextBox1") as TextBox;

Get Master2-TextBox2
C#:
  1. ContentPlaceHolder mpContentPlaceHolder = (ContentPlaceHolder)master1.FindControl("ContentPlaceHolder1");
  2. if (mpContentPlaceHolder != null)
  3. {
  4. TextBox textbox2 = mpContentPlaceHolder.FindControl("TextBox2") as TextBox;
  5. }

2015年2月12日 星期四

CRM 2011 Set the value of a field in JavaScript

CRM 2011 Set the value of a field in JavaScript

JavaScript:
  1. function OnLoad()
  2. {
  3. Xrm.Page.getAttribute("FieldSchemaName").setValue("Value");
  4. }

CRM 2011 Get the value from a field in JavaScript

CRM 2011 Get the value from a field in JavaScript

JavaScript:
  1. function OnLoad()
  2. {
  3. var crmFieldValue = Xrm.Page.getAttribute("FieldSchemaName").getValue();
  4. }

CRM 2011 Close the form in JavaScript

CRM 2011 Close the form in JavaScript

JavaScript:
  1. function OnSave()
  2. {
  3. Xrm.Page.ui.close();
  4. }
  5.  
  6.  
  7. /*** Other Sample ***/
  8.  
  9. function SaveAndClose()
  10. {
  11. Xrm.Page.data.entity.save();
  12. if (parent.opener != undefined)
  13. {
  14. window.parent.close();
  15. }
  16. else
  17. Xrm.Page.ui.close();
  18.  
  19. }

CRM 2011 Get logged in User Id in JavaScript

CRM 2011 Get logged in User Id in JavaScript

JavaScript:
  1. function OnLoad()
  2. {
  3. var userId = Xrm.Page.context.getUserId();
  4. }

CRM 2011 Get Organization Name in JavaScript

CRM 2011 Get Organization Name in JavaScript

JavaScript:
  1. function OnLoad()
  2. {
  3. var orgName = Xrm.Page.context.getOrgUniqueName();
  4. }

CRM 2011 Hidden Tab in JavaScript

CRM 2011 Hidden Tab  in JavaScript

JavaScript:
  1. function hiddenTab ()
  2. {
  3. var statecode;
  4. var statecodeValue;
  5. var visible = false;
  6.  
  7. statecode = Xrm.Page.data.entity.attributes.get("statecode");
  8.  
  9. if (statecode != null && statecode.getValue() != null)
  10. {
  11. statecodeValue = statecode.getValue();
  12. if(statecodeValue != "1")
  13. visible = true;
  14. }
  15.  
  16. Xrm.Page.ui.tabs.get('tab_3').setVisible(visible);
  17. }

CRM 2011 Get the entityId in JavaScript, Get Current record ID

CRM 2011 Get the EntityId in JavaScript, Get Current record ID

JavaScript:
  1. function OnLoad()
  2. {
  3. var entityId = Xrm.Page.data.entity.getId();
  4. }

CRM 2011 Get the Entity Name in JavaScript

CRM 2011 Get the Entity Name in JavaScript

JavaScript:
  1. function OnLoad()
  2. {
  3. var entityName = Xrm.Page.data.entity.getEntityName();
  4. }

CRM 2011 Get Server url in JavaScript

CRM 2011 Get Server url in JavaScript

JavaScript:
  1. function OnLoad()
  2. {
  3. var serverUrl = Xrm.Page.context.getServerUrl();
  4. }

CRM 2011 Save Code in JavaScript

CRM 2011 Save Code in JavaScript

JavaScript:
  1. Xrm.Page.data.entity.save(); // for saving a record
  2. Xrm.Page.data.entity.save("saveandclose"); // for save and close
  3. Xrm.Page.data.entity.save("saveandnew"); // for save and new

CRM 2011 中止OnSave時儲存到實體資料庫

CRM 2011 中止OnSave時儲存到實體資料庫
CRM 2011 stop onsave

JavaScript:
  1. function OnSave(executionObj)
  2. {
  3. executionObj.getEventArgs().preventDefault();
  4. return false;
  5. }

CRM 2011 取得表單Status Value

CRM 2011 取得表單Status Value
CRM 2011 Get Form Status Value

JavaScript:
  1. function OnLoad()
  2. {
  3. alert(Xrm.Page.data.entity.attributes.get("statuscode").getValue());
  4.  
  5. if (Xrm.Page.data.entity.attributes.get("statuscode").getValue() == 1)
  6. {
  7. // Code
  8. }
  9. }


Entity
Status (statecode)
Associated Status Reason (statuscode)
Account (account)
0 Active
1 Active
1 Inactive
2 Inactive
Activity (activitypointer)
0 Open
1 Open
1 Completed
2 Completed
2 Canceled
3 Canceled
3 Scheduled
4 Scheduled
Appointment (appointment)
0 Open
1 Free
2 Tentative
1 Completed
3 Completed
2 Canceled
4 Canceled
3 Scheduled
5 Busy
6 Out of Office
Article (kbarticle)
1 Draft
1 Draft
2 Unapproved
2 Unapproved
3 Published
3 Published
Campaign (campaign)
0 Active
0 Proposed
1 Ready To Launch
2 Launched
3 Completed
4 Canceled
5 Suspended
Campaign Activity (campaignactivity)
0 Open
0 In Progress
1 Proposed
4 Pending
5 System Aborted
6 Completed
1 Closed
2 Closed
2 Canceled
3 Canceled
Campaign Response (campaignresponse)
0 Open
1 Open
1 Closed
2 Closed
2 Canceled
3 Canceled
Case (incident)
0 Active
1 In Progress
2 On Hold
3 Waiting for Details
4 Researching
1 Resolved
5 Problem Solved
2 Canceled
6 Canceled
Case Resolution (incidentresolution, notcustomizable)
0 Open
1 Open
1 Completed
2 Closed
2 Canceled
3 Canceled
Contact (contact)
0 Active
1 Active
1 Inactive
2 Inactive
Contract (contract)
0 Draft
1 Draft
1 Invoiced
2 Invoiced
2 Active
3 Active
3 On Hold
4 On Hold
4 Canceled
5 Canceled
5 Expired
6 Expired
Contract Line (contractdetail)
0 Existing
1 New
1 Renewed
2 Renewed
2 Canceled
3 Canceled
3 Expired
4 Expired
Currency (transactioncurrency)
0 Active
0 Active
1 Inactive
1 Inactive
Discount (discounttype)
0 Active
100001 Active
1 Inactive
100002 Inactive
E-mail (email)
0 Open
1 Draft
8 Failed
1 Completed
2 Completed
3 Sent
4 Received
6 Pending Send
7 Sending
2 Canceled
5 Canceled
Fax (fax)
0 Open
1 Open
1 Completed
2 Completed
3 Sent
4 Received
2 Canceled
5 Canceled
Invoice (invoice)
0 Active
1 New
2 Partially Shipped
4 Billed
5 Booked (applies to services)
6 Installed (applies to services)
1 Closed (deprecated)
3 Canceled (deprecated)
7 Paid in Full (deprecated
2 Paid
100001 Complete
100002 Parial
3 Canceled
100003 Canceled
Lead (lead)
0 Open
1 New
2 Contacted
1 Qualified
3 Qualified
2 Disqualified
4 Lost
5 Cannot Contact
6 No Longer Interested
7 Canceled
Letter (letter)
0 Open
1 Open
2 Draft
1 Completed
3 Received
4 Sent
2 Canceled
5 Canceled
Marketing List (list)
0 Active
0 Active
1 Inactive
1 Inactive
Opportunity (opportunity)
0 Open
1 In Progress
2 On Hold
1 Won
3 Won
2 Lost
4 Canceled
5 Out-Sold
Order (salesorder)
0 Active
1 New
2 Pending
1 Submitted
3 In Progress
2 Canceled
4 No Money
3 Fulfilled
100001 Complete
100002 Partial
4 Invoiced
10003 Invoiced
Phone Call (phonecall)
0 Open
1 Open
1 Completed
2 Made
4 Received
2 Canceled
3 Canceled
Price List (pricelevel)
0 Active
100001 Active
1 Inactive
10002 Inactive
Product (product)
0 Active
1 Active
1 Inactive
2 Inactive
Quote (quote)
0 Draft
1 In Progress
1 Active
2 In Progress
3 Open
2 Won
4 Won
5 Out-Sold
3 Closed
5 Lost
6 Canceled
7 Revised
Service Activity (serviceappointment)
0 Open
1 Requested
2 Tentative
1 Closed
8 Completed
2 Canceled
9 Canceled
10 No Show
3 Scheduled
3 Pending
4 Reserved
6 In Progress
7 Arrived
Task (task)
0 Open
2 Not Started
3 In Progress
4 Waiting on someone else
7 Deferred
1 Completed
5 Completed
2 Canceled
6 Canceled