Árvore de páginas

Versões comparadas

Chave

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

01. DADOS GERAIS

Produto:

Solucoes_totvs
SolucaoTOTVS Varejo Lojas

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
Segmento Varejo

Módulo:

Modulos_cross_segmentos
ModulosCrossSegmentosTOTVS Backoffice (Linha Protheus) - Controle de lojas (SIGALOJA)

Modulos_framework

Modulos_totvs_construcao

Modulos_totvs_juridico

Modulos_totvs_logistica

Modulos_totvs_manufatura

Modulos_totvs_rh

Modulos_totvs_saude

Modulos_totvs_prestadores_de_servicos

Função:Troca/Devolução
País:Brasil


02. DESCRIÇÃO

Este Ponto de Entrada tem a finalidade Este ponto de entrada tem a finlidade de realizar a inclusão de campos no grid na tela onde são apresentados os itens que foram selecionados para a realização de troca Troca ou devoluçãoDevolução.

Funcionalidades: 

Este ponto de entrada possui duas finalidades:

1 - Adicionar os campos para que estes sejam apresentados no grid na tela de Troca/Devolução.

2 - Incluir a informação corespondente correspondente aos campos que foram incluidosincluídos, no Grid.

Funcionamento:

1 - Na primeira chamada do ponto Ponto de entrada Entrada o sistema vai retornar como parametros parâmetros as seguintes informasçõesinformações:

a ) Paramixb[1] - será um array  o aHeader com os campos das tabela SD2  (Itens do documento de saída), sua finalidade será apoiar o usuário para verificar o preenchimento e ver verificar a posição dos campos da tabela. Na segunda chamada esse array será vazio.

b) Paramixb[2] - será um array, a estrutura da tabela temporaria temporária TRB, sua finalidade será apoiar o usuário para verificar os campos que serão apresentados e a posição dos mesmos. Na segunda chamada esse array será vazio.

c) Paramixb[3] - será um valor numérico, Retorno 1 será a primeira chamada onde o retorno da função deve ser um array com a estrutura dos campos que devem ser adicionados no grid na tela de troca/Devolução.

   Na segunda chamada o valor retornado será 2 e deve ser retornado pela função um array, contendo o campo que foi adicionado na primeira chamada dessa função e o seu conteúdo que será apresentado na tela do grid de troca/Devolução.

d) Paramidb[4] - será um array onde vai estar contido os recnos dos registros da tabela SD2 (Itens do documento de saída), os recnos podem ser usados para posicionar o registro da SD2 caso necessário. Na primeira chamado da função esse array será enviado vazio, estando preenchido na segunda chamada.

e) Paramixb[5] - Numerico Numérico , esse parametro parâmetro será a posição do item que está sendo incluido incluído no grid após realizado o filtro. Na primeira chamada esse parametro parâmetro tem o valor de zero.

Retorno - O retorno deverá ser um array, a composição deve ser da seguinte forma:

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 conteudoconteúdo.

Montangem Montagem do retorno para a primeira chamada: 

A primeira posição do array será com o conteúdo 1.

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 será o 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
languagedelphi
themeMidnight
firstline1
titleExemplo de montagem do array
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]} })

Criamos uma verificação para tratar a informação, qual a informação que devemos retornar.

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 ser ser em que  o campo  será apresentado no grid no . No exemplo acima, estamos passando a posição 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 a estrutura de cada tabela.respeitando a estrutura de cada tabela.


Montagem do retorno para segunda chamada:

A primeira posição do array será com o conteúdo 2.

Criamos uma 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 realizada da seguinte forma:

A primeira posição do array será a descrição do campo.

A segunda posição será o conteúdo do campo.

Bloco de código
languagedelphi
themeMidnight
firstline1
titleExemplo de montagem do array
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 código para exemplificar : Implementando o código anterior, nesse exemplo estamos pegando a informação do próprio campo, permitindo enviar para as variáveis.

Abaixo já incluímos a primeira posição no array que vai ser o retorno da função com o conteúdo 2 para identificar que estamos enviando o campo e seu conteúdo.

Em seguida é construído a segunda posição, essa vai conter a descrição do campo e seu conteúdo.


Exemplo do Ponto de Entrada 


Bloco de código
languagedelphi
themeMidnight
firstline1
titleExemplo do ponto de entrada
#INCLUDE "PROTHEUS.CH" 

//---------------------------------------------------------------------------------------------------------
/*/{Protheus.doc} LJ720STR
Realiza a inclusão de campos na rotina de troca e devolução, na tela onde é apresentado
os itens que estão disponiveis para a troca ou 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 TRB,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 parâmetros e do retorno.

Observação: Para o teste deste ponto de entrada é necessário a criação desses 2 campos (D2_INFCOM,D2_CODCOM) e preenche-los  para efeito de teste. 

Exemplo do Ponto de Entrada após selecionar os itens.

Image Added


Aviso
titleimportante

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 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 inconsistência na tabela temporaria temporária, pois essa aceita somente 10 digitosdígitos.

02. DESCRIÇÃO

03. DEMAIS INFORMAÇÕES

          Não há.


04. ASSUNTOS RELACIONADOS

  • FAQs do Varejo:

       Ponto de Entrada - Controle de Lojas - Protheus 12