.Net developer

Spammer: Loser


Spammer querendo mandar vírus com fake do Bradesco...

Não sabe nem acertar o char-set coding do email falso q ele preparou!


Procedure inteligente

Como criar uma procedure inteligente, com filtros por todos os campos da tabela, opção de escolher quais colunas devem ser trazidas e como devem ser ordenados os registros.

Flexibidade total, pois funciona facilmente para necessidades distintas como:
  • pesquisar um cliente pelo seu ID (chave) e trazer todos seus dados
  • relatório de clientes cadastrados, com todos os dados da tabela, ordenando por ID.
  • listagem dos clientes, trazendo apenas ID e Nome para abastecer um combobox, por exemplo.





CREATE PROCEDURE [dbo].[STP_CLIENTE_LISTAR]
@ordenacao varchar(100) = null,
@colunas varchar(1000) = null,
@id_cliente int = null ,
@nm_fantasia varchar(30) = null ,
@nr_cnpj_cpf varchar(14) = null
AS
BEGIN

DECLARE @comando varchar(8000)

if @colunas is null
begin
SET @colunas = ' id_cliente ,
nm_cliente ,
nm_fantasia ,
nr_cnpj_cpf '
end

SET @comando =
'
SELECT ' + @colunas + '
FROM TB_CLIENTE
WHERE id_cliente = id_cliente '

--FILTROS
IF @nm_fantasia is not null
BEGIN
IF @nm_fantasia = ''
BEGIN
SET @comando = @comando + ' AND nm_fantasia is null '
END
ELSE
BEGIN
SET @comando = @comando + ' AND nm_fantasia = ''' + @nm_fantasia + ''''
END
END

IF @id_cliente is not null
BEGIN
IF @id_cliente = ''
BEGIN
SET @comando = @comando + ' AND id_cliente is null '
END
ELSE
BEGIN
SET @comando = @comando + ' AND id_cliente = ' + CAST(@id_cliente AS VARCHAR(10))
END
END

IF @nr_cnpj_cpf is not null
BEGIN
IF @nr_cnpj_cpf = ''
BEGIN
SET @comando = @comando + ' AND nr_cnpj_cpf is null '
END
ELSE
BEGIN
SET @comando = @comando + ' AND nr_cnpj_cpf = ''' + @nr_cnpj_cpf + ''''
END
END

---ORDENACAO
IF @ordenacao IS NOT NULL
BEGIN
SET @comando = @comando + ' ORDER BY ' + @ordenacao
END
ELSE
BEGIN
SET @comando = @comando + ' ORDER BY NM_CLIENTE'
END
EXECUTE(@comando)

END






Altura de div em css

Definindo altura auto-redimensionáveis (caso tenha conteúdo em excesso). O truque é necessário pois o IE não funciona direito!


min-height: 100px;
height: auto !important;
height: 100px;

Sem estádio e sem torcida

Públicos de São Paulo e Curinthia no Brasileirão 2009.

Mito: curinthiano vai mais ao estádio...


» os valores em negrito no final das listas representam os totais (e a verdade)
» jogos com público zero significa público não divulgado.
» Curinthia tinha 2 jogos a mais que o São Paulo com púbico não divulgado.
» por justiça, foram retirados 2 públicos do São Paulo do total computado.
» os 2 jogos retirados foram os 2 maiores públicos do São Paulo no campeonato (pra dar uma chance para o Curinthia...)

Escritório da Buenit (Brasil)

Lençol de zagueiro!

Anderson dando show no FIFA, goleando o Arsenal do Thiago (http://www.twitter.com/tavancini)

Stored Procedures com SubSonic

Como chamar uma Stored Procedure e obter seus dados num DataTable


StoredProcedure sp = DAL.SPs.Cliente_Listar(3);
DataTable dt = sp.GetDataSet().Tables[0];

string nome;
foreach (DataRow row in dt.Rows)
{
nome = row[1].ToString();
}

Para executar uma procedure só de atualização ou insert, bastava dar um sp.Execute() ao invés do GetDataSet().

No código, ao digitar o DAL.SPs. (logo depois do ponto) são listadas pelo Visual Studio todas as procedures da base!.

Para rodar este código, necessário o using SubSonic.

Como ter Subsonic? Se vira: http://www.subsonicproject.com/ ou dá uma googleada!

Masked Input Plugin

First, include the jQuery and masked input javascript files.

jquery.js
jquery.maskedinput.js

Next, call the mask function for those items you wish to have masked.

jQuery(function($){
$("#date").mask("99/99/9999");
$("#phone").mask("(999) 999-9999");
$("#tin").mask("99-9999999");
$("#ssn").mask("999-99-9999");
});

Optionally, if you are not satisfied with the underscore ('_') character as a placeholder, you may pass an optional argument to the maskedinput method.

jQuery(function($){
$("#product").mask("99/99/9999",{placeholder:" "});
});

Optionally, if you would like to execute a function once the mask has been completed, you can specify that function as an optional argument to the maskedinput method.

jQuery(function($){
$("#product").mask("99/99/9999",{completed:function(){alert("You typed the following: "+this.val());}});
});

You can now supply your own mask definitions.

jQuery(function($){
$.mask.definitions['~']='[+-]';
$("#eyescript").mask("~9.99 ~9.99 999");
});

http://digitalbush.com/projects/masked-input-plugin/

ecommerce

Meu sistema de e-commerce, o último que faço.
Somente programação:

Design implementado, totalmente com CSS:

Chave composta com SubSonic

Select qry = new Select();
qry.From(DAL.Tabela)
.Where(DAL.Tabela.Chave1).isEqualTo(valor1)
.And(DAL.Tabela.Chave2).isEqualTo(valor2);

DAL.Tabela oTabela = qry.ExecuteSingle<DAL.Tabela>();

oTabela.CampoTexto = "Novo valor";
oTabela.Save();


Preço em formato Moeda

Decimal aux = 1.9;
Console.WriteLine(aux);
Console.WriteLine(String.Format("{0:C}", v_uni));

A saida vai ser:

1.9
R$ 1,90

Slideshow @ Flickr