cleziano Postado 30 de Julho de 2008 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 16 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 90 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 44 Denunciar Compartilhar Postado 30 de Julho de 2008 (editado) Bom dia pessoal, Seguinte, estou elaborando um crítica para a folha de pagamento onde se o funcionário não estiver afastado pela previdencia então criticamos o valor do desconto de almoço e vale transporte. Vendo que não existia uma função que buscasse a data de afastamento final da tabela do histórico de afastamento (PFHSTAFT), onde esta data deveria ser nula, e a data inicial do afastamento, que deve ser menor que o dia inicial do mês, então resolvi criar um SQL para consultar esta tabela, e o fiz assim: SELECT A.* FROM PFHSTAFT A WHERE A.DTFINAL IS NULL AND A.CHAPA = :CHAPA Salvei como INAFAST nos sql's do RM Labore. Após isso fui ao cadastro de formulas do RM e tentei criar a critica da seguinte forma: EXECSQL ('INAFAST'); DECL(DATAAF); SE SFUNC = 'P' ENTAO SETVAR(DATAAF,RESULTSQL('INAFAST','DTINICIO')) FIMSE; SE (TABCOMPL ('TICKET' , 'S') = 'N' OU TABCOMPL ('TICKET' , 'S') = '' ) E CODSECAO <> '1.2.002.002' E (N('0041') + N('0042')) <> 30 E DATAAF < MTDATA (1 , MES , ANO) ENTAO SE MV(MES,ANO,'0167') <= 0 ENTAO 'CRD06' SENAO '' FIMSE SENAO '' FIMSE No SQL INAFAST é requerido a chapa do funcionário para que ele traga os campos referentes aos afastamentos que ainda não houveram retorno. O erro se dá ai. Preciso passar a chapa da formula para o SQL para que ele me traga a linha referente a data inicial. Alguem pode me ajudar a solucionar este problema? Editado 31 de Julho de 2008 por Maffra Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Mauricio J. T. Postado 30 de Julho de 2008 Tópicos Que Criei: 134 Tópicos/Dia: 0.02 Meu Conteúdo: 1.225 Conteúdo/Dia: 0.19 Reputação: 2 Pontos/Conquistas: 7.400 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Dispositivo: Windows Denunciar Compartilhar Postado 30 de Julho de 2008 Crie uma formula com codigo CHAPA , buscando a variavel CHAPA. No SQL em vez de colocar :CHAPA, coloque :FRM_CHAPA é só. Crie uma formula com codigo CHAPA e coloque a variavel CHAPA nela. No SQL em vez de :CHAPA coloque :FRM_CHAPA. Crie uma formula com codigo CHAPA e coloque a variavel CHAPA nela. No SQL em vez de :CHAPA coloque :FRM_CHAPA. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
cleziano Postado 30 de Julho de 2008 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 16 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 90 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 44 Autor Denunciar Compartilhar Postado 30 de Julho de 2008 Muito obrigado pela solução Mauricio. Com certeza é bem mais eficiente do que a que eu fiz aqui. Alterei o SQL para que ele traga tudo sem filtro e na formula do RM fiz assim: EXECSQL ('INAFAST'); DECL(DATAAF); SE SFUNC = 'P' ENTAO REPITA SE RESULTSQL('INAFAST','CHAPA') = CHAPA ENTAO SETVAR(DATAAF,RESULTSQL('INAFAST','DTINICIO')) SENAO SE PROXREGSQL ('INAFAST') = 1 ENTAO SETVAR(DATAAF,MTDATA (01 , 01 , 0001)) FIMSE FIMSE ATE DATAAF <> MTDATA (01 , 01 , 0001) FIMSE; SE (TABCOMPL ('TICKET' , 'S') = 'N' OU TABCOMPL ('TICKET' , 'S') = '' ) E CODSECAO <> '1.2.002.002' E (N('0041') + N('0042')) <> 30 E DATAAF > MTDATA (1 , MES , ANO) ENTAO SE MV(MES,ANO,'0167') <= 0 ENTAO 'CRD06' SENAO '' FIMSE SENAO '' FIMSE Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
cleziano Postado 31 de Julho de 2008 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 16 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 90 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 44 Autor Denunciar Compartilhar Postado 31 de Julho de 2008 Crie uma formula com codigo CHAPA , buscando a variavel CHAPA. No SQL em vez de colocar :CHAPA, coloque :FRM_CHAPA é só. Crie uma formula com codigo CHAPA e coloque a variavel CHAPA nela. No SQL em vez de :CHAPA coloque :FRM_CHAPA. Crie uma formula com codigo CHAPA e coloque a variavel CHAPA nela. No SQL em vez de :CHAPA coloque :FRM_CHAPA. Mauricio, Fiz da forma que vc me indicou porém não traz resultado. Fui depurar o sql dentro do RM e na hora que ele pede o contexto para execução da formula ele não passa a CHAPA propriamente dita. Minha chapa é formada de 6 caracteres numéricos porém é armazenada como string. Quando eu seleciono algum contexto ele me retorno U00001 onde deveria ser 000001. Tentei usar uma substring pegando só os 5 ultimos caracteres da string, porém o :FRM_CHAPA não tem tipo conhecido. Tem alguma noção de como solucionar isso? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
cleziano Postado 31 de Julho de 2008 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 16 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 90 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 44 Autor Denunciar Compartilhar Postado 31 de Julho de 2008 Moderadores, Surgiu uma nova dúvida no uso do :FRM_CHAPA. - O retorno da função não é a chapa propriamente dita, o primeiro caracter da chapa está sendo trocado por 'U'. - O tipo do retorno da função :FRM_CHAPA não é conhecido. Coloquei mais detalhes na resposta da resposta que o Mauricio me mandou. Atenciosamente, Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Maffra Postado 31 de Julho de 2008 Tópicos Que Criei: 15 Tópicos/Dia: 0.00 Meu Conteúdo: 548 Conteúdo/Dia: 0.09 Reputação: 1 Pontos/Conquistas: 2.891 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 44 Denunciar Compartilhar Postado 31 de Julho de 2008 Cleziano, Tente o seguinte :FRM_CHAPA_S Att, Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
cleziano Postado 26 de Agosto de 2008 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 16 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 90 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 44 Autor Denunciar Compartilhar Postado 26 de Agosto de 2008 (editado) Cleziano, Tente o seguinte :FRM_CHAPA_S Att, Valeu Maffra, Deu certo porém tive que fazer um gambiarra... No SQL 'SS001' que eu cadastrei tive que formatar a chapa e ficou assim: SELECT T.DTFIM FROM PFVALETR T WHERE CONCAT('U',SUBSTR(T.CHAPA,2,5)) = :FRM_CHAPA_S vi que tinha que fazer isso pois no log da formula apareceu assim: Constante literal SS001 Chamada a funcao EXECSQL SS001 Constante literal U Variável CHAPA 003117 Constante literal 2,0000 Constante literal 5,0000 Chamada a funcao SUBSTR 003117 2,0000 5,0000 Resultado da funcao SUBSTR 03117 Chamada a funcao CONCAT U 03117 Resultado da funcao CONCAT U03117 Resultado da formula U03117 Isso acontece tudo dentro da função EXECSQL. Não sei se isso é só aqui Editado 26 de Agosto de 2008 por cleziano Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
jaime Postado 26 de Agosto de 2008 Tópicos Que Criei: 30 Tópicos/Dia: 0.00 Meu Conteúdo: 156 Conteúdo/Dia: 0.03 Reputação: 0 Pontos/Conquistas: 1.085 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 53 Denunciar Compartilhar Postado 26 de Agosto de 2008 Este exemplo por ser substituído por outros parâmetros. SELECT CODTOMADOR REF, VALOR VALOR FROM PFRATEIOTOMADOR WHERE CHAPA=:FRM_CHAPA Jaime Construtora Passarelli Ltda Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
cleziano Postado 27 de Agosto de 2008 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 16 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 90 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 44 Autor Denunciar Compartilhar Postado 27 de Agosto de 2008 Este exemplo por ser substituído por outros parâmetros. SELECT CODTOMADOR REF, VALOR VALOR FROM PFRATEIOTOMADOR WHERE CHAPA=:FRM_CHAPA Jaime Construtora Passarelli Ltda Jaime, No seu sistema funcionou assim? Aqui só funciona quando colocamos o _S e mesmo assim tem que trocar o primeiro caracter da chapa por "U" se não o RM não entende. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Eduardo Zortea Postado 22 de Outubro de 2008 Tópicos Que Criei: 2 Tópicos/Dia: 0.00 Meu Conteúdo: 3 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 35 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Denunciar Compartilhar Postado 22 de Outubro de 2008 erro.docEntao verificando as solucoes dos colegas. Nenhuma delas rodou aqui. A solucao alternativa com concat e substr nao aceitou a sql? Bem amigos se puderem me ajudar. A funcao da formula e repetir o ultimo salario pago no periodo de licença maternidade. (terei que fazer ainda ajustes na formula, mas primeiro terei que fazer funcionar o recebimento do parametro que é a chapa do funcionario). Ja agradeço antecipadamente. Eduardo - Cascavel - PR Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Michel Nascimento Postado 12 de Maio de 2021 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 6 Conteúdo/Dia: 0.01 Reputação: 1 Pontos/Conquistas: 41 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Denunciar Compartilhar Postado 12 de Maio de 2021 Em 22/10/2008 at 17:28, Eduardo Zortea disse: erro.docEntao verificando as solucoes dos colegas. Nenhuma delas rodou aqui. A solucao alternativa com concat e substr nao aceitou a sql? Bem amigos se puderem me ajudar. A funcao da formula e repetir o ultimo salario pago no periodo de licença maternidade. (terei que fazer ainda ajustes na formula, mas primeiro terei que fazer funcionar o recebimento do parametro que é a chapa do funcionario). Ja agradeço antecipadamente. Eduardo - Cascavel - PR Também estou com o mesmo problema, estou executando uma SQL em uma planilha .NET e uma das colunas, eu precisava executar uma formula (LIMITEGOZO) mas ao executar a consulta na planilha o sistema pede o contexto. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 15 de Maio de 2021 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 484 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.226 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Windows Denunciar Compartilhar Postado 15 de Maio de 2021 @Michel Nascimento, bom dia! Na planilha .NET não poderá utilizar fórmulas.... para utilizar fórmulas na query é somente quando a execução seja agregada a um processo, por exemplo na fórmula de valor do evento, a fórmula chama uma consulta, porém nessa query você precisa da chapa, logo, dentro da query terá a chamada de outra fórmula de para a chapa, assim, a execução identifica qual é a chapa que está no contexto e executa. O que pode fazer é replicar a lógica dessa fórmula e colocar no SQL. abraços. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Michel Nascimento Postado 24 de Maio de 2021 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 6 Conteúdo/Dia: 0.01 Reputação: 1 Pontos/Conquistas: 41 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Denunciar Compartilhar Postado 24 de Maio de 2021 Foi isso mesmo que eu fiz aqui, acabou funcionando. 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.