Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring

_Créditos das imagens: ChatGPT_ ### LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring Resolver o problema do [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/description/) é um exercício clássico de programação, que desafia desenvolvedores a encontrar a maior substring palindrômica dentro de uma string. Recentemente, exploramos soluções tanto em Harbour quanto em TLPP (Total Language Protheus Programming). Neste artigo, comparamos as implementações nessas duas linguagens, destacando suas semelhanças, diferenças e funcionalidades específicas. #### Implementações em Harbour ##### Versão 5.1 Essa solução utiliza a técnica de expansão a partir do centro do palíndromo. Cada caractere ou par de caracteres consecutivos é considerado um possível "centro". O algoritmo expande em ambas as direções enquanto os caracteres forem iguais, retornando o maior palíndromo encontrado. ##### Versão 5....

Protheus :: Advpl :: Dica :: Robson Luiz :: Texto íntegro das opções do controle de acessos de usuários

“”Hoje precisei listar todas as opções do controle de acessos do usuários, esta lista fica na configuração por usuário no configurador, porém até agora ninguém se importou em aumentar o tamanho da coluna do listbox, ou seja, há opções que não dar para ler na íntegra o texto, pois há textos maiores que a própria coluna do listbox.

Para isto fiz um rotina pequena para ser rodada no campo fórmula que gera um arquivo texto, neste arquivo texto ficará gravada todas as opções na íntegra.

C:="",A:={},A:=GetAccessList(),AEVAL(A,{|X,Y| C+=STRZERO(Y,3,0)+"-"+X[2]+CHR(13)+CHR(10)}),MEMOWRITE("ACESSOS.TXT",C)

p/ Robson Luiz…

ou:

C:="",A:=GetAccessList(),cCRLF:=CHR(13)+CHR(10),AEVAL(A,{|X,Y|C+=STRZERO(Y,3,0)+"-"+X[2]+cCRLF}),MEMOWRITE("ACESSOS.TXT",C)

O Conteúdo será gravado no arquivo acessos.txt na pasta definida em StartPath, normalmente StartPath=\system\ e teremos algo como:

001-Excluir Produtos
002-Alterar Produtos
003-Excluir Cadastros
004-Alterar Solicit Compras
005-Excluir Solicit Compras
006-Alterar Pedidos Compras
007-Excluir Pedidos Compras
008-Analisar Cotaçoes
009-Relat Ficha Cadastral
010-Relat Bancos
011-Relacao Solicit Compras
012-Relacao de Pedidos Compra
013-Alterar Estruturas
014-Excluir Estruturas
015-Alterar TES
016-Excluir TES
017-Inventario
018-Fechamento Mensal
019-Proc Diferenca Inventario
020-Alterar Pedidos de Venda
021-Excluir Pedidos de Venda
022-Alterar Help`s
023-Substituiçäo de Tìtulos
024-Inclusäo do Dados Via F3
025-Rotina de Atendimento
026-Proc. Troco
027-Proc. Sangria
028-Borderô Cheques Pré-Dat.
029-Rotina de Pagamento
030-Rotina de Recebimento
031-Troca de Mercadorias
032-Acesso Tabela de Precos
033-Não utilizado
034-Não utilizado
035-Acesso Condicao Negociada
036-Alterar Database do Sist.
037-Alterar Empenhos de OPs.
038-Não utilizado
039-Form.Preços Todos Níveis
040-Configura Venda Rapida
041-Abrir/Fechar Caixa
042-Excluir Nota/Orç. LOJA
043-Alterar Bem Ativo Fixo
044-Excluir Bem Ativo Fixo
045-Incluir Bem via Copia
046-Tx Juros Condic Negociada
047-Liberacao Venda Forcad TEF
048-Cancelamento Venda TEF
049-Cadastra Moeda na Abertura
050-Alterar Num. da NF
051-Emitir NF Retroativa
052-Excluir Baixa - Receber
053-Excluir Baixa - Pagar
054-Incluir Tabelas
055-Alterar Tabelas
056-Excluir Tabelas
057-Incluir Contratos
058-Alterar Contratos
059-Excluir Contratos
060-Uso Integraçäo SIGAEIC
061-Incluir Emprestimo
062-Alterar Emprestimo
063-Excluir Emprestimo
064-Incluir Leasing
065-Alterar Leasing
066-Excluir Leasing
067-Incluir Imp.Nao Financ.
068-Alterar Imp.Nao Financ.
069-Excluir Imp.Nao Financ.
070-Incluir Imp.Financiada
071-Alterar Imp.Financiada
072-Excluir Imp.Financiada
073-Incluir Imp.Fin.Export.
074-Alterar Imp.Fin.Export.
075-Excluir Imp.Fin.Export.
076-Incluir Contrato
077-Alterar Contrato
078-Excluir Contrato
079-Lancar Taxa Libor
080-Consolidar Empresas
081-Incluir Cadastros
082-Alterar Cadastros
083-Incluir Cotacao Moedas
084-Alterar Cotacao Moedas
085-Excluir Cotacao Moedas
086-Incluir Corretoras
087-Alterar Corretoras
088-Excluir Corretoras
089-Incluir Imp./Exp./Cons
090-Alterar Imp./Exp./Cons
091-Excluir Imp./Exp./Cons
092-Baixa Solicitacoes
093-Visualiza Arquivo Limite
094-Imprime  Doctos.Cancelados
095-Reativa  Doctos.Cancelados
096-Consulta Doctos.Obsoletos
097-Imprime  Doctos.Obsoletos
098-Consulta Doctos.Vencidos
099-Imprime  Doctos.Vencidos
100-Def. Laudo final Entrega
101-Imprime Param Relatorios
102-Transfere Pendencias
103-Usa relatorio por e-mail
104-Consulta posicao cliente
105-Manuten. Aus Temp. Todos
106-Manuten. Aus. Temp Usuario
107-Formação de Preço
108-Gravar Resposta Parametros
109-Configurar Consulta F3
110-Permite alterar configuração de impressora
111-Gerar Rel. em Disco Local
112-Gerar Rel. no Servidor
113-Incluir Solic. Compras
114-MBrowse - Visualiza outras filiais
115-MBrowse - Edita registros de outras filiais
116-MBrowse - Permite o uso de filtro
117-F3 - Permite o uso de filtro
118-MBrowse - Permite a configuração de colunas
119-Altera Orçamento Aprovado
120-Revisa Orçamento Aprovado
121-Usa impressora no Server
122-Usa impressora no Client
123-Agendar Processos/Relatórios
124-Processos identicos na MDI
125-Datas diferentes na MDI
126-Cad.Cli. no Catalogo E-mail
127-Cad.For. no Catalogo E-mail
128-Cad.Ven. no Catalogo E-mail
129-Impr. informacöes personalizadas
130-Respeita parametro MV_WFMESSE
131-Aprovar/Rejeitar Pre Estrutura
132-Criar Estrutura com base em Pré Estrutura
133-Gerir Etapas
134-Gerir Despesas
135-Liberar Despesa para Faturamento
136-Lib. Ped. Venda (credito)
137-Lib. Ped. Venda (estoque)
138-Habilitar opção Executar(Ctrl+R)
139-Permite incluir Ordem de Produção
140-Acesso via ActiveX
141-Excluir Bens
142-Rateio do item por cento de custo
143-Alterar o cadastro de clientes
144-Excluir Cadastro de clientes
145-Habilitar Filtros nos relatórios
146-Contatos no Catalogo E-mail
147-Criar formulas nos relatorios
148-Personalizar relatórios
149-Acesso ao cadastro de lotes
150-Gravar Resposta Parametros por Empresa
151-Manutenção no Repositório de Imagens
152-Criar Relatórios Personalizáveis
153-Permissão para utilizar o TOII
154-Acesso ao SigaRPM
155-Maiúsculo/Minúsculo na consulta padrão
156-Valida acesso do grupo por Emp/Filial
157-Acessa Base Instalada no Cad. Técnicos
158-Desabilita opção usuários do menu
159-Impressão local p/ componente gráfico
160-Impressão em planilha
161-Acesso a scripts confidenciais
162-Qualificação de Suspects
163-Execução de scripts dinâmicos
164-MDI - Permite encerrar ambiente pelo X
165-Permite utilizar o WalkThru
166-Geração de Forecast
167-Execução de Mashups
168-Permite Exportar Planilha PMS para Excel
169-Gravar Filtro do Browse com Empresa/Filial
170-Exportar telas para Excel (Mod1 e 3)
171-Se Administrador, pode utilizar o SIGACFG.
172-Se Administrador, pode utilizar o APSDU.
173-Se acessa APSDU, é Read-Write
174-Acesso a inscrição nos eventos do EventViewer
175-MBrowse - Permite utilizacão do localizador
176-Visualização via F3
177-Excluir Purchase Order
178-Alterar Purchase Order
179-Excluir Solicitação de Importação
180-Alterar Solicitação de importação
181-Excluir Desembaraço
182-Alterar Desembaraço
183-Incluir Agenda Médica
184-Alterar Agenda Médica
185-Excluir Agenda Médica
186-Acesso a Fórmulas

e é o que há!

Tks ao Robson Luiz pela dica e contribuição.

[]s

иαldσ dj

Comentários

  1. Naldo boa tarde, meu Nome é Luiz Alberto, sou um participante ativo do Supeerp e do Siga-br, recentemente criei um site o www.3lsystems.com.br aonde disponibilizo vários materiais para o pessoal do mundo microsiga, gostaria de saber se poderia no meu blog linkar algumas dicas para o seu blog, se você me permite isso, e se existe alguma maneira de você mencionar meu site pois gostaria também de colocar o seu blog na minha página de parceiros, o acesso do meu site está aumentando dia a dia, e gostaria de saber se possível poderiamos fazer essa parceria.

    Obrigado
    Luiz alberto.

    ResponderExcluir
  2. Luiz Alberto...

    O Conceito deste blog é "Sharing the Experience". Então, sinta-se a vontade para: divulgar, compartilhar, multiplicar, utilizar, dividir e/ou acrescentar.

    []s

    иαldσ dj

    ResponderExcluir
  3. Boa dica Naldo, mas seria possível listar as permissões de um determinado usuário?

    Abraços

    Danilo Joaquim

    ResponderExcluir
    Respostas
    1. Danilo,
      É possível sim listas as permissões, mas ressalto que estas estruturas de permissões de usuários mudou da versão P10 p/ P11, por favor, me mande seu e-mail que eu lhe envio algo que tenho pronto. Tks, Robson Luiz (Rleg).

      Excluir
    2. Bom Dia so para Titulo de Conhecimento, Amigo Danilo Sua Rotina e muito Interessante mas venho tornar a publico a Função ChkPsw(nOpcao) onde ela retornar True ou False, ou seja define se o usuário tem acesso a Opção Informada no Parametro.

      Excluir
  4. Olá Naldo Dj, tudo bem?

    Legal seu post. Estou precisando listar todos as permissões de todos os usuários do Protheus.
    Este seu código só traz do usuário conectado no exato momento.
    Eu tentei alterar o conteúdo da variável __cuserid para o id de outros usuários, mas o GetAccessList() continua trazendo somente do usuário conectado, acho que ela não considera o __cuserid

    Você tem ideia de como posso fazer para retornas as permissões de todos os usuários?

    Obrigado
    Uhilian
    uhilian.finger at gmail.com

    ResponderExcluir
  5. Bom dia Robson, vc tem algo pronto que gere uma relação de usuários com suas devidas permissões? Caso sim, agradeço se puder enviar para meu e-mail: wendelborges@gmail.com.
    Grato,
    Wendel Borges

    ResponderExcluir
  6. Bom dia!
    Se puder disponibilizar areis.suporte@gmail.com
    Obrigado.

    ResponderExcluir
  7. Bom dia
    Se puder disponibilizar agradeço.
    Segue e-mail marcelo.ti.guimaraes@gmail.com
    Obrigado!

    ResponderExcluir
  8. Boa tarde,

    Estou tentando achar alguma rotina que gere uma relação de usuário e suas permissões também,poderia me enviar?

    karine.dr@hotmail.com

    Obrigada!

    ResponderExcluir
  9. Boa tarde,
    Se puder compatilhar alguma rotina que pegue a relação de acessos dos usuários do Protheus 11 eu agradeceria.

    tiagotg@hotmail.com

    ResponderExcluir
  10. Bom dia Naldo, blz?
    Estou tentando mudar algumas variáveis do SetPrint, wnrel que definem o envio envio de email para o usuário.
    estou convertendo o relatório finr140 para envio automático deste relatório.
    pode me dar alguma dica?
    Grato
    Fernando

    ResponderExcluir
  11. Boa tarde Luiz, será que a sintaxe que você tem para o P11 funciona na P12, será que poderia me enviar thiago.rigoletto@gmail.com

    ResponderExcluir
  12. Boa tarde, tudo certo?

    Vocês sabem se existe algum fonte, parecido com o APCFG40, onde eu consiga por exemplo saber quem tem acesso no MATA010.prw, e quais os acessos (Incluir, alterar, visualizar, pesquisar)? Eu tentei encontrar esse apcFG40 para tentar customizar, mas não encontrei nem a pau.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas