Boa tarde!
Prezados temos alguma função para criar SXB por AdvPl, como fazemos para criar a SX1 ?
Temos alguma função própria para criar SXB ?
Agradecido!
Se alguma pergunta ou resposta lhe foi útil, não deixe de dar seu voto positivo!
Boa tarde!
Prezados temos alguma função para criar SXB por AdvPl, como fazemos para criar a SX1 ?
Temos alguma função própria para criar SXB ?
Agradecido!
Boa tarde.
Os dicionários não podem ser manipulados via código. As consultas devem ser criadas via configurador.
Atenciosamente Sandro
Boa tarde!
Tens razão Sandro! Verdade!
Tinha me esquecido disso!
Acredito que devido ao dicionario de dados estar indo pro banco!
Valeu tchê, pela lembrança!
Abraço!
— Luciano S. de Souza 01 de Nov de 2018Segue Código ADVPL para criação de consulta SXB.
Static Function zf4Sxb() Local i,j Local aSXB := {} Local aEstrut := { "XB_ALIAS","XB_TIPO","XB_SEQ","XB_COLUNA","XB_DESCRI","XB_DESCSPA","XB_DESCENG","XB_CONTEM"}
Aadd(aSXB,{"ZF4","1","01","DB","Simulacoes Distrato" ,"Simulacoes Distrato" ,"Simulacoes" ,"ZF4" })
Aadd(aSXB,{"ZF4","2","01","01","Simulacao" ,"Simulacao" ,"Simulacao" ,"" }) Aadd(aSXB,{"ZF4","2","02","02","Contrato" ,"Contrato" ,"Contrato" ,"" }) Aadd(aSXB,{"ZF4","2","03","03","Cliente" ,"Cliente" ,"Cliente" ,"" }) Aadd(aSXB,{"ZF4","2","04","04","Produto" ,"Produto" ,"Produto" ,"" })
Aadd(aSXB,{"ZF4","4","01","01","Simulacao" ,"Simulacao" ,"Simulacao" ,"ZF4_CODIGO" }) Aadd(aSXB,{"ZF4","4","01","02","Contrato" ,"Contrato" ,"Contrato" ,"ZF4_CONTRA" }) Aadd(aSXB,{"ZF4","4","01","03","Cliente" ,"Cliente" ,"Cliente" ,"ZF4_CLIENT" }) Aadd(aSXB,{"ZF4","4","01","04","Produto" ,"Produto" ,"Produto" ,"ZF4_PRODUT" }) Aadd(aSXB,{"ZF4","4","01","05","Data" ,"Data" ,"Data" ,"ZF4_DATA" })
Aadd(aSXB,{"ZF4","4","02","01","Contrato" ,"Contrato" ,"Contrato" ,"ZF4_CONTRA" }) Aadd(aSXB,{"ZF4","4","02","02","Simulacao" ,"Simulacao" ,"Simulacao" ,"ZF4_CODIGO" }) Aadd(aSXB,{"ZF4","4","02","03","Cliente" ,"Cliente" ,"Cliente" ,"ZF4_CLIENT" }) Aadd(aSXB,{"ZF4","4","02","04","Produto" ,"Produto" ,"Produto" ,"ZF4_PRODUT" }) Aadd(aSXB,{"ZF4","4","02","05","Data" ,"Data" ,"Data" ,"ZF4_DATA" })
Aadd(aSXB,{"ZF4","4","03","01","Cliente" ,"Cliente" ,"Cliente" ,"ZF4_CLIENT" }) Aadd(aSXB,{"ZF4","4","03","03","Simulacao" ,"Simulacao" ,"Simulacao" ,"ZF4_CODIGO" }) Aadd(aSXB,{"ZF4","4","03","02","Contrato" ,"Contrato" ,"Contrato" ,"ZF4_CONTRA" }) Aadd(aSXB,{"ZF4","4","03","04","Produto" ,"Produto" ,"Produto" ,"ZF4_PRODUT" }) Aadd(aSXB,{"ZF4","4","03","05","Data" ,"Data" ,"Data" ,"ZF4_DATA" })
Aadd(aSXB,{"ZF4","4","04","01","Produto" ,"Produto" ,"Produto" ,"ZF4_PRODUT" }) Aadd(aSXB,{"ZF4","4","04","02","Simulacao" ,"Simulacao" ,"Simulacao" ,"ZF4_CODIGO" }) Aadd(aSXB,{"ZF4","4","04","03","Cliente" ,"Cliente" ,"Cliente" ,"ZF4_CLIENT" }) Aadd(aSXB,{"ZF4","4","04","04","Contrato" ,"Contrato" ,"Contrato" ,"ZF4_CONTRA" }) Aadd(aSXB,{"ZF4","4","04","05","Data" ,"Data" ,"Data" ,"ZF4_DATA" })
Aadd(aSXB,{"ZF4","5","01"," ","" ,"" ,"" ,"ZF4->ZF4_CODIGO" })
Aadd(aSXB,{"ZF4","6","01"," ","" ,"" ,"" ,"ZF4->ZF4_VALID=='S'.AND.ZF4->ZF4_CONTRA==M->ZB_NUM" })
dbSelectArea("SXB") dbSetOrder(1) // XB_ALIAS + XB_TIPO + XB_SEQ + XB_COLUNA For i:= 1 To Len(aSXB) If ! Empty(aSXB[i][1]) If ! dbSeek(PADR(aSXB[i,1],LEN(SXB->XB_ALIAS))+aSXB[i,2]+aSXB[i,3]+PADR(aSXB[i,4],LEN(SXB->XB_COLUNA))) RecLock("SXB",.T.) For j:=1 To Len(aSXB[i]) If !Empty(FieldName(FieldPos(aEstrut[j]))) FieldPut(FieldPos(aEstrut[j]),aSXB[i,j]) EndIf Next j MsUnLock() EndIf EndIf Next i SX3->( DbSetOrder(2) ) If SX3->( DbSeek( Padr("ZB_ZF4NUM",10) ) ) RecLock("SX3", .F.) SX3->X3_F3 := "ZF4" SX3->(MsUnlock()) Endif
Return
Alessandro, boa tarde. A criação de dados em dicionário via fonte não deve ser realizada. Ela é inclusive é apontada como ofensor no Totvs Code Analisys. Para garantir a integridade do ambiente é necessário que a manipulação de dicionários seja realizada por api específica (quando disponibilizada) ou pelo módulo configurador. Este código inclusive pode deixar de funcionar em versões futuras, o que pode impactar em suas customizações.
— Jandir Deodato 05 de Nov de 2018