quarta-feira, outubro 03, 2012

Exportar relatório do Crystal Report em PDF no Asp.net

HI,

Hoje tava bricando um pouco com um exemplo que fiz em Asp.net acessando um arquivo .rpt do Crystal Report. Já tinha conseguido visualizar e passando um parâmetro.

Para gerar um pdf a partir desse relatório, usei essas dicas:

Generate a PDF File using CrystalReports
http://www.codeproject.com/Articles/16379/Generate-a-PDF-File-using-CrystalReports


How can I export the crystal report to PDF directly?
http://forums.asp.net/t/1585859.aspx/1

O primeiro exemplo salva um arquivo pdf no disco, o segundo exibe o relatório no browser.

No segundo link, o código que usei foi esse:


MemoryStream oStream; // using System.IO
       oStream = (MemoryStream)
       oRpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
        Response.Clear();
       Response.Buffer = true;
       Response.ContentType = "application/pdf";
       Response.BinaryWrite(oStream.ToArray());
      Response.End();


No primeiro link não usei a funçao toda, só a parte que me interessava,  a que salva no disco.

Fiquem na Paz!!!!

Erro NullPointerException ao usar notifyDataSetChanged no Android

HI,

Vou contar um pouco da história primeiro.

Resolvi colocar uma opção de busca em uma ListActivity. Coisa simples, apenas um like no whera da query de pesquisa. Fazia um busca e não atualizava a tela e quando eu pressionava algum item dava erro. É que a query não retornava nada e dava erro, só percebi que a query não tava retornando nada depois de um bom tempo. Para atualizar eu precisava usar o comando notifyDataSetChanged() (detalhe: se a query retorna algum registro, a tela era atualizada,  a bronca era só quando não retornava registros)

Esse é o bloco de comandos que atualiza a tela, a list ou uma mensagem indicando que não retornou nada.


    private final Handler handler = new Handler() {
        @Override
        public void handleMessage(final Message msg) {
            progressDialog.dismiss();
            if ((dias == null) || (dias.size() == 0)) {
                empty.setText("Listagem Vazia");
            } else {
                mAdapter = new MyCustomAdapter();
                setListAdapter(mAdapter);
            }
        }
    };


Coloquei o comando notifyDataSetChanged() após o empty.setText("Listagem Vazia"); e ficou funcionando blz. Mas... quando fui testar num tablet e não tinha registro ainda, quando fui acessar a tela, deu erro de java.lang.NullPointerException. Fiquei sem entender um pouco por que fui testar no smartphone excluíndo todos os registro e mostrou a mensagem Listagem Vazia, mas quando sair e voltei pra tela, deu o mesmo erro. Pesquisando mais uma vez no google, encontrei a solução, graças a Deus e a quem colocou.

o bloco de comando ficou assim:


    private final Handler handler = new Handler() {

        @Override
        public void handleMessage(final Message msg) {
            progressDialog.dismiss();
            if ((dias == null) || (dias.size() == 0)) {
                empty.setText("Listagem Vazia");
               
               
                if (mAdapter != null){
                mAdapter.notifyDataSetChanged();
                }

            } else {
                mAdapter = new MyCustomAdapter();
                setListAdapter(mAdapter);
            }
        }
    };



Achei aqui

Android java.lang.RuntimeException: Unable to resume activity
http://stackoverflow.com/questions/10897551/android-java-lang-runtimeexception-unable-to-resume-activity

foi preciso colocar um teste para saber se o adapter era null.

Agora tá 100% o lance da pesquisa



Fiquem na Paz!!!

terça-feira, outubro 02, 2012

Saber se uma string é um número válido

HI,

Precisei de uma função para saber se o texto de uma busca era formado apenas por números. Achei uma rotina que inda até se o número é valido. Estou usando em um aplicativo android.

Se o usuário digitar apenas um número, aí eu também pesquiso pelo _id do registro, além de pesquisar por outros dois campos varchar.

Achei aqui

How to check if String() value is numeric
http://www.coderanch.com/t/401142/java/java/check-if-String-value-numeric

Essa é a rotina


if ("-2324.00".matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+")) {
System.out.println("Is a number");
} else {
System.out.println("Is not a number");
}


Fiquem na Paz!!!