Dica: extrair dados com Regular Expression
Somente uma dica, pra quem acha que Regular Expression só serve para validar dados, exitem vários usos para elas, tais como extrair dados, validar e substituir dados.
Extrair dados
- string texto = @”Nome: Rodolfo Fadino”;
- Match m = Regex.Match(texto, @”Nome: (.*$)”);
- Console.WriteLine(m.Groups[1]);
- Console.ReadKey();
//Rodolfo Fadino
Reporting Services 2008 – 1ª parte
Olá, nesta série de posts irei abordar todo o ciclo de desenvolvimento de um relatório utilizando a ferramenta chamada Reporting Services 2008, a ordem de assuntos será:
- Relatório Tabulares básicos com Reporting Services
- Relatório Matrix com Reporting Services
- Relatórios com sub-relatórios e dados de consulta
- Deploy dos relatórios
Começando
Primeiro passo que devemos é termos instalado o Visual Studio 2008 e o SQL Server Business Intelligence Development Studio, a partir disso podemos ir para nosso primeiro passo:
1º Criando o Projeto
Primeiro passo é criar um projeto no Vs2008 do tipo Report Server Project
2º Adicionar um novo Data Source
Como vocês podem ver o template do projeto do tipo Reporting Services Project jpa cria automáticamente duas pastas, uma chamada Shared Data Source e outra chamada Reports.
O que iremos faer é adicionar um Data Source para nosso relatório
Após isso irá abrir um wizard para que seja adicionada as propriedades da conexão com o banco de dados, nesse exemplo irei utilizar SQL Server 2008 com autenticação do windows e um banco de dados chamado Northwind
3º Adicionando o Relatório
Clicando sobre o diretório de Reports nos aparece uma opção de adicionar um novo relatório
O primeiro passo para adicionar um relatório é escolher um Data Source para ele
Agora vamos fazer a seguinte consulta no conhecido Northwind
Select
p.ProductName as Produto,
p.UnitPrice as ‘Preço unitário’,
p.QuantityPerUnit as ‘Quantidade por unidade’,
c.CategoryName as ‘Categoria’,
c.CategoryID as ‘Codigo Categoria’,
s.CompanyName as ‘Fornecedor’,
s.ContactName as ‘Contato’
from
[dbo].Products as p
inner join [dbo].Categories as c on p.CategoryID = c.CategoryID
inner join [dbo].Suppliers as s on p.SupplierID = s.SupplierID
Adicionamos a consulta ao relatório, claro que para facilitar também podemos utilizar Procedures para gerar o relatório
Agora teremos que optar pela estrutura do relatório, neste exemplo optaremos por uma estrutura tabular
O próximo passo será dispormos os dados como queremos no relatório, eu optei por agrupar os Produtos pelas suas Categorias, como detalhes estou selecionando as propriedades dos produtos e de seu fornecedor
O layout da tabela também será opcional,”em passos” ou em “blocos”, com a opcão drilldown (detalhamento) habilitada
Agora podemos selecionar o estilo do relatório
Finalmente no ultimo passo aparece um resumo de todo seu relatório e a opção de você alterar o nome do relatório
Agora nos é apresentado o relatório em modo design onde muita coisa pode ser customizada e alterada
E também já é possivel ter um preview do relatatório
Bom espero que seja útil este post, qualquer dúvida ou sugestão estou a disposição.
Obrigado
Rodolfo

C# 4.0 Parâmetros Opcionais e Nomeados
Olá, acabei de instalar a ultima versão do Visual Studio Ultimate 2010 Beta2, começando a explorar as novidades do ASP.NET 4 e do C# 4.0 me deparei com uma nova funcionalidade do C# muito util. Os parâmetros opcionais e nomeados.
Antes do C#4.0
Quando queriamos escrever um método que possuisse algum parâmetro como opcional precisariamos sobrecarregar o mesmo e reescrever seu codigo:
- public class Foto
- {
- public int id { get; set; }
- public string nome{ get; set; }
- public string descricao { get; set; }
- public string _extensao { get; set; }
- public string GetUrlFoto()
- {
- string path = ConfigurationManager.AppSettings["dirImagens"].ToString();
- string url = path + “/” + nome + TamanhoFoto.medio.ToString() + _extensao;
- return url;
- }
- public string GetUrlFoto( TamanhoFoto tamanho )
- {
- string path = ConfigurationManager.AppSettings["dirImagens"].ToString();
- string url = path + “/” + nome + tamanho.ToString() + _extensao;
- return url;
- }
- }
- Foto foto = new Foto();
- string url = foto.GetUrlFoto();
- string url2 =foto.GetUrlFoto(TamanhoFoto.grande);
Antes do C# 4.0 quando queriamos criar um método que pode ser chamados com várias chamadas diferentes era preciso sobrecarregar o método.
Entretanto isso pode ocasionar muita repetição de codigo e difícil manutenção.
Com o C#4.0
Agora com o C# 4.0 podemos criar um unico método sem sobrecargas com um parametro nomeado com valor padrão
- public class Foto
- {
- public int id { get; set; }
- public string nome { get; set; }
- public string descricao { get; set; }
- public string _extensao { get; set; }
- public string GetUrlFoto(TamanhoFoto tamanho = TamanhoFoto.medio)
- {
- string path = ConfigurationManager.AppSettings["dirImagens"].ToString();
- string url = path + “/” + nome + tamanho.ToString() + _extensao;
- return url;
- }
- }
- Foto foto = new Foto();
- string url = foto.GetUrlFoto();
- string url2 = foto.GetUrlFoto(tamanho: TamanhoFoto.grande);
Bem é isso, ficamos todos no aguardo do lançamento do Visual Studio 2010, e em breve mais posts sobre as principais novidades do C# 4.0 e do ASP.NET 4
Obrigado
Rodolfo
ColorPicker jQuery plugin, em 5 passos
Olá, nesse post tentarei demonstrar uma das opções de ferramenta para a seleção de cores dentro de uma pagina web.
Com o aumento das páginas com itens dinâmicos, que podem ser customizados pelos usuários, como fontes, bordas, textos, e, principalmente cores, Surge a necessidade de uma maneira do usuário selecionar a cor para uma determinada propriedade sem inserir ela diretamente em hexadecimal ou em rgb
O plugin que vamos utilizar do jQuery se chama ColorPicker, pode ser baixado em http://www.eyecon.ro/colorpicker/#download
Passo 1
Adicione os arquivos baixados ao projeto, os principais são:
- images
- colorpicker.js
- colorpiker.css
Lembrando que o jQuery é necessário
Passo 2
Chame os arquivos javascript e a folha de estilo no Header da página
- <asp:Content ID=”HeaderContent” runat=”server” ContentPlaceHolderID=”HeadContent”>
- <script src=”Scripts/jquery-1.3.2.js” type=”text/javascript”></script>
- <script src=”Scripts/colorpicker.js” type=”text/javascript”></script>
- <link href=”Styles/colorpicker.css” rel=”stylesheet” type=”text/css”></link>
- </asp:Content>
- <asp:Content ID=”HeaderContent” runat=”server” ContentPlaceHolderID=”HeadContent”>
- <script src=”Scripts/jquery-1.3.2.js” type=”text/javascript”></script>
- <script src=”Scripts/colorpicker.js” type=”text/javascript”></script>
- <link href=”Styles/colorpicker.css” rel=”stylesheet” type=”text/css”></link>
- </asp:Content>
Passo 3
Insira um TextBox que utilizará como objeto para retornar a cor selecionada pelo Color Picker
- Selecione a cor:
- <asp:TextBox ID=”txtCor” runat=”server”></asp:TextBox>
Passo 4
Agora precisaremos inicializar o Color Picker selecionado o TextBox via jQuery e passando alguns atributos
- <script type=”text/javascript”>
- $(‘#MainContent_txtCor’).ColorPicker({
- onSubmit: function(hsb, hex, rgb, el) {
- $(el).val(hex);
- $(el).ColorPickerHide();
- },
- onBeforeShow: function() {
- $(this).ColorPickerSetColor(this.value);
- }
- });
- </script>
Nesse código nós estamos definindo dois eventos:
- onBeforeShow, antes de exibir o componente ele pega a cor que está escrita no TextBox e seta no controle
- onSubmit, atribui a cor selecionada ao TextBox
E precisamos considerar qual será o ClientID do controle ASP.NET (MainContent_txtCor)
Passo5
Agora podemos trabalhar como quisermos em ambos os lados, Client e Server. Como exemplo vou manipular o valor no Server.
- <p>
- A cor selecionada foi:
- <asp:Label ID=”lblCor” runat=”server”> </asp:Label>
- </p>
- <asp:Button ID=”btnSalvar” runat=”server” Text=”Salvar” OnClick=”btnSalvar_Click” />
- protected void btnSalvar_Click(object sender, EventArgs e)
- {
- lblCor.Text = txtCor.Text;
- lblCor.ForeColor = ColorTranslator.FromHtml(“#” + txtCor.Text);
- }
Como exemplo desses passos teremos:
Obrigado,
Rodolfo
Linq to JSON C#
Como trabalhar de forma simples com objetos JSON no server side?
Procurando uma resposta para esta pergunta encontrei um projeto que tem como fruto uma biblioteca em .NET que manipula de forma simples dados em formato de JSON,
o projeto se chama Json.NET e pode ser baixado em http://www.codeplex.com/Json.
Suas principais caracteristicas são um serializador JSON flexível para converter rapidamente. NET para JSON e de volta, e LINQ to JSON para leitura e escrita JSON.
Para isso primeiramente devemos adicionar referência a dll do projeto, então podemos partir para alguns exemplos:
Serializando
- Pessoa pessoa = new Pessoa { Nome = “Rodolfo”,Sobrenome= “Fadino” ,Idade = 20 };
- string jsonpessoa = JsonConvert.SerializeObject(pessoa, Formatting.Indented);
O resultado exibido será uma string:
{ “Nome”: “Rodolfo”, “Sobrenome”: “Fadino”, “Idade”: 20 }
- List<Pessoa> pessoas = new List<Pessoa>();
- Pessoa rodolfo = new Pessoa { Nome = “Rodolfo”,Idade = 20 };
- Pessoa alexandre = new Pessoa { Nome = “Alexandre”, Idade = 21 };
- Pessoa eduardo = new Pessoa { Nome = “Eduardo”, Idade = 22 };
- Pessoa taura = new Pessoa { Nome = “Taurã”, Idade = 23 };
- pessoas.Add(rodolfo);
- pessoas.Add(alexandre);
- pessoas.Add(eduardo);
- pessoas.Add(taura);
- string jsonpessoas = JsonConvert.SerializeObject(pessoas, Formatting.Indented);
- Pessoa pessoa = new Pessoa { Nome = “Rodolfo”,Sobrenome= “Fadino” ,Idade = 20 };
- string jsonpessoa = JsonConvert.SerializeObject(pessoa, Formatting.Indented);
- lblJson.Text = jsonpessoa;
O resuldao exibido será uma string:
[ { "Nome": "Rodolfo", "Idade": 20 }, { "Nome": "Alexandre", "Idade": 21 }, { "Nome": "Eduardo", "Idade": 22 }, { "Nome": "Taurã", "Idade": 23 } ]
Agora podemos passar para o processo inverso, através de uma string no formato de um JSON iremos utilizar Linq to JSON
Linq to JSON
- string json = @”{
- “”Nome”": “”Rodolfo”",
- “”Idade”": 20,
- “”Certificacoes”": [
- ""MCP"",
- ""MCTS"",
- ""MCPD""
- ]
- }”;
- JObject objRodolfo = JObject.Parse(json);
- string Nome = (string)objRodolfo["Nome"];
- //Rodolfo
- JArray certificacoes = (JArray)objRodolfo["Certificacoes"];
- //[ "MCP", "MCTS", "MCPD" ]
- string certificacao1 = (string)certificacoes[1];
- //MCTS
Outra coisa que podemos fazer são consultas Linq
- JObject objPessoas = JObject.Parse(@”{
- “”Pessoas”" :[
- {""Nome"":""Nome1"",
- ""Idade"":20,
- ""Profissao"":""Desenvolvedor""},
- {""Nome"":""Nome2"",
- ""Idade"":20,
- ""Profissao"":""Desenvolvedor""},
- {""Nome"":""Nome3"",
- ""Idade"":20,
- ""Profissao"":""Desenvolvedor""},
- {""Nome"":""Nome4"",
- ""Idade"":20,
- ""Profissao"":""Desenvolvedor""}
- ]}”);
- IList<string> pessoas = objPessoas["Pessoas"].Select(p => (string)p["Nome"]).ToList();
- lblJson.Text = pessoas.First();
- //Nome1
Obrigado
qualquer duvida estou a disposição.
Rodolfo















