Exemplo Regra Tipo I

definir cursor c_TPessoa;
definir cursor c_034Fun;
definir cursor c_TAgente;

@ Quando for chamado pela Ficha Complementar busca o Código da Pessoa na Ficha Básica @
xNumEmp = R034CPL.NumEmp;
xTipCol = R034CPL.TipCol;
xNumCad = R034CPL.NumCad;
Se (CodPesExt = 0)
Inicio
c_034Fun.Sql "SELECT USU_CODPES FROM R034FUN WHERE NUMEMP=:xNumEmp AND TIPCOL=:xTipCol \
AND NUMCAD=:xNumCad";
c_034Fun.AbrirCursor();
Se (c_034Fun.Achou)

CodPesExt = c_034Fun.USU_codpes;
c_034Fun.FecharCursor();
Fim;

@ Quando for chamado pela Ficha Básica ou Cadastro de Outras Empresas seta Código da Pessoa da consulta(B2) @
CodPes = CodPesExt;

@ Lê a tabela de Cadastramento de Pessoas @
c_TPessoa.Sql "SELECT * FROM USU_TPESSOA WHERE USU_CODPESSOA=:CodPes";
c_TPessoa.AbrirCursor();
Se (c_TPessoa.Achou)
{
@ Campos da Ficha Básica @
R034FUN.NomFun = c_TPessoa.usu_nome;
R034FUN.DatNas = c_TPessoa.usu_dtnasc;

R034FUN.TipSex = c_TPessoa.usu_sexo;
R034FUN.CodNac = c_TPessoa.usu_nacion;
R034FUN.EstCiv = c_TPessoa.usu_estciv;
R034FUN.NumCpf = (c_TPessoa.usu_numcpf * 100) + c_TPessoa.usu_digcpf;
R034FUN.SerCtp = c_TPessoa.usu_sercat;
R034FUN.NumCtp = c_TPessoa.usu_numctb;
R034FUN.EstCtp = c_TPessoa.usu_ufctps;
R034FUN.AnoChe = c_TPessoa.usu_anoche;
R034FUN.NumPis = c_TPessoa.usu_numpis;
R034FUN.NumCra = c_TPessoa.usu_numcra;

R034FUN.ApeFun = c_TPessoa.usu_apefun;
R034FUN.DcdPis = c_TPessoa.usu_dedpis;
@ Campos da Ficha Complementar @
R034CPL.EndCep = c_TPessoa.usu_cepres;
R034CPL.EndRua = c_TPessoa.usu_endrua;
R034CPL.EndNum = c_TPessoa.usu_endnum;
R034CPL.NumTel = c_TPessoa.usu_telres;
R034CPL.NumCid = c_TPessoa.usu_rg;
R034CPL.EmiCid = c_TPessoa.usu_emirg;
R034CPL.EstCid = c_TPessoa.usu_ufrg;
R034CPL.DexCid = c_TPessoa.usu_dtemrg;

R034CPL.NumEle = c_TPessoa.usu_numtit;
R034CPL.NumRes = c_TPessoa.usu_cermil;
R034CPL.CatRes = c_TPessoa.usu_catmil;
R034CPL.EmaPar = c_TPessoa.usu_emapar;
R034CPL.EndCpl = c_TPessoa.usu_endcpl;
}
c_TPessoa.FecharCursor();

@ Lê a tabela de Agentes Externos @
c_TAgente.Sql "SELECT * FROM USU_TAgente WHERE USU_AGENTE=:CodPes";
c_TAgente.AbrirCursor();
Se (c_TAgente.Achou)
{
@ Campos do Cadastro de Outras Empresas @
CodPesExt = c_TAgente.USU_Agente;

R032OEM.EmaEmp = c_TAgente.usu_email;
R032OEM.EndCpl = c_TAgente.usu_ruacpl;
R032OEM.CodCep = c_TAgente.usu_cepagt;
R032OEM.EndOem = c_TAgente.usu_ruaagt;
R032OEM.NumTel = c_TAgente.usu_telagt;
R032OEM.NomOem = c_TAgente.usu_nomagt;
R032OEM.ApeOem = c_TAgente.usu_apeagt;
R032OEM.NumCgc = c_TAgente.usu_cgccpf;
}
c_TAgente.FecharCursor();

Este artigo ajudou você?