Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo programação

Barras de título ocupando espaço?

Precisando ganhar alguns centímetros de tela? Usando as propriedades WS_VISIBLE e WS_POPUP, neste caso, é possível remover a barra de títulos em janelas. Veja os exemplos: define msdialog oDialog title "Sem barra de titulo" from 0,0 to 800,100 pixel style nOR( WS_VISIBLE, WS_POPUP ) oDialog:lMaximized := .t.   // maximiza janela. * No construtor construtor MsDialog:New, use deste modo: oDialog := msdialog ():new(0,0,800, 1000, "Sem barra de titulo" ,,,,nOr(WS_VISIBLE,WS_POPUP),CLR_BLACK,CLR_WHITE,,,.t.,,,,.t.) oDialog:lMaximized := .t.   // maximiza janela. * No construtor TDialog:New, use deste modo: oDialog := tdialog():New(0,0,800,1000, "Sem barra de titulo" ,,,,nOr(WS_VISIBLE,WS_POPUP),CLR_BLACK,CLR_WHITE,,,.t.,,,,,,.f.) oDialog:lMaximized := .t.   // maximiza janela.

Zeros à esquerda automaticamente

Uma dica simples para que no momento de digitar um código (ex.:000034), você e seus usuários não fiquem contando os zeros à esquerda deste. Configurador Com o pequeno código abaixo (no campo Regra ) num gatilho*, você não terá mais este trabalho. O teste foi feito com o campo RA_REGISTR : Os campos obrigatórios (em azul) devem ser preenchidos. Confirme, saia do Configurador e teste o campo que você configurou o gatilho. Após preencher o campo e clicar TAB (ou ENTER), os zeros à esquerda completam o tamanho do campo : * Se você não sabe onde e como criar gatilhos, acesse o link:   Criando gatilhos no Protheus

Cores usadas no Protheus

• Segue uma tabela com as cores mais usadas no Protheus: Preto CLR_BLACK Azul Claro CLR_HBLUE Azul CLR_BLUE Verde Claro CLR_HGREEN Verde CLR_GREEN Ciano CLR_HCYAN Ciano CLR_CYAN Vermelho Claro CLR_HRED Vermellho CLR_RED Magenta Claro CLR_HMAGENTA Magenta CLR_MAGENTA Amarelo CLR_YELLOW Marrom CLR_BROWN Cinza Claro CLR_HGRAY Cinza CLR_GRAY Branco CLR_WHITE • Estas podem ser usadas por exemplo,  numa grid : @ 0, 0 to 300,795 dialog oDlg01 title "Exemplo" @ 1, 1 to 110,400 browse "TABTEMP" fields aCampos object _oBrowseCor // COR DA FONTE _oBrowseCor:obrowse:acolumns[1]:BCLRFORE := {|SETVAL| fTrocaCor(1)} // COR DA LINHA _oBrowseCor:obrowse:acolumns[1]:BCLRBACK := {|SETVAL| fTrocaCor(2)} @ 125, 10 bmpbutton type 02 action close(oDlg01) act...

Mudar a logo do Protheus

Segue uma dica que a maioria já deve conhecer, mas fica registrado para aqueles que estão iniciando ou ainda não testaram. Para mudar a logo de identidade do cliente, você tem que criar uma imagem PNG (Portable Network Graphics), e disponibilizar no diretório STARTPATH (\system) do Sistema, com a seguinte nomenclatura: LGMID.PNG   - Para logo utilizado por todos os grupo de empresas. LGMID##.PNG - Para logo utilizado para um grupo de empresas específico. No lugar de ##, informe o código do grupo de empresas. Ex .: LGMID01.PNG . Obs.: A dimensão recomendada para a imagem de identidade do cliente é de 110x110 pixels. Detectar idioma Africâner Albanês Alemão Arabe Armênio Azerbaijano Basco Bengali Bielo-russo Birmanês Bósnio Búlgaro Catalão Cazaque Cebuano Chichewa Chinês (Simp) Chinês (Trad) Cingalês Coreano Crioulo haitiano Croata Dinamarquês Eslovaco Esloveno Espanhol Esperanto Estoniano Finlandês Francês Galego Galês Georgiano Grego Gujarat...

Janela sem botão Fechar [X]

Mais uma sobre janelas Muitas vezes não queremos que o usuário feche a janela no botão [X], padrão nos formulários. Tem como tirar este botão? Sim! Veja na figura ao lado. Para tirar, na linha do comando msdialog , inclua o parâmetro style 128 . Exemplo: define msdialog oRBSFd00 from 0,0 to 8,20 title "Mes/Ano a receber" style 128 Detectar idioma Africâner Albanês Alemão Arabe Armênio Azerbaijano Basco Bengali Bielo-russo Birmanês Bósnio Búlgaro Catalão Cazaque Cebuano Chichewa Chinês (Simp) Chinês (Trad) Cingalês Coreano Crioulo haitiano Croata Dinamarquês Eslovaco Esloveno Espanhol Esperanto Estoniano Finlandês Francês Galego Galês Georgiano Grego Gujarati Hauça Hebraico Hindi Hmong Holandês Húngaro Igbo Indonésio Inglês Ioruba Irlandês Islandês Italiano Japonês Javanês Kannada Khmer Laosiano Latim Letão Lituano Macedônico Malaiala Malaio Malgaxe Maltês Maori Marathi Mongol Nepalês Norueguês Persa Polonês Português Punjabi Romeno Russo Sérvio ...

Criando janelas sem borda

Ás vezes, por uma questão de estética, não queremos janelas com borda. Para isso, podemos definir estilo usando a função: NOR(WS_VISIBLE,WS_POPUP). Veja o exemplo: user function fJanSemB() define msdialog ojan01 title "Janela sem borda" pixel from 180,180 to 550,700 style nor(WS_VISIBLE,WS_POPUP) cTGet := space(20) oTGet := tget():new( 1,1,{||cTGet}, oJan01, 80, 5,"@!",,0,,,.f.,,.t.,,.f.,,.f.,.f.,,.f.,.f.,,cTGet,,,,) @ 8, 5 button "Sair" action oJan01:end() activate dialog ojan01 centered return Já testamos, agora, é só usar!

Datas por extenso

Já precisou escrever datas por extenso? A pequena função  fDatExt(),  abaixo pode resolver o problema. O resultado pode ser visto nas imagens abaixo: No fonte abaixo, substitua dDatabase , por sua variável (do tipo data): #include "protheus.ch" user function fDataExt() msgalert(u_fDatExt( dDataBase , .t.)) msgalert(u_fDatExt( dDataBase , .f.)) return user function fDatExt (dParDat, lParAbr) local cRetDat := "" if lParAbr cRetDat += cValToChar(day(dParDat)) cRetDat += " de " cRetDat += mesextenso(dParDat) cRetDat += " de " cRetDat += cValToChar(year(dParDat)) else cRetDat += capital(extenso(day(dParDat), .t.)) cRetDat += " de " cRetDat += mesextenso(dParDat) cRetDat += " de " cRetDat += capital(extenso(year(dParDat), .t.)) endif return cRetDat Veja também: Extenso  e Funções de Data

Converter PDF para JPG no Protheus

Você pode converter PDF para JPG no Protheus, usando ADVPL, com a ajuda de dois utilitários (free) externos: ImageMagick e Ghostscript . Baixe-os e instale-os. IMPORTANTE: se você instalar em seu servidor, todos seus usuários do Protheus na rede poderão usar seu programa ADVPL.   Segue o programa ADVPL: static function fConvPDFJPG(cNomPDF, cNomJPG)    local lRet := .f.,;          cPathImgMgk := "C:\PROGRA~1\IMAGEM~1.9-Q\" ,;          cPathProth := "C:\PROTHEUS\PROTHE~1\TEMP\"    // ATENCAO: OS COMANDOS ABAIXO DEVEM FICAR EM MINUSCULO.    // OS PATHs DEVEM TER 8 DIGITOS (USE DIR /X NO CMD PARA VER O PATH REDUZIDO)    if waitrunsrv( cPathImgMgk + "convert -density 300 " + cPathProth + cNomPDF + " -quality 80 " + cPathProth + cNomJPG, .t., cPathImgMgk )       lRet := .t.    endif return lRet Observações: 1 - O programa ADVPL usa a fu...

Retirando acentos

Às vezes, por exemplo quando vamos gravar contas de e-mail, não queremos que o usuário digite acentos. Para "estes momentos", use a função  FwNoAccent( ) . Veja o exemplo abaixo: user function fTiraAcent ()    cString := "Você não pôde tomar café hoje."    cString := FwNoAccent ( cString )    alert ( cString ) return •  Veja também: Função SplitPath()