Cansado da tela pequena do Carnê-Leão da Receita Federal fiz um editor em PHP do arquivo dele, a única coisa que eu não fiz foi a geração da DARF para pagamento, mas o cálculo do imposto devido é fácil de fazer...
Uma dúvida que estou é se eu libero a fonte desta aplicação, ou faço uma versão web para as pessoas enviarem seus xmls e editarem online e depois baixar de volta para imprimir seus DARF's...
Ou envio o código pra Receita e quem sabe eles usam ele...
sábado, 28 de novembro de 2009
segunda-feira, 23 de novembro de 2009
Javascript - Função para manter o cursor no lugar
Você acabou de criar uma função onkeyup no javascript, mas descobriu que, ao mudar o conteúdo do inputbox, o cursor vai parar no final...
Segue uma função para resolver este problema, não lembro de onde peguei ela :/, mas é bem útil, ela mantém o cursor no devido lugar:
Segue uma função para resolver este problema, não lembro de onde peguei ela :/, mas é bem útil, ela mantém o cursor no devido lugar:
function getSelectionStart(o) {Uso:
if (o.createTextRange) {
var r = document.selection.createRange().duplicate()
r.moveEnd('character', o.value.length)
if (r.text == '') return o.value.length
return o.value.lastIndexOf(r.text)
} else return o.selectionStart
}
function setCaretTo(obj, pos) {
if(obj.createTextRange) {
/* Create a TextRange, set the internal pointer to
a specified position and show the cursor at this
position
*/
var range = obj.createTextRange();
range.move("character", pos);
range.select();
} else if(obj.selectionStart) {
/* Gecko is a little bit shorter on that. Simply
focus the element and set the selection to a
specified position
*/
// obj.focus();
obj.setSelectionRange(pos, pos);
}
}
onkeyup="javascript:AlgumaFunctionOnKeyUpOuOutroEvento(this);"
function AlgumaFunctionOnKeyUpOuOutroEvento ()
{
x=getSelectionStart(campo);
y = campo.value.length
// Processamento de algo
x = x + campo.value.length - y
setCaretTo(campo,x)
}
PHP POG - Samples
Segue 2 códigos úteis para programadores que não sabem programar corretamente uma função e suas variáveis...
Uma espécie de SetGlobalAll();
De fora pra dentro:
Uma espécie de SetGlobalAll();
De fora pra dentro:
extract($GLOBALS,EXTR_REFS); //No inicio da funçãoDe dentro pra fora:
Savior(get_defined_vars()); //No final da função
function Savior($def)
{
foreach ($def as $key => $val)
{
global $$key;
$$key = $val; //podia usar extract mas daria na mesma... 1 linha por 1 linha....
}
}
domingo, 22 de novembro de 2009
Guia de Programação para Preguiçosos
Este guia é para quem quer economizar tempo programando...
Geral
Geral
- Não use mais de um tipo de charset em sua aplicação, uniformize tudo, se for latin1 (ISO-8859-1) use em tudo mesmo, se for UTF-8, use em tudo, até na hora de salvar os arquivos do script, mas lembre-se sem o BOM...
- Se tiver uma dúvida, crie um pequeno programa de teste, não perca tempo perguntando... Fazer o script 5min, descobrir o erro 2min... Ou escrever a pergunta 3min, esperar alguém responder 20min...
- Interprete sua aplicação mentalmente, parece idiota, mas se você aprender a pensar que nem o computador, vai achar os erros 10x mais rápido, e consequentemente errar menos no futuro...
- Ao fazer um link ou action de um formulário que direcione para o próprio documento use ?, exemplo: action="?"...
- O mesmo serve para casos em que se acessará a página atual enviando algo via GET, href="?pagina=1"...
- Use letras minúsculas nas tags html , e se a tag for solitária, como o
, feche-a assim
, ... - Coloque DOCTYPE no ínicio, se não souber fazer copie de algum site, apague tudo dentro do head e do body...
- No lugar de usar LEFT JOIN tblname ON (exp), use NATURAL LEFT JOIN tblname - O segredo aqui é que o índice a ser utilizado para conectar as duas tabelas tenham exatamente o mesmo nome e sejam do mesmo tipo...
- Deixe um atalho de restore rápido do banco de dados, para caso um código errado apague ele...
domingo, 8 de novembro de 2009
Javascript + Internet Explorer 7
Segue um link de um post com dicas para resolver problemas com Javascript no Internet Explorer 7:
quarta-feira, 4 de novembro de 2009
Post Extraordinário
Um post meio estranho, com duas notícias incrivéis do que aconteceu nestes últimos dias:
- Um Bug Report do PHP meu foi aceito, veja-o em http://bugs.php.net/bug.php?id=50052
- Um leitor do blog postou nos comentários do meu post explicando a simplicidade de como decodificar o Banco de Dados dos Correios, veja aqui. Parabéns ao FelipeTv que encontrou a resposta com as poucas dicas que passei.
segunda-feira, 2 de novembro de 2009
Plugins usados jQuery
Além do próprio jQuery eu estou usando os seguintes plugins na minha aplicação:
Assinar:
Postagens (Atom)