domingo, dezembro 08, 2013

Erro A potentially dangerous Request.Form value was detected from the client

HI,

esse erro aconteceu quando fui obter os dados de um editor de texto após o postback em um form no Asp.Net. Já tinha percebido que esse erro só ocorria quando o texto do editor era formatado (estava em negrito, tinha cor, etc.)

Esse formulário é um pouco diferente, já que o editor de texto era uma div, então eu tive que jogar o conteúdo da div em um input do tipo hidden para poder pegar seu valor no codebinhide.

Pesquisando no google, encontrei essa solução

A potentially dangerous Request.Form value was detected from the cliente
http://stackoverflow.com/questions/81991/a-potentially-dangerous-request-form-value-was-detected-from-the-cliente


Pegue nesse post
http://stackoverflow.com/questions/81991/a-potentially-dangerous-request-form-value-was-detected-from-the-client/13589607#13589607




Fiquem na Paz!!!

domingo, novembro 24, 2013

Evitando exibição do ModalPopupExtender ao carregar página no Asp.Net

HI,

Quando se utiliza o ModalPopupExtender do Ajax Control Toolkit para exibir um diálogo modal, acontece um efeito inconveniente, o diálogo é exibido rapidamente quando a página é carregada e some em seguida.

Também acontece um outro probleminha. Vamos supor que ao fechar o diálogo é executada alguma rotina, e nessa rotina você faz com que seja exibida uma mensagem de alerta em javascript, o diálogo não some, continua sendo exibido, mesmo tendo executando o comando Hide do ModalPopupExtender.

Para resolver esses dois probleminha tem atribuir o estilo display:none; ao Panel associado ao ModalPopup.

Achei aqui essa solução:

ASP.NET ModalPopupExtender appears when calling Alert JavaScript function
http://stackoverflow.com/questions/12814062/asp-net-modalpopupextender-appears-when-calling-alert-javascript-function

Tem esse também

Hide asp:panel used with a modalpopupextender on pageLoad
http://stackoverflow.com/questions/5096322/hide-asppanel-used-with-a-modalpopupextender-on-pageload


CSS: Style="display:none;"


Fiquem na Paz!!!!

segunda-feira, novembro 18, 2013

Temas da Bíblia para Android

HI,

Aplicativo para Android que fiz, graças a Deus.

Descrição

Temas da Bíblia reúne todas as promessas de Deus que estão na sua Palavra.
As promessas estão divididas por Tema.
É possível enviar um versículo para alguém por SMS ou E-mail. Ou copiar o seu texto para que seja colado no Whatsapp por Exemplo. Mas o aplicativo não envia a mensagem, é aberto o programa que o usuário escolher, que esteja instalado no smartphone.

Site
http://programmerctrl.com/TemasDaBiblia.aspx

Download
https://play.google.com/store/apps/details?id=programmerctrl.sistemas.temasdabiblia



Fiquem na Paz!!!

Centralizar horizontalmente o banner do AdMod no Android

HI,

Incluí o esquema de publicidade do AdMod em um aplicativo que acabei de criar, mas só que na tela do S4 estava ficando alinhado à esquerda. Para centralizar na horizontal usei essa dica:

How do I make SMART_BANNER ads from admob fill correctly in Android?
http://stackoverflow.com/questions/17991497/how-do-i-make-smart-banner-ads-from-admob-fill-correctly-in-android/18005773#18005773


Fiquem na Paz!!!!

quarta-feira, novembro 13, 2013

Copiando texto para o Clipboard no Android

HI,

Precisei dessa dica para capturar um texto para a área de transferência do Android.

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
clipboard.setText(meu_texto);

Android: Copy to clipboard selected text from a TextView
http://stackoverflow.com/questions/6624763/android-copy-to-clipboard-selected-text-from-a-textview/6624816#6624816


Fiquem na Paz!!!

quinta-feira, setembro 12, 2013

Erro java.lang.NumberFormatException: NaN no Android

HI,

O problema aconteceu nessa função para arredondar as casas decimais de um número que utilizo no android

public static double round(double d, int decimalPlace){ 
  // see the Javadoc about why we use a String in the constructor
  // http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html#BigDecimal(double)
  BigDecimal bd = new BigDecimal(Double.toString(d));
  bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);
  return bd.doubleValue();
}

Fui utilizar e a aplicação deu esse erro java.lang.NumberFormatException: NaN

Pesquisando, descobrir que era por que na primeira utilização da rotina o resultado era zero. É uma rotina para calcular a distância em metros de duas coordenadas. E eu só vou gravar se for maior que dez.

Resolvi testando se antes o valor era zerado

  double aux_metros = 0;
   
  if ((6366000*tt) > 0){
    aux_metros = round(6366000*tt, 2);
  }


Achei aqui a causa do problema

Exception in thread “main” java.lang.NumberFormatException: Infinite or NaN
http://stackoverflow.com/questions/14371003/exception-in-thread-main-java-lang-numberformatexception-infinite-or-nan/14371028#14371028



Fiquem na Paz!!!

quarta-feira, setembro 11, 2013

Esconder um botão no Android

HI,

Antes de conhecer essa dica eu apenas desabilitava o componente, Enable=false, mas agora o componente some da tela, fica invisível.

Achei aqui

How can I remove a button or make it invisible in Android?
http://stackoverflow.com/questions/4127725/how-can-i-remove-a-button-or-make-it-invisible-in-android/4127830#4127830


Set button visibility to GONE (button will be completely "removed" -- the buttons space will be available for another widgets) or INVISIBLE (button will became "transparent" -- its space will not be available for another widgets):
View b = findViewById(R.id.button);
b.setVisibility(View.GONE);
or in xml:


Se utilizar a opção INVISIBLE, o botão não some da tela, fica apenas transparente.

Não serve apenas para o botão.

Fiquem na Paz

quinta-feira, setembro 05, 2013

Instalando o Zeos Lib (mysql) no Delphi 7

HI,

Já tinha a um versão do ZeosLib instalada no meu Delphi 7, mas resolvi atualizar para conectar o banco mysql onde meu site está hospedado.

Utilizei essa página para instala-lo.

Zeos (mysql) no Delphi 7
http://marciorossato.meucanal.com.br/zeos-mysql-no-delphi-7/


Mas não foi essa moleza toda. Para configurar o componente tiver que achar uma dll compatível com o banco de dados aqui no meu notebook. A dll libmysql que estava na pasta bin da instalação do MySql não serviu. Usei a que estava na pasta do MySQL Workbench que eu havia instalado aqui.

A libmysql.dll é atribuída na propriedade LibraryLocation do componente de conexão.

Fiquem na Paz!!!

The message received from the server could not be parsed

HI,

Pense num problema que deu dor de cabeça.

No meu caso o problema foi por causa que implementei uma rotina para gerar um arquivo pdf para download usando o Crystal Reports.

Esse é o trecho código para gerar o relatório no formato PDF para download
// Stop buffering the response
Response.Buffer = false;
// Clear the response content and headers
Response.ClearContent();
Response.ClearHeaders();
// Export the Report to Response stream in PDF format and file name Customers
cryRpt.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "ocorrencia_id" + _codigosoc);
// There are other format options available such as Word, Excel, CVS, and HTML in the ExportFormatType Enum given by crystal reports



O problema é que esse código dá conflito com o Ajax do Asp.Net.

A solução é registrar o componente  que está acionando o código em questão

ScriptManager.GetCurrent(this).RegisterPostBackControl(btImprimir);

Utilizar esse comando no Page_Load.



Fiquem na Paz!!!

quarta-feira, setembro 04, 2013

Detectando ser o browser está com foco ou minimizado utilizando javascript

HI,

Precisei implementar esse código em um exemplo de chat que estou modificando. Foi para executar um som ao chegar mensagem caso ele esteja sem o foco ou minimizado.

Utilizei esse código

var isactive = false;

function playSound(){
    if (isactive) return;
    playWav...;
}

onNotificaitonComes = playSound;

$(window).focus(function(){
    isactive = true;
}).blur(function(){
    isactive = false;
});


Quando o browser perder o foco a variável isactive vai receber false.

Achei aqui

How to play a notification alert sound when the browser window is minimized and when a notification comes from the server
http://stackoverflow.com/questions/12653370/how-to-play-a-notification-alert-sound-when-the-browser-window-is-minimized-and/12653751#12653751


Mais sobre Focus/Blur

Focus/blur methods and events
http://javascript.info/tutorial/focus



Fiquem na Paz!!!

Executar arquivo de áudio com o HTML5

HI,

Estou me aventurando agora a aprender o SignalR e no aprendizado estou modificando um exemplo de chat que peguei. Decidi incluir um recurso de executar um som quando chegar uma nova mensagem privada ou se o navegador estiver minimizado ou sem o foco.

Para executar um arquivo de áudio usei essa dica

Sound effects in JavaScript / HTML5
http://stackoverflow.com/questions/1933969/sound-effects-in-javascript-html5/1934325#1934325


Coloquei pra tocar o som do ICQ, hehehe
http://www.4shared.com/mp3/XTfFeHVi/ICQ_message_sound.html



Fiquem na Paz!!!

Manipular o atributo Class de um elemento HTML do lado servidor no Asp.Net

HI,

Precisei adicionar uma classe a uma tag li de acordo com o tipo de um determinado campo em um componente de repetição do Asp.Net.

Exemplo: Se o campo tivesse valor F o class deveria ser comment senão deveria ser comment reply.

Na parte visual coloquei a tag li como sendo runnet="server"
< li id="li_tipo_resposta" runat="server" >

E no ItemDataBound do controle Repeater coloquei esse código

protected void repeatRespostas_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        string _tipo_resposta = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "tipo_resposta"));
        if (_tipo_resposta.Equals("F"))
        {
            ((HtmlControl)e.Item.FindControl("li_tipo_resposta")).Attributes.Add("class", "comment");
        }
        else
        {
            ((HtmlControl)e.Item.FindControl("li_tipo_resposta")).Attributes.Add("class", "comment reply");
        }
    }
}

A tag é localizada e seu atributo Class é adicionado.


Implementei esse código com base nessa página

C# - How to change HTML elements atributes
http://stackoverflow.com/questions/186918/c-sharp-how-to-change-html-elements-attributes/10795178#10795178


Fiquem na Paz!!!!

segunda-feira, setembro 02, 2013

Criar um diálogo sem a barra de título no Android

HI,

Precisei fazer isso pra ganhar um pouco de espaço pra colocar mais um componente.

Para não exibir o título no diálogo:
Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

Achei aqui:

Android: How to create a Dialog without a title?
http://stackoverflow.com/questions/2644134/android-how-to-create-a-dialog-without-a-title/3407871#3407871


Fiquem na Paz!!!

quinta-feira, agosto 29, 2013

no site configured at this address

HI,

Ao acessar o site do Google no Internet Explorer 10 me deparei com essa mensagem no browser: no site configured at this address. Mas só aparecia no domínio .br quando acessava o google.com, acessava normal.

Pesquisando no google, achei essa solução

How can I fix a “No site configured at this address” error?
http://superuser.com/questions/592161/how-can-i-fix-a-no-site-configured-at-this-address-error



Tem que limpar o cache do domínio que tá com problema


Fiquem na Paz!!!

Exibindo tooltip utilizando o Bootsrap

HI,

Para deixar o formulário mais elegante, resolvi utilizar o recurso de tooltip do bootstrap.

Tentei habilitar somente com o help do bootstrap, mas não consegui. Acabei recorrendo ao google pela (milésima x 10) vez.


Achei a solução aqui:

Bootstrap tooltips not working
http://stackoverflow.com/questions/9446318/bootstrap-tooltips-not-working

Ficou assim meu código



Troquei o rel='tooltip' por data-toggle='tooltip'



PS: Eu utilizo no Asp.Net

Fiquem na Paz!!!!




terça-feira, agosto 27, 2013

Algumas operações com data no Firebird

HI,

Algumas operações que uso. Hoje mesmo precisei retornar a semana do ano de uma data, saber a data do primeiro e último dia da semana.

Por exemplo, hoje são 27/08/2013. O dia da semana é 35. A data do primeiro dia da semana 35 é 25/08/2013 e o último é 31/08/2013.

Para retornar a semana do ano com base em uma data
trunc((EXTRACT(YEARDAY FROM (data - EXTRACT(WEEKDAY FROM data-1) + 3)) - EXTRACT(WEEKDAY FROM (data - EXTRACT(WEEKDAY FROM data-1) + 3)-1) + 7) / 7e0) + 1

Se quiser a data Atual: current_date
Se quiser converter uma string para data: cast('08/27/2013' as date)

Data do primeiro dia da semana:
(current_date - EXTRACT(WEEKDAY FROM current_date))

Data do último dia da semana:
(current_date + (6 - EXTRACT(WEEKDAY FROM current_date)))


Base da lógica para pegar a semana do ano
http://www.volny.cz/iprenosil/interbase/ip_ib_code_timestamp.htm

Funções
Day of Week
First/last day of month
Number of days in month
Week of year
Is Leap Year ?



Fiquem na Paz!!!

segunda-feira, agosto 26, 2013

Mostrar um mapa do Google em um modal criado com Twitter Bootstrap

HI,

Decidi utilizar uma janela modal para exibir um mapa do google. O botão que aciona a janela modal fica em um GridView.

Vou colocar aqui os links que me ajudaram a criar esse recurso e o código que consegui montar.

ASP.NET: Display GridView Row Details in Modal Popup using Twitter Bootstrap
http://websitedevelopmentny.org/blog/wievblog.php?id=4673

Modals bootstrap-modal.js
http://getbootstrap.com/2.3.2/javascript.html#modals

Adding a Google Map to your website
https://developers.google.com/maps/tutorials/fundamentals/adding-a-google-map

Showing a Google Map in a modal created with Twitter Bootstrap
http://stackoverflow.com/questions/11742839/showing-a-google-map-in-a-modal-created-with-twitter-bootstrap

Meu Código

 
 

Fiquem na Paz!!!

quinta-feira, agosto 22, 2013

Utilizar variável de uma classe de sessão no parâmetro do GridView

HI,

Utilizar um sessão como parâmetro do GridView é moleza, o próprio asp.net cuida disso, de pegar o valor armazenado na session. Mas, e quando você implementa uma classe de sessão e precisa utilizar uma propriedade no parâmetro, como é que faz? Fiz essa pergunta ao google ontem.

Achei a resposta aqui:

Custom Parameters for 'SelectParameters' collection using Object Data Source
http://forums.asp.net/t/1209030.aspx/1


Create a parameter with its source set to none (in the designer)
        
       
        < SelectParameters >
            < asp:Parameter Name="userId" Type="Int32" />
        </ SelectParameters >           
       
       


and in the code you assing the values to the selectParameter with

ObjectDataSource1.SelectParameters["userId"].DefaultValue = SessionManager.StoredNameValue;



Fiquem na Paz!!!

Acessar variável de sessão a partir de uma classe no Asp.Net

HI,

Já tem um tempinho que comecei a usar uma classe de sessão em meus projetos. Tinha guardado o link e agora estou publicando onde achei.

Quando eu precisei acessar uma variável de sessão de dentro de uma classe eu consegui com essa dica:

How to access session variables from any class in ASP.NET?
http://stackoverflow.com/questions/621549/how-to-access-session-variables-from-any-class-in-asp-net

Não tem mistério para implementar essa classe session e fica bem mais organizado o código, por que você sabe quais são todas as variáveis de sessão utilizadas no seu projeto.

Fazendo uma busca hoje por mais informações, achei essa página:

Criando uma simples Classe Session em asp.net c#
http://webmaicon.wordpress.com/2009/01/15/criando-uma-simples-classe-session-em-aspnet-c/



Fiquem na Paz!!!

segunda-feira, agosto 19, 2013

Formulário com múltiplas colunas no Bootstrap

HI,

Segue a dica de um layout para formulário com múltiplas no Bootstrap.

Twitter Bootstrap: Multiple Columns Form Layout Examples
http://limcheekin.blogspot.com.br/2012/08/twitter-bootstrap-multiple-columns-form.html


O formulário que criei deu de 10 a zero no que eu tinha feito antes, hehehe.

Fiquem na Paz!!!

Input mask for Bootstrap

HI,

Da mesma maneira que resolvi não utilizar o Datepicket do Ajax Toolkit, também resolvi não utilizar o MaskedEdit.

Achei esse para usar nos meus projetos com bootstrap:
http://jasny.github.io/bootstrap/javascript.html#inputmask


Fiquem na Paz!!!

Datepicker for Bootstrap

HI,

Resolvi não utilizar o componente de datepicker do Ajax Toolkit em um projeto utilizando bootstrap que estou fazendo. Fui em busca de um que servisse para bootstrap e dos que encontrei resolvi utilizar este: http://eternicode.github.io/bootstrap-datepicker/

Apesar do arquivo ser um pouco maior que os demais, esse tem várias opções de formatação/nacionalização.

Fiquem na Paz!!!

Começando a aprender Bootstrap

HI,

Já tem um certo tempo que comecei a estudar Bootstrap. Pra mim que não tenho a menor intimidade com a área de web design, é perfeito. Além de ter uma fácil utilização, existem sites que vendem layouts, o que ajuda bastante.

Temas
https://wrapbootstrap.com/themes

http://bootswatch.com/

Construtor de layout
http://www.layoutit.com/

Vídeo sobre
http://www.youtube.com/watch?v=4S8olUnhOUc

Curso
http://acadtec.com.br/curso/bootstrap-twitter/

A documentação do bootstrap é bem didática
http://getbootstrap.com/2.3.2/getting-started.html


O legal dele também é a possibilidade de criar sites responsivos, ou seja, você faz apenas um site e ele se adapta tranquilamente ao Tablet e Smartphone. Não precisa criar uma versão para cada tipo de equipamento.

O bootstrap foi criado pelo pessoal do Twitter, e é open source.

O site da Globo o utiliza. Eles até traduziram uma versão
http://globocom.github.io/bootstrap/


Fiquem na Paz!!!

quinta-feira, julho 11, 2013

Enviando e-mail a partir do Oracle

HI,

Muito bom esse recurso do Oracle. Implementei hoje uma rotina de envio de e-mail. Pedi pro DBA liberar as permissões. Criei a procedure para enviar o e-mail e outra procedure para pegar os usuários e disparar o e-mail para cada um.

Só enfrentei um problema. Não estava mantendo a acentuação. Mas com uma busca no google encontrei a solução. Pra considerar a acentuação tem que usar o comando UTL_SMTP.WRITE_RAW_DATA(v_mail_conn, UTL_RAW.CAST_TO_RAW(UTL_TCP.CRLF || p_mensagem)); ao invés de utilizar UTL_SMTP.WRITE_DATA(v_mail_conn, UTL_TCP.CRLF || p_mensagem);

Segue os links que utilizei.

Como resolver problema de acentuação usando utl_smtp?
http://glufke.net/oracle/viewtopic.php?t=4670

Email From Oracle PL/SQL (UTL_SMTP)
http://www.oracle-base.com/articles/misc/email-from-oracle-plsql.php

RES: [oracle_br] Enviar e-mail pelo Oracle com Con teúdo HTML
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/msg16433.html




Fiquem na Paz!!!!

sexta-feira, junho 07, 2013

Desabilitar a opção de Selecionar do GridView de acordo com uma condição no Asp.Net

HI,

Eu poderia ter tratado a ação ao selecionar a linha do gridview e verificar se teria permissão pra ação, mas isso acarreta uma chamada ao servidor. Então procurei uma maneira de desabilitar a opção de selecionar do gridview caso o usuário não tivesse permissão de realizar a ação.

Exemplo

protected void gdvTurmas_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType == DataControlRowType.DataRow)
  {               
    string status = ((DataRowView)e.Row.DataItem)["STATUS"].ToString();
    if (status == "T")
     {
        e.Row.Cells[e.Row.RowIndex].Enabled = false;
      }
   }
}

Resultado


Achei aqui

How to disable a control in command field control in gridview
http://stackoverflow.com/a/7188143


Fiquem na Paz!!!

Cursos Gratuítos

HI,

Compartilhando os sites de cursos que vi no meu twitter

Os 50 melhores cursos grátis de TI de toda a Internet
http://www.profissionaisti.com.br/2013/03/os-50-melhores-cursos-gratis-de-ti-de-toda-a-internet/


300 cursos online gratuitos sobre Social Media e Marketing 2.0
http://canaldoensino.com.br/blog/300-cursos-online-gratuitos-sobre-social-media-e-marketing-2-0


Fiquem na Paz!!!

Somar ou Subtrair Dias em Uma Data no Java

HI,

Precisei dessa rotina para uma consulta em um aplicativo android. Para mostrar na tela os registros dos últimos 5 dias. É que na tela tem um filtro de data inicial e data final, então no campo data final coloquei a data atual, e no campo data inicial, coloquei a data atual menos 5 dias.

// data final igual a hoje
        Date dataFinal = new Date();
   
        // usa calendar para subtrair data
        Calendar calendarData = Calendar.getInstance();
        calendarData.setTime(dataFinal);
   
        int numeroDiasParaSubtrair = 2;
        // achar data de início
        calendarData.add(Calendar.DATE,numeroDiasParaSubtrair);
        Date dataInicial = calendarData.getTime();

Achei aqui

Como Subtrair data ex: 01/05/2005 - 2 dias = 29/04/2005
http://www.guj.com.br/java/23768-assunto-como-subtrair-data-ex-01052005---2-dias--29042005


Também usei essa outra rotina uma situação diferente do meu sistema

Somar/Subtrair data
http://javafree.uol.com.br/artigo/13819/Somar-Subtrair-data.html

import java.util.Date; 
import java.text.SimpleDateFormat; 
 
public class SomarData { 
   public static void main(String[] args) { 
      Date hoje = new Date(); 
      int dias_a_avancar = 2; // se quiser diminuir, basta por -2 
      Date nova_data = new Date(hoje.getTime()+((1000*24*60*60)*dias_a_avancar)); 
      SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss:SSS"); 
      System.out.println(df.format(hoje)); 
      System.out.println(df.format(nova_data)); 
   } 




Fiquem na Paz!!!

Data por extenso no MySQL em português

HI,

Para formatar uma data por extenso. Não quis fazer na aplicação. Usei essa dica que achei no google.

SELECT
CASE MONTHNAME(DATA_INICIO)
WHEN 'January'   THEN DATE_FORMAT(DATA_INICIO, "%d de Janeiro de %Y")
WHEN 'February'  THEN DATE_FORMAT(DATA_INICIO, "%d de Fevereiro de %Y")
WHEN 'March'     THEN DATE_FORMAT(DATA_INICIO, "%d de Março de %Y")
WHEN 'April'     THEN DATE_FORMAT(DATA_INICIO, "%d de Abril de %Y")
WHEN 'May'       THEN DATE_FORMAT(DATA_INICIO, "%d de Maio de %Y")
WHEN 'June'      THEN DATE_FORMAT(DATA_INICIO, "%d de Junho de %Y")
WHEN 'July'      THEN DATE_FORMAT(DATA_INICIO, "%d de Julho de %Y")
WHEN 'August'    THEN DATE_FORMAT(DATA_INICIO, "%d de Agosto de %Y")
WHEN 'September' THEN DATE_FORMAT(DATA_INICIO, "%d de Setembro de %Y")
WHEN 'November'  THEN DATE_FORMAT(DATA_INICIO, "%d de Novembro de %Y")
WHEN 'December'  THEN DATE_FORMAT(DATA_INICIO, "%d de Dezembro de %Y")
END AS mes_por_extenso
FROM TABELA;

Data por extenso no MySQL em português
http://blog.vanderli.com.br/data-extenso-mysql-português




Fiquem na Paz!!!

sábado, junho 01, 2013

Força de Vendas para Android

HI,

Automação do Força de Vendas para Android.



  • Sistema de fácil manuseio e objetivo.
  • Não faz o usuário ficar entrando e saído de telas para incluir os itens do pedido.
  • Acesso aos dados cadastrais dos clientes, situação dos títulos em aberto, histórico de compras do cliente, estoque dos produtos, política de descontos, campanhas de vendas, etc.
  • Trabalha com conta corrente, limite definido para o pedido ou de acordo com o prazo escolhido, desconto de acordo com a quantidade vendida, pesquisa de preços.
  • Diversos filtros na tela de produtos: Itens do Pedido, Por Fabricantes, Itens que o cliente já comprou, Produtos com política de desconto, Produtos com Desconto por quantidade, Campanhas de Venda, Apenas os Positivados, Apenas os não Positivados.
  • A tela de produtos possui duas opções de exibição: Listagem ou Catálogo.

Empresa: Ceta Sistemas
Site: http://cetasistemas.com/ForcaVendas.aspx

Sistema em Ação





Fiquem na Paz!!!





 


segunda-feira, abril 29, 2013

Falha ao exportar usando as opções especificadas. Verifique as opções e tente novamente.

HI,

Essa mensagem: Falha ao exportar usando as opções especificadas. Verifique as opções e tente novamente. Apareceu quando fui usar a opção de exportar do CrystalReportViewer.

Como é mais fácil encontrar a solução em inglês, traduzi no Google Translator

Ficou assim: Failed to export using the options specified. Check the settings and try again. crystal reports.

Pelo que entendi da solução, o Crystal Report View não conversa bem com o AJAX. No request da página, o crystal reports acaba perdendo a referência ao relatório que está sendo exibido.

A solução é colocar o ReportSource em uma variável de sessão.

SAP Crystal Reports print command does not work
http://stackoverflow.com/questions/10459610/sap-crystal-reports-print-command-does-not-work


A segunda opção achei aqui, é usando Session também, só que o código está na Page_Init

asp.net crystal reports issues
http://ssenarath.blogspot.com.br/2012_08_01_archive.html

Que leva pra essa página


Failed to export using the options you specified. Please check your options and try again.
http://social.microsoft.com/Forums/en-US/Offtopic/thread/f9ae2910-463e-40f5-92ac-9c29c03c31c3



Fiquem na Paz!!!


terça-feira, abril 09, 2013

Erro ao tentar utilizar o HtmlEditorExtender do Ajax Toolkit

HI,

Estou aqui criando um esquema de publicar notícias. Resolvi utilizar o Editor do Ajax Toolkit. Mas eu percebi que tinha um tal de HtmlEditorExtender. Pensei que era para extender o Editor. É não, descobri no google que ele extende o textbox. O bacana dele é que você configura a toolbar  e ainda tem a opção de upload de imagens (isso é um próximo capítulo).

Ao tentar executar o visual não deixou, disse que precisava configurar o web config com isso aqui:




 
      requirePermission="false"
      type="AjaxControlToolkit.Sanitizer.ProviderSanitizerSection,
        AjaxControlToolkit"/>
     







            type="AjaxControlToolkit.Sanitizer.
              AntiXssSanitizerProvider">






Encaixei nas posições corretas do web config. Depois disso começaram os problemas.

Could not load type 'AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider'.
http://stackoverflow.com/questions/12022493/could-not-load-type-ajaxcontroltoolkit-sanitizer-antixsssanitizerprovider


Nesse link foi que achei como instalar o AntiXSS

Sanitizer provider is not configured in the web.config file. If you are using the HtmlEditorExtender with a public website then please configure a Sanitizer provider.
http://afsawaf.blogspot.com.br/2012/08/sanitizer-provider-is-not-configured-in.html


ajax: Parser Error Message: Could not load type 'AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider
http://social.msdn.microsoft.com/Forums/en-US/netfxwebes/thread/38806739-66f7-4403-9ccf-8902c59fd44c


Ensinado a usar

Adding the New HTML Editor Extender to a Web Forms Application using NuGet
http://stephenwalther.com/archive/2011/08/17/adding-the-new-html-editor-extender-to-a-web-forms.aspx



Agora vou resolver a bronca do upload, descobrir como faz
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/HtmlEditorExtender/HTMLEditorExtender.aspx


Fiquem na Paz!!!

segunda-feira, abril 08, 2013

Arredondamento em duas casas decimais no Java

HI,

Precisei dessa rotina em uma aplicação no Android.

Usei dessa maneira:


public static double round2(double value) {
  double result = value * 100;
  result = Math.round(result);
  result = result / 100;
  return result;
}

rounding double to two decimal places
http://www.java-forums.org/advanced-java/4130-rounding-double-two-decimal-places.html#post92713


depois achei esse link, é a mesma lógica

How To Round Double / Float Value To 2 Decimal Points In Java
http://www.mkyong.com/java/how-to-round-double-float-value-to-2-decimal-points-in-java/


Editando:

No Android não funcionou quando a variável é do tipo double.

Achei essa solução, agora tá perfeito

Round a double
http://www.rgagnon.com/javadetails/java-0016.html


Fiquem na Paz!!!

sábado, abril 06, 2013

Crystal Reports acessando o MySQL através da conexão ADO.NET (XML)

HI,

Essa foi a solução que encontrei para usar o Crystal Reports com MySQL, já que no servidor que estou hospedando o site não permite usar conexão ODBC.

Depois de alguma horas pesquisando, eis que encontrei o caminho para essa integração, Glória a Deus!!!

Use Crystal report with XML Schema
http://harshana.net/index.php/2010/use-crystal-report-with-xml-schema/


O lado ruim é que dentro do Crystal Reports não consigo visualizar o que estou fazendo, mas tudo bem, melhor do que montar um html, hehehe.


Fiquem na Paz!!!

Erro ao tentar conectar no MySQL - Unknown MySQL server host localhost (11001)

HI,

Passou a acontecer esse erro depois que criei um usuário. Desconectai, e quando fui entrar novamente passou a exibir o erro Unknown MySQL server host localhost (11001).

Consegui resolver com essas dicas

How can I restore the MySQL root user’s full privileges?
http://stackoverflow.com/questions/1709078/how-can-i-restore-the-mysql-root-users-full-privileges



Fiquem na Paz!!!

Problema de incompatibilidade com equipamentos android - auto focus

HI,

Registrando, porque é um descuido que pode trazer problemas e o desenvolvedor nem perceber.

Recentemente implementei a leitura de código de barras em um sistema android. Alguns dias depois, meu sócio relatou que alguns usuários não estavam mais conseguindo atualizar o sistema, dizia que era incompatível.

Já tava desconfiado que era por causa dessa última alteração. Fui olhar a especificação do smartphone, um Galaxy Y, e reparei que não tinha auto focus. Lembrei que no sistema tinha essa permissão no manifest.

Fui em busca da solução, já que não tinha como reverter o que fiz.

Achei aqui

android market says no device compatible?
http://stackoverflow.com/questions/9482128/android-market-says-no-device-compatible


Só colocar a permissão como required igual a false.





Fiquem na Paz!!!

segunda-feira, abril 01, 2013

Erro ao tentar conectar o Crystal Reports 2008 ao MySQL usando a conexão ODBC

HI,

Hoje resolvi aprender a conectar uma base de dados do MySQL no Crystal Reports. Até então faço apenas relatórios acessando o Oracle.

Pesquisando no Google descobrir que precisaria criar uma conexão ODBC. OK, fui em busca do MySQL Connector para ODBC. Instalei a versão 64 bits no meu notebook, criei a conexão no Administrador do Microsoft ODBC do windows e quando fui acessá-la no Crystal Reports deu o seguinte erro:


Failed to connect
Details: IM014: [Microsoft] [ODBC Driver Manager] Data Source (DSN) has specified an architecture incompatibility between the driver and application


Resolvi desinstalar  a versão 64 bits e instalar a 32. Mas quando fui criar a conexão no ODBC não listava o driver do MySQL. Lembrei que tinha visto em um vídeo que o caminho do Administrador do Microsoft ODBC era alterado pra pasta C:\Windows\SysWOW64\odbcad32.exe, antes tava C:\Windows\System32\odbcad32.exe. Fiz isso e conseguir criar a conexão e acessar a partir do Crystal Reports.


Link que me ajudaram

Connecting MySQL with Crystal Reports v10
http://stackoverflow.com/questions/7020083/connecting-mysql-with-crystal-reports-v10

Crystal Report C# with MySql Tutorial
http://www.youtube.com/watch?v=NX3AEvpTSns

Using Connector/ODBC with Crystal Reports
http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-examples-tools-with-crystalreports.html



Fiquem na Paz!!!

Exibindo uma mensagem no site por algum tempo determinado usando JQuery

HI,

Coloquei esse efeito em uma página de inclusão de um sistema em Asp.Net que estou fazendo para indicar que o registro foi incluído com sucesso. Geralmente que mostrava uma mensagem usando a função Alert do java script.

Deu um pouco de trabalho, já que eu tive que acionar essa mensagem a partir do CodeBehind da página, mas graças a Deus consegui montar o quebra cabeça.

usei o exemplo desse site para montar meu código

JQuery fading a div after a certain time
http://papermashup.com/jquery-fading-a-div-after-a-certain-time/


Também tem esse exemplo

Effect Delay Trick
http://www.learningjquery.com/2007/01/effect-delay-trick




Fiquem na Paz!!!

Procedure com query dinâmica para excluir um registro no MySQL

HI,

Estou fazendo um site usando Asp.Net com MySQL, e cada tabela tem a sua classe no sistema, e em cada classe tem o método Manutenção para inserir/atualizar e o método Excluir. Só que o excluir é repetitivo em cada classe: delete from tabela where campo = 1, por exemplo. A única coisa que muda é a tabela e o campo. Então pensei em fazer uma procedure genérica onde eu passasse como parâmetro o nome da tabela , o campo da condição e o código do registro a ser excluído. No Oracle eu já sabia que tem com montar uma query pra ser execeutada.

Achei a dica aqui

How To have Dynamic SQL in MySQL Stored Procedure
http://stackoverflow.com/questions/190776/how-to-have-dynamic-sql-in-mysql-stored-procedure


Minha procedure ficou assim:


CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_excluir_registro`(IN `_NOMETABELA` VARCHAR(50), IN `_CAMPO` VARCHAR(50), IN `_VALOR` VARCHAR(50))
BEGIN
SET @s = CONCAT('DELETE FROM ',_NOMETABELA, ' WHERE ', _CAMPO, ' = ', _VALOR);
PREPARE stmt FROM @s;
EXECUTE stmt;
END




Fiquem na Paz!!!!

sábado, março 30, 2013

Trabalhando com uma tabela de Contadores no MySQL

HI,

Essa dica é fresquinha, acabei de implementar agora.

Estou fazendo um sistema de suporte usando o banco MySQL e para criar o código do protocolo minha intenção é que em cada ano o contador comece do 1.

Exemplo: 201300001, 201300002,  201300...
Quando for 2014 que comece tudo de novo, 201400001, 201400002, ...

Crie uma tabela com dois campo, Ano e Valor.

Incrementar o valor com +1 é tranquilo, mas como garantir que dois usuários não peguem o mesmo valor?

Pensei em bloquear o registro para dar um update e pegar o valor atual. Pesquisando como fazer isso, achei dessa maneira que pensei em fazer e uma muito melhor.

Achei a dica aqui

MySQL How To Select and Update in Single Statement - Increment Counter avoiding Race Condition
http://www.sqlines.com/mysql/how-to/select-update-single-statement-race-condition

Usei essa solução


UPDATE counters
SET value = LAST_INSERT_ID(value) + 1
WHERE id = 1;

SELECT LAST_INSERT_ID();


Mas eu não quis usar pegando o valor atual, e sim ele +1

Ficou assim meu update

DECLARE novo_valor INT;


UPDATE seq_protoco
SET valor = LAST_INSERT_ID(valor + 1)
WHERE ano = 2013;

SELECT LAST_INSERT_ID() INTO novo_valor;




Fiquem na Paz!!!

quarta-feira, março 27, 2013

Barra de Progresso no Android

HI,

Precisei melhorar uma tela de comunicação de um programa que fiz. Nessa tela é recebido um arquivo compactado com os arquivos para atualização e é transmitido outro arquivo compactado com as informações que foram coletadas.

Pois bem, a tela tinha uma mensagem de dialogo apenas exibindo aquela bolinha girando e uma mensagem pedindo pra aguardar. Decidir modificar para ir mostrando cada etapa do processo na tela e resolvi modificar o dialogo para Progress Bar.

Usei esses exemplos para modificar a minha rotina.

Android Progress Bar Example
http://www.mkyong.com/android/android-progress-bar-example/

android progress dialog example
http://mobile-development.org/index.php/android/android-progress-dialog-example




Fiquem na Paz!!!

domingo, março 24, 2013

Adicionando leitura de código de barras ao nosso projeto no Android

HI,

Essa é pra quem não quer ficar acessando um programa de leitura de código de barras à partir do nosso programa.

Com a lib ZXing é possível incorporar esse recurso ao nosso projeto.

Achei como fazer essa integração nesse blog:

Utilizando Zxing para ler código de barras.
http://maicon.strey.nom.br/blog/2012/04/27/utilizando-zxing-para-ler-codigo-de-barras/


Fiquem na Paz!!!

domingo, março 17, 2013

Instalação manual do Apache e do PHP no Windows

HI,

Mais um pró resolvido, graças a Deus e as pessoas que disponibilizaram a solução.

Eu já tinha instalado o MySQL no meu  notebook para acessá-lo no Visual Studio. Baixei a versão 64bit e a instalação é manual.

E hoje encontrei um sistema de pesquisa em php e decidi estudar seu funcionamento, mas para testá-lo não queria instalar o Wamp, por exemplo, já que tenho o MySQL instalado. Então decidi baixar o Apache e o PHP.

Apache (no meu caso é 64bits)
http://www.apachelounge.com/download/win64/

PHP
http://windows.php.net/download/#php-5.4


Instalei o Apache como serviço, testei no browser, tudo OK.

Descompactei o PHP, segui os passos de configuração do Apache, decidir instalar o PHP como módulo do Apache.

Quando fui iniciar o serviço do Apache deu o seguinte erro:

The Apache service named
reported the following error: >>>
httpd.exe: Syntax error on line 497 of C:/Apache24/conf/httpd.conf: Cannot load C:/php/php5apache2_4.dll into server: %1 n\xe3o \xe9 um aplicativo Win32 v\xe1lido.



Depois de alguns muitos minutos de busca no Google, consegui achar o caminho para resolver esse probleminha.

Nesse resposta consegui o link da versão 64bits do PHP, da versão atual.
http://stackoverflow.com/questions/8263297/cannot-load-php5apache2-2-dll/13510720#13510720

Tem um link para esse endereço
http://www.apachelounge.com/download/additional/


Fui na sessão Members e baixei a versão 64bits do PHP

PHP 5.4.13 available (x64 & x86)
http://www.apachelounge.com/viewtopic.php?p=24113



Fiquem na Paz!!!

domingo, março 10, 2013

Voltando as atividades aqui no Blog

HI,

Depois de alguns meses sem publicar uma só linha aqui nesse espaço que costumo compartilhar as soluções de problemas (na área da nossa profissão) que vou encontrando soluções pelo caminho, voltei a publicar.

Porque tanto tempo afastado?

Acabei ficando sem tempo. Tava numa época de preparativos pro meu casamento. Casei em fevereiro. Graças a Deus tá tudo uma maravilha.



Fiquem na Paz!!!

Instalação manual do MySQL

HI,

Baixei a versão atual do MySQL Community Server e só tinha a versão 64 bits em zip pra baixar.

Segui essa receita de bolo e minha versão tá funcionando beleza.
http://dev.mysql.com/doc/refman/5.6/en/windows-install-archive.html

Pra manipular meu banco de dados instalei o MySQL Workbench
http://www.mysql.com/downloads/workbench/


Fiquem na Paz!!!