Anderson Marques Neto

Desenvolvedor e Analista de Sistemas | IFPA

segunda-feira, 7 de março de 2016

Windows 10: O Menu Iniciar não abre? Saiba o que fazer

com 0 Comentário

O Windows 10 é um sistema com imensas funcionalidades mas também com alguns bugs estranhos. Recentemente, depois de efectuar umas actualizações oficiais da própria Microsoft, o Menu Iniciar do meu sistema deixou simplesmente de funcionar.

Sem erros aparentes ou alguma indicação do porquê de não funcionar, nada melhor que ir à procurar solução!



Uma das melhores novidades no Windows 10 foi sem dúvida o regresso do Menu Iniciar. Incrivelmente o Windows 10 tem apresentado alguns bugs ao nível deste menu, algo que se tem vindo a registar ao longo de várias versões lançadas. Depois do erro crítico que afecta o Menu Iniciar, há agora vários utilizadores que se queixam do facto do Menu Iniciar simplesmente não abrir.
Como resolver?

Depois de algumas pesquisas parece que a solução foi encontrada e funciona na maioria dos sistemas afectados. Se o seu Menu Iniciar não abre, siga os seguintes passos:

Passo 1 – Abrir o powershell com privilégios de administrador




Passo 2 – Inserir na powershell o seguinte comando e de seguida carregar em Enter.

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}



Após introduzir o comando “milagroso” e passados alguns minutos o Menu Iniciar deverá ficar de novo disponível. Se tem este problema, não pense em formatar a máquina para resolver, experimente esta dica e depois diga-nos se funcionou.
Mais informações »

domingo, 6 de março de 2016

Padrões para Nomenclatura em um banco de dados

com 0 Comentário
1. INTRODUÇÃO
O objetivo deste documento é prover informações para formalizar a nomenclatura dos objetos de banco de dados, bem como apresentar regras para sua utilização evitando assim o hábito de existir diferentes nomenclaturas dentro da aplicação.
O documento apresenta os objetos de banco de dados com três itens:
Sintaxe, regras e exemplo. Isto para facilitar o entendimento do desenvolvedor.
2. BANCO DE DADOS
O nome do banco de dados deverá identificar o negócio que está sendo automatizado ou deverá refletir a sigla da aplicação.
Sintaxe:
{[a.. z]} _ xxxxxx , onde:
xxxxxx – indica o nome da aplicação que o banco de dados irá atender.
Para o nome da aplicação utilizar tudo em minúsculo com no máximo 25 caracteres de ‘a’ a ‘z’.
3. TABELAS
Exemplos:
tb_ordem_servico – Tabela de ordens de serviços
tb_pessoa – Tabela de pessoa física
tb_cliente – Tabela de clientes.
4. NOME DAS COLUNAS
IdentificaçãoDescrição do atributoTipo de dado utilizado
NMNome de coluna que irá armazenar valores “string”, ou seja, caracteres.(utilizar para nome próprio)String
NRNome de coluna que irá armazenar valores numéricos inteiros, para conteúdos significativos.Numérico
IEINDICAR SITUAÇÕES ESPECIAIS,
Nome de coluna que irá armazenar valores numéricos inteiros, utilizado em um dicionário de dados (Domínio)
Ex. 0 Aberto, 1 Fechado, 3 Cancelado
Numérico/String
DSNome de coluna que irá armazenar valores “string”, ou seja, caracteres que são descritivos.String (caracteres)
DTNome de coluna que irá armazenar valores do tipo dataData
HRNome da coluna que irá armazenar valores do tipo horaHora
VLNome de coluna que irá armazenar valores numéricos, ou seja, números que podem possuir casas decimaisNumérico
CDNome de coluna que irá armazenar valores numéricos inteiros, utilizado em atributos falsos.Numérico
STNome de coluna que irá armazenar valores do tipo caracteres com conteúdo pré-estabelecido. Ex. Coluna ST_Cliente pode ter seu conteúdo como sendo “A” ou “I” e nenhum outro valor a não ser esses estipuladosString
SGNome de coluna que irá armazenar siglas, EX. Coluna SG_ESTADO pode ter seu conteúdo como sendo as siglas de estados, SP, MG, GO, SC.String
Regras:
– Para siglas utilizar todas as letras em maiúsculo;
– Usar palavras no singular e sem acentuação;
– Usar nome que identifique e individualize o dado dentro da tabela;
– Dar nomes distintos para dados distintos;
– Utilizar o nome sempre no singular;
– Sempre acrescentar comentário sobre a informação da coluna
Exemplos:
Cd_pessoa – código da pessoa
nm_pessoa – nome da pessoa
dt_nascimento – data de nascimento
vl_salario – valor do salário
As informações da padronização do banco de dados foram criadas a partir de estudos e pesquisas em outros sistemas e na internet.
Esse slide de Alan James dá um exemplo mais dinâmico:
Mais informações »

Transformar Letras Minúsculas E Maiúsculas com MySQL

com 0 Comentário
Para quem utilizar MySQL e precisa transformar letras minúsculas em maiúsculas e o contrario também vai uma dica aqui:
LCASE(str), LOWER(str)
Retorna a string str com todos caracteres alterados para letra minúsculas de acordo com o conjunto
de caracteres atual (o padrão é ISO-8859-1 Latin1):
mysql> SELECT LCASE(‘MYSQL’);
-> ‘mysql’
UCASE(str), UPPER(str)
Retorna a string str com todos caracteres alterados para letra maiúsculas de acordo com o conjunto
de caracteres atual (o padrão é ISO-8859-1 Latin1):
mysql> SELECT UCASE(‘Hej’);
-> ‘HEJ’
se precisar fazer uma consulta apenas que fique tudo em maiúsculo pode usar o seguinte:
SELECT id, UCASE(nome) as nome, cpf, email, matricula, curso  FROM inscritos ORDER BY nome
 Fonte:

Mais informações »

domingo, 22 de novembro de 2015

Travamentos após atualização do Windows 10 Threshold 2 - Dicas

com 0 Comentário

Se o comportamento persistir após atualizar os drivers, desabilite todos os programas de terceiros, ou seja, uma Inicialização limpa, para verificar se algum dos programas instalado em seu computador possa estar provocando esse comportamento.

Siga as etapas abaixo para solucionar esse comportamento.

Etapa 1

Caso tenha um antivírus instalado ou mais de um, sugiro que desinstale pelo Painel de Controle no ícone Programas e Recursos ou desabilite temporariamente pelas configurações do próprio antivírus.

Nota: Muitos antivírus possuem uma ferramenta própria de remoção. Acesse o site do Software instalado para mais informações. Seu sistema não ficará desprotegido pois o Windows tem um sistema de segurança próprio que habilita automaticamente assim que reiniciar o computador.

Etapa 2

Desabilite todos os programas de terceiros, ou seja, uma Inicialização limpa, para verificar se algum dos programas instalado em seu computador possa estar provocando esse comportamento.

Para inicialização limpa siga os passos abaixo:

Na Área de Trabalho, pressione simultaneamente as teclas Windows + R para abrir o Executar;
No Executar digite MSCONFIG e clique em OK para abrir a Configuração do Sistema;
Na guia Serviços, assinale a opção Ocultar todos serviços Microsoft e clique em Desativar Tudo;
Clique em Aplicar e em OK;
Reinicie o computador.

NOTA: Este procedimento desabilita todos serviços e programas de terceiros. Você pode posteriormente, se o problema for solucionado desta forma, habilitar os programas e serviços que serão inicializados com o Windows, seletivamente, ao invés de manter todos desativados. Se o problema voltar após ativação da inicialização de um serviço ou programa em especifico, o problema está exatamente na inicialização deste software e é recomendável removê-lo.

Etapa 3
Execute ferramentas de reparação Dism e Scannow.
Essas são ferramentas de diagnóstico e auxiliam no reparo da imagem do sistema.

Pressione as teclas Windows + X, selecione Prompt de comando (Admin), copie e cole os comandos abaixo e pressione enter depois de cada comando.

Sfc /ScanNow
Dism /Online /Cleanup-image /RestoreHealth


Teste e veja se o comportamento se repete, caso o comportamento continue execute o próximo procedimento.

Etapa 4

Para criar uma unidade de recuperação USB

Realize o Download do Windows 10 em outro computador espete um Pendrive no computador, abra o prompt de comando como administrador e execute os procedimentos abaixo:
  • Diskpart 
  • List disk 
  • Select disk 1 
  • Clean 
  • Create partition primary 
  • List partition 
  • Active 
  • Format fs=NTFS quick 
  • Assign 

Copie arquivos da imagem do Windows 10 para pen drive bootavel.
  1. Insira o disco de instalação do Windows. Reinicie o computador e preste atenção na tela para fazer boot do CD. Quando solicitado, pressione qualquer tecla.
  2. Após clicar em qualquer tecla, como solicitado no passo anterior, deverá chegar a tela de Instalação do Windows. Clique em "Reparar Computador"
  3. Você será direcionado a tela "Opções de Recuperação do Sistema". Basta selecionar o idioma e clicar em "avançar". Siga a partir do Passo 3, solicitando a correção de inicialização
  4. O computador mostrará uma tela com os erros de sistema recuperados. Após isso, basta reiniciar. 
Boa sorte!
Mais informações »

terça-feira, 3 de novembro de 2015

Colocando o GlassFish como Serviço do Windows

com 0 Comentário
Estarei dando a dica de como instalar o glassfish como serviço do windows.
Após o glassfish ter sido instalado, vamos executar alguns passos.
Abra o prompt de comados e informe o seguinte comando:
1
C:\glassfishv3\bin> asadmin create-service domain1
Onde “C:\glassfishv3\bin” é o caminho da pasta de binários do glassfish, “asadmin” é um comando de administração, “create-service” a sintaxe para criação do serviço e “domain1” é o nome do domínio existente na pasta domains. Para inicializá-lo, basta ir ao “painel de controle/ferramentas administrativas/serviços” e procurar algo como “domain1 glassfish service”. Geralmente é o nome que o sistema gera. Clicar em Iniciar.
Para remoção do serviço, você deve ir ao “painel de controle/ferramentas administrativas/serviços”, parar o serviço criado, provavelmente como “domain1 glassfish service”. Abrir o prompt de comandos do windows e informar o seguinte comando:
1
sc delete nome_do_serviço
Espero ter ajudado. Isso é bastante útil para deixar o serviço rodando na inicialização do sistema no caso de utilizá-lo em ambiente de produção.
Mais informações »

quarta-feira, 15 de julho de 2015

JTable com alturas de linhas de acordo como tamanho do texto/conteúdo | JAVA

com 7 Comentários
Configurando a linha da JTable para ficar semelhante a quebra de texto do EXCEL, aumentando o tamanho da linha de acordo com o tamanho do texto:

Exemplo de Tabela 


  1. public class TextAreaCellRenderer extends JTextArea implements TableCellRenderer {  
  2.   
  3.         public TextAreaCellRenderer() {  
  4.   
  5.             setLineWrap(true);  
  6.             setWrapStyleWord(true);  
  7.             setFont(new java.awt.Font("Tahoma"011)); // NOI18N  
  8.             setMargin(new java.awt.Insets(5555));  
  9.         }  
  10.   
  11.         @Override  
  12.         public Component getTableCellRendererComponent(  
  13.                 JTable table, Object value, boolean isSelected, boolean hasFocus, introw, int column) {  
  14.   
  15.             // set color & border here                
  16.             this.setText(value.toString());  
  17.   
  18.             setText((value == null) ? "" : value.toString());  
  19.             setSize(table.getColumnModel().getColumn(column).getWidth(),  
  20.                     getPreferredSize().height);  
  21.   
  22.             if (table.getRowHeight(row) < getPreferredSize().height) {  
  23.                 table.setRowHeight(row, getPreferredSize().height );  
  24.             }  
  25.   
  26.             return this;  
  27.         }  
  28.     }  

Para adicionar na tabela utilize o seguinte código:
  1. for (int i = 0; i < jTable.getColumnCount(); i++) {  
  2.             col = jTable.getColumnModel().getColumn(i);  
  3.             col.setCellRenderer(new TextAreaCellRenderer());  
  4.         }  

Mais informações »

terça-feira, 14 de julho de 2015

Importar banco de dados no MySQL pelo prompt do DOS

com 0 Comentário
Uma das coisas que me deixa mais tranqüilo para programar é criar um ambiente de testes na minha própria máquina ou em um servidor local.
Com essa prática não temos o risco de causar problemas nos sites que os usuários finais utilizam.
Para copiar os arquivos que estão sendo utilizado online basta utilizar um programa de FTP, porém para copiarmos os dados de um banco de dados precisamos fazer o back-up e então importar esse arquivo. Gosto muito da praticidade do phpMyAdmin, além dele ser amplamente utilizado nos painéis de gerenciamento (CPanel, Plesk etc).
Um grande problema é quando precisamos importar arquivos muito grandes, o que demanda maior processamento e as vezes acaba demorando mais do que nossa paciência agüenta! Por isso gostaria de compartilhar uma prática que utilizo nesses casos.
Ao invés de importar diretamente pelo phpMyAdmin, faço a importação via command prompt do Windows (isso mesmo DOS).
Vou listar os passos para essa operação de importação do banco de dados via prompt de comando do Windows.
Utilizo na minha máquina Windows XP com o XAMPP, conforme instalação no post sobre servidores (veja aqui).
1) Iniciar > Executar > cmd
Isso server para abrir o terminal. Outro modo é abrir o programa diretamente pelo seu executável, o caminho dele normalmente é c:\WINDOWS\system32\cmd.exe
2) Digite o comando: c:\xampp\mysql\bin
Isso vai te levar para o diretório local de instalação do MySQL.
3) Digite o comando: mysql -u root -p
Isso vai iniciar o MySQL, a seguir você deve digitar a senha de administrador (root) do banco de dados.
4) Se estiver tudo correto vai aparecer no prompt algo assim: mysql>
Dentro do prompt você pode utilizar os mesmos comandos que utiliza na programação, como por exemplo:show databases;
Uma dica valiosa é o comando para alteração do charset, muitas vezes você vai importar o SQL e a acentuação ficará com problemas para resolver essa questão utilize o comando: mysql> charset utf8;
Para concluir a importação você precisa selecionar o banco de dados desejado e dar o comando para importação, são os seguintes:
mysql> use nomedo_db;
mysql> source d:/nomedoarquivo_db.sql;
Com essas operações você consegue importar um arquivo grande em poucos segundos. Importante lembrar que você utilize a opção DROP TABLE quando for fazer a exportação, assim as tabelas ficarão exatamente ao que está online.
Mais informações »

terça-feira, 23 de junho de 2015

Como remover/excluir os drivers da impressora no Windows 7, 8, 8.1 e Windows Server 2008

com 0 Comentário
Use o seguinte comando para abrir o gerenciador de drivers de impressoras (printer) no Windows 7 / 8, 8.1 e Windows server 2008.

Digite/execute: printui /s /t2

Pronto, abrirá uma janela com os drivers instalados... selecione remova ;)

Mais informações »

domingo, 14 de junho de 2015

Consultar tamanho de string no bando de dados MySQL

com 0 Comentário

Existem várias funções no MySQL para extrair texto, trabalhar posicionamento, calcular tamanho entre outras. Neste post vou demonstrar como utilizar a funlção LENGTH().
A função LENGTH() no MySQL retorna o tamanho de uma string em bytes. A função pode ser substituida pela função CHAR_LENGTH() se quiser contar o número de caracteres em vez de bytes. Note que CHAR_LENGTH irá tratar uma string de dois bytes como um único caracter.
SELECT LENGTH('teste');
Isto retorna 5.
Para trabalhar o comprimento máximo de uma determinada coluna combine as funções LENGTH() e MAX().
SELECT MAX(LENGTH(minha_coluna)) FROM minha_tabela;
Onde “minha_coluna” é o campo que você quer saber a largura máxima. Isto pode ser útil se você carregar dados de um código externo e quer assegurar-se de que tem espaço suficiente para armazenar os dados.
A query seguinte, retorna quantos caracteres tem o campo ‘cidade’ e quantos registros tem para essa quantidade.
SELECT
   LENGTH(cidade),
   COUNT(*) 
FROM cidade
GROUP BY LENGTH(cidade);
Você pode querer ordenar pela quantidade de registros ou pela quantidade de caracteres da seguinte maneira:
SELECT
   LENGTH(cidade),
   COUNT(*) 
FROM cidade
GROUP BY LENGTH(cidade)
ORDER BY COUNT(*) DESC
ou
SELECT
   LENGTH(cidade),
   COUNT(*) 
FROM cidade
GROUP BY LENGTH(cidade)
ORDER BY LENGTH(cidade) DESC
Mais informações »

domingo, 24 de maio de 2015

Como passar a consulta dinamicamente para o JasperReports / iReport

com 0 Comentário
Defina um parâmetro do tipo String que receberá a consulta vinda da aplicação java:


Parâmetros do Relatório

Observe que temos dois parâmetros definidos por mim: Filtro – servirá para receber uma descrição textual do filtro que o usuário aplicou na geração do relatório e consulta – receberá a consulta a ser executada no banco de dados pelo JasperReports.
Configurar a consulta do relatório como sendo o parâmetro recebido:



Consulta do Relatório


A consulta do relatório será exatamento o parâmetro consulta. Observe o símbolo de exclamação depois da letra P. Sem ele o iReport dá erro no momento de efetuar a compilação do relatório.
Passar a consulta para o relatório através da aplicação Java:

  1. private String geraRelatorioEmPdfConsulta(String consulta, String jasper, String nomeRelatorio) {  
  2.     // Seto a variável saida como nulo  
  3.     saida = null;  
  4.   
  5.     try {  
  6.         JasperPrint print = JasperFillManager.fillReport(jasper, getMapComFiltroEConsulta(filtroAplicado, consulta), getNovaConexao());  
  7.         saida = RelatorioUtil.getDiretorioReal("/relatorios/relatorio.pdf");  
  8.         JasperExportManager.exportReportToPdfFile(print, saida);  
  9.         saida = RelatorioUtil.getContextPath() + "/relatorios/relatorio.pdf";  
  10.     } catch (Exception e) {  
  11.         addErrorMessage("Formulario""erro.geracao.relatorio", nomeRelatorio);  
  12.         e.printStackTrace();  
  13.     } finally {  
  14.         fechaConexao();  
  15.     }  
  16.   
  17.     // mostro o erro ou o relatório na janela que abre  
  18.     return "geraRelatorio";  
  19. }  
  20.   
  21. /* 
  22. * Esse método retorna o map com o filtro e a consulta que o usuário gerou. 
  23. */  
  24. public Map<String, String> getMapComFiltroEConsulta(String filtroAplicado, String consulta) {  
  25.     Map<String, String> map = new HashMap<String, String>();  
  26.   
  27.     // Se o usuário não aplicou nada no filtro, retorno nulo para o relatório  
  28.     if (filtroAplicado == null)  
  29.         filtroAplicado = "";  
  30.     else  
  31.         filtroAplicado = "Você aplicou o seguinte filtro no relatório:\n" + filtroAplicado;  
  32.   
  33.     map.put("Filtro", filtroAplicado);  
  34.     map.put("consulta", consulta);  
  35.   
  36.     return map;  

Observe, pelo código acima, que eu passo a consulta e o filtro que foram gerados para o relatório dentro de um HashMap, como o JasperReports exige. No final, o relatório com um campo do filtro fornecido ficou assim.

Relatório Gerado

O campo marcado em vermelho foi o filtro aplicado pelo usuário que eu mandei para o relatório como um parâmetro chamado Filtro e que na verdade é apenas uma descrição textual.

Obs.: cada coluna retornada pela minha consulta deve ter o mesmo nome do field no relatório. Caso isso não ocorra, haverá um erro na geração.
Mais informações »

Total de visualizações