1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

[RESOLVIDO] Erro no Dataviewer

Discussão em 'EMS , HCM e Totvs 11' iniciado por ThiagoFabri, Outubro 30, 2009.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. ThiagoFabri

    ThiagoFabri Sem Pontuação

    Boa tarde meus amigos,

    Estou começando a engatinhar com o Dataviewer 3.0 na tentativa de extrair informações uteis aos usuários do Datasul.

    O problema é o seguinte:

    Criei um relatório Export para Excel;
    Inseri 2 Tabelas: Emitente e Cont-Emit
    Esperado: Vincular os campos COD-EMIT, NOME-EMIT, TELEFONE (da tabela EMITENTE) e contemplar com o campo NOME (da tabela CONT-EMIT) - Quando existir cadastrado.

    NOTA: Quando utilizo somente a tabela EMITENTE (juntamente com os campos indicados) ele apresenta todos os registros do sistema 3117registros. Porém, quando utilizo as duas tabelas (conforme descrito acima) ele me retorna uma quantia de 17registros.

    Não sei como poderia fazer isso, seria algo como um LEFT JOIN (no SQL).

    Conto com a ajuda de todos.

    Obrigado,
    Thiago
  2. ThiagoFabri

    ThiagoFabri Sem Pontuação

    Me orientaram a utilizar a opção CAMPOS CALCULADOS, alguem teria alguma informação sobre o que inserir na fórmula deste campo calculado?

    No aguardo,
    Agradeço
  3. msaat

    msaat Sem Pontuação

    Crie um campo calculado, crie uma procedure.
    Faça um for each ou um find first e abasteça se campo calculado com a informação.

    for each TABELA where CAMPO = CRITERIO no-lock:
    assign campo_calculado = tabela.campo.
    end.
  4. ThiagoFabri

    ThiagoFabri Sem Pontuação

    Msaat, agradeço pela ajuda!!!

    Deixa eu tentar mostrar o que eu fiz.

    Tabelas envolvidas:
    EMITENTE(pai)
    REPRES(filho) --- [Alterei a tabela do primeiro post]


    1.) Crie um Campo Calculado:
    Atributo: CC_REPRESENTANTE
    Rótulo: CC_REPRESENTANTE
    Tipo de Dado: Caracter
    Formato: x(12)
    Narrativa: Desmarcado

    2.) Inseri uma Prodcedure Internas: pi-busca_representante
    Lógica .P - e inseri o código sugerido:

    For Each EMITENTE where cod-emitente = cod-emitente no-lock:
    assign CC_REPRESENTANTE = repres.nome-abrev.
    end.


    Ainda assim, ele apresentou todos os registros, menos as informações contidas na tabela REPRES (campo NOME-ABREV);

    Espero que possam me ajudar!

    Abraços,
    Thiago
  5. ThiagoFabri

    ThiagoFabri Sem Pontuação

    Ola, apesar do meu problema persistir, consegui algumas dicas com um amigo:
    Para inserir no Código Livre, eu deveria utilizar:

    Código:
    for each emitente no-lock:
                   FIND FIRST repres NO-LOCK
                                   WHERE repres.cod-emitente  = emitente.cod-emitente NO-ERROR.
                   IF AVAIL repres THEN ASSIGN CC_REPRESENTANTE = repres.nome-abrev.
                   ELSE ASSIGN CC_REPRESENTANTE ="Não informado".
    
    end.
    **neste caso já testei com todos os tipos de ANTES e DEPOIS das operações de "Fonte Livre:"**


    Se utilizasse a Procedure Lógica, então deveria utilizar o código:
    Código:
    for each emitente no-lock:
                   for each repress no-lock
                                   where repress.cod-emitente = emitente.cod-emitente:
                                   assign CC_REPRESENTANTE = repres.nome-abrev. 
                   end.
    end.
    Ainda em tempo, existe alguma forma de "Debugar" estes fontes?
    Já nem consigo dormir por causa desse relatório, PRECISO muito da ajuda de vocês!

    Mais uma vez, obrigado a todos!
    Thiago Fabri
  6. Ricardo321210

    Ricardo321210 Sem Pontuação

    Olá Thiago, estou na mesma situação que você comecei a mexer no data viewer ... estou gerando um relatorio de requição de pessoal,porem, não consigo trazer a situação dessa rp..como eu faço?
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página