Pagetitle |
---|
| MTA242S - Preenche o array aCols com quantidadesprodutos da desmontagem ou validar a quantidade secundária da desmontagem |
---|
| MTA242S - Preenche o array aCols com quantidadesprodutos da desmontagem ou validar a quantidade secundária da desmontagem |
---|
|
Ponto-de-Entrada: MTA242S - Preenche o array aCols com quantidades/produtos da desmontagem ou validar a quantidade secundária da desmontagem
Versões: | Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Microsiga Protheus 10 | Compatível Países: | Todos | Sistemas Operacionais: | Todos | Compatível às Bases de Dados: | TodosTodos | Idiomas: | Espanhol , Inglês |
Descrição:LOCALIZAÇÃO : Executado na função MATA242 (desmontagem de produtos).
EM QUE PONTO : O ponto de entrada 'MT242S' é utilizado para validação da quantidade secundária da desmontagem, é chamada no momento da validação da quantidade secundária. Pode ser utilizada para preencher o array aCols com as quantidades ou produtos que serão o resultado da desmontagem ou validar a quantidade secundária da desmontagem digitada. SintaxeMTA242S - Preenche o array aCols com quantidades/produtos da desmontagem ou validar a quantidade secundária da desmontagem ( < PARAMIXB> ) --> lContinua Parâmetros: Nome | Tipo | Descrição | Referência | cProduto | Caractere | Código do Produto Origem da Desmontagem | Não | nQtdOrigSe | Numérico | Quantidade digitada na desmontagem (2ª U.M.) | Não | oGet | Objeto | Objeto do tipo MsGetDados, referente ao grid dos itens da desmontagem | Sim |
RetornolContinua(logico)- Caso verdadeiro prossegue com a digitacao do cabeçalho da desmontagem. Caso falso impede a digitacao dos demais campos e aguarda a validação do conteúdo digitado.
Exemplos :
Bloco de código |
---|
language | vb |
---|
theme | Midnight |
---|
firstline | 1 |
---|
title | MTA242S |
---|
linenumbers | true |
---|
| #include 'totvs.ch' |
/*/{Protheus.doc} User Function MTA242S |
Permite validar o campo de Quantidade (na segunda unidade de medida) |
Permite manipular o objeto oGet (MsGetDados) |
Local cCodPro := ParamIXB[1] |
Local nQuant2 := ParamIXB[2] |
Local oGet := ParamIXB[3] |
Local nProDest := AScan(aHeader, {|x| AllTrim(x[2]) == 'D3_COD'}) |
Local nQDest := AScan(aHeader, {|x| AllTrim(x[2]) == 'D3_QUANT'}) |
Local nQDest2 := AScan(aHeader, {|x| AllTrim(x[2]) == 'D3_QTSEGUM'}) |
Local nLocDest := AScan(aHeader, {|x| AllTrim(x[2]) == 'D3_LOCAL'}) |
//Inserir as validações do cabeçalho |
//Exemplo de Desmontagem onde preenche o grid com vários produtos ao informar a quantidade |
//Atenção: O preenchimento desta forma não executa validações de campo ou de linha |
//As validações devem ser feitas na própria customização |
//Via rotina automática, o objeto oGet não está disponível |
If AllTrim(cCodPro) == 'TESTE' .And. nQuant2 > 0 .And. !IsBlind() |
//O objeto já está instanciado com a primeira linha criada |
aCols[n, nProDest] := PadR('TESTE1', TamSX3('D3_COD')[1]) |
aCols[n, nQDest2] := 1*nQuant2 |
aCols[n, nQDest] := 1*ConvUM(cCodPro, nQuant2) |
aCols[n, nLocDest] := PadR('01', TamSX3('D3_LOCAL')[1]) |
aCols[n, nProDest] := PadR('TESTE2', TamSX3('D3_COD')[1]) |
aCols[n, nQDest2] := 4*nQuant2 |
aCols[n, nQDest] := 4*ConvUM(cCodPro, nQuant2) |
aCols[n, nLocDest] := PadR('01', TamSX3('D3_LOCAL')[1]) |
//Atualiza a interface com os dados inseridos |
Converte a segunda unidade de medida na primeira |
Static Function ConvUM(cProduto, nQt2) |
Local aAreaSB1 := SB1->(GetArea()) |
cMult := Posicione('SB1', 1, FWXFilial('SB1')+cProduto, 'B1_TIPCONV') |
nFator := Posicione('SB1', 1, FWXFilial('SB1')+cProduto, 'B1_CONV') |
SB1->(RestArea(aAreaSB1)) |
Resultado gerado:
Observações - O parâmetro oGet é uma instância da classe MsGetDados, armazenando informações do grid. Para mais informações sobre a classe, acesse: https://tdn.totvs.com/display/framework/MsGetDados
- O ponto de entrada está localizado na validação do campo de Quantidade secundária do cabeçalho e também permite validar a quantidade inserida. No exemplo acima, é recomendável incluir quaisquer validações antes de preencher o grid com os produtos da estrutura.
- O parâmetro oGet não está disponível em execuções automáticas (via MsExecAuto), assim, é recomendável que se proteja o bloco que trata o preenchimento do objeto oGet com a função IsBlind. Veja em: https://tdn.totvs.com/pages/viewpage.action?pageId=6814878
- Caso seja necessário deletar uma linha do grid pelo ponto de entrada, basta preencher a última posição da linha do array aCols com .T., exemplo: aCols[2, Len(aCols[2]) := .T. deleta a segunda linha do grid
Assuntos relacionados : https://tdn.totvs.com.br/display/public/PROT/MTA242Q+-+Preenche+o+array+aCols+com+quantidadesprodutos+da+desmontagem+ou+valida+a+quantidade+da+desmontagem
|