Histórico da Página
...
2 - Incluir a informação corespondente aos campos que foram incluidos, no Grid.
Funcionamento:
1 - Na primeira chamada do ponto de entrada o sistema vai retornar como parametros as seguintes informasções:
...
A primeira posição serve para informar qual será o retorno para o sistema, 1 - será a estrutura dos campos para o aHeader da SD2 e a para a tabela TRB, 2 - será a descrição do campo que foi criado e seu conteudo.
Montangem Montagem do retorno para a primeira chamada:
...
Criamos uma nova posição no array, nessa segunda posição vamos adicionar arrays com as informação informações da estrutura dos campos para o aheader da SD2 e para a tabela TRB.
A composição do array da segunda posição deve ser realizado realizada da seguinte forma:
A primira primeira posição do array da estrutura sera será para informar se a estrutura será do aheader ou da tabela TRB, 1 - será para a estrutura do aheader da SD2, 2 - serár será para a tabela temporaria temporária TRB.
A segunda posição será para informar para o sistema em qual posição esse campo deve ser apresentando apresentado no grid.
A terceira posição serNoá o será um array com a estrutura do aheader da SD2 e ou da tabela temporaria temporária SD2.
Estrutura do aheader da SD2.
1 - Decrição Descrição do campo.
2 - Nome do campo.
...
4 - tamanho da decimais
Vamos exemplificar exemplificar a montagem desse trecho.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
If nTipo == 1 //Envia o campo para a estrutura AADD(aRet , 1 ) AADD(aRet , { { 1 , 3 , {"Inf Comp","TRB_INFCOM","@!", 30,0,"" , " ","C", "SB1"," " } }}) AADD(aRet[2], { 1 , 4 , {"Cod Comp","TRB_CODCOM","@!", 30,0,"" , " ","C", "SB1"," " } }) AADD(aRet[2], { 2 , 3 , {"TRB_INFCOM" ,"C", TAMSX3("D2_INFCOM")[1] ,TAMSX3("D2_INFCOM")[2]} }) AADD(aRet[2], { 2 , 4 , {"TRB_CODCOM" ,"C", TAMSX3("D2_INFCOM")[1] ,TAMSX3("D2_INFCOM")[2]} }) |
...
Abaixo iniciamos a criação do array de retorno, criamos a 1 posição informandao informando que se trata de envio da estrutura dos campos.
Logo em seguida criamos a segunda posição no array a primeira posição desse array define se a estrutura vai ser ser no aheader da SD2 ou na tabela temporariatemporária.
A proxima próxima posição será informado informada a posição que o campo a ser ser apresentado no grid no exemplo acima estamos passando a posição 3 3 para um campo e 4 para o outro.
A proxima próxima posição deve ser o array com a estrutura do campo em um array , respeitnado respeitando a estrutura de cada tabela.
...
A primeira posição do array será com o conteúdo 2.
Criamos uma nova posição no array, nessa segunda posição vamos adicionar arrays com as informações do nome do campo e conteúdo.
A composição do array da segunda posição deve ser realizado realizada da seguinte forma:
A primira primeira posição do array sera será a descrição do campo.
A segunda posição será o conteúdo do campo.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Else cInfCompl := SD2->D2_INFCOM cCodComp := SD2->D2_CODCOM AADD(aRet , 2 ) AADD(aRet , { { "D2_INFCOM" , cInfCompl }} ) AADD(aRet[2], { "D2_CODCOM" , cCodComp } ) |
No exemplo acima temos um trecho de codigo código para exemplificar implementando o codigo código anterior, nesse exemplo estamos pegando a informação do próprio campo da dá para enviar para variaveisvariáveis.
Abaixo já incluimos incluímos a primeira posição no array que vai ser o retorno da função com o conteudo conteúdo 2 para identificar que estamos enviando o campo e seu condeúdoconteúdo.
Em seguida é construido construído a segunda posição, essa vai conter a descrição do campo e seu conteúdo.
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "PROTHEUS.CH" //--------------------------------------------------------------------------------------------------------- /*/{Protheus.doc} LJ720STR Realiza a inclusão de campos na rotina de troca e devolução, na tela onde é apresentado asos itens que estão disponiveis para a troca ouaou a devolução @type Function @author Vendas Varejo @since 17/07/2024 @param aHeader , Array , Parametro que possui os itens do aHeader da Tabela SD2 @param aTableTrb , Array , Parametro que possui a estrutura da tabela temporaria TRB. @param nTipo , Numerico , Quando o conteudo estiver como 1 o retorno deve ser a estrutura do aHeaer e da tabela TRVTRB,quando for 2 o retorno deve ser o campo e seu conteudo. @param aItesD2 , Array , Parametro possui o Recno da tabela SD2, caso necessite posicionar o registro. @param nPosIt , Numerico , Posição do item do grid que esta sendo incluido da venda. @version P12 @return aRet , Retorno do campo ou conteudo que deve ser adicionado no grid da tela. /*/ //--------------------------------------------------------------------------------------------------------- User Function LJ720STR() Local aHeader := Paramixb[1] Local aTableTrb := Paramixb[2] Local nTipo := Paramixb[3] Local aItesD2 := Paramixb[4] Local nPosIt := Paramixb[5] Local aRet := {} Local cInfCompl := "" Local cCodComp := "" If nTipo == 1 //Envia o campo para a estrutura AADD(aRet , 1 ) AADD(aRet , { { 1 , 3 , {"Inf Comp","TRB_INFCOM","@!", 30,0,"" , " ","C", "SB1"," " } }}) AADD(aRet[2], { 1 , 4 , {"Cod Comp","TRB_CODCOM","@!", 30,0,"" , " ","C", "SB1"," " } }) AADD(aRet[2], { 2 , 3 , {"TRB_INFCOM" ,"C", TAMSX3("D2_INFCOM")[1] ,TAMSX3("D2_INFCOM")[2]} }) AADD(aRet[2], { 2 , 4 , {"TRB_CODCOM" ,"C", TAMSX3("D2_INFCOM")[1] ,TAMSX3("D2_INFCOM")[2]} }) Else SD2->(DbGoTo(aItesD2[nPosIt][2])) cInfCompl := SD2->D2_INFCOM cCodComp := SD2->D2_CODCOM AADD(aRet , 2 ) AADD(aRet , { { "D2_INFCOM" , cInfCompl }} ) AADD(aRet[2], { "D2_CODCOM" , cCodComp } ) EndIf Return aRet |
No exemplo acima temos a criação de uma função, no cabeçalho tem a descrição dos parametros parâmetros e do retorno.
Obs.: Para o teste deste ponto de entrada é necessário a criação desses 2 campos (D2_INFCOM,D2_CODCOM) e preencher esses campos para efeito de teste.
...
Aviso | ||
---|---|---|
| ||
Ao criar um campo verifique a quantidade de caracteres, pois exemplificando na tabela SD2 o prefixo são 2 digitos dígitos D2 porem porém quando se faz necessário gerar esse campo para a tabela temporária teremos um prefixo de 3 digitosdígitos. caso o campo seja criado com 10 na sua origem ao gerar esse mesmo campo para a tabela temporária o campo vai ficar com 11 caracteres o que vai causar erro na tabela temporaria temporária pois essa aceita somente 10 digitosdígitos. |
02. DESCRIÇÃO
03. DEMAIS INFORMAÇÕES
...