Imprimi Página | Fechar janela |
Funcoes Advpl Impresso de: Helpfacil - Portal do conhecimento Nome do Forum: ADVPL Descrição do Forum: Dúvidas sobre a programação em ADVPL URL:http://www.helpfacil.com.br/display_topic_threads.asp?ForumID=1&TopicID=43025 Data da Impressão: terça-feira, 23 de abril de 2024 at 21:55 Topico: Funcoes Advpl Postado por: WANDERSONW Assunto: Funcoes Advpl Data Postagem: terça-feira, 17 de dezembro de 2019 at 09:23 Bom dia Pessoal, Estou precisando converter uma expressão em excel em funcao advpl, sera que alguém pode me ajudar. Função Excel =SE(OU((SOMA(C24:W24))-(TRUNCAR(SOMA(C24:W24)/11;0)*11)=0;(SOMA(C24:W24))-(TRUNCAR(SOMA(C24:W24)/11;0)*11)=1);0;(11-((SOMA(C24:W24))-(TRUNCAR(SOMA(C24:W24)/11;0)*11)))) Esta função é para calculo do digito verificador do banco Sicoob A valor que a planilha esta gerando na soma do C24:W24 esta idêntica a uma função que fiz para somar os valores. cPriForm quem recebe esta somatório Agradeço se alguém puder ajudar. Respostas: Postado Por: EMERSON.EN Data Postagem: quarta-feira, 18 de dezembro de 2019 at 13:45 se você passar as informações separadas: user function SicDV( coop, cliente, numero ) local n, nI, nResultado local nSoma := 0 local aNumNumero := array(21) aFill(aNumNumero, 0) // preenche a cooperativa nI := 4 for n := len(coop) to 1 step -1 aNumNumero[nI] := val(substr(coop,n,1)) nI-- next // preenche o cliente nI := 14 for n := len(cliente) to 1 step -1 aNumNumero[nI] := val(substr(cliente,n,1)) nI-- next // preenche o numero nI := 21 for n := len(numero) to 1 step -1 aNumNumero[nI] := val(substr(numero,n,1)) nI-- next // soma os dígitos passados aEval(aNumNumero, {|x| nSoma += x}) // efetua o cálculo para obtenção do dígito verificador nResultado := nSoma - (int(nSoma / 11) * 11) return if(nResultado <= 1, 0, (11 - nResultado)) sintaxe: u_SicDV(‘3249‘, ‘0000073415‘, ‘1000251‘) se você passar as informações concatenadas: user function SicDV2( numero ) local n, nI, nResultado local nSoma := 0 local aNumNumero := array(21) // preenche todos os elementos do array com zeros aFill(aNumNumero, 0) // preenche o array com o número passado no parâmetro nI := 21 for n := len(numero) to 1 step -1 aNumNumero[nI] := val(substr(numero,n,1)) nI-- next // soma os dígitos passados aEval(aNumNumero, {|x| nSoma += x}) // efetua o cálculo para obtenção do dígito verificador nResultado := nSoma - (int(nSoma / 11) * 11) return if(nResultado <= 1, 0, (11 - nResultado)) sintaxe: u_SicDV2(‘324900000734151000251‘) Postado Por: WANDERSONW Data Postagem: quarta-feira, 8 de janeiro de 2020 at 10:18 Bom Dia Emerson. Muito Obrigado pela ajuda. |
Imprimir Página | Fechar Janela |