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

Duvida For each em dois bancos de dados

Discussão em 'Progress 4GL' iniciado por MatheusHLX, Janeiro 2, 2014.

  1. MatheusHLX

    MatheusHLX Sem Pontuação

    Bom pessoal, eu estou fazendo um FOR EACH e dentro dele um IF, então eu pedi pra ele me mostrar os campos "tit_ap.cod_tit_ap" e "tit_ap.cdn_fornecedor" que são do banco de dados "A" e depois eu preciso mostrar o campo "fornecedor.nome-abrev" que se localiza no banco de dados "B", queria saber como faço para mostra esse outro campo sendo que esta localizado em um banco de dados diferente.

    FOR EACH tit_ap NO-LOCK:

    IF tit_ap.ind_origin_tit_ap = "REP" THEN DO:
    PUT STREAM s-text UNFORMAT
    tit_ap.cod_tit_ap /* Título / Nro Docto */
    tit_ap.cdn_fornecedor /* Código Fornecedor */
    fornecedor.nome-abrev /* Nome Abreviado */

    Talvez seja muito simples, mas é que estou aprendendo ainda a linguagem Progress, e dei um pesquisada sobre isso e não achei nada.
  2. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Tente assim

    FOR EACH tit_ap NO-LOCK:

    IF tit_ap.ind_origin_tit_ap = "REP" THEN DO:
    FIND FIRST ems5.fornecedor OF tit_ap NO-LOCK NO-ERROR.
    PUT /* STREAM s-text */ UNFORMAT
    tit_ap.cod_tit_ap /* Título / Nro Docto */
    tit_ap.cdn_fornecedor /* Código Fornecedor */
    ems5.fornecedor.nom_abrev SKIP. /* Nome Abreviado */
    END.
    END.
  3. MatheusHLX

    MatheusHLX Sem Pontuação

    Tentei da seguinte forma, mas não consegui:

    FOR EACH tit_ap NO-LOCK:

    FIND mgadm.fornecedor OF movfin.tit_ap
    WHERE mgadm.fornecedor.cod-fornec = movfin.tit_ap.cdn_fornecedor
    NO-LOCK NO-ERROR.

    /*fornecedor.cod-fornec*/

    IF tit_ap.ind_origin_tit_ap = "REP" THEN DO:
    PUT STREAM s-text UNFORMAT
    tit_ap.cod_tit_ap /* Título / Nro Docto */
    tit_ap.cdn_fornecedor /* Código Fornecedor */
    /* mgadm.fornecedor.nome-abrev Nome Abreviado */
    tit_ap.dat_transacao /* Data */
    tit_ap.val_pagto_tit_ap /* Valor Pagamento */
    tit_ap.dat_emis_docto /* Data Emissão */
    tit_ap.dat_transacao /* Dat Trans */
    tit_ap.dat_ult_pagto /* Data Pagto */
    tit_ap.dat_prev_pagto /* Prev Pagto */
    tit_ap.cod_portador /* Portador */
  4. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Deu algum erro? Tente trocar apenas a linha do FIND para:

    FIND FIRST mgadm.fornecedor OF movfin.tit_ap
    NO-LOCK NO-ERROR.
  5. MatheusHLX

    MatheusHLX Sem Pontuação

    Eu fiz essa alteração que você falo, mas ainda ta dando erro:


    ---------------------------
    Erro (Press HELP to view stack trace)
    ---------------------------
    ** "fornecedor of tit_ap". Index fields of table 1 must be fields in table 2. (230)
    ** Nao entendi a linha 91. (196)
    ---------------------------
    OK Ajuda
    ---------------------------
  6. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Troque a identificação do banco mgadm para o seu banco do EMS 5 (Cadastro).

Compartilhe esta Página