Árvore de páginas

Versões comparadas

Chave

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

...

SintaxeEMP650 - Edição de Itens Empenhados na Abertura da OP ( [ ] )


Observações:

Não recebe parâmetros, porém neste momento o array aCols que é apresentado na alteração de empenhos quando se abre uma Ordem de Produção está disponível para alterações.
O aCols apresenta neste momento as linhas e colunas preenchidas, de acordo com o empenho padrão a ser efetuado no Sistema.
Basta alterar ou incluir o conteúdo deste array para alterar as informações dos empenhos. A estrutura básica do array aCols é apresentada da seguinte forma:

aCols[n,npos] - Onde o n e o  número da linha  e nPos  pode ser: 

nPosCod          - nPosQuant      -
nPosLocal        - nPosTrt            -
nPosLote          - nPosLotCTL      - nPosDValid      -
nPosPotenc      -
nPosLocLz        -  
nPosnSerie       -
nPosUM           - nPosQtSegum - nPos2UM         -
nPosDescr       - nPosOper        - nPosPrdOrg    -
nPosIsAlt         - Produto Alternativo
nCampoTítuloDescriçãoVariável Posição
1G1_COMPComponente          Código do Produto a ser empenhadonPosCod    
2D4_QUANTQuantidade Empenho  Quantidade do empenhonPosQuant  
3D4_LOCALArmazém             Almoxarifado do empenhonPosLocal  
4G1_TRTSequência           Sequência do componente na estrutura (Campo G1_TRT)nPosTrt    
5D4_NUMLOTESub-Lote            Sub-Lote utilizado no empenho (Somente deve ser preenchido se o produto utilizar rastreabilidade do tipo "S")nPosLote   
6D4_LOTECTLLote                Lote utilizado no empenho (Somente deve ser preenchido se o produto utilizar rastreabilidade)nPosLotCTL 
7D4_DTVALIDData de Validade    Data de validade do Lote (Somente deve ser preenchido se o produto utilizar rastreabilidade)nPosDValid 
8D4_POTENCIPotencia            Potência de lote (Somente deve ser preenchido se o produto utilizar rastreabilidade)nPosPotenc 
9DC_LOCALIZEndereço            Localização utilizada no empenho (Somente deve ser preenchido se o produto utilizar controle de localização física)nPosLocLz  
10DC_NUMSERINum de SerieNúmero de Série (Somente deve ser preenchido se o produto utilizar controle de localização física)nPosnSerie 
11B1_UM1a. UM              1a. Unidade de Medida do ProdutonPosUM     
12D4_QTSEGUMQtd. Empenho 2a. UM Quantidade do Empenho na 2a. Unidade de MedidanPosQtSegum
13B1_SEGUM2a. UM              2a. Unidade de Medida do ProdutonPos2UM    
14B1_DESCDescrição           Descrição do produtonPosDescr  
15D4_OPERACOperação            Produto Original  nPosOper   
16D4_PRDORGPrd. Orig.          Operação vinculada ao produtonPosPrdOrg 
17PRDALTERNAlternativo?        Produto AlternativonPosIsAlt  
18TRTORISeq.Origem          Sequência do componente Origem na estruturanPosTrtOri
19INTERNOINTERNOCampo array de controle interno do sistema NÃO UTILIZARINTERNO
20DeletadoDeletadoIdentificador se a linha está deletadaLEN(aCols)

Na acols a ultima coluna define se a linha está deletada (.T.) ou não (.F.)
Como a rotina sofreu alterações, e passou a ter alguma colunas dinâmicas, para pegar a posição da

...

última coluna, indicamos utilizar a busca pelo Acols através da função Len  Exemplo:

...

 LEN(ACOLS[n])

Vale ressaltar que as colunas que não forem preenchidas, devem ser inicializadas com a função Criavar dos respectivos campos. Basta pesquisar qual o campo tomado como base para criação das colunas.

Para mais informações pode ser consultado a variável "aHeader" que contém os dados do cabeçalho da Grid de empenhos onde:

PosiçãoCampo SX3Título         
aHeader[01]X3_TITULO Título         
aHeader[02]X3_CAMPO  Campo          
aHeader[03]X3_PICTUREPicture        
aHeader[04]X3_TAMANHOTamanho        
aHeader[05]X3_DECIMALDecimal        
aHeader[06]X3_VALID  Validação      
aHeader[07]X3_USADO  Usado          
aHeader[08]X3_TIPO   Tipo           
aHeader[09]X3_F3     F3             
aHeader[10]X3_CONTEXTContexto (R,V) 
aHeader[11]X3_CBOX   Combobox       
aHeader[12]X3_RELACAOInicial. Padrao
aHeader[13]X3_WHEN   Habilita edicao
aHeader[14]X3_VISUAL Alteravel (A,V)
aHeader[15]X3_VLDUSERValid de User  
aHeader[16]X3_PICTVARPicture        
aHeader[17]X3_OBRIGATObrigatorio    


02EXEMPLO DE UTILIZAÇÃO


Bloco de código
languagecpp
collapsetrue
#INCLUDE 'PROTHEUS.CH'

...



User function EMP650()

...



    Local aArea  := GetArea()

...


    local nx

...


    For nx := 1 to len(Acols) // Percorre todas as linhas da acols

...



         IF ! Acols[nx][len(acols[nx])] // Verifica se linha nao esta Deletada

...



            Conout("Linha não deletada: "+ cValTochar(nx))

...


        EndIF

...



       Conout("Produto :"+ acols[nx,nPoscod] + " Descrição : " +acols[nx,nPosDescr] )

...


    Next nx

...



    RestArea(aArea)

...

Também fica disponível o array aOpcCam, que deve ser atualizado juntamente com o array aCols, para correto cálculo de opcionais.

Exemplo:

...



Return

/*--Também fica disponível o array aOpcCam, que deve ser atualizado juntamente com o array aCols, para correto cálculo de opcionais.--*\

//Exemplo:

#include "rwmake.ch"

...



User Function EMP650()

...



Local nQtdDel := Len(aColsDele)

...


Local nx      := 0

...



If Len(aColsDele) > 0

...



    For nx:= nQtdDel To 1 Step -1

...


        aDel(aCols, aColsDele[nx])

...


        aDel(aOpcCam, aColsDele[nx])

...


    Next nx

...


    

...


    aSize(aCols, Len(aCols) - Len (aColsDele))

...


    aSize(aOpcCam, Len(aOpcCam) - Len (aColsDele))

...


    aSize(aColsDele,0)

...


    

...


EndIf

...



Return





HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>