terça-feira, 4 de setembro de 2012

Dividir texto entre colunas utilizando funções

As funções de texto são úteis para manipular cadeias em dados, por exemplo, distribuindo o nome próprio, o segundo nome e o apelido de uma célula em três colunas separadas.


FUNÇÃOSINTAXE
ESQUERDAESQUERDA(texto,núm_caract)
SEG.TEXTOSEG.TEXTO(texto,núm_inicial,núm_caract)
DIREITADIREITA(texto;núm_caract)
PROCURARPROCURAR(texto_a_localizar,no_texto,núm_inicial)
NÚM.CARACTNÚM.CARACT(texto)

sexta-feira, 3 de agosto de 2012

Como converter tipos usando CAST e CONVERT no SQL Server

Vamos falar sobre como converter tipos de dados no SQL Server utilizando CAST e CONVERT. O “Castting” é a conversão de um tipo de dados em outro desde que sejam compatíveis entre si, como, por exemplo, um número inteiro em um texto ou um valor real em inteiro. Também é possível converter um valor convertido, por exemplo, um binário em texto e depois em inteiro.
Existem duas categorias de conversões de tipos de dados:
As conversões implícitas, que são invisíveis ao usuário, convertem automaticamente os dados de um tipo de dados para outro.
Por exemplo: se um smallint é comparado a um int, o smallint é implicitamente convertido para int antes de prosseguir com a comparação.
Já as conversões explícitas são aquelas onde é necessária a utilização das funções CAST ou CONVERT.

Por exemplo: converter o valor numérico 157.27 em uma cadeia de caracteres ‘R$ 157,27′:
CAST (157.27 AS VARCHAR (10))

As funções existentes no SQL Server para converter tipos de dados são a CAST e CONVERT, porém o primeiro é mais aconselhado por ser baseado no padrão SQL-92.
Fique atento sempre às conversões que estão sendo feitas, pois alguns tipos de conversões não são permitidas, como, por exemplo, transformar um datttime em real ou float.

Estrutura básica do CAST

CAST([valor a ser convertido] AS [tipo de dados para conversão])

Estrutura básica do CONVERT

CONVERT( [tipo de dados para conversão], [valor a ser convertido])
Alguns Exemplos (Execute no SQL Server e veja o resultado):

SELECT CAST(20.1548 AS INT) ;
-- Resultado = 20

SELECT CAST(CAST(0x313233 AS VARCHAR) AS DECIMAL)
-- Resultado = 123

SELECT CAST(10.3496847 AS money)
-- Resultado = 10.3497

SELECT 'R$ ' + CAST(10.3496847 AS VARCHAR(12))
-- Resultado = R$ 10.3496847

SELECT 'R$ ' + CAST(CAST(10.3496847 AS money) AS VARCHAR(10))
-- Resultado = R$ 10.35

Fonte: http://www.bau-de-dev.com/banco-de-dados/sql-server/como-converter-tipos-usando-cast-e-convert-no-sql-server
Por Posted by Rodrigo Bravo in SQL Server on novembro 22, 2010

terça-feira, 12 de junho de 2012

Relatórios gerenciais e operacionais em php a partir de uma base MSSQL

Hoje vou colocar alguns exemplos de relatórios extraem dados de uma base MSSQL 2005 alimentada pelo sistema Microsiga Protheus que desenvolvi em php e que visam suprir a deficiência do mesmo com relação a relatórios claros de fácil interpretação e facilmente personalizados.

Os gráficos inseridos são  FUSIONCHARTS http://www.fusioncharts.com/ e dão mais clareza ao resultados.

Abaixo um relatório de faturamento versus pedidos de compras mês a mês que utiliza gráficos e também os dados de forma agrupada com opção do usuário clicar em um determinado valor e poder verificar os detalhes dos itens o compõe.


Outro relatório o que chamei de painel financeiro onde o usuário pode analisar os dados mês a mês agrupado por naturezas e atualizados a cada F5.


Compras por fornecedor mês a mês:


Fluxo de caixa:




até mais...

quinta-feira, 7 de junho de 2012

Configurando SNMP no Windows 7

                  O primeiro passo para habilitar a leitura do protocolo SNMP em uma estação de trabalho com windows 7 é ativar o recurso SNMP no sistema. Siga os passos 1,2 e 3.
Localize "Protocolo SNMP" e ative o recurso.
Aguarde o sistema instalar o recurso SNMP.
Digite "serviços" conforme indicado abaixo (versão em inglês digite:"services")
Localize "Serviço SNMP".
Vá em segurança e adicione o endereço IP do seu Sistema de Gestão de Rede (NMS) que irá fazer as consultas snmp. No exemplo o Sistema de Gestão de Rede possui o endereço "192.168.1.1".
Ainda em segurança configure o nome da comunidade. No exemplo abaixo configurei o nome "CPU". Lembrando que o nome de comunidade é "case sensitive".
Pronto! Agora vá no seu Sistema de Gestão de Rede (NMS) e tente realizar a leitura de informações como o uso dos processadores e memórias, ocupação de disco ou a quantidade de usuários logados no sistema. Lembrando que o nome de comunidade configurado na estação deve ser o mesmo na NMS. No exemplo acima liberamos a estação somente para aceitar a leitura snmp apartir da NMS com o endereço 192.168.1.1.

Sugestão para NMS : THE DUDE - Eu utilizo e é muito bom

Acerto do MV_DOCSEQ



Definição do Processo

Para realizar o acerto da numeração dos campos D*_NUMSEQ, é necessário primeiro realizar o levantamento da maior numeração gravada.


Descrição do Processo

Para realizar o levantamento da maior numeração gravada deve-se  seguir o procedimento abaixo:

• Via MPSDU, abrir as tabelas SD1SD2 SD3.

• Em cada uma destas tabelas, verificar qual é o maior valor gravado entre as tabelas para os campos D1_NUMSEQD2_NUMSEQD3_NUMSEQ.

• Após identificar o maior valor, incrementa-lo (se por exemplo encontrar o maior valor sendo '001000' o valor incrementado será '001001') e informa-lo no parametro MV_DOCSEQ.

• Após realizar uma nova movimentação (interna, NF entrada ou NF saida) e verificar se será apresentada alguma mensagem de validação. Caso continue sendo apresentada, significa que o valor informado no parametro não foi o maior valor entre os registros da tabela. Dessa forma deve-se realizar o procedimento novamente.

Informações Adicionais

Observação: Caso o parametro MV_DOCSEQ esteja definido por filial, ao realizar o filtro para identificar o maior valor de D*_NUMSEQ, deve realizar o filtro por filial.
 Realizar as alterações em ambiente de teste para validação.

segunda-feira, 14 de maio de 2012

Caixas de Diálogo


Caixas de Diálogo

Um recurso interessante de JavaScript é a possibilidade de criar caixas de diálogo simples, que podem ser muito informativas aos usuários que a visualizam.
Essas caixas de diálogo podem ser de alerta, de confirmação ou de prompt de entrada. Todas elas são chamadas de forma simples e intuitiva por uma função.

Alert

As caixas de diálogo de alerta são simples e informativas. Elas, geralmente, são utilizadas em validação de formulários ou bloqueio de ações.
Sua função é mostrar apenas uma mensagem com um botão de confirmação para que esta seja fechada.
Para chamar esta caixa de diálogo usamos a função alert(). Esta função recebe como parâmetro uma string que será a mensagem a ser exibida. Vejamos o código abaixo:

Em caixas de diálogo há a possibilidade de controlar o fluxo de texto usando 
\n para a quebra de linhas.
Prompt
A caixa de diálogo de prompt nos possibilita requerer uma entrada ao usuário apesar de não ser tão útil, pois esse recurso pode facilmente ser substituído por um campo de texto feito em HTML.
Para chamarmos esta caixa de diálogo, usamos a função prompt() que recebe uma string como parâmetro. Esse parâmetro será a mensagem a ser exibida dentro da caixa de diálogo.
A caixa de diálogo de prompt possui três elementos: um campo input para texto, um botão OK e outro CANCELAR.
A função prompt() sempre irá retornar um valor, ou seja, podemos gravar o resultado da função em uma variável ou algo assim. Se clicarmos no botão OK, o valor a ser retornado será o que estiver escrito no campo de texto, mesmo se ele estiver vazio. Se clicarmos em CANCELAR, o valor retornado será null.
Abaixo criamos um exemplo no qual exige que o usuário digite o nome dele. Para isso, colocamos o prompt dentro de uma estrutura de repetição while que tem a seguinte condição: se o resultado for null (ou seja, se o usuário clicar em cancelar), ou então, se o resultado for vazio (ou seja, se o usuário não digitar nada e clicar no OK), neste caso, deve-se executar a repetição.
Dessa forma nos asseguramos que o usuário sempre irá digitar alguma coisa dentro da caixa de diálogo.
1.

Confirm

A caixa de diálogo de confirmação é chamada pela função confirm() e tem apenas dois botões: um OK e outro CANCELAR. Assim como a função prompt(), a função confirm() também retorna um valor que pode ser true (verdadeiro) ou false (falso).
Como confirm() retorna um valor booleano, isso o torna ideal para ser usado com uma estrutura seletiva if. Por exemplo, podemos usar a caixa de diálogo de confirmação antes de redirecionarmos uma página para executar uma rotina para apagar algum registro do banco de dados.
No exemplo abaixo, não iremos tão profundamente quanto o cenário acima, pois envolve mais do que simples JavaScript. Aqui, apenas iremos demonstrar o resultado do clique em algum dos dois botões.
01.