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!!!

sexta-feira, setembro 28, 2012

Centralizar o menu na horizontal usando CSS

HI,

Não precisei mais usar esse código, mas deixo aqui caso alguém precise.

When Is a Float Not a Float?
http://www.search-this.com/2007/09/19/when-is-a-float-not-a-float/



Fiquem na Paz!!!

Commit em uma procedure no firebird

HI,

Vou explicar primeiro a situação.

Em uma procedure para retornar o resultado de uma query, precisei primeiro popular a tabela com um select/insert. A procedure executou sem problemas, mostrou o resultado no grid do ibexpert, mas quando fui olhar na tabela, não tinha registro. Deduzi que era a falta do commit, mas aí não foi possível executar a procedure, dizia que o comando não era entendido. Pesquisando no google encontrei a solução.

How do I use transactions in Firebird?
http://stackoverflow.com/questions/6256678/how-do-i-use-transactions-in-firebird

Tive que colocar esse comando no começo da procedure

IN AUTONOMOUS TRANSACTION
DO


Fiquem na Paz!!!

sexta-feira, setembro 21, 2012

Vídeo do exemplo Asp.Net com MySQL

HI,

Gravei esse vídeo ontem para mostrar como tá ficando um site que estou fazendo utilizando Asp.Net com MySQL. Apenas treinando.





Tem dois posts aqui no blog sobre esse assunto

Começando com Asp.Net e MySQL

Selecionar a linha do GridView ao clicar no Asp.Net



Usei esse programa para gravar esse vídeo
http://www.baixaki.com.br/download/autoscreenrecorder.htm


Fiquem na Paz!!!

quinta-feira, setembro 20, 2012

Selecionar a linha do GridView ao clicar no Asp.Net

HI,

Antes eu usava o recurso padrão do GridView, o de habilitá-lo para ser selecionável. Com essa opção ativa é exibido um comando para selecionar a linha. Mas dessa vez eu queria selecionar a linha do grid ao clicar nela, sem precisar desse recurso ativo.

Achei essa solução

Select a row in an asp:GridView without using a Select Command
http://www.geekzilla.co.uk/View9FC28EE6-ACB0-4F51-BFE4-38B0B10134D5.htm


Tranquilo. Estava indo tudo muito bem até eu resolver adicionar duas colunas, uma para editar e outra para excluir o registro. Ao tentar selecionar uma linha pela segunda vez dava um erro de _doPostBack não definido.

Pois bem, depois de um certo tempo procurando, madrugada, já tava pensando em voltar ao modo tradicional de selecionar a linha. Mas graças a Deus consegui achar uma solução.

Select GridView Row Without Postback OnClick Of Cell JavaScript
http://csharpdotnetfreak.blogspot.com/2012/08/select-gridview-row-onclick-of-cell-javascript.html


Agora tá tudo beleza. Esse é o meu grid.




Lembrem-se: O segredo é a palavra chave.

Fiquem na Paz!!!

quarta-feira, setembro 19, 2012

Começando com Asp.Net e MySQL

HI,

Sempre os sites aqui da empresa Asp.Net com Oracle.

Mas agora surgiu uma necessidade pessoal de aprender a usar com MySQL.

Já aprendi a fazer uns exemplos básicos e estou procurando só usar procedures. Já fiz a de obter os registros e a de inserir, mais tarde continuo o aprendizado.

Vou colocar aqui os sites que achei.

Utilizando o MySQL em C# e Asp.Net
Com esse site aprendi a instalar a dll pra acessar o MySQL
http://www.mundoasp.net/utilizando-o-mysql-em-c-sharp-e-asp-dot-net/

Criando Stored Procedures no MySQL
Com essa dica criei a procedure para obter os registros da tabela
http://www.oficinadanet.com.br/artigo/2088/criando_stored_procedures_no_mysql

MySQL 5 C# sample code using ObjectDataSources
Esse estou usando para acessar as procedure no site
http://dotnetnuke.adefwebserver.com/Default.aspx?tabid=289



Fiquem na Paz!!!



Um pouco de PHP

HI,

Surgiu a necessidade de criar um site e como a hospedagem Asp.Net o valor é um pouco maior por conta do Sql Server, resolvi que ia fazer em Php para usar o My Sql.

Fui ver um framework para usar e optei pelo cake php.

Não foi muito complicado fazer o exemplo do blog. Fiquei apanhando foi para fazer o exemplo da autenticação, estava acompanhando pelo tutorial da verão 1.3, hehehe.

Mesmo achando o cake php legalzinho, ainda tava com a idéia de usar o visual studio, hehehe.

Ontem um amigo mostrou o site da empresa dele e vi que foi feito em aso.net. Fui verificar as características da hospedagem e vi que oferecia 100MB do Sql Server por R$25,00, fora a hospedagem do site. Vi também que oferecia Access, My SQL, Firebird. Aí pensei, por que não usar Asp.net com My SQL.

Então ontem mesmo comecei a aprender.

Vou por aqui os links que achei sobre o cake php, em outro post falo sobre o my sql com asp.net.

Aprendendo a fazer o primeiro bolo
http://www.slideshare.net/adorepump/cakephp-aprendendo-a-fazer-o-primeiro-bolo-presentation

10 Awesome CakePHP Tutorials
http://devmoose.com/coding/10-awesome-cakephp-tutorials

Vários exemplos
http://www.jamesfairhurst.co.uk/tags/view/cakephp



PS: ficar trabalhando com Delphi, Visual Studio e Android já tá bom demais, hehehe.

Fiquem na Paz!!!

sexta-feira, setembro 14, 2012

Quebrar texto ao montar impressão modo texto no Delphi

HI,

Precisei fazer com que um recibo de pagamento para impressora não fiscal fosse impresso em um modelo térmico, uma daruma dr700.

Para o modelo matricial tava usando a dll, mas não consegui usar a desse modelo. Como tava com o tempo curto, resolvi montar da maneira antiga, mandando pra impressora.

Antes tentei usar o forte reports, mas não ficou muito legal, ficou faltando imprimir alguns caracteres na margem direita.

Pesquisando uma alternativa encontrei um monte de exemplos usando a unit TPrinters.

Quando tava implementando, me deparei com um problema, ao fazer o texto continuar na próxima linha, não estava separando de forma correta. Ex: Colégio, fica o "C" numa linha e "olégio" na seguinte.

Consegui resolver esse problema usando os exemplos desses dois sites

WrapText
http://www.delphibasics.co.uk/RTL.asp?Name=WrapText&ExpandCode2=Yes

Delphi: Write multi-line text on a TCanvas
http://shrimpworks.za.net/2006/05/24/delphi-write-multi-line-text-on-a-tcanvas/


Ficou assim para imprimir um texto:


lines.Text := WrapText('Texto a ser impresso em mais de uma linha. Fazendo isso a separação das palavras acontece de forma correta. Espero ter ajudado.', 47);

for I := 0 to lines.Count - 1 do begin
  Canvas.TextOut(Coluna,  Linha, lines[I]);
  Linha := Linha + PuloLinha;
end;



Fiquem na Paz!!!

terça-feira, setembro 04, 2012

Redirecionar a página após abrir uma janela popup

HI,

Hoje precisei fazer a página que abria uma janela popup retornar pra página anterior.

Tentei colocar um Response.Redirect após chamar o popup, mas não funcionou.

Fui mais uma vez pesquisar no google e achei essas página:

Pop-up window change url of first window
http://www.webdeveloper.com/forum/archive/index.php/t-162002.html

JavaScript: 2 window.opener.location.href statements with alert() in between not functioning
http://stackoverflow.com/questions/2994103/javascript-2-window-opener-location-href-statements-with-alert-in-between-not


Coloquei o código na janela popup
opener.location.href='newURL.html';



Fiquem na Paz!!!

Obter o valor de um campo no RowCommand do GridView

HI,

Se tiver outra maneira eu desconheço.

Obter o valor de um campo da query no RowDataBound é tranquilo, mas eu precisei de valores que não aparecem no gridview quando uma linha é selecionada.

No GridView faço assim:
string cod_associado = ((DataRowView)e.Row.DataItem)["COD_ASSOCIADO"].ToString();

Vi que existe a propriedade DataKeyNames no gridview e fui pesquisar no google como utilizá-lo.

Achei essa páginas

ASP .NET - Manutenção de dados com GridView e Ajax
http://www.macoratti.net/11/09/aspn_gdvm.htm

GridViewCommandEventArgs
http://forums.asp.net/t/1033685.aspx

Get DataKey values in GridView RowCommand
http://stackoverflow.com/questions/2818203/get-datakey-values-in-gridview-rowcommand


Consegui montar esse código


protected void gdvTurmas_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Select")
            {
                GridViewRow row = gdvTurmas.Rows[Convert.ToInt32(e.CommandArgument)];

                string cod_associado = gdvTurmas.DataKeys[row.RowIndex].Values[0].ToString();

                Session["CODASSOC"] = cod_associado;
            }
        }



Se for pra pegar um valor que tá visível no grid, no evento RowCommand, é assim:
row.Cells[4].Text


Fiquem na Paz!!!

sexta-feira, agosto 31, 2012

Você tem perfil de empreendedor?

HI,

Achei uma reportagem sobre esse portal do governo. A matéria era sobre educação financeira. E navegando achei uma sessão sobre Empreendedorismo.

Fiz um teste para saber se a pessoa tem perfil empreendedor. Até que minha pontuação foi boa.






Fiquem na Paz!!!

quarta-feira, agosto 29, 2012

Menu horizontal simples usando CSS

HI,

Em um projeto novo decidi usar um menu na horizontal. Não tem submenu.

Estou usando esse

Menu horizontal simples
http://codigofonte.uol.com.br/codigo/css/diversos/menu-horizontal-simples


Imagem do projeto que tou trabalhando.




Fiquem na Paz!!!

Fixar rodapé no final da janela

HI,

Estou sempre usando esse esquema de layout nos projetos web que faço.

Fica um visual bacana manter o rodapé sempre no final da página, grudado no bottom da janela, usando css.


Posicionar o rodapé embaixo da janela
http://www.maujor.com/tutorial/rodape-embaixo-da-janela.php


Fiquem na Paz!!!

segunda-feira, agosto 20, 2012

Nova linha ao usar Response.Write no Asp.Net

HI,

Precisei desse código para pular a linha ao escrever um texto na página.

Response.Write('Linha1.' + Environment.NewLine + 'Linha2.');


Como eu não estava escrevendo em uma página html, usar o
não funcionou.


Mais dicas sobre o Response.Write
http://www.dotnetperls.com/response-write


Fiquem na Paz!!!

quinta-feira, agosto 16, 2012

Exibir uma URL em tela cheia no Android

HI,

Surgiu a necessidade de abrir um site em tela cheia numa aplicação que estou fazendo.

Primeiro tentei fazer abrindo a url no browser do android, mas não achei o F11 e nem um parâmetro que o abrisse em tela cheia (full screen).

Usei esse código
http://stackoverflow.com/questions/2201917/how-can-i-open-a-url-in-androids-web-browser-from-my-application


Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browserIntent);


Pois bem, resolvi tentar com o WebView. Único probleminha é que a página ficou grandona na tela do emulador, fora da proporção que eu percebi abrindo no browser.

Fui à procura da solução. Achei duas.
http://stackoverflow.com/questions/1991219/android-webview-wrap-content

usando: WebView.setInitialScale(1);

ou:

webview_settings.setLoadWithOverviewMode(true);
webview_settings.setUseWideViewPort(true);
webview_settings.setBuiltInZoomControls(true);


Meu código ficou assim:


WebView myWebView = (WebView) findViewById(R.id.webview);
       
WebSettings webSettings = myWebView.getSettings();
       
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setBuiltInZoomControls(true);
       
webSettings.setJavaScriptEnabled(true);
       
myWebView.setWebViewClient(new WebViewClient());
myWebView.loadUrl("http://localhost:8098/");





Tem esse endereço sobre o webview também
http://developer.android.com/guide/webapps/webview.html



Fiquem na Paz!!!!


quinta-feira, agosto 09, 2012

Colocar a caixa de curtir do Facebook no Blogger

HI,

Foi com essa dica que coloquei a caixa de curtir do facebook no blog.

http://templateseacessorios.blogspot.com.br/2012/04/colocar-caixa-de-curtir-do-facebook-no.html



Fiquem na Paz!!!

quinta-feira, agosto 02, 2012

Obter o texto de um item da listview no Android

HI,

Precisei pegar o texto do item selecionado na listview. Ela é alimentada por uma query e o _id é o contador da linha.

Usei esse dica
String s =(String) ((TextView) view.findViewById(R.id.myNr)).getText();

Que achei aqui

Android, Custom ListAdapter get TextView-Text
http://stackoverflow.com/questions/1724937/android-custom-listadapter-get-textview-text/1724951#1724951


Fiquem na Paz!!!

quarta-feira, agosto 01, 2012

Executando um loop entre uma diferença de datas no Oracle

HI,

Vou precisar criar uma procedure para inserir/atualizar dados de acordo com um período informado. Se for para inserir, criar um registro para cada data do período informado.

Ex: Período de 01/06/2012 à 03/06/2012, taxa 5%

Quando for inserir, a procedure vai criar 3 registros na tabela
01/06/2012 - 5
02/06/2012 - 5
03/06/2012 - 5

Antes de partir para a procedure, criei a lógica que vou precisar.


declare


data_inicial date;
data_final date;
num_dias number;

begin


data_inicial := to_date('10/06/2012','DD//MM/YYYY');
data_final := to_date('20/06/2012','DD//MM/YYYY');


dbms_output.put_line( 'data inicial: ' || to_char(data_inicial,'DD/MM/YYYY'));
dbms_output.put_line( 'data final: ' || to_char(data_final,'DD/MM/YYYY'));


num_dias := (data_final - data_inicial)+1;


dbms_output.put_line( 'dias: ' || num_dias);
dbms_output.put_line( '' );


for i in 1..num_dias loop
  dbms_output.put_line( 'data: ' || to_char((data_inicial-1)+i,'DD/MM/YYYY') || ', dia ' || i);
end loop;


end;

Resultado da execução da instrução pl/sql




Nesse endereço tem informações sobre loop no oracle


Fiquem na Paz!!!

Julho

HI,

Sequência quebrada, consegui passar o mês de julho sem postar nada aqui.

Não posso deixar a peteca cair, mesmo com tanto serviço pra fazer não falta material para compartilhar.

Muitas foram as vezes que deixei de atualizar o blog, diversos motivos, etc. Mas agora será diferente, nada de abandonar esse espaço novamente.

Fiquem na Paz!!!

quinta-feira, junho 28, 2012

Fazendo a scrollview ocupar toda a tela no android

HI,

No emulador tava uma beleza, já que os componentes não ocupavam toda a tela e se fazia necessário o uso da barra de rolagem. Mas quando coloquei no meu atrix, ficou faltando preencher um pedaço inferior da tela. Percebi por que a cor do componente não era preta.

Mesmo modificando a cor de fundo da tela não resolveu.

Achei como resolver isso no google.

Linear layout in a scrollview does not occupies full height
http://stackoverflow.com/questions/4814230/linear-layout-in-a-scrollview-does-not-occupies-full-height

Tem esse também
http://android-layouts.com/layout/anonymous/2011/06/02/full-screen-scrollview


Fiquem na Paz!!!

terça-feira, junho 26, 2012

Update a partir de uma select no Oracle

HI,

Passei a vida toda apenas utilizando o select/insert para popular uma tabela a partir do resultado de uma consulta. Mas ontem precisei além de inserir, também atualizar. Não queria executar a query duas vezes para fazer isso, um select/insert para inserir e um loop em outra query para atualizar.

Sabia que no MySql tem esse recurso de inserir se não existir, e se existir, atualizar. Então fui perguntar ao Google como fazer isso no Oracle. Descobri que existe o comando MERGE, que serviria para o meu propósito.

Comando MERGE
http://psoug.org/reference/merge.html


Agora vou relatar os problema que enfrentei para conseguir executá-lo.

Eu modifiquei a procedure e passou a ocorrer esse erro: ORA-00918: column ambiguously.

Passei um bom tempo para achar esse erro, já que analisando a query não via nenhum problema aparente já que todos os campos estavam precedidos por aliases. Ex:. a.id = b.id.

Pesquisando no google vi que o problema era a repetição de um campo na select. É que antes no select/insert, existiam dois campos que recebiam o mesmo valor: Insert into teste(id, viagens1, viagens2) select id, viagens, viagens from teste2.

Foi aqui que achei a solução para o problema ORA-00918: column ambiguously no MERGE
https://forums.oracle.com/forums/thread.jspa?messageID=10327846


Outro problema que enfrentei foi esse: ORA-30926: unable to get a stable set of rows in the source tables.

No teste para identificar se o registro existe ou não, coloquei apenas 1 campo e minha chave primaria possui 3 campos.

Achei a solução aqui
http://stackoverflow.com/questions/2337271/ora-30926-unable-to-get-a-stable-set-of-rows-in-the-source-tables

Um outro erro que acontece é se colocar um campo da chave primaria no update para ser atualizado.



Fiquem na Paz!!!



quinta-feira, junho 14, 2012

Algumas rotinas para trabalhar com datas no C#

HI,

Alguma rotinas precisei usar hoje em um site que estou trabalhando

Quantidade de dias entre duas datas

(DataFinal - DataInicial).Days

achei aqui
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/0625cefa-461b-4a3c-b7f0-d39d06741b70/


Identificar todos os domingos de um intervalo de datas

All Sundays between two dates in asp.net C#
http://hamidseta.blogspot.in/2010/01/all-sundays-between-two-dates-in-aspnet.html


Data por Extenso
http://blog.marvinsiq.com/2008/10/19/data-por-extenso-no-csharp/

Precisei dessa rotina para obter o nome do dia da semana em português usando a classe CultureInfo.


Obter o nome do dia de uma data

Getting the Day Name for a Date
http://www.blackwasp.co.uk/NameOfDay.aspx




Fiquem na Paz!!!

Rotina para criar um diretório no android

HI,

Uso essa rotina em meus programas. Existem outras no mesmo endereço.

How to create directory automatically on SD card
http://stackoverflow.com/questions/2130932/how-to-create-directory-automatically-on-sd-card/7439425#7439425


Fiquem na Paz!!!

Carregando as imagens de um listview em background no android

HI,

Mesmo os dados do meu listview sendo carregados em background, usando thread, o carregando passou a ficar lendo quando decidir incluir imagens armazenadas em disco.

Para resolver usei o recurso de AsyncTask para carregar as imagens no listview. Os dados aparecem primeiro, depois as imagens vão sendo exibidas a medida que são carregadas no componente imageview.

Using AsyncTask to load Images in ListView
http://stackoverflow.com/questions/7729133/using-asynctask-to-load-images-in-listview


Fiquem na Paz!!!

Redimensionando uma imagem no android

HI,

Rotina que usei para criar uma miniatura de uma foto capturada através da câmera do android.

Android Image Resize basic
http://stackoverflow.com/questions/8268517/android-image-resize-basic


Fiquem na Paz!!!

Salvando a imagem de um Bitmap em disco no android

HI,

Precisei dessa dica para salvar a versão reduzida de uma foto capturada pelo android. É que eu mostro a imagem em um listview com a dimensão de 50x50. E carregando uma imagem com mais de uma mega fica complicado, mesmo carregando em backgroud, para não deixa a listagem uma carroça.

Depois que a foto é capturada, executo uma rotina para reduzir seu tamanho e depois salvo em outra pasta. E é essa imagem reduzida que carrego no listview.

achei aqui a dica

Android : Bitmap save to location
http://stackoverflow.com/questions/649154/android-bitmap-save-to-location


Fiquem na Paz!!!

terça-feira, maio 29, 2012

Esconder a barra de rolagem do WebView - Android

HI,

Precisei resolver essa questão depois que implementei a tela de exibir um texto com formato html usando o componente WebView.

Mesmo deixando o backgroud da página da mesma cor do formulário, do lado direito ficava um espaço de outra cor. Deduzi que seria o espaço da barra de rolagem.

Pesquisando, achei essa solução:

Android WebView leaves space for scrollbar
http://stackoverflow.com/questions/3998916/android-webview-leaves-space-for-scrollbar/4643231#4643231


Fiquem na Paz!!!

Exibir uma imagem de recurso no webview - Android

HI,

Essa dica é para exibir uma imagem de recurso ( acredito quer seja esse o nome ), um imagem que faz parte do seu aplicativo. No meu caso, coloquei a imagem em res/drawable.

Criei uma tela para exibir um texto qualquer, lido a partir de um arquivo de recurso.

Estava exibindo em um textview, e para formatar o texto, usando as tags html. Para exibir o texto formatado estava usando o comando Html.fromHtml.

Só que eu precisei em um dos textos, exibir uma imagem. E como não tava querendo exibir a partir do disco ou da web, fui em busca de uma solução.

Encontrei nessas dicas:

Is it possible to display image with loadDataWithBaseURL() method in android?
http://stackoverflow.com/questions/3069822/is-it-possible-to-display-image-with-loaddatawithbaseurl-method-in-android/5373346#5373346

Loading local html-page into webview?
http://forum.xda-developers.com/showpost.php?p=3540871&postcount=2


Deixei de utilizar o TextView, para passar a utilizar o WebView.

Ficou mais ou menos assim meu texto:



Imagem










Fiquem na Paz!!!



sexta-feira, maio 25, 2012

Criar uma linha para separar elementos no layout do android


HI,

Para ficar visualmente melhor, procurei uma maneira para colocar uma linha separando os dados do topo da tela e uma list.

achei essa solução:

Creating line dividers in Android tab layout paragraphs
http://stackoverflow.com/questions/4583015/creating-line-dividers-in-android-tab-layout-paragraphs/4583071#4583071


Fiquem na Paz!!!

Alinhando elemento no rodapé em um layout Android

HI,

Em uma tela principal que montei, precisei colocar o endereço do site no rodapé da tela. Ficando o logo no topo, dois botões para acessar as telas do programa e uma imagem no rodapé.

Pesquisando, vi que precisaria usar um layout do tipo Relative Layout. E alinhar o elemento usando a propriedade android:layout_alignParentBottom;

Achei aqui esse dica:

How to align views at the bottom of the screen?
http://stackoverflow.com/questions/2386866/how-to-align-views-at-the-bottom-of-the-screen/2386929#2386929


Fiquem na Paz!!!


quinta-feira, maio 24, 2012

Executando algo no botão cancelar de um dialogo Data/Hora no Android

HI,

Usei essa dica para chamar o dialogo de hora após um dialogo de data. Antes tinha colocado para chamar apenas no OnTimeSet, mas depois vi a necessidade de chamar o dialogo caso o usuário também pressionasse o botão Cancelar.

DatePickerDialog cancelclick
http://forum.xda-developers.com/showpost.php?p=12428853&postcount=5


Fiquem na Paz!!!!

Dialogo para data e para hora no Android

HI,

Precisei em uma tela informar a data e a hora de início de uma tarefa. Com esse site que vou passar ficou muito bom.

Date Picker & Time Picker Dialog and set it into the String Format
http://typicaljava.blogspot.com.br/2012/02/date-picker-time-picker-dialog-and-set.html



Fiquem na Paz!!!

terça-feira, maio 15, 2012

Invalid enum value

HI,

Aconteceu esse erro com um amigo aqui do trabalho. Um componente de conexão ADO dando esse problema: Invalid enum value.

Ao clicar percebi que a propriedade Mode ficava em branco quando aparecia a mensagem de erro na tela.

Pesquisando no google dizia que era para verificar a string de conexão com o banco de dados access.

A solução achei aqui:

TADOConnection object gets Invalid Enum Value
http://qc.embarcadero.com/wc/qcmain.aspx?d=97311


Fiquem na Paz!!!

Erro ao utilizar o toast para exibir uma mensagem em um dialogo

HI,

Hoje de manhã modifiquei um código que exclui um registro. Ao selecionar o menu Excluir Contato do contextmenu, implementei um dialogo para questionar se realmente deseja excluir.

Antes estava assim:

Toast.makeText(this, "Contato Excluíodo!!!", Toast.LENGTH_SHORT).show();


Fui usar o mesmo código dentro do onCLick do AlertDialog e deu a seguinte mensagem de erro:

The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new DialogInterface.OnClickListener(){}, String, int)


Tentei usar assim:

               
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
           builder.setMessage("Confirmar a exclusão do contato?")
                  .setCancelable(false)
                  .setPositiveButton("SIM", new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int id) {
                       Toast.makeText(this, "Contato Excluído!!!", Toast.LENGTH_SHORT).show();
                     
                      contatos.remove(info.position);
               
                  mAdapter.notifyDataSetChanged();
                   
                     if (contatos.isEmpty()){
                      empty.setText("Listagem Vazia");
                     }
                      }
                  })
                  .setNegativeButton("NÃO", new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int id) {
                           dialog.cancel();
                      }
                  });
           AlertDialog alert = builder.create();
           alert.show();


A solução foi apenas acrescentar o nome da activity antes do this

Toast.makeText(NomeActivity.this, "Contato Excluído!!!", Toast.LENGTH_SHORT).show();

Encontrei com uma pequena busca no google

Toast inside OnClickListener
http://stackoverflow.com/questions/4531539/toast-inside-onclicklistener


Fiquem na Paz!!!!


segunda-feira, maio 14, 2012

Obter o id do último registro inserido no SQLite

HI,

Precisei pegar o id ( do tipo auto increment ) do registro que estava inserindo.

Pesquisando no google, achei essas dicas:

Get last inserted value from sqlite database Android
http://stackoverflow.com/questions/4017903/get-last-inserted-value-from-sqlite-database-android

Meu código ficou assim: this.Id = dbHelper.db.insert(DB_TABLE, null, values);

Fiquem na Paz!!!

quinta-feira, maio 10, 2012

Alguns artigos que andei lendo #1

HI,

Vou passar a colocar os links de artigos que eu venha a ler.

11 hábitos de pessoas (muito) improdutivas
http://info.abril.com.br/noticias/carreira/11-habitos-de-pessoas-muito-improdutivas-08052012-5.shl

Pense grande, comece pequeno, ande rápido
http://veja.abril.com.br/noticia/educacao/pense-grande-comece-pequeno-e-ande-rapido

Menos dívida, Mais dinheiro
http://vocesa.abril.com.br/desenvolva-sua-carreira/materia/artigos-gustavo-cerbasi-menos-divida-mais-dinheiro-632871.shtml

A tecnologia como aliada da independência financeira
http://vocesa.abril.com.br/blog/voce-mais-rico/2011/10/10/a-tecnologia-como-aliada-da-independencia-financeira/



Fiquem na Paz!!!

Calculando a idade a partir da data de nascimento - Delphi

HI,

Precisei implementar isso hoje em uma aplicação.

Como calcular idade da pessoa a partir da data de nascimento
http://www.planetadelphi.com.br/dica/6395/como-calcular-idade-da-pessoa-a-partir-da-data-de-nascimento


Fiquem na Paz!!!

sábado, maio 05, 2012

[Accessibility] Missing contentDescription attribute on image

HI,

Deparei-me com esse Warning essa semana "[Accessibility] Missing contentDescription attribute on image".

Faltava uma propriedade no componente image.

Android Lint contentDescription warning
http://stackoverflow.com/questions/8500544/android-lint-contentdescription-warning


Fiquem na Paz!!!

Deixando a propriedade From mais amigável ao enviar um email

HI,

Foi-me solicitado na empresa que trabalho alterar o from do email que é enviando por um aplicativo de envio.

Antes na propriedade from informava apenas o endereço de email e no cliente de email é exibida a primeira parte do endereço. Ex: nao_responder@empresatal.com.br, para o usuário é exibido nao_responder. Então a solicitação foi para ser exibido "Marketing Empresa Tal".

A solução tá nesse enderenço:

How do I change the FROM address to a friendly name?
http://www.systemwebmail.com/faq/2.4.aspx


Fiquem na Paz!!!

quinta-feira, abril 26, 2012

Erro ORA-06502 usando function do Oracle no Asp.Net

HI,

Mais um erro que deu um pouco de trabalho.

Ao chamar uma function do oracle que retorna um valor string deu o erro ORA-06502. Já tinha usando uma que retornava um valor do tipo data e não deu problema nenhum.

Recorrendo ao google, encontrei essa solução:

ORA-06502: PL/SQL: numeric or value error: character string buffer too small – Solution
http://maniish.wordpress.com/2007/05/16/ora-06502-plsql-numeric-or-value-error-character-string-buffer-too-small-solution/


Foi só definir o tamanho Size do parâmetro de retorno que ficou beleza.


command.Parameters.Add(new OracleParameter("valor_config", OracleDbType.Varchar2, ParameterDirection.ReturnValue));
command.Parameters["valor_config"].Size = 100;




Fiquem na Paz!!!

quarta-feira, abril 25, 2012

Exclamação Vermelha no Eclipse

HI,

Vocês já viram uma exclamação vermelha ao lado do nome do seu projeto android no eclipse?

Ontem me deparei com uma, acredito que foi pela segunda vez. Como não caiu a ficha do que se tratava, fui pesquisar no google.

Para achar a solução, erá só verificar na aba problems.

achei aqui
http://www.portalandroid.org/comunidade/viewtopic.php?f=5&t=12100


No meu caso, o problema é que faltava uma pasta Test. É que eu importei esse projeto, exemplo de um livro.

Fiquem na Paz!!!!

Autonomous Transactions - ORACLE

HI,

Ontem precisei criar uma trigger que de acordo com determinada condição iria provocar um raise_application_error e com isso abortar o processo de um sistema web adquirido aqui na empresa que trabalho.

Como a mensagem de erro desse raise não estava sendo exibida para o usuário, resolvi criar uma tabela de log para gravar um registro quando acontecesse esse erro. Percebi que mesmo desabilitando o comando raise, estava provocando erro na aplicação web, então deduzi que seria o COMMIT para salvar os dados dessa tabela de log.

Fui pesquisar como realizar esse commit sem afetar a transação da aplicação web. Foi aí que descobrir esse tal de Autonomous Transactions.

Autonomous Transactions
http://www.oracle-base.com/articles/misc/autonomous-transactions.php

Implementei uma procedure para gravar o registro e ficou na medida usando esse recurso de transação autônoma.

Para maiores informações tem esse site aqui.
http://pscoliveira.blogspot.com.br/2007/11/autonomous-transactions.html


Tem uma dica aqui de como criar a sua exceção
http://stackoverflow.com/questions/6020450/oracle-pl-sql-raise-user-defined-exception-with-custom-sqlerrm



Fiquem na Paz!!!!


PS: De acordo com contador do blog esse é o Post de número 200. Ebaaaaaaaaaa!!!!!!


segunda-feira, abril 23, 2012

Criptografia em C#

HI,

Depois de enfrentar vários problemas com a rotina de criptografia que estava usando, consegui achar uma nova.

Dava erro de invalid length, error base 64.

Estava usando o algoritmo DES e depois passei a usar o Rijndael.

Agora estou usando esse código:

Criptografando a Senha em C# – Classe Criptografia
http://profwendellrs.wordpress.com/2011/08/25/criptografando-a-senha-em-c-classe-criptografia/



Fiquem na Paz!!!

segunda-feira, abril 09, 2012

Android spinner (drop down list) exemplo

HI,

Um exemplo que achei certa vez que estava com dúvidas sobre o spinner. Estou compartilhando o link





Android spinner (drop down list) example
http://www.mkyong.com/android/android-spinner-drop-down-list-example/


Fiquem na Paz!!!!

Operador de conjunto IN no C#

HI,

Precisei testar se um número fazia parte de um conjunto de números.

No delphi teria feito assim:

Numero := '12';

If (Numero IN ('36,187,358,378,240,50,248,96')) then begin
  //número existe no conjunto
end;

E no C# ? Bem, no C# não tem o IN, tive que buscar no Google uma solução. Encontrei usando For, Contains, etc. Mas acabei optando pelo IndexOf


Numero = "12";

If ("36,187,358,378,240,50,248,96".IndexOf(Numero) != -1 )
{
  //número existe no conjunto
}



Sobre a funcionalidade do IndexOf
http://www.mundoasp.net/indexof-c-sharp/


Fiquem na Paz!!!

TreeView em Asp.Net com alguns recursos a mais

HI,

Caso alguém esteja precisando de um treeview com opção de excluir, editar, menu popup, checkbox

Odyssey.Web - ASP.NET Ajax Control Library
http://odysseyweb.codeplex.com/

Mais informações aqui
http://www.codeproject.com/KB/ajax/OdcTreeView.aspx


Fiquem na Paz!!!

Obter o retorno de uma procedure do oracle através de parâmetro no C#

HI,

Estava precisando obter a matrícula de um usuário que foi criado no banco de dados, para exibir em um dialogo no navegador.

Já sabia como receber o resultado de uma query para exibir em um grid, por exemplo, utilizando procedure, mas obter apenas um valor, ainda não.

Achei essa dica aqui sobre o assunto

Getting values back from Oracle Procedures in C# .Net
http://csharpdeveloper.wordpress.com/2009/01/14/getting-values-back-from-oracle-procedures-in-c-net/

Nessa dica também tem como pegar o resultado de uma função do Oracle.


Fiquem na Paz!!!

terça-feira, março 27, 2012

Temple Run, Jogo maneiro para Android

HI,



Pense num joguinho que estou me esforçando pra não jogar tanto, hehehe.

Esse dica é do blog do Rodrigo Toledo

Game: Temple Run finalmente chegou ao Android!
http://www.rodrigostoledo.com/2012/03/game-temple-run-finalmente-chegou-ao-android/

Boa diversão!!!

Fiquem Na Paz!!!

Transforme o smartphone em scanner

HI,

Essa dica é do site da INFO

Instalei a versão para android. Gostei do Resultado, ficou bem nítido o pdf que tirei de uma folha do meu caderno.

http://info.abril.com.br/noticias/blogs/como-se-faz/blog-info-como-se-faz/smartphone-scanner/


Fiquem na Paz

segunda-feira, fevereiro 27, 2012

Acessando um componente da Master Page no Asp.Net

HI,

Hoje precisei colocar um recurso em um site que fiz. Atualizar um item no menu que dá acesso a página de mensagens. Tinha que colocar ao lado do texto entre parenteses a quantidade de mensagens não lida.

A lógica que usei foi essa:


  1. Obter a quantidade mensagens não lidas ao fazer o login e colocar em uma variável de sessão.
  2. Colocar na Page_Load do Master Page um código para atualizar o item do menu: lblMenuMensagem.Text = "Mensagens (" + Session["QT_MSG"].ToString() + ")";
  3. Ao acessar uma mensagem, atualizar a variável de sessão e modificar o valor do menu: 
   Label mLabel;
            mLabel = (Label)Page.Master.FindControl("lblMenuMensagem");
            if (mLabel != null)
            {
Session[" QT_MSG "] = ObterQtMsgNaoLida();
                mLabel.Text = "Mensagens (" + Session["QT_MSG"].ToString() + ")";
                
            }

Esse código fica na Page_Load da página LerMensagem.aspx

Páginas que achei no google

Update Label in Master page from Content page. Help please

Passing Information Between Content and Master Pages


Fiquem na Paz!!!

Obter o valor da sequence gerada ao inserir um registro no oracle.

HI,

Acabei de aprender isso e já estou disponibilizando aqui.

Situação:

Criei uma procedure para chamar duas outras procedures. Uma cria o registro Pai e a outra o registro Filho.

Eu tinha que passar o código do registro Pai para a procedure dois.

Antes tinha resolvido isso armazenando o valor da sequence em uma variável e depois passava para as duas procedures, ficando assim:


create or replace procedure INSERIR_MSG_USUARIO(pusr_id    number,
                            ptitulo   varchar2, pmensagem   varchar2, pcod_sistema     number)
is
        seq number := 0;
begin
        select cam_nrid.nextval into seq from dual;
   
        inserir_campanha('MENSAGEM AUTOMÁTICA AO USUÁRIO',
                         ptitulo, pmensagem, pcod_sistema, seq);
                            
        inserir_registro_envio(seq, pusr_id, sysdate);    
end;

Essa procedure é só para exemplificar.

Pesquisando no google achei como obter o código da sequence na clausula INSERT, e retornar o seu valor através de um parâmetro do tipo OUT.

Obtendo o valor da Sequence

Retornado um valor através da procedure


Usando o returning não precisei mais dessa linha: select cam_nrid.nextval into seq from dual;

Espero que possa ser útil.

Fiquem na Paz!!!

quarta-feira, fevereiro 15, 2012

Obter o nome do computador em C#

HI,

Precisei pegar o nome do computador em uma aplicação windows forms

Usei esta dica

C# Get Computer Name – Name of the Computer using C#
http://dotnetdud.blogspot.com/2008/10/c-get-computer-name-name-of-computer.html

Fiquem na Paz!!!

quarta-feira, janeiro 25, 2012

Erro Oracle + Windows Forms

HI,

Hoje fiz meu primeiro programa em Windows Forms Application (será que vou abandonar o Delphi 7, hehehe?).

E é um programa pra valer, não é teste de aprendizado. E tinha que acessar o Oracle.

Só que ao executar um select, deu o seguinte erro: System.IO.FileNotFoundException was unhandled oracle

Achei a solução aqui
https://forums.oracle.com/forums/thread.jspa?threadID=696384

A solução é essa
This issue occurs when your on a 64bit version of Windows. Change the target CPU in to x86 and things work fine.

ou seja: vai em propriedades do projeto, opção Build, e altera a propriedade Plataform target para x86

Fiquem na Paz!!!

terça-feira, janeiro 24, 2012

Cursos para você aprender a cuidar do seu dinheiro

HI,

Um dos meus objetivos em 2012 é me organizar financeiramente.

Tou usando um programa para anotar meus recebimentos e despesas.

Depois vou ver se leio um livro que comprei em 2008, eu acho, hehehe

Também tem esses cursos que achei ontem no twitter.

Cursos e palestras para aprender a cuidar melhor do seu dinheiro
http://denysegodoy.folha.blog.uol.com.br/arch2012-01-22_2012-01-28.html

Tem curso presencial e on-line

Fiquem na Paz!!!

quinta-feira, janeiro 12, 2012

Menu bacana em CSS

HI,


Vou passar a utilizar esse menu nos meus projetos em asp.net


Demonstração
http://www.webdesignerwall.com/demo/css3-dropdown-menu/

Achei nesse site, tem 50 dicas de recursos em CSS e JavaScript

50 Useful Coding Techniques (CSS Layouts, Visual Effects and Forms)
http://coding.smashingmagazine.com/2010/02/18/50-css-and-javascript-techniques-for-layouts-forms-and-visual-effects/


Fiquem na Paz!!!

terça-feira, janeiro 10, 2012

Exibir uma foto armazenada no oracle em um site asp.net

HI,

Precisei aprender isso hoje.

Pegar a foto de um cadastro e exibir na página. As imagens encontram-se armazenadas no banco de dados.

Consegui usando esses códigos

Insert /retrieve an image into/ from a blob field in Oracle database using C#.Net
http://www.codeproject.com/KB/database/Blobfield.aspx

Aconteceu esse erro: Não foi possível localizar uma parte do caminho

Achei a solução nesse forum
http://www.devmedia.com.br/forum/net/398027-Upload-Com-Asp-Net-C.html

Usei o this.Server.MapPath para gravar corretamente a imagem em disco para poder exibir no componente Image.


Fiquem na Paz!!!!

sexta-feira, janeiro 06, 2012

Criando um serviço do windows em C#

HI,

Ontem eu fiz o meu primeiro windows service :-)

Vou precisar de um programa que de tempos em tempos execute uma tarefa.

Pesquisando no google, encontrei esses dois artigos

Create Windows Service in Visual Studio [C#]
http://www.csharp-examples.net/create-windows-service/

Creating a Simple Windows Service in C#
http://www.switchonthecode.com/tutorials/creating-a-simple-windows-service-in-csharp


No segundo artigo, o desenvolvimento do Service é a partir de um programa console e nele mostra como instalar o windows service

Fiquem na Paz!!!

Programa para controle financeiro no Android

HI,

Passei a utilizar esse programa Finanças Pessoais

Ele está na Info de Dezembro, Guia de Aplicativos.

Por enquanto tá tranquilo utilizá-lo. Só sentir falta de ter subcategorias.

Fiquem na Paz!!!

quarta-feira, janeiro 04, 2012

Bíblia off-line para android

HI,

Eu já tinha instalado o aplicativo Bíblia no meu smartphone, mas ele funciona com conexão de internet para baixar os textos. O interessante dele é que o novo testamento tem a opção de áudio.

Como eu tava precisando de um que funcionasse of-line, achei o CadreBible.


Fiquem na Paz!!!

Curso on-line de android

HI,

Achei interessante esse curso. Consiga criar seu aplicativo android em 5 dias

Achei a dica aqui

Quer Aprender como Desenvolver Aplicativos Android em 5 dias?
http://www.mestreandroid.com.br/aprenda-desenvolver-android-em-5-dias/


Fiquem na Paz!!!

Controlando o consumo 3G do seu android

HI,

Uma dica do site da info

My Data Manager controla seu consumo de dados 3G
http://info.abril.com.br/noticias/blogs/download-da-hora/android/my-data-manager-controla-seu-consumo-de-dados-3g/


Fiquem na Paz!!!

Feliz Ano Novo

HI,

Desejo a todos um 2012 repleto de realizações na vida pessoal e profissional. Que todos consigam consiliar as duas coisas. Que possam organizar seu tempo e serem mais felizes.

Que seja um ano de muita prósperidade, paz, saúde e muito amor.

Que Deus abençoe a todos.

Fiquem na Paz!!!