Tecnologia > Ferramentas de Apoio > LSP - Linguagem Senior de Programação > Funções > Específicas do Gerador de Relatórios > SubstituiFrom

SubstituiFrom

Esta função substitui uma cláusula FROM no SELECT da seção passada como parâmetro. A substituição pode ser parcial, se o parâmetro TabelaSubstituída for passado ou total, se o mesmo for omitido.

Para usar esta função, é preciso desativar os relacionamentos automáticos que são feitos cada vez que uma nova tabela é adicionada a seção. Na propriedade Relacionamento da seção detalhe, onde são mostrados todos os relacionamentos automáticos, selecione-os e utilize a opção Sem Conexão.

A função permite que apenas um Join seja informado no parâmetro NovaClausula.

Junções Suportadas:

Sintaxe: SubstituiFrom (Alfa SectionName, Alfa NovaClausula, Alfa TabelaSubstituida);

Parâmetros:

Nome Tipo Descrição
SectionName Alfa Nome da seção onde será substituída o FROM no SQL
NovaClausula Alfa Cláusula que irá substituir o FROM atual total ou parcialmente
TabelaSubstituída Alfa Indica qual o nome da tabela que está na cláusula FROM que sua descrição será substituída pela nova cláusula. Se este parâmetro for informado, somente esta tabela será substituída. Caso este parâmetro não seja informado, toda a cláusula FROM será substituída

Exemplos:

Cross Join:

SubstituiFrom ("Detalhe_1", "(R034FUN CROSS JOIN R036DEP)", "");

SELECT
   R034FUN.NUMEMP R034FUNNUMEMP,
   R034FUN.TIPCOL R034FUNTIPCOL,
   R034FUN.NUMCAD R034FUNNUMCAD,
   R034FUN.NOMFUN R034FUNNOMFUN,
   R036DEP.NUMEMP R036DEPNUMEMP,
   R036DEP.TIPCOL R036DEPTIPCOL,
   R036DEP.NUMCAD R036DEPNUMCAD,
   R036DEP.CODDEP R036DEPCODDEP,
   R036DEP.NOMDEP R036DEPNOMDEP
FROM
   (R034FUN CROSS JOIN R036DEP)

Inner Join:

SubstituiFrom ("Detalhe_1", "(R034FUN INNER JOIN R036DEP ON R034FUN.NUMEMP = R036DEP.NUMEMP)", "");

SELECT
   R034FUN.NUMEMP R034FUNNUMEMP,
   R034FUN.TIPCOL R034FUNTIPCOL,
   R034FUN.NUMCAD R034FUNNUMCAD,
   R034FUN.NOMFUN R034FUNNOMFUN,
   R036DEP.NUMEMP R036DEPNUMEMP,
   R036DEP.TIPCOL R036DEPTIPCOL,
   R036DEP.NUMCAD R036DEPNUMCAD,
   R036DEP.CODDEP R036DEPCODDEP,
   R036DEP.NOMDEP R036DEPNOMDEP
FROM
   (R034FUN INNER JOIN R036DEP ON R034FUN.NUMEMP = R036DEP.NUMEMP)

Left Outer Join:

SubstituiFrom ("Detalhe_1", "(R034FUN left outer join R036DEP ON R034FUN.NUMEMP = R036DEP.NUMEMP AND R034FUN.NUMCAD = R036DEP.NUMCAD)", "");

SELECT
   R034FUN.NUMEMP R034FUNNUMEMP,
   R034FUN.TIPCOL R034FUNTIPCOL,
   R034FUN.NOMFUN R034FUNNOMFUN,
   R036DEP.NUMEMP R036DEPNUMEMP,
   R036DEP.TIPCOL R036DEPTIPCOL,
   R036DEP.NUMCAD R036DEPNUMCAD,
   R036DEP.CODDEP R036DEPCODDEP,
   R036DEP.NOMDEP R036DEPNOMDEP
FROM
   (R034FUN LEFT OUTER JOIN R036DEP ON R034FUN.NUMEMP = R036DEP.NUMEMP AND R034FUN.NUMCAD = R036DEP.NUMCAD)

Right Outer Join:

SubstituiFrom ("Detalhe_1", "(R034FUN right outer join R036DEP ON R034FUN.NUMEMP = R036DEP.NUMEMP AND R034FUN.NUMCAD = R036DEP.NUMCAD)", "");

SELECT
   R034FUN.NUMEMP R034FUNNUMEMP,
   R034FUN.TIPCOL R034FUNTIPCOL,
   R034FUN.NUMCAD R034FUNNUMCAD,
   R036DEP.NUMEMP R036DEPNUMEMP,
   R036DEP.TIPCOL R036DEPTIPCOL,
   R036DEP.NUMCAD R036DEPNUMCAD,
   R036DEP.CODDEP R036DEPCODDEP,
   R036DEP.NOMDEP R036DEPNOMDEP
FROM
   (R034FUN RIGHT OUTER JOIN R036DEP ON R034FUN.NUMEMP = R036DEP.NUMEMP AND R034FUN.NUMCAD = R036DEP.NUMCAD)

Natural Inner Join:

SubstituiFrom ("Detalhe_1", "(R034FUN NATURAL INNER JOIN R036DEP ON R034FUN.NUMEMP = R036DEP.NUMEMP)", "");

SELECT
   R034FUN.TIPCOL R034FUNTIPCOL,
   R034FUN.NUMCAD R034FUNNUMCAD,
   R034FUN.NOMFUN R034FUNNOMFUN,
   R036DEP.NUMEMP R036DEPNUMEMP,
   R036DEP.TIPCOL R036DEPTIPCOL,
   R036DEP.NUMCAD R036DEPNUMCAD,
   R036DEP.CODDEP R036DEPCODDEP,
   R036DEP.NOMDEP R036DEPNOMDEP
FROM
   (R034FUN NATURAL INNER JOIN R036DEP ON R034FUN.NUMEMP = R036DEP.NUMEMP)

Keyed Join:

SubstituiFrom ("Detalhe_1", "(R034FUN keyed INNER JOIN R030EMP)", "");

SELECT
   R034FUN.NUMEMP R034FUNNUMEMP,
   R034FUN.TIPCOL R034FUNTIPCOL,
   R034FUN.NUMCAD R034FUNNUMCAD,
   R034FUN.NOMFUN R034FUNNOMFUN
FROM
   (R034FUN KEYED INNER JOIN R030EMP)

Observação:

Nota

Função disponível para os sistemas Gestão Empresarial PME | GO UP, Gestão Empresarial | ERP, Gestão de Pessoas | HCM e Ronda Senior.

Este artigo ajudou você?