...
Os relacionamentos entre as tabelas estão destacados pelas linhas de relacionamento do modelo do MER.
Bloco de código | ||||
---|---|---|---|---|
| ||||
user function AtuSXSX3Query()
Local cVersion := "000003" // versão 12
Local cProject := "000017" // projeto release incremental
Local cPackage := Space( 6 )
Local cTable := "ZY3"
Local cTable2 := "ZX3"
Local cTable3 := "ZY2"
Local cQuery := ""
Local cAliasTmp := ""
//Aqui faremos a Query para retornar os textos da SX3
//Os campos Filial foram incluídos principalmente para melhorar a performance da query
cQuery += "Select * from " + RetSQLName("ZY3") + " ZY3 "
cQuery += "INNER JOIN " + RetSQLName("ZX3") + " ZX3 ON ZY3.ZY3_CAMPO = ZX3.ZX3_CAMPO AND "
cQuery += " ZX3.ZX3_FILIAL = '" + xFilial("ZX3") + "' AND ZY3.ZY3_FILIAL = '" + xFilial("ZY3") + "' AND "
// cria um trecho de query implementando o conceito de herança do ATUSX
cQuery += ASXVerFil(3, cTable, cVersion, cProject, cPackage, AsxUniqKey( cTable ), cTable ) + " AND "
cQuery += ASXVerFil(3, cTable2, cVersion, cProject, cPackage, AsxUniqKey( cTable2 ), cTable2 ) + " "
cQuery += "INNER JOIN " + RetSQLName("ZY2") + " ZY2 ON ZY2.ZY2_ALIAS = ZY3.ZY3_ALIAS AND "
cQuery += " ZY2.ZY2_FILIAL = '" + xFilial("ZY2") + "' AND "
// cria um trecho de query implementando o conceito de herança do ATUSX
cQuery += ASXVerFil(3, cTable3, cVersion, cProject, cPackage, AsxUniqKey( cTable3 ), cTable3 ) + " "
//Aqui filtro por Owner e vejo se o titulo em portugues é igual ao ingles
cQuery += "INNER JOIN " + RetSQLName("ZA0") + " ZA0 ON ZA0.R_E_C_N_O_ = ZY2.ZY2_IDZA0 AND "
// Exemplo filtrando por onwer SIGAFAT
cQuery += "ZA0.ZA0_NOME = 'SIGAFAT' AND ZX3.ZX3_TITPOR = ZX3.ZX3_TITENG"
cAliasTmp := getNextAlias()
dbUseArea( .T., "TOPCONN", TcGenQry( ,, ChangeQuery( cQuery ) ), cAliasTmp, .F., .T. )
return |
¹ - Os parâmetros da função são: ASXVerFil(nTipo, cAlias, cCodVer, cCodPrj, cCodPac, aKey, cPrefix, lExact, lInvAsp, lDescSep)
...