Páginas filhas
  • Estrutura de tabelas de CHs, Help e Campos (SX3)

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

A tabela ZA4 seve como auxilio para filtrar o país.

 

Bloco de código
languagedelphi
themeEclipse
titleTextos do sistema (CHs)
user function AtuSXStrQuery()
	Local cVersion := "000001"
	Local cProject := "000001"
	Local cPackage := Space( 6 )
	Local cTable   := "ZB1"
	Local cQuery   := ""
	Local cAliasTmp := ""
	
	//Aqui faremos a Query para retornar as Strings do AtuSX
	//Os campos Filial foram incluídos principalmente para melhorar a performance da query
	cQuery += "SELECT * FROM "+RetSqlName("ZB1")+" ZB1 "
	cQuery += "INNER JOIN "+RetSqlName("ZB0")+" ZB0 "
	cQuery += "ON ZB1.ZB1_IDZB0 = ZB0.R_E_C_N_O_ "
	cQuery += "INNER JOIN "+RetSqlName("ZA0")+" ZA0 "
	cQuery += "ON ZB1.ZB1_FILIAL = '" + xFilial("ZB1") + "' AND "
	cQuery += "ZB0.ZB0_FILIAL = '" + xFilial("ZB0") + "' AND "
	cQuery += "ZA0.ZA0_FILIAL = '" + xFilial("ZA0") + "' AND ZB0.ZB0_IDZA0 = ZA0.R_E_C_N_O_ AND "
	
	//A função ASXVerFil retorna o filtro de versão, projeto e pacote levando em consideração as heranças
	cQuery += ASXVerFil(3, cTable, cVersion, cProject, cPackage, AsxUniqKey( cTable ), cTable ) + " AND "
	
	//Aqui filtro apenas o pais Brasil, módulo SIGAFAT e textos em portogues que estão iguais em espanhol
	cQuery += " ZB1.ZB1_IDZA4 = 1 AND ZA0.ZA0_NOME = 'SIGAFAT' AND ZB1.ZB1_TXTPOR = ZB1.ZB1_TXTSPA " 
	
	cAliasTmp := getNextAlias()
	dbUseArea( .T., "TOPCONN", TcGenQry( ,, ChangeQuery( cQuery ) ), cAliasTmp, .F., .T. )  
	
return

...

Assim como no exemplo anterior os relacionamentos são representados usando a representação do MER.

 

Bloco de código
languagedelphi
themeEclipse
titleHelps
user function AtuSXHelpQuery()
	Local cVersion := "000003"
	Local cProject := "000017"
	Local cPackage := Space( 6 )
	Local cTable   := "ZXH"
	Local cQuery   := ""
	Local cAliasTmp := ""
	
	//Aqui faremos a Query para retornar os Helps
	//Os campos Filial foram incluídos principalmente para melhorar a performance da query
	//nessa primeira parte da query retorno os Helps do Brasil
	cQuery += "SELECT * FROM " + RetSQLName("ZXH") + " ZXH "
	cQuery += "INNER JOIN " + RetSQLName("ZXT") + " ZXT ON ZXH.ZXH_IDPRB = ZXT.ZXT_COD AND "
	cQuery += "ZXT.ZXT_IDZA8 = 1 AND ZXT.ZXT_FILIAL = '" + xFilial("ZXT") + "' AND "
	cQuery += "ZXH.ZXH_FILIAL = '" + xFilial("ZXH") + "' AND "
	
	//A função ASXVerFil retorna o filtro de versão, projeto e pacote levando em consideração as heranças
	cQuery += ASXVerFil(3, cTable, cVersion, cProject, cPackage, AsxUniqKey( cTable ), cTable ) + " AND "
	
	//Aqui filtro apenas os helps que tabém existem na subquery, a qual retorna o helps do idioma 3, comparando
	//seus textos, ou seja o texto no idioma 1 tem que ser igual ao idioma 3
	//Como armazenamos os helps em binário, utilizamos a função Cast para converter o tipo de dado 
	cQuery += "EXISTS " 
	cQuery += "( SELECT * from " + RetSQLName("ZXT") + " ZXT2 WHERE "
	cQuery += 	"ZXT2.ZXT_IDZA8 = 3 AND ZXT2.ZXT_COD = ZXT.ZXT_COD AND D_E_L_E_T_ =' ' AND "
	cQuery += 	"CAST( ZXT2.ZXT_TEXTO AS VARBINARY )  = CAST( ZXT.ZXT_TEXTO AS VARBINARY ) )" 
	
	cAliasTmp := getNextAlias()
	dbUseArea( .T., "TOPCONN", TcGenQry( ,, ChangeQuery( cQuery ) ), cAliasTmp, .F., .T. )  
	
return

...

Os relacionamentos entre as tabelas estão destacados pelas linhas de relacionamento do modelo do MER.

Bloco de código
languagedelphi
themeEclipse
titleTextos de campos
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)

...