Jump to content
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×

Dani

Membros
  • Posts

    37
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Dani

  1. Em Oracle por função e seção: DECLARE V_Registros Int := 0; DATAINI DATE; DATAFIM DATE; ANO VARCHAR(4) := '2011'; TYPE TVETOR IS VARRAY(12) OF VARCHAR2(2); --DEFINE O TIPO DE VETOR VMES TVETOR; --DECLARA O VETOR; MES VARCHAR(2); PROX INTEGER :=0; --INICIA O VETOR BEGIN --LIMPA A TABELA Select COUNT(*) INTO V_Registros from user_tables where table_name like '%T_QUADROPESSOAL%'; /* Condição Para exclusão da Tabela */ IF V_Registros > 0 THEN EXECUTE IMMEDIATE 'DELETE FROM T_QUADROPESSOAL'; END IF; VMES:=TVETOR('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'); -- VETOR RECEBE O VALOR --INICIA LEITURA FOR PROX IN 1 .. 12 LOOP MES:=VMES(PROX); DATAINI := ANO||'-'||MES||'-01'; DECLARE CURSOR CQUADRO IS SELECT S.CODFILIAL, G.NOMEFANTASIA FILIAL, S.CODIGO CODSECAO, S.DESCRICAO SECAO, C.CODIGO CODFUNCAO, MES, ANO, C.NOME FUNCAO, COUNT(F.CHAPA) TOTAL FROM PSECAO S INNER JOIN GFILIAL G ON S.CODCOLIGADA=G.CODCOLIGADA AND S.CODFILIAL=G.CODFILIAL INNER JOIN (SELECT HS.CODCOLIGADA, HS.CHAPA, HS.CODSECAO, HS.DTMUDANCA INICIO, ((SELECT MIN(X.DTMUDANCA) FROM PFHSTSEC X WHERE X.CODCOLIGADA=HS.CODCOLIGADA AND X.CHAPA=HS.CHAPA AND X.DTMUDANCA>HS.DTMUDANCA) - 1) FIM FROM PFHSTSEC HS) HS ON S.CODCOLIGADA=HS.CODCOLIGADA AND S.CODIGO=HS.CODSECAO INNER JOIN PFUNCAO C ON S.CODCOLIGADA=C.CODCOLIGADA INNER JOIN (SELECT HC.CODCOLIGADA, HC.CHAPA, HC.CODFUNCAO, HC.DTMUDANCA INICIO, ((SELECT MIN(X.DTMUDANCA) FROM PFHSTFCO X WHERE X.CODCOLIGADA=HC.CODCOLIGADA AND X.CHAPA=HC.CHAPA AND X.DTMUDANCA>HC.DTMUDANCA) - 1) FIM FROM PFHSTFCO HC) HC ON S.CODCOLIGADA=HC.CODCOLIGADA AND C.CODIGO=HC.CODFUNCAO INNER JOIN PFUNC F ON HS.CODCOLIGADA=F.CODCOLIGADA AND HS.CHAPA=F.CHAPA AND HC.CHAPA=F.CHAPA WHERE F.DATAADMISSAO<Last_Day(DATAINI) AND (F.CODSITUACAO<>'D' OR F.DATADEMISSAO>DATAINI) AND HS.INICIO<=DATAINI AND ( HS.FIM>=DATAINI OR HS.FIM IS NULL) AND HC.INICIO<=DATAINI AND ( HC.FIM>=DATAINI OR HC.FIM IS NULL) GROUP BY S.CODFILIAL, S.CODIGO, G.NOMEFANTASIA, S.DESCRICAO, C.CODIGO, C.NOME; TABQUADRO CQUADRO%ROWTYPE; BEGIN OPEN CQUADRO; LOOP FETCH CQUADRO INTO TABQUADRO; exit WHEN CQUADRO%NOTFOUND; INSERT INTO T_QUADROPESSOAL(CODFILIAL, FILIAL, CODSECAO, SECAO, CODFUNCAO, ANO, MES, FUNCAO, TOTAL) VALUES (TABQUADRO.CODFILIAL, TABQUADRO.FILIAL, TABQUADRO.CODSECAO, TABQUADRO.SECAO, TABQUADRO.CODFUNCAO, TABQUADRO.ANO, TABQUADRO.MES, TABQUADRO.FUNCAO, TABQUADRO.TOTAL); END LOOP; CLOSE CQUADRO; END LOOP; END LOOP; END;
  2. Bom, ñ explico muito bem, mas vou tentar.... Quando na update uso campos da mesma tabela ou de outra (tipo set codusuario = chapa), eu sempre coloco um select, acho que fica mais consistente, na verdade nunca consegui fazer de outro jeito. No caso do seu código tambem estava faltando a ligação das tabelas pfunc e ppessoa.
  3. Oi Rodrigo, tenta este cógigo: UPDATE PPESSOA SET PPESSOA.CODUSUARIO = (select gusuario.codusuario from gusuario, pfunc p where gusuario.codusuario=p.chapa and p.codpessoa=ppessoa.codigo) from ppessoa, pfunc WHERE ppessoa.codigo=pfunc.codpessoa and PFUNC.CODSITUACAO <> 'D' AND pfunc.chapa in (select gusuario.codusuario from gusuario) and PPESSOA.CODUSUARIO is null
  4. Rodrigo, pelo que pude perceber o padrão do sistema é o codigo da coligada mais a chapa do funcionário, então ficaria assim, por exemplo, 1-00999, alem disso para que o update dê certo, tem que ter certeza que o usuário já exista na tabela gusuario, pelo que vi na sua resposta ao Donaldson este é um dos problemas. Eu aconselho você tentar criar novamente pelo sistema, pois se já existir um usuário conforme o padrão ele avisará e não criará novamente. Dentro do Labore, existe a opção de filtrar por codigo do usuario (Cod. Usuário), você pode filtra todos IS NULL e realizar o processo novamente.
  5. Oi, o arquivo foi compactado c/ Winrar, e ele foi criado com base nas tabelas de benefícios do RM Vitae, caso o seu controle de benefício seja feiro pelo RM Labore, ele não irá funcionar.
  6. Oi Wania, fiz esta planilha, é utilizada pela empresa que eu trabalho, espero que lhe ajude.
  7. Boa Tarde, Nos tambem estamos implantando o portal aqui, tive alguns problemas tambem, e estou criando um roteiro, segue algumas dicas pra resolver o problema em questão. 1º Opções - Parametros - Portal(Esquema) 2º Cadastrar Localidades (cadastro - localidades) 3º Cadastrar Grupos de usuários - (cadastro-grupos) 4º Criar Perfil de usuários para acesso ao portal 5º Associar usuários a localidades e grupos (Cadastro - Permissão dos Usuários)
  8. Tivemos problemas com os filtros do fluxus, telas de lançamentos do liber, e principalmente com o serviço do RM.Host que pelo que eu pude perceber ainda não tem uma solução definitiva, aqui na empresa alteramos o usuário de logon do serviço para um administrador local, mas as vezes o problema ressurge, quando isso ocorre eu altero p/ o usuário padrão (que dá erro) reinicio o pc e altero novamente para o administrador local, quase sempre funciona.
  9. select a.codsecao+' - '+b.descricao as 'seção', count(a.chapa) as 'total' from pfunc a, psecao b where a.codcoligada=b.codcoligada and a.codsecao=b.codigo and a.codcoligada=1 and a.codsituacao<>'D' group by a.codsecao, b.descricao
  10. Vá em painel de controle - ferramentas administrativas - serviços, procure RM.Host - clique c/ botão direito, propriedades - logon - esta conta e altere para um administrador da máquina. Obs.: o suporte da RM me orientou a tentar um administrador de rede, aqui não deu certo.
  11. Uma vez precisei e utilizei este sql, talvez sirva pra vc tb.
  12. Dani

    Sentença SQL

    (pfunc.codsituacao <> 'D' or (pfunc.codsituacao = 'D' and month (pfunc.datademissao) >= :mes_competencia and year(pfunc.datademissao) = :ano_competencia ) )
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.