Pular para o conteúdo principal

Postagens

Mostrando postagens de novembro, 2011

Postagem em destaque

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️ Olá pessoal, Espero que este post encontre todos vocês bem! É com grande entusiasmo que compartilho que estou expandindo meus serviços como Desenvolvedor AdvPL para novos desafios e colaborações. Com mais de duas décadas de experiência sólida, minha jornada profissional tem sido enriquecedora, com a oportunidade de participar de projetos empolgantes ao longo dos anos. Agora, estou ansioso para trazer minha experiência e habilidades para novas equipes e projetos, trabalhando de forma remota. Minha expertise abrange não apenas AdvPL, mas também outras tecnologias-chave, incluindo JS, SQL, Infraestrutura e Otimização de Processos. Acredito que essa combinação de conhecimentos me permite oferecer soluções abrangentes e eficazes para uma variedade de necessidades de desenvolvimento. Acredito que a tecnologia tem o poder de transformar negócios e impulsionar o sucesso, e estou comprometido em ajudar meus clientes a alcançar seu

Protheus :: Advpl :: Duelo de Titãs :: Harbour x ADVPL

Vez em quando me pego fuçando o código e as Classes disponíveis no Harbour Project para verificar as novidades, acompanhar a evolução da linguagem e, por que não, aprender com os mestres e, durante esse processo, faço algumas descobertas interessantes. Na pasta ..\examples\hbxlsxml da instalação padrão deparei-me com três classes: CLASS ExcelWriterXML :: xlsxml.prg CLASS ExcelWriterXML_Sheet  :: xlsxml_s.prg CLASS ExcelWriterXML_Style  :: xlsxml_y.prg Lendo a documentação no código fonte, percebi que essas três Classes foram originalmente escritas em PHP: /* * $Id: xlsxml_y.prg 17099 2011-10-28 18:34:39Z vouchcac $ */ /* * Harbour Project source code: * * Copyright 2011 Fausto Di Creddo Trautwein, ftwein@yahoo.com.br * www - http://www.xharbour.org http://harbour-project.org * * Thanks TO Robert F Greer, PHP original version * http://sourceforge.net/projects/excelwriterxml/ O grande “Fausto Di Creddo Trautwein” teve o trabalho de transcrever o código original em PHP para o

[OFF-Topic] Tic..Tac.. Tic.. Tac… Tic.. Tac… Que Horas São? 5:60

Ainda me espanta o fato de pessoas não saberem calcular Horas ou calcular valores baseados em Horas. Uma pequena recordação: 4) Em 15 minutos eu consigo descascar 2kg de batatas. Em uma hora conseguirei descascar quantos quilogramas? Temos a grandeza tempo (T) e a grandeza quantidade (Q). Quando aumenta a quantidade a descascar, o tempo também aumenta, por isto as duas grandezas são diretamente proporcionais e na representação, as duas terão a seta com a mesma orientação. Observe que não podemos trabalhar com horas e minutos ao mesmo tempo , por isto arbitramos trabalhar em minutos. Ao invés de uma hora, utilizaremos 60 minutos:”   Digo isso porque, depois de muito tempo, tive que explicar para uma pessoa de RH a diferença entre as Horas Apontadas no SIGAPON e as Horas Expressas na Folha e, porque, se eu dividisse o Salário pelo número de Horas de Referência mensal teria o Salário Hora e poderia multiplicá-lo, diretamente pelo valor expresso na Folha de Pagamento e não ao val

Clipper... Clipper... Clipper: Harbour/xharbour Diff (2/57) -NEW LANGUAGE STATEMENTS by Przemyslaw Czerpak

Clipper... Clipper... Clipper: Harbour/xharbour Diff (2/57) -NEW LANGUAGE STATEMENTS by Przemyslaw Czerpak : 'via Blog this' Harbour evoluiu a linguagem padrão xBase/CodeBase. Totvs precisa fazer o mesmo com o advpl. Olha que interessante: http://harbour-project.svn.sourceforge.net/viewvc/harbour-project/trunk/harbour/doc/xhb-diff.txt

Protheus :: AdvPL :: Interface de senha temporária

Por diversas vezes nos deparamos com circunstâncias onde é necessário desenvolver alguma interface para que o usuário digite uma senha para validar algum processo e seguir adiante, porém não é necessário que esta senha do usuário acessado, pois não faria sentido, na verdade é uma senha que pode ficar armazenada em algum parâmetro do sistema. Pensando nisto também não é necessário desenvolver uma MsDialog para isto, podemos utilizar a função Parambox, veja o exemplo do código abaixo. Abraços, Rleg

Protheus :: Advpl :: Mito sobre a dbSelectArea

dbSelectArea não abre uma tabela. Ela apenas faz que uma área de trabalho específica se torne a área de trabalho atual. No Protheus, a partir da versão 5.07, e, para otimizar o processo de abertura do sistema e das rotinas, a totvs implementou, via tratamento de erro, a abertura das tabelas sob demanda (“on demand”). Nas versões anteriores todas as tabelas especificadas no menu do módulo eram abertas. Isso era oneroso e demorado. Quando uma tabela não está aberta e tentamos referencia-la via –> ou usá-la via dbSelectArea( cAlias ) um código de erro do tipo EG_NOALIAS será verificado e a rotina irá redirecionar para as funções padrões de abertura de arquivos sejam ChkFile ou OpenSxs. Na realidade nem uma dessas funções “abrem” uma tabela. A única e exclusiva função para esse fim é dbUseArea(). Para maiores informações: Syntax DBSELECTAREA(<nArea> | <cAlias>) --> NIL Arguments <nArea> is a numeric value between zero and 250, inclusive, that

Protheus :: Advpl :: SetOnExit :: Definindo a função a ser Executada na saída do sistema

Respondendo ao questionamento de João: “boa tarde, existe algum ponto de entrada na saída do modulo, como tem o PE sigafat, tem algum na saída dele e dos outros módulos? att João” Podemos usar SetOnExit para definir a função a ser executada no encerramento do Protheus. A NDJLIB004 que define os Pontos de Entrada Genéricos dos Módulos do sistema  e define, também, a função de saída. Um fragmento seria: Irá definir a função a ser executada quando da saída do sistema. SetOnExist, infelizmente, só funciona na Interface SDI. Mas, se observar o código fizemos um tratamento específico para verificar a finalização do sistema para MDI também e para a Saída do sistema por um “Erro Abrupto”. MySetOnExit faz isso. Trata a finalização do sistema quando MDI e; Trata a finalização do sistema por um “Erro Abrupto”. Qual a idéia? Considerando que a NDJLIB004 define os Pontos de Entrada Genérico de “Todos” os Módulos do Sistema, uso-a, em conjunto com a função “InitSystem” para padr

Protheus :: Advpl :: VT100 Emulador de microterminal via TELNET

Dias atrás alguém me pediu para desvendar o SIGAACD. Mas o que (…) é o SIGAACD? Descobri que nada mais é do que um módulo do Protheus para o gerenciamento de microterminais através do protocolo TELNET usando VT100. Bem, desafio aceito. Em busca de material…. humpf… não encontrei…. vou usar a metodologia иαldσ dj (fuça..fuça.. fuça.. fuça… _VTOUT() humm… isso é interessante… fuça… fuça… fuça.. _VTREADBYTES( NR , NR , NR ) hum isso não entendi…. fuça.. fuça.. fuça.. fuça.. _VTGETBYTE(), opa, isso eu entendi…). Bem, já tenho o fragmento do material mínimo necessário para programar um emulador. Vamos entender o que é TELNET e VT100 e, depois, ao nosso exemplo: “Telnet é um protocolo cliente-servidor usado para permitir a comunicação entre computadores ligados numa rede (exemplos: rede local / LAN, Internet), baseado em TCP.” (fonte: Wikipédia ) VT100 nada mais é do que uma convenção de um padrão para emular um microterminal (fonte: Microsoft/TechNet :: Convenções VT-UTF8, VT100