Pesquisa

Pesquisa personalizada

terça-feira, 24 de maio de 2011

Como trocar a coluna do DBGrid de lugar em Tempo de Execução

DBGrid , Tempo Execução, Delphi  , Colunas,  Banco de Dados,  Table, Ordenada,  Projeto ,

Olá, neste artigo mostrarei um forma bastante interessante de trabalhar com as colunas do DBGrid. Faremos a troca de posição das colunas usando o evento onTitleClick do DBGrid.

Quando o usuário clicar em uma coluna esta passará a ser a primeira coluna e a primeira trocará de lugar com a coluna clicada. A primeira coluna poderia ser usada para filtrar e/ou ordenar a tabela e sendo a coluna 0 (zero) fica mais fácil para identificar por qual coluna nossa table está ordenada/filtrada.

Desenhando o projeto

O design para este exemplo é bem compacto. Insira um TTable, um DataSource e um DBGrid. Altere suas propriedades conformes as tabelas abaixo. Sua tela deve se parecer com a Figura 1.

Continue Lendo

quinta-feira, 19 de maio de 2011

Exclusão Segura

Exclusão Segura, Registro  , Exclusão, Rotina, Referencia, Artigo MySql,  Codigo PHP,
Não existe nada pior do que excluir um registro “A” e o registro “B” perder sua referencia. Existem varias formas de evitar esse tipo de erro, nesse artigo é demonstrado uma rotina que é capaz de analisar o registro e verificar se o mesmo está associado a outro evitando perder referencia.

1 - Lógica
  • Verificar todas as tabela do banco de dados
  • Verificar se existe o campo
  • Verificar se o campo contém valor que se deseja excluir
  • Se existir conta mais um e retorna false
  • Se não, excluir o registro com segurança e retorna true
2 – Funções do PHP utilizadas
  • Mysql_connect
  • Mysql_select_db
  • Mysql_num_fields
  • Mysql_query
  • Mysql_fetch_row
  • Mysql_fetch_assoc
  • Mysql_fetch_field
Leia o Artigo Completo

quinta-feira, 5 de maio de 2011

Validação da Chave NF-e VB.Net

Artigo VB.net,  NF-e, Chave, 44 Dígitos, Nota Fiscal Eletrônica, Progrmação, Dicas  ,
Está função mostra como efetuar o cálculo do módulo 11 para a chave da NF-e composta por 44 caracteres, sendo 43 números e o 44 é dígito verificador da chave;

Esta função ajuda ao usuário caso ele tenha que digitar a nota.

A função pode ser chamada quando sai do campo chave ou antes de salvar o dado.

Primeiramente atribui a uma variável o valor do campo chave, removendo os espaços em branco, caso a chave seja composta da seguinte forma (DDDD DDDD DDDD ...);

Dim chave As String = TextBoxChave.Text.Replace(" ", "")

Após verifica se a chave tem 44 caracteres, caso não tenha não é necessário validar os demais campos.

If Len(chave) <> 44 Then

MsgBox("O Número da Chave da nota deve ter 44 Números! ", MsgBoxStyle.Critical)

TextBoxChave.Focus()

Exit Sub

End If

Chamada de função que retorna (True ou False) conforme o resultado do cálculo, passando a chave por parâmetro.

If Not validachavenfe(chave) Then

MsgBox("O Número da Chave da nota é inválida! ", MsgBoxStyle.Critical)

TextBoxChave.Focus()

Exit Sub

End If

Chamada da função, recebendo os 44 dígitos como parâmetro

Private Function validachavenfe(ByVal chave As String)

'Pausa para explicação
'Dim Vetor(4) As Integer Define um array com 5 elementos iniciados com zero
'Dim Vetor As Integer = new Integer(4) {} Define um array com 5 elementos iniciados com zero
'Dim Vetor() As Integer = {1, 2, 3, 4, 5} Define um array com 5 elementos e atribui valores a cada elemento
'Dim Vetor As Integer = new Integer(4) { 0, 1, 2, 3, 4} Define um array com 5 elementos e atribui valores a cada elemento
'Redim Vetor(10) Redimensiona o array Vetor para 11 elementos
'ReDim Preserve Vetor(10) Redimensiona o array Vetor para 11 elementos


Vetor que irá receber os dígitos da chave
Dim Numero(42) As Integer

Vetor com o peso de cada um dos dígitos
Dim pesos() As Integer = {4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2}

Dim soma As Integer = 0

Dim i As Integer

Dim resultado1 As Integer

Atribuindo ao vetor cada valor da chave até o indice 43.

For i = 0 To Numero.Length - 1
Numero(i) = CInt(chave.Substring(i, 1))
Next

Multiplica os valors da chave pelo seu peso e soma o resultado.

For i = 0 To Numero.Length - 1
soma = soma + (Numero(i) * pesos(i))
Next

Efetua o resto da divisão

soma = soma - (11 * (Int(soma / 11)))

Como regra da validação se o resultado for 0 ou 1 o digito verificador tem que ser igual a 0

If soma = 0 Or soma = 1 Then
resultado1 = 0
Else
Se for maior que 1 tem que diminuir de 11;
resultado1 = 11 - soma
End If


Verifica se o resultado é igual ao ultimo digito e retorna true ou false

If resultado1 = CInt(chave.Substring(43, 1)) Then
Return True
Else
Return False
End If

'Fim da Função
End Function

segunda-feira, 2 de maio de 2011

Criar e usar domínios (domain's)

Interbase , Firebird  , Domains, Dominios, Banco de Dados  , Manutenção do Banco


No InterBase e FireBird domínios são como tipos de dados. Tais domínios têm grande semelhança com o conceito de domínio aplicado à matemática, ou seja, um domínio define um conjunto de valores válidos para uma dada situação.

Podemos criar qualquer banco de dados sem fazer uso explícito de domínios. No entanto usar domínios explicitamente pode deixar o banco de dados mais organizado, com regras claras e bem definidas, e ainda conseguir uma economia substancial de mão de obra na construção e manutenção do banco.

Para demonstrar a utilidade dos domínios, vamos criar dois exemplos.

Continue Lendos...