quinta-feira, junho 30, 2011

Lendo e Escrevendo arquivos no Android

HI,

Mais um recurso que vou usar em um sistema para android que tou desenvolvendo.

Vou precisar ler arquivos recebidos via ftp para popular as tabelas do sistema.

Android writing and reading files
http://huuah.com/android-writing-and-reading-files/

Fiquem na Paz!!!

Compactando e Descompactando no Android

HI,

Vou deixar uma solução que achei para compactar e descompactar via programação no Android.

Estou usando no sistema que estou desenvolvendo. Ficou uma beleza.

Unzipping Files with Android (Programmatically)
http://www.jondev.net/articles/Unzipping_Files_with_Android_(Programmatically)

Zipping Files with Android (Programmatically)
http://jondev.net/articles/Zipping_Files_with_Android_(Programmatically)


Fiquem na Paz!!!

sexta-feira, junho 17, 2011

Erro estranho ao implementar captura dos erros no ASP.Net

HI,

Decidi colocar um tratamento de erro em um site que estou criando,  e deu erro ao acessar o site, depois de colocar usuário e senha. O estranho, é que antes não dava nenhum erro, não acontecia nada no modo debug.

Coloquei o código no Application_Error do Global.asax

Essa foi a mensagem de erro que começou a aparecer:


System.Web.HttpException: Arquivo inexistente.
   em System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
   em System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
   em System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
   em System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   em System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


Pesquisando no google, achei um problema desses, e provavelmente poderia ser um acesso a um arquivo no CSS. Analisando o CSS, encontrei o problema, tinha uma linha que não usava mais, que jogava no backgroud de uma div uma imagem que não existia.

Achei a solução aqui
http://forums.infragistics.com/forums/p/19543/70812.aspx#70812

Para implementar um log de erros, vocês podem tomar como base esse tutorial
http://www.macoratti.net/07/08/aspn_lge.htm

Solução de como pegar a mensagem de erro, Server.GetLastError()
http://pt.w3support.net/index.php?db=so&id=343014

Caso queiram enviar o erro por email
http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/9c152de9-2984-4854-9c48-0354df27225c


Espero que possa ser útil.

Fiquem na Paz!!!!

Fazendo um IFrame ocupar todo o espaço do browser

HI,

Colocaram uma TV aqui na sala para exibir a página de um sistema de monitoramento ( para acompanhar o status de servidores, processos, sistemas, etc. ). Aí eu tive a idéia de criar um sistema para trocar o conteúdo para ser exibido, para não ficar com a TV apenas com um conteúdo. Pensei em fazer em Delphi, mas achei melhor fazer em ASP.Net.

Sabia que ia precisar deixar a página dando refresh a cada x tempo e que precisaria exibir a url do site na mesma página. Consegui fazer isso usando um IFrame. O desafio foi fazê-lo ficar sem as bordas e ocupar toda a área de exibição do browser, mesmo que ele estivesse em fullscreen.

Comecei usando uns javascripts que achei, mas não gostei do resultado. Depois de algum tempo pesquisando, achei uma solução que resolveu o problema da borda e do redimensionamento.

dessa maneira o width e o height ficam de acordo com a área client

Achei aqui
http://stackoverflow.com/questions/247128/how-to-auto-size-an-iframe

Para concluir a página de exibição de páginas, usei essas idéias

Carregando uma página no Iframe no codebehind do Asp.net
http://geekswithblogs.net/ranganh/archive/2005/04/25/37635.aspx

Autorefresh
http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm

Também achei um javascript para a função de refresh
http://www.javascriptkit.com/script/script2/autofresh.shtml


Espero que possa ser útil

Fiquem na Paz!!!

sábado, junho 11, 2011

Migrando um banco Sql Server Compact para SQLite

HI,

Mas uma bronca que consegui resolver, graças a Deus.

Vou iniciar o desenvolvimento de um sistema de forças de venda para android. Fiz um para windows mobile. Como não tava querendo criar todas as tabelas no SQLite, resolvi buscar uma ferramenta para realizar esse trabalho.

O mais perto que cheguei, foi de um programa para migrar um banco de dados SQL Server para SQLite. Antes disso eu tinha encontrado um programa para exportar a estrutura e os dados do SQL Server Compact.

Então eu decidi recriar o banco de dados no SQL Server, e do SQL Server, migrar para o SQLite. Pura gambiarra? hehehe. O importante é que consegui criar o banco de dados completo para SQLite.

Receita do que precisei:

Utilitário para exportar a estrutura e os dados do sql server compact usando o SQL Server Management Studio.

SQL Compact data and schema script utility


Programa para criar um banco SQLite a partir de um banco de dados SQL Server

Convert SQL Server DB to SQLite DB

Tem um porém nesse programa. Ao utilizar o executável, deu um erro, disse que não encontrava o System.Data.SQLite.dll. Fui atrás desse arquivo no google e instalei no meu notebook.

System.Data.SQLite

Outro porém. Mesmo instalando, continuou dando erro. Vi que poderia ser problema de diferença de versão. Resolvi baixar o código fonte, adicionar em Reference a dll System.Data.SQLite e executar. Repeti o processo e deu certo



Agora tá tudo blz.

Fica a dica de ferramentas para se trabalhar com o SQLite






Espero que posso ajudar.

Fiquem na Paz!!!

sexta-feira, junho 10, 2011

Trabalhando com o ModalPopup do Ajax Asp.Net

HI,

Não pretendo nesse post ensinar a implementar um dialogo modal no asp.net. Vou colocar aqui todo o material que me ajudou a deixar o meu dialogo funcional, do jeito que eu queria.

Minha necessidade: Uma tela de pequisa, que jogasse a descrição do item desejado em um textbox da página. Usei o ModalPopupExtender e no panel coloquei um textbox para o usuário digitar o termo, um botão para acionar a pesquisa, um gridview para listar o resultado e um botão para fechar o dialogo.

Problemas que encontrei: Ao clicar no botão de Pesquisar, a dialogo fechava. Na paginação, dava erro ao tentar ir para outra página no gridview. Ao entrar novamente no dialogo, os resultados da pesquisa ainda estavam no gridview.


Sites que usei para elaborar meu dialogo modal de pesquisa.

Para implementar o dialogo:

ModalPopup Demonstration

Working with ModalPopup Ajax Control

Using the ASP.NET AJAX ModalPopup in an ASP.NET 3.5 application


Evitando que a tela se feche:


Por exemplo, no botão de Pesquisar, coloquei esse código para evitar que a tela desaparecesse
MyModalPopoupExtender.Show()


Para resolver o problema do pageindexchanging:


analisem esse código

protected void StudentLookupGridView_PageIndexChanging(object sender,GridViewPageEventArgs e)

{

// Recapture the current StudentCollection.

StudentLookupGridView.DataSource =

(StudentCollection)Session["LookupStudentCollection"];

// Set to the “new page”.

StudentLookupGridView.PageIndex = e.NewPageIndex;

// Rebind the data.

StudentLookupGridView.DataBind();

}

outro link, ModalPopupExtender and GridView paging problem


Para limpar o resultado da pesquisa:


GridView1.DataSource = null;
GridView1.DataBind();


Para resetar o SelectedIndex e o PageIndex:

GridView1.SelectedIndex = -1;
GridView1.PageIndex = 0;

Usei a opção AutoGenerateSelectButton do gridview para o usuário clicar e indicar o item que ele deseja escolher. Caso não se faça isso, em uma nova busca vai mostrar selecionado no gridview um item qualquer da mesma posiçao do item seleiconado anteriomente. E também vai indicar no contador de paginação a última página clicada.

Coloquei esses códigos no botão de pesquisar, depois de setar o datasource com o resultado da pesquisa.


Definindo o focus de um componente ao abrir o modal dialog

Usei essa solução. Funcionou perfeitamente.

ASP.NET: Setting Focus in Modal Dialogs


Executando a pesquisa ao pressionar ENTER

Definindo a propriedade DefaultButton do panel, funciona. Mas eu quis utilizar o ENTER também para confirmar a linha selecionada, caso o usuário quisesse usar o TAB para navegar pelas linhas do gridview.

Usei uma função no TextBox da pesquisa, para acionar um cliquei no portão de Pesquisa

Achei aqui




Pronto!!!! Foi tudo que achei em dois dias de trabalho para criar a minha tela de pesquisa. Graças a Deus, tá tudo blz. Agora vou trabalhar no layout.

Ficou assim:



Espero que possa ajudar

Fiquem na Paz!!!!

sexta-feira, junho 03, 2011

Instalando aplicativos no android facilmente

HI,

Sei que tem como instalar através do emulador, mas eu achei uma maneira mais fácil, assim considero. Tou sempre conectado mesmo, hehehe.

É usando o serviço do Dropbox.

Faço o upload do apk e baixo usando o celular, molezinha, hehehe.

Acessem esse link:

Nele tem um passo-a-passo para fazer essa manobra.

Outra opção é pelo QRCode


Fiquem na Paz!!!!

Column does not exist

HI,

Mais uma surra no Android. Levei algumas horas para descobrir o erro. Não tinha procurado no google, por que eu achava que eu tava informando errado o nome do campo, ou que estava pegando a variável da tabela expenses.

Resolvi criar uma tabela no exemplo de estudo para armazenar as categorias das despesas. Criei com os campos idcat e desccat. Criei as classes para manipular a tabela, tudo indo ok, tava inserindo. Mas quando chegou na hora de listar as categorias na tela, deu o seguinte erro: java.lang.IllegalArgumentException: column '_id' does not exist.

O que me confundiu, é que na tabela de expenses, existe esse campo. Pensei que tava misturando os código, etc. Depois de um monte de tentativas, de alterações no código, de criar os log para saber o que estava acontecendo ( no log mostrava o nome certo da variável idcat ). Resolvi pesquisar no google pela mensagem de erro: java.lang.IllegalArgumentException column does not exist . No resultado vi um monte de _id. Achei estranho. Um monte de gente faltando esse campo.

Foi aí que descobrir entrando nas páginas, que usando o SimpleCursorAdapter, é obrigatório ter uma campo único com o nome _id, hehehe. Pensei que ia ter que mudar o nome do campo, de idcat para _id, mas eu vi uma dica de mudar o nome do campo no select, ficando assim: select idcat as _id, desccat from categories.

Mas para executar essa query é preciso usar o rawQuery no lugar do query.

Ficou assim o código:

public Cursor allCategories(){
return mDb.rawQuery("select idcat as _id, namecategory from " + DB_TABLE_CATEGORIES, null);
}

e criei mais uma variável para representar esse campo:

public static final String KEY_CAT_ID = "idcat";
public static final String KEY_CAT_ROWID = "_id";
public static final String KEY_CAT_DESCRIPTION = "namecategory";


é isso aí, espero que possa ser útil.

links que achei




Fiquem na Paz!!!!

quinta-feira, junho 02, 2011

Colocando o title dentro do textbox

HI,

Como não achei logo a solução no google, passei quase o dia todo para fazer isso. Eu já tinha tentando fazer usar isso, até consegui usando um código do jQuery, mas o problema é que no campo senha ao invés de mostrar o tittle, mostrava um monte de asteriscos, hehehe. Tinha desistido de usar, mas aí o setor de marketing aqui da empresa que trabalho disse que eu precisa fazer a tela de login no mesmo estilo da tenha do twitter, sem usar o label do lado do textbox e sim colocar a descrição dentro.

Testei várias soluções, algumas usavam dois textbox para a senha, etc. Por que o lance é ao entrar no text box, mudar o type dele para password.

A solução que tou usando é o ZTINPUTHINT, que é um plugin para o jQuery.

Dica: Controle o tamanho do textbox através do CSS, pq senão ele mostra um textbox de tamanho diferente quando abre a página, e quando você entra no componente é que ele mostra do tamanho que você definiu dentro do html.

É possível ter um CSS para a dica e outra para o texto que vai ser digitado.

Página de demonstração: http://ztinputhint.googlecode.com/svn/other/demo.html

Imagens da opção de login que fiz.







Fiquem na PAZ!!!!