Como Relacionar Registros na Mesma Base de Dados do ABCD (Principal e Correlato)

Em muitos projetos de acervo no ABCD, precisamos relacionar registros diferentes que estão armazenados dentro da mesma base de dados (dbn) — como uma coleção e seus itens, um periódico e seus fascículos, ou um entrevistado e suas entrevistas.

Para construir essa navegação bidirecional, dividimos os registros em duas categorias lógicas:

  • Registro PRINCIPAL: É o registro agregador (de origem). Na tela de visualização, ele exibe um botão que carrega (dentro de um iframe) a lista dinâmica com todas as ocorrências e dados resumidos dos seus registros CORRELATOS.
  • Registro CORRELATO: É o registro vinculado (dependente). Ele armazena em um campo específico o código identificador do registro de origem e exibe um link direto para abrir o registro PRINCIPAL.

Visão Geral da Arquitetura

O relacionamento funciona em duas vias independentes. Veja quais arquivos atuam em cada fluxo:

1. Do Registro PRINCIPAL para os CORRELATOS (Listagem em Tabela)

Quando o usuário abre um registro PRINCIPAL, o formato de exibição aciona um IsisScript via wxis que pesquisa todos os registros correlatos vinculados e os desenha em uma tabela dentro de um iframe.

  • /bases/<dbn>/pfts/<lang>/<dbn>.pft: Formato principal da base; insere o formulário com o botão de ação e o iframe onde a lista será carregada.
  • /cgi-bin/wxis_modules/ref_link.xis: Script de busca que localiza os registros CORRELATOS e monta o cabeçalho da tabela dentro do iframe.
  • /cgi-bin/simples.pft: Formato chamado pelo ref_link.xis para desenhar cada linha (células <td>) com os dados dos registros CORRELATOS.
  • /bases/par/<dbn>.par: Arquivo de parâmetros; declara os caminhos físicos da base e dos formatos para que o wxis consiga localizá-los.
  • /bases/<dbn>/data/<dbn>.fst: Tabela de extração de campos; indexa os códigos de vínculo no arquivo invertido.
  • /bases/<dbn>/pfts/<lang>/server.pft: Centraliza a URL do servidor para facilitar chamadas de links.

2. Do Registro CORRELATO para o PRINCIPAL (Link Direto)

Quando o usuário abre um registro CORRELATO, o formato de exibição utiliza a função ref(l(...)) nativa da linguagem de formatação CISIS para buscar os dados do registro PRINCIPAL no arquivo invertido e criar um link clicável.

  • /bases/<dbn>/pfts/<lang>/<dbn>.pft: Insere a chamada , @doc-principal.pft, quando identifica que o registro aberto é um correlato.
  • /bases/<dbn>/pfts/<lang>/doc-principal.pft: (Em algumas bases nomeado como qualifiers_links.pft) Executa a busca reversa pelo número de controle e monta o link HTML apontando para o registro PRINCIPAL.
  • /bases/par/<dbn>.par, <dbn>.fst e server.pft: Compartilhados com o fluxo anterior para resolução de caminhos e índices.

Passo a Passo da Configuração

Para que o relacionamento funcione sem erros de referência, o ideal é configurar a base seguindo a ordem lógica abaixo: da indexação até os formatos de visualização.

Passo 1: Configurar a Indexação (/bases/<dbn>/data/<dbn>.fst)

A tabela de extração de campos (FST) é o coração do vínculo. Sem a indexação correta no arquivo invertido, o sistema não conseguirá cruzar os registros. Além das linhas de ligação abaixo, lembre-se de que todos os campos exibidos nos formatos doc-principal.pft e simples.pft também precisam estar indexados.

Adicione as seguintes linhas no início do seu arquivo <dbn>.fst:

Plaintext

// Acrescentar ao conteúdo já existente, no início do arquivo.
1 0 'SG'v1
773 0 (v773^w/)
773 0 |NE_|v773^w

Entenda cada parâmetro da FST:

ElementoFunção na Indexação
1 e v1Campo que armazena o código/número de controle único do registro. É de preenchimento obrigatório no registro PRINCIPAL (e pode ser usado normalmente no registro CORRELATO para seu próprio controle).
'SG'Prefixo arbitrário de indexação usado para localizar o registro principal. Não altere esta sigla.
773 e v773^wCampo preenchido exclusivamente no registro CORRELATO para guardar o código (v1) do registro PRINCIPAL ao qual está vinculado. Você pode usar outra tag MARC/local em vez do 773^w, desde que substitua a tag em todos os arquivos deste tutorial.
|NE_|v773^wGera a chave de busca NE_ + número de controle do registro principal. Essa mesma sigla deve ser enviada pelo formulário oculto dentro do arquivo <dbn>.pft (value="NE_'v1'").

Passo 2: Definir a URL Base (/bases/<dbn>/pfts/<lang>/server.pft)

Este arquivo armazena o endereço base da sua instalação do ABCD, sendo chamado pelo doc-principal.pft para montar as URLs de acesso aos registros.

Crie o arquivo server.pft dentro da pasta de idiomas da sua base contendo apenas a URL entre aspas simples (certifique-se de incluir a barra / ao final):

Snippet de código

'http://caminho.do/servidor/'

Passo 3: Declarar os Caminhos em /bases/par/<dbn>.par

O arquivo .par informa ao ABCD e ao módulo wxis onde estão localizados os formatos auxiliares e os arquivos físicos da base de dados.

Acrescente as linhas abaixo ao final do seu arquivo <dbn>.par:

Ini, TOML

// Acrescentar ao conteúdo já existente
doc-principal.pft=%path_database%dbn/pfts/pt/doc-principal.pft
server.pft=%path_database%dbn/pfts/pt/server.pft
GIZMO.*=caminho-fisico/bases/gizmo/pt/qlf850.*
ACERVO.*=caminho-fisico/bases/dbn/data/dbn.*

O que você deve ajustar neste arquivo:

  • dbn: Substitua pelo nome real da sua base de dados.
  • caminho-fisico: Substitua pelo caminho absoluto no diretório do servidor (incluindo a barra inicial, como /var/www/abcd).
  • ACERVO: É o apelido interno da base chamado dentro do ref_link.xis. Caso você tenha mais de uma base utilizando este recurso na mesma instalação do ABCD, altere o nome ACERVO (por exemplo, para ACERVO2) tanto aqui quanto no ref_link.xis.
  • GIZMO: Deve ser mantido exatamente com este nome, ajustando apenas o caminho-fisico.

Passo 4: Formatar as Linhas da Lista de Correlatos (/cgi-bin/simples.pft)

O arquivo simples.pft é responsável por desenhar apenas as células de dados (<td>) de cada registro CORRELATO encontrado. Os títulos das colunas (<th>) ficam armazenados dentro do ref_link.xis.

Importante: Deve existir um arquivo simples.pft exclusivo para cada tipo de referência na mesma base ou para cada base na instalação do ABCD que utilize relacionamentos. Caso crie um segundo relacionamento, salve uma cópia com outro nome (ex.: simples_acervo2.pft) e atualize a chamada correspondente dentro do seu ref_link.xis.

Snippet de código

[pft]
'<td class="estilo"><a href="http://server/central/dataentry/fmt.php?Opcion=ver&base=dbn&cipar=dbn.par&Mfn='mfn'&ver=S&Formato=pft" target="_blank" class="estilo" title="">'mfn,'</a></td>'
'<td class="estilo">'mhl,v117[1],'</td>'
'<td class="estilo">'mhl,v119[1],'</td>'
'<td class="estilo">'mhl,v153[1],'</td>'
'<td class="estilo">'mhl,v122*6.2,"/"v122*4.2,"/"v122*0.4,'</td>'
'<td class="estilo">'mhl,v124[1],'</td>'
'<td class="estilo">'mhl,v125[1],'</td>'
[/pft]

Variáveis para personalizar no código acima:

Variável no CódigoPelo que substituir
serverDomínio ou IP do seu servidor (neste arquivo não é possível chamar @server.pft).
dbnNome da sua base de dados (em base=dbn e cipar=dbn.par).
pftNome do formato de exibição (sem a extensão .pft em Formato=pft) que será usado ao abrir o registro CORRELATO em nova aba.
Campos (v117, v119…)Substitua pelas tags reais dos campos do seu registro CORRELATO que deseja exibir nas colunas da tabela. O primeiro <td> cria o link de acesso diretamente no número do mfn.

Passo 5: Configurar o Motor de Busca dos Correlatos (/cgi-bin/wxis_modules/ref_link.xis)

Este IsisScript recebe a requisição do registro PRINCIPAL, pesquisa todos os registros CORRELATOS ligados a ele no arquivo invertido e renderiza a tabela HTML completa dentro do iframe, puxando as linhas do simples.pft.

XML

<IsisScript name="ref_link.xis">
<section>
    <display><pft>'Content-type: text/html'/#</pft></display>
    <display>
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="http://server/bases/dbn/styles/estilo.css" />
            <title></title>
    </head>
    <body>
    </display>
    <field action="cgi" tag="3001">expressao1</field>
    <field action="cgi" tag="3011">operador1</field>
    <field action="cgi" tag="3002">expressao2</field>
    <field action="cgi" tag="3012">operador2</field>
    <field action="cgi" tag="3003">expressao3</field>
    <field action="cgi" tag="2002">formato</field>
    <field action="cgi" tag="2003">exibir</field>
    <field action="cgi" tag="2004">proximo</field>
    <field action="cgi" tag="2010">lista</field>
    <field action="cgi" tag="2051">formulario</field>
    <field action="cgi" tag="5001">base</field>
    <field action="cgi" tag="5002">cipar</field>
    <!-- Carrega parametros enviados pela PFT da base -->
    <parm name="cipar"><pft>,cat(v5002),</pft></parm>
    <!-- Tratamento de erro -->
    <flow action="jump"><pft>if a(v3001) and a(v2010) then 'ERRO2' fi</pft></flow>
    <field action="replace" tag="2002"><pft>if a(v2002) then 'simples' else v2002 fi</pft></field>
    <field action="replace" tag="2003"><pft>if val(v2003)<1 then '25' else v2003 fi</pft></field>
    <field action="replace" tag="2004"><pft>if val(v2004)<1 then '1' else v2004 fi</pft></field>
<label>Saber</label>
<field action="replace" tag="5010">
<pft>
    if v2051:'FORM' then
            v3001,if p(v3001) then if p(v3002) or p(v3003) then v3011 fi,fi,v3002,
            if p(v3002) and p(v3003) then v3012 fi,v3003
    else
            if p(v3001) then
                if p(v3011) then
                    replace(v3001,' ',v3011)
                else
                    v3001
                fi,
            else
                v2010+|+|
            fi,
    fi,
</pft></field>
    <do task="search">
            <parm name="db">ACERVO</parm>
            <parm name="gizmo">GIZMO</parm>
            <parm name="expression">
            <pft>v5010</pft>
            </parm>
            <parm name="reverse">Off</parm>
            <field action="define" tag="1001">Isis_Current</field>
            <field action="define" tag="1002">Isis_Total</field>
            <loop>
                    <list action="load" type="list">
                            <pft>
                                    ''mhu,'^k',mfn, '^m'mfn,
                            </pft>
                    </list>
            </loop>
    </do>
<!-- AGPOA - INICIO DA VISUALIZACAO DOS RESULTADOS-->
<!--<display><pft>'from: 'v2004'<br>count: 'v2003'<br>'</pft></display-->
<!--display><pft>'<h4>expressão: 'v5010'</h4>'</pft></display-->
<display>
    <form name="resultado" action="wxis.exe" method="get" onSubmit="return verifica()">
    <input type="hidden" name="IsisScript" value="ref_link.xis">
    <input type="hidden" name="nextAction" value="refine/resubmit">
    <table>
    <tr>
    <td></td>
</display>
<display>
<pft>
    if v2002:'simples' then
        '<th class="ahmcs listaSuporte">MFN</th>'
        '<th class="ahmcs listaSuporte">FG</th>'
        '<th class="ahmcs listaSuporte">CDR-FG</th>'
        '<th class="ahmcs listaSuporte">CD</th>'
        '<th class="ahmcs listaSuporte">Data</th>'
        '<th class="ahmcs listaSuporte">Tema</th>'
        '<th class="ahmcs listaSuporte">Subtema</th></tr>'
    fi
</pft>
</display>
<display>
</display>
    <do task="list">
<field action="define" tag="1001">Isis_Current</field>
            <field action="define" tag="199">Isis_Item</field>
            <parm name="sort"><pft>v199^k</pft></parm>
            <parm name="count"><pft>v2003</pft></parm>
            <parm name="from"><pft>v2004</pft></parm>
            <loop>
                    <field action="import" tag="list">1002/2999</field>
                    <do task="mfnrange">
                            <parm name="db">ACERVO</parm>
                            <parm name="from"><pft>v199^m</pft></parm>
                            <parm name="count">1</parm>
                            <loop>
                            <field action="import" tag="list">1000/2999</field>
                            <display>
                            <htmlpft><pft>
                            '<tr><td>'
                    '<span class="destaque">'    '[pft]V1001[/pft]'    '. </span>'
                            if v2002:'simples' then
                                    cat('simples.pft')
                fi,
                            </pft></htmlpft>
                            </display>
                            </loop>     <!--fim do loop mfnrange-->
                    </do>
            </loop> <!--fim do loop task-->
    </do>
<display><pft>
     </pft></display>
    <display>
    <pft>
            '<tr><td>'
            '<input type="Hidden" name="formato" value="'v2002'">'
            if val(v1002)>0 then '<!--<input class="botao" type="Submit" value=" Exibir selecionados">-->' else 'Nenhum registro recuperado!' fi,
            '<br /><br />            </form>
            </table>
 <!--<input type="button" class="botao" name="imprimir"  align="middle" id="imprimir" value="Imprimir" onclick="print()" /></td></tr>-->'
    </pft>
    </display>
<!-- FIM DA VISUALIZACAO DOS RESULTADOS -->
    <display><pft>
    '<span class="etiqueta">Total: </span><span class="destaque">'v1002' </span>' if v1002='1' then 'registro.' else 'registros.' fi,'<br/>'
    '<!--<a href="'v5000,
    if v2051:'FORM' then
            'JanelaPesquisa.htm'
    else
            'indexflo.htm'
    fi,
    '"><img src="'v5000'img/find.png" alt="Pesquisar" border="0">Nova Pesquisa</a>-->'
    </pft>
</display>
<flow action="jump">FIM</flow>
<label>ERRO</label>
    <display>Selecione ao menos uma das bases listadas.</display>
    <flow action="jump">FIM</flow>
<label>ERRO1</label>
    <display>O registro final é menor do que o registro inicial.</display>
    <flow action="jump">FIM</flow>
<label>ERRO2</label>
    <display>
    Informe a expressão de pesquisa<br>ou<br>Selecione ao menos um item para exibição.<br><br>
    <input class="botao" type="button" value="Voltar" onclick="history.go(-1)">
    </display>
    <flow action="jump">FIM</flow>
<label>FIM</label>
    <!-- Para a execução e sai -->
    <display>
    </td></tr></table></display>
<display>
 <pft>
 if val(v1002)>0 then
 if val(v1001)<val(v1002) then
    '<hr color="#660000" width="90%">
    <table>
            <tr>
              <td>
                      <a href="javascript:history.back();">
                      </td>
              <td>
                    <form action="http://cgi-bin/wxis.exe" method="post">
                    <input type="hidden" name="IsisScript" value="ref_link.xis">
                    <input type="hidden" name="expressao" value="
                           'replace(v2001,' ','*'),v2000,
                            if p(v2004) then v2002,replace(v2004,' ','*'),v2003, fi,
                            if p(v2007) then v2005,replace(v2007,' ','*'),v2006, fi
                            '">
                    <input type="hidden" name="campo1" value="'v2000'">
                    <input type="hidden" name="expressao1" value="'v3001'">
                    <input type="hidden" name="operador1" value="'v3011'">
                    <input type="hidden" name="campo2" value="'v2003'">
                    <input type="hidden" name="expressao2" value="'v2004'">
                    <input type="hidden" name="operador2" value="'v3012'">
                    <input type="hidden" name="campo3" value="'v2006'">
                    <input type="hidden" name="expressao3" value="'v3003'">
                    <input type="hidden" name="controle" value="AN="'v900'">
                    <input type="hidden" name="quantidade" value="'v2009'">
                    <input type="hidden" name="lista" value="AN='v2010'">
                    <input type="hidden" name="proximo" value="'f(val(v2004)+25,0,0)'">
                 <input type="image" src="http://teste.isishome.net/img/avancar.png" value="Avançar" alt="Avançar">
             </td>
            </tr>
          </table>
</body>'
else
if  val(v1001)=val(v1002) then
   fi fi fi
 </pft>
</display>
    <flow action="exit">fim</flow>
</section>
</IsisScript>

Pontos de atenção para customizar no ref_link.xis:

ItemO que ajustar
server, dbn e estiloNa linha <link rel="stylesheet"...>, ajuste a URL do servidor (server), o nome da base (dbn) e o arquivo CSS (estilo.css).
ACERVO e GIZMOO parâmetro ACERVO deve ter exatamente o mesmo nome configurado no <dbn>.par. O parâmetro GIZMO deve ser mantido como está.
ref_link.xis e simplesSe a sua instalação tiver mais de uma base com referências, crie cópias com nomes exclusivos (ex.: ref_link_base2.xis e simples_base2.pft) e substitua todas as chamadas internas no arquivo.
Cabeçalhos (<th>)No bloco if v2002:'simples' then, altere os títulos das colunas (MFN, FG, CDR-FG, Data, etc.) para corresponder exatamente aos campos do registro CORRELATO configurados no seu simples.pft.

Passo 6: Criar o Link de Retorno ao Registro Principal (/bases/<dbn>/pfts/<lang>/doc-principal.pft)

Quando o usuário visualiza um registro CORRELATO, este formato auxiliar entra em ação: ele lê o código de vínculo armazenado no campo v773^w, localiza o MFN correspondente do registro PRINCIPAL através da função ref(l(...)) e cria um link direto para abri-lo em uma nova aba.

Snippet de código

(if p(v773^w) then
'<a href="',@server.pft,'central/dataentry/fmt.php?Opcion=ver&base=dbn&cipar=dbn.par&Mfn='ref(l(['caminho-fisico/bases/dbn/data/dbn']'SG'v999,v773^w,v260),mfn)'
&ver=S&Formato=pft" class="estilo" target="_blank" title="">'ref(l(['caminho-fisico/bases/dbn/data/dbn']'SG'v999,v773^w,v260),v245^a, v245^g,' <span class="destaque">MFN: </span>'mfn)'</a>'
fi,)' '

Parâmetros essenciais do doc-principal.pft:

  • Condicional (if p(v773^w)): Garante que o link só seja gerado se o campo de vínculo estiver preenchido (ou utilize uma condicional baseada na presença/ausência de campos exclusivos do registro CORRELATO).
  • dbn e caminho-fisico: Substitua pelo nome da sua base e pelo caminho físico completo do servidor (incluindo a / inicial, ex.: /var/www/abcd).
  • 'SG'v999: Artifício técnico da linguagem de formatação para concatenar o prefixo de busca SG. Não altere.
  • v773^w: Campo preenchido apenas no registro CORRELATO contendo o código v1 do registro PRINCIPAL.
  • v260 (Pulo do gato): Este terceiro argumento dentro de l(...) deve ser qualquer campo que exista apenas no registro PRINCIPAL (ou que nunca seja preenchido no registro correlato). Se esse campo estiver preenchido no correlato, a busca falhará.
  • pft: Em &Formato=pft, informe o nome do formato (sem .pft) que será usado para exibir o registro PRINCIPAL ao clicar no link.
  • Campos de exibição (v245^a, v245^g): Substitua pelos campos do registro PRINCIPAL que devem aparecer como o texto clicável do link (como Título ou Nome).

Passo 7: Integrar os DOIS Fluxos no Formato da Base (/bases/<dbn>/pfts/<lang>/<dbn>.pft)

Por fim, precisamos inserir no formato de exibição principal da base (<dbn>.pft) as condições que decidem o que mostrar na tela:

  1. Se o registro aberto for um CORRELATO, ele chama o @doc-principal.pft.
  2. Se o registro aberto for um PRINCIPAL, ele desenha o botão de busca e o <iframe name="tela"> que carregará a listagem de correlatos.

Insira os trechos abaixo nos locais desejados dentro da sua PFT:

Snippet de código

// 1. Para exibir o link apontando para o registro PRINCIPAL (quando estiver visualizando o CORRELATO)
if p(v154) and a(v100) then
'<tr class="estilo"><td class="estilo">',@doc-principal.pft,'</td></tr>'
fi,

// 2. Para exibir o botão e o iframe listando os registros CORRELATOS (quando estiver visualizando o PRINCIPAL)
if a(v154) and p(v100) then
'<tr>
<th class="estilo"><br />
<form action="/cgi-bin/wxis.exe" method="post" target="tela" id="tela">
           <input type="hidden" name="IsisScript" value="wxis-modules/ref_link.xis">
           <input type="hidden" value="NE_'v1'" name="expressao1">
<!-- Input para executar o cgi-bin/wxis-modules/ref_link.xis -->
           <input type="hidden" value="dbn" name="base">
           <input type="hidden" value="caminho-fisico/bases/par/'v5001'.par" name="cipar">
           'if a(v154) then
             '<input name="buscar" type="submit" value="nome-do-botão" target="tela" class="estilo" title="">
</form></th>
  <td><iframe frameborder="0" id="tela" name="tela" width="100%" height="150px"></iframe></td>
</tr>'fi/
fi,

Ajustes necessários neste trecho:

  • Condicionais (if p(v154) and a(v100)): Adapte para a realidade da sua base. No exemplo acima, o campo v154 existe apenas no registro CORRELATO e o v100 existe apenas no PRINCIPAL.
  • NE_'v1': O prefixo NE_ deve ser exatamente o mesmo configurado na sua <dbn>.fst para o campo de ligação.
  • dbn e caminho-fisico: Nome da base e caminho absoluto no servidor (ex.: /var/www/abcd).
  • nome-do-botão: Texto que aparecerá no botão para o usuário clicar e carregar os registros CORRELATOS (exemplo: “Ver entrevistas” ou “Listar fascículos”).

Exemplo Prático: Base MAJSA (Entrevistados e Entrevistas)

Um caso real de aplicação desta estrutura é a base MAJSA (Banco de Memória do Arquivo Histórico de Caxias do Sul), onde são cadastrados na mesma base tanto os dados biográficos das pessoas (ENTREVISTADO = Registro PRINCIPAL) quanto os registros técnicos de cada depoimento cedido (ENTREVISTA = Registro CORRELATO).

Estrutura de Campos Utilizada na Base MAJSA

  • v1: Número de controle único (preenchido em todos os registros).
  • v100: Nome do entrevistado (preenchido apenas no registro PRINCIPAL / Entrevistado).
  • v101 e v102: Datas de nascimento e morte (preenchidos apenas no registro PRINCIPAL / Entrevistado).
  • v154: Código de vínculo do entrevistado (preenchido apenas no registro CORRELATO / Entrevista, recebendo o valor do v1 do Entrevistado).
  • v117 (FG), v119 (CDR-FG), v153 (CD), v122 (Data), v124 (Tema) e v125 (Subtema): Dados técnicos preenchidos apenas no registro CORRELATO / Entrevista.

Como Funciona na Prática

Imagine que o registro da entrevista possui o número de controle v1=1 e está vinculado ao entrevistado de código v154=52:

  1. Ao visualizar a ENTREVISTA (Registro Correlato): O sistema lê o valor 52 no campo v154, busca o registro principal correspondente e exibe automaticamente o link com o nome (v100) e as datas de nascimento e morte (v101 e v102) do ENTREVISTADO.
  2. Ao visualizar o ENTREVISTADO (Registro Principal): O sistema exibe o botão de consulta e carrega dentro do iframe a listagem completa de todas as ENTREVISTAS vinculadas ao código 52, mostrando em colunas os campos FG (v117), CDR-FG (v119), CD (v153), Data (v122), Tema (v124) e Subtema (v125).

Em ambos os sentidos, clicar sobre o link ou sobre o MFN da tabela abre o documento referenciado em uma nova aba do navegador.

Esquema Visual de Exibição

Abaixo está a representação de como os dados são renderizados na interface do ABCD após a configuração dos formatos:

1. Visualização da ENTREVISTA (Registro Correlato com link para o Principal)

Ao abrir o registro da entrevista (v1=1), a condicional identifica a presença do campo de vínculo (v154=52) e aciona o @doc-principal.pft, gerando um link direto para o cadastro do entrevistado:

Campo na TelaValor Exibido no RegistroOrigem do Dado
Nº de Controle1Campo v1 (Correlato)
Entrevistado (Vínculo)🔗 João da Silva (1920–2005) — MFN: 52 (abre em nova aba)Gerado via @doc-principal.pft buscando v100, v101 e v102 do Principal
FGFG-014Campo v117 (Correlato)
CDR-FGCDR-008Campo v119 (Correlato)
CDCD-003Campo v153 (Correlato)
Data14/05/1998Campo v122 formatado (Correlato)
TemaImigração e ColonizaçãoCampo v124 (Correlato)
SubtemaOfícios rurais e vitiviniculturaCampo v125 (Correlato)

2. Visualização do ENTREVISTADO (Registro Principal listando seus Correlatos no iframe)

Ao abrir o registro do entrevistado (v1=52), a condicional identifica que se trata de um registro PRINCIPAL e exibe o botão de ação ao lado do iframe. Ao clicar em “Ver entrevistas”, o ref_link.xis busca todos os registros com NE_52 e monta a tabela com o simples.pft:

Dados do Registro Principal (<dbn>.pft):

Campo na TelaValor Exibido no Registro
Nº de Controle (v1)52
Nome do Entrevistado (v100)João da Silva
Datas (v101 – v102)1920 – 2005
Documentos Vinculados[ Botão: Ver entrevistas ] (carrega a tabela abaixo dentro do iframe)

Tabela renderizada dentro do iframe (ref_link.xis + simples.pft):

#MFN (link p/ Correlato)FG (v117)CDR-FG (v119)CD (v153)Data (v122)Tema (v124)Subtema (v125)
1.🔗 1FG-014CDR-008CD-00314/05/1998Imigração e ColonizaçãoOfícios rurais e vitivinicultura
2.🔗 18FG-015CDR-009CD-00321/05/1998Memória UrbanaComércio local na década de 1950

Total: 2 registros. (Ao clicar sobre o número do MFN, o respectivo registro Correlato é aberto em uma nova aba).

Deixe um comentário