quinta-feira, 27 de novembro de 2008

>> Dicas JavaScript (ASP.NET & MSCRM 4.0)

Segue abaixo códigos JavaScript úteis no desenvolvimento ASP.NET e também para uso no Microsoft Dynamics CRM 4.0:

JS ASP.NET - Função para obter o valor de algum dos parâmetros da Query String da página.

function getQueryStringParam(name)
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null ) return "";
else
return results[1];
}

JS ASP.NET - Função para Converter o primeiro caractere de toda frase em Maiúsculo.

function UCWords(str)
{
var arrStr = str.split(" ");
var strOut = "";
var i = 0;
var stringValues = "da-de-do-das-dos";
while (i < arrStr.length)
{

if (stringValues.indexOf(arrStr[i].toLowerCase()) < 0)
{
firstChar = arrStr[i].substring(0,1);
remainChar = arrStr[i].substring(1);
firstChar = firstChar.toUpperCase();
remainChar = remainChar.toLowerCase();
strOut += firstChar + remainChar + ' ';
}
else
strOut += arrStr[i] + ' ';

i++;
}
return strOut.substr(0,strOut.length - 1);
}

JS ASP.NET - Adicionar / Remover itens em um DropDownList.

function ClearDropDownList(list)
{
for(i=list.options.length-1; i>=0 ;i--)
{
list.remove(i);
}
}
function addDropDownListOption(list, text, value)
{
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
list.options.add(optn);
}

JS MSCRM 4.0 - Validação de campo Data via JavaScript.

if (ValidateDate(crmForm.all.requestdeliveryby))
{
// Custom code...
}

function ValidateDate(field){
var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = ".";
var leap = 0;
var err = 0;
var i;
err = 0;
var day = DateField.DataValue.getDate();
var month = (DateField.DataValue.getMonth()+1);
var year = DateField.DataValue.getYear();
DateValue = day + "/" + month + "/" + year;
/* Delete all chars except 0..9 */
for (i = 0; i < DateValue.length; i++) {
if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
DateTemp = DateTemp + DateValue.substr(i,1);
}
}
DateValue = DateTemp;
/* Validation of month*/
if ((month < 1) || (month > 12)) {
err = 21;
}
/* Validation of day*/
if (day < 1) {
err = 22;
}
/* Validation leap-year / february / day */
if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
leap = 1;
}
if ((month == 2) && (leap == 1) && (day > 29)) {
err = 23;
}
if ((month == 2) && (leap != 1) && (day > 28)) {
err = 24;
}
/* Validation of other months */
if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
err = 25;
}
if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
err = 26;
}
/* if 00 ist entered, no error, deleting the entry */
if ((day == 0) && (month == 0) && (year == 00)) {
err = 0; day = ""; month = ""; year = ""; seperator = "";
}
if (err != 0)
{
alert("Data Inválida!");
DateField.focus();
}
return (err == 0);
}

JS MSCRM 4.0 - Inserir / Formatar objetos dinamicamente na página do CRM.

with(crmForm.all.new_labelicms)
{
style.border = 0;
style.color = '#6699cc';
style.fonteSize = '7px';
style.fontWeight = 'bold';
style.overflow = 'hidden';
Disabled = true;
DataValue = 'Obs % ICMS: No caso de venda direta...'
}

/* Insert Adjacent Elements */
var server = window.location.host;
var oImg = document.createElement("<" + "img src='http://" + server + "/_imgs/ico/16_alert.gif'" + " />");
var oHr = document.createElement("<" + "HR class='ms-crm-MenuList-Spacer'" + ">");
var oSpn = document.createElement("<" + "span" + ">");
oSpn.innerText = ' Observações';
oSpn.style.fontWeight = 'bold';
crmForm.all.mit_labelicms.insertAdjacentElement("BeforeBegin",oImg);
crmForm.all.mit_labelicms.insertAdjacentElement("BeforeBegin",oSpn);
crmForm.all.mit_labelicms.insertAdjacentElement("BeforeBegin",oHr);

JS MSCRM 4.0 - AJAX no CRM - Chamada assíncrona em um Web Services Customizado.

function FillUOMProduct()
{
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
var server = window.location.host;
var params = "?productID=" + crmForm.all.productid.DataValue[0].id;
params += "&fields=productnumber,defaultuomid";
var url="http://"+ server+"/WebServicesCRM/Product.asmx/GetProductById"+params;
xmlHttpRequest.open("GET", url, true);
xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttpRequest.setRequestHeader ("SOAPAction", "http://tempuri.org/GetProductById");
xmlHttpRequest.onreadystatechange = HandleStateChangeProduct;
xmlHttpRequest.send();
}

function HandleStateChangeProduct()
{
if (xmlHttpRequest.readyState == 4)
{
var doc = new ActiveXObject('Microsoft.XMLDOM');
var result = xmlHttpRequest.responseXML.xml;
doc.loadXML(result);
}
}

Nenhum comentário:

Postar um comentário

<< Ao enviar um comentário, favor clicar na opção [Enviar por e-mail comentários de acompanhamento para gtezini@gmail.com] >>