Marcelo Ramos

Desenvolvimento em .NET, Banco de Dados e Tecnologia em Geral

Highlighting Map Areas

Para dar um efeito de brilho ao passar o mouse sobre Map Areas, você pode usar a biblioteca Mapper.js
A implementação é bem simples e com pouquissimo codigo já temos um exemplo funcional

http://www.netzgesta.de/mapper/
http://ajaxian.com/archives/mapperjs-10-highlighting-for-imagemaps

Um exemplo da utilidade é usar em conjunto com o Chart Controls, para destacar cada area do gráfico ao passarmos ou mouse sobre elas

[]s

Posted: ago 02 2009, 15:08 by marcelo | Comentários (30) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Gráficos no ASP.NET com Microsoft Chart Controls

O uso de gráficos em aplicações web se tornou cada vez mais comum. Temos várias opções pagas no mercado, e desde o fim do ano passado a Microsoft disponibilizou seu recurso de representação gráfica para WindowsForms e WebForms, o Microsoft Chart Controls. A primeira e mais óbvia vantagem é o custo zero, o Chart Controls é de graça e pode ser baixado nos links abaixo :

Microsoft Chart Controls for Microsoft .NET Framework 3.5
http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=en

Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008
http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&displaylang=en

A outra vantagem que vejo é a simplicidade de uso, depois de instalado, basta arrastá-lo da Toolbox do Visual Studio e com poucas linhas de código já se tem resultado.

Vamos ver um simples exemplo, representando vendedores e o total de vendas de cada um deles.

Abra o Visual Studio 2008 ou o Visual Web Developer 2008 e crie um novo site.
Localize na Toolbox, aba Data, o controle Chart e arraste para seu arquivo default.aspx.



Chart Control na aba Data da Toolbox.
 

Não vou entrar em detalhes de layout, essa parte pode ser facilmente configurada nas propriedades do controle. Salvo isso, o codigo em seu aspx deve ficar similar a esse :

<asp:Chart ID="Chart1" runat="server"
    
BackColor="128, 128, 255"
    
BackGradientStyle="TopBottom"
     BackImageWrapMode="Scaled"
    
BackSecondaryColor="192, 192, 255"
     BorderlineColor="255, 192, 128"
     Width="539px" >

     <BorderSkin                  
     
BackGradientStyle="TopBottom" 
      
BackImageTransparentColor="192, 255, 192" 
      SkinStyle="Raised" />
           

     <
series>

    
<asp:Series Name="Series1">
               
    
</asp:Series>
           
    
</series>


     <
chartareas>
    
    
<asp:ChartArea
     
BackColor="128, 128, 255"
      BackGradientStyle="TopBottom"
                 
     
Name="ChartArea1">
                 
    
</asp:ChartArea>
    
</chartareas>

</
asp:Chart>   

No code-behind ( default.aspx.cs ), vamos codificar o evento Load para criar os dados e vincular ao nosso controle de gráfico.

protected void Page_Load(object sender, EventArgs e){

// Criando dois arrays, um com os nomes dos vendedores, e
// Outro com os valores das vendas
string[] Vendedores = { "João", "José", "Antônio", "Maria" };
double[] Totais = { 1000, 2300, 1220.33, 2222.40 }; 

// Adicionando Título
Chart1.Titles.Add("Relatório de Vendas"); 

// Setando tipo de Grafico ( Colunas Verticais )
Chart1.Series[0].ChartType = SeriesChartType.Column; 

// Vinculando os arrays ao Controle para que ele gere o
// Gráfico
Chart1.Series[0].Points.DataBindXY(Vendedores, Totais);           

// Mostrando os Gráficos com valores
Chart1.Series[0].IsValueShownAsLabel = true;

foreach (Series s in Chart1.Series)
{
 for (int i = 0; i < s.Points.Count; i++)     
 {           
   // Mostra o valor como tooltip
           
  
s.Points[i].ToolTip = "#VAL{C}";
      
 
}
}

}


Compilando nossa aplicação e rodando devemos ter
o resultado da imagem abaixo :





No próximo Post de Chart Controls vamos falar sobre o efeito HighLight, a mudança de cor ao passar o mouse sobre áreas do nosso gráfico.
[]s

Mais exemplos :  

Samples Environment for Microsoft Chart Controls
http://code.msdn.microsoft.com/mschart

Posted: jun 27 2009, 21:36 by marcelo | Comentários (48) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: ASP.NET | C# | Dicas de Tecnologia

Regular Expressions - Retirando Tags HTML de uma String

Como fazer para limpar as tags HTML da string abaixo de modo que só fiquemos com o texto ?

"<span><b>ASP.NET</b></span>"

Segue um exemplo usando Regular Expressions para retornar o Texto sem as tags HTML, no nosso caso, a palavra ASP.NET e jogar seu valor para a variável TextoPuro :

string
Html = "<span><b>ASP.NET</b></span>";
string TextoPuro = Regex.Replace( Html, @"<(.|\n)*?>", string.Empty );


A Classe Regex faz parte do namespace
System.Text.RegularExpressions


Aguardem os próximos Posts de Regular Expressions
[]s



Regular Expression Library
http://regexlib.com/

Posted: jun 21 2009, 02:07 by marcelo | Comentários (23) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: C# | Dicas de Tecnologia

ValidatorEnable - Habilitando e Desabilitando ASP.NET Validators

Quer desabilitar e habilitar de forma seletiva controles de validação do ASP.NET como RequiredFieldValidators e RegularExpressionValidators ?
Use a função ValidatorEnable.

Desabilitando :

function DisableValidator() {
    var myVal = document.getElementById('Id do Controle');
    ValidatorEnable(myVal, false);
}


Habilitando :

function EnableValidator() {
    var myVal = document.getElementById('Id do Controle');
    ValidatorEnable(myVal, true);
}


A função recebe como parâmetro o objeto Validator e um Boolean, False para desabilitar e True para habilitar o controle.

Podemos também unificar os exemplos acima :

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

function setValidator(bStatus, idControle) {
    var myVal = document.getElementById(idControle);
    ValidatorEnable(myVal, bStatus);
}

</script>

[]s

 

Posted: jun 16 2009, 23:26 by marcelo | Comentários (39) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Função Split no SQL 2005 - Recursividade usando Common Table Expressions ( CTE )

Imagine que você tenha um aplicativo de pesquisa Online de múltipla escolha,
que armezene o ID do usuário e as respostas, uma ao lado da outra, no mesmo campo, delimitadas por "|".  

 

Agora você precisa extrair os dados dessa coluna de forma que cada resposta apareca em uma linha,
como na imagem abaixo :
 

Vamos iniciar a criação do nosso ambiente.1o nossa tabela PESQUISA,
que terá um campo ID ( Chave ) e um campo RESPOSTAS
 

CREATE TABLE DBO.PESQUISA
(               
ID                 INT IDENTITY(1,1) NOT NULL,
               
RESPOSTAS  VARCHAR(8000) NOT NULL
)
GO

ALTER
TABLE DBO.PESQUISA ADD CONSTRAINT [PK_PESQUISA] PRIMARY KEY( ID )
GO 

Vamos popular nossa tabela para simular alguns cadastros :  

INSERT INTO DBO.PESQUISA ( RESPOSTAS )
SELECT 'a | b | c' UNION ALL
SELECT 'b | c' UNION ALL
SELECT 'a | c' UNION ALL
SELECT 'c' UNION ALL
SELECT 'a | b' UNION ALL
SELECT 'a' UNION ALL
SELECT 'b'
GO  

Com nosso ambiente montado, agora usaremos Commom Table Expression
para criar nosso "Split" de dados na coluna RESPOSTAS
,
separando os dados a cada "|" e mostrando cada um em uma linha:
 

DECLARE @delimitador VARCHAR(3)
SET @delimitador = '|' 

;WITH SqlSplit(id, i, j, respostas)
AS
(
SELECT id, i = 1, j = CHARINDEX(@delimitador, RESPOSTAS + @delimitador), respostas
FROM DBO.PESQUISA
UNION ALL
SELECT id, i = j + 1, j = CHARINDEX(@delimitador, RESPOSTAS + @delimitador, j + 1), respostas                
FROM SqlSplit
               
WHERE CHARINDEX(@delimitador, RESPOSTAS + @delimitador, j + 1) <> 0
)
SELECT ID, LTRIM(RTRIM(SUBSTRING(RESPOSTAS, i, j-i))) RESPOSTAS
FROM SqlSplit
WHERE SUBSTRING(RESPOSTAS, i, j-i) <> ''
ORDER BY id Nosso resultado :

 

Espero que seja útil
[]s



Recursive T-SQL Split Function
http://www.kodyaz.com/articles/sql-server-t-sql-split-function.aspx

WITH common_table_expression ( Transact-SQL )
http://msdn.microsoft.com/pt-br/library/ms175972.aspx

CHARINDEX ( Transact-SQL )
http://msdn.microsoft.com/en-us/library/ms186323.aspx

SUBSTRING ( Transact-SQL )
http://msdn.microsoft.com/pt-br/library/ms187748.aspx

Posted: jun 07 2009, 12:56 by marcelo | Comentários (27) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Dicas de Tecnologia | SQL