Função que cria uma string para Join de filiais para SQL, analisando o layout da empresa e os modos de compartilhamento.
Parâmetros:
Nome | Tipo | Obrigatório | Default | Descrição |
---|---|---|---|---|
cAlias1 | Caractere | X | Alias da primeira tabela | |
cAlias2 | Caractere | X | Alias da segunda tabela | |
cTbAlias1 | Caractere | cAlias1 | Alias SQL da primeira tabela | |
cTbAlias2 | Caractere | cAlias2 | Alias SQL da segunda tabela | |
lPrefixo | Lógico | .T. | Informa se deverá retornar o prefixo do alias | |
cDbMs | Caractere | TcGetDb() | Banco de dados utilizado | |
lFilCompJoin | Lógico | .F. | Indica que irá utilizar o campo de filial na montagem do join avaliando seu compartilhamento |
Sintaxe: FwJoinFilial(cAlias1, cAlias2) → string
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
local cAlias as character local cJoin as character cAlias := GetNextAlias() cJoin := "%" + FWJoinFilial("SRA", "SRC") + "%" BEGINSQL ALIAS "QTEMP" SELECT cAlias SELECT SRA.RA_FILIAL, SRA.RA_MAT, SRC.RC_PD, SRC.RC_VALOR FROM %table:SRA% SRA INNER JOIN %table:SRC% SRC ON SRA.RA_MAT = SRC.RC_MAT AND %exp:cJoin% WHERE SRA.RA_MAT = '000001' AND SRA.RA_FILIAL = 'E01U01F01' ENDSQL |
Retorno da FWJoinFilial do exemplo acima:
...
ENDSQL |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
local cAlias as character
local cJoin as character
local cQuery as character
cJoin := FWJoinFilial("SRA", "SRC")
cQuery := "SELECT "
cQuery += " SRA.RA_FILIAL, "
cQuery += " SRA.RA_MAT, "
cQuery += " SRC.RC_PD, "
cQuery += " SRC.RC_VALOR "
cQuery += " FROM "
cQuery += " " + RetSqlName("SRA") + " SRA "
cQuery += " INNER JOIN " + RetSqlName("SRC") + " SRC ON "
cQuery += " SRA.RA_MAT = SRC.RC_MAT AND "
cQuery += FWJoinFilial("SRA", "SRC")
cQuery += " WHERE "
cQuery += " SRA.RA_MAT = '000001' AND "
cQuery += " SRA.RA_FILIAL = 'E01U01F01' "
cAlias := MPSysOpenQuery(cQuery) |