CONTEÚDO
- Dados Gerais
- Visão Geral
- Exemplos
- Demais Informações
- Tabelas Utilizadas
- Assuntos Relacionados
01. DADOS GERAIS
Produto: | TOTVS Backoffice |
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Backoffice SP |
Módulo: | ESTOQUE E CUSTOS (SIGAEST) |
Função: | INDICADORES DE PRODUTOS (MATA019) |
02. VISÃO GERAL
Exemplo de rotina automática MVC para incluir, alterar e excluir Indicadores de Produtos.
03. EXEMPLOS
Escolha o modelo desejado abaixo conforme a sua necessidade de execução:
Rotina Automática MVC - Indicadores de Produtos (MATA019)
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" #INCLUDE "RWMAKE.CH" #INCLUDE "FWMVCDef.ch" //------------------------------------------------------------------------ /* EXEMPLO DE INCLUSÃO */ //------------------------------------------------------------------------ User Function m019Inc1() Local oModel := Nil Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" USER "Administrador" PASSWORD "" MODULO "EST" If "SBZ" $ SuperGetMv("MV_CADPROD",.F.,"") oModel := FwLoadModel("MATA010") oModel:SetOperation(MODEL_OPERATION_INSERT) oModel:Activate() oModel:SetValue("SB1MASTER", "B1_COD", "000000000000001") oModel:SetValue("SB1MASTER", "B1_DESC", "PRODUTO TESTE") oModel:SetValue("SB1MASTER", "B1_TIPO", "PA") oModel:SetValue("SB1MASTER", "B1_UM", "UN") oModel:SetValue("SB1MASTER", "B1_LOCPAD", "01") oModel:SetValue("SB1MASTER", "B1_LOCALIZ", "N") oModel:SetValue("SBZDETAIL","BZ_FILIAL" ,"01") oModel:SetValue("SBZDETAIL","BZ_LOCPAD" ,"01") If oModel:VldData() oModel:CommitData() MsgInfo("Registro INCLUIDO!", "Atenção") Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() oModel:Destroy() oModel := NIL Else MsgInfo("Parâmetro MV_CADPROD deve conter tabela SBZ", "Atenção") EndIf RESET ENVIRONMENT Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE INCLUSÃO (Utilizando a função FwMvcRotAuto apenas em caráter didático) */ //------------------------------------------------------------------------ User Function m019Inc2() Local aDadosCab := {} Local aDadosIte := {} Local aItens := {} Private oModel := Nil Private lMsErroAuto := .F. Private aRotina := {} PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" USER "Administrador" PASSWORD "" MODULO "EST" If "SBZ" $ SuperGetMv("MV_CADPROD",.F.,"") oModel := FwLoadModel("MATA010") //Adicionando os dados do ExecAuto Cabeçalho aAdd(aDadosCab, {"B1_COD", "000000000000001" , Nil}) aAdd(aDadosCab, {"B1_DESC", "PRODUTO TESTE" , Nil}) aAdd(aDadosCab, {"B1_TIPO", "PA" , Nil}) aAdd(aDadosCab, {"B1_UM", "UN" , Nil}) aAdd(aDadosCab, {"B1_LOCPAD", "01" , Nil}) aAdd(aDadosCab, {"B1_LOCALIZ", "N" , Nil}) //Adicionando os dados do ExecAuto Item aAdd(aDadosIte, {"BZ_FILIAL", "01" , Nil}) aAdd(aDadosIte, {"BZ_LOCPAD", "01" , Nil}) //No item o array precisa de um nivel superior. aAdd(aItens,aDadosIte) //Chamando a inclusão - Modelo 2 FWMVCRotAuto( oModel,"SB1",MODEL_OPERATION_INSERT,{{"SB1MASTER", aDadosCab},{"SBZDETAIL", aItens}}) //Se houve erro no ExecAuto, mostra mensagem If lMsErroAuto MostraErro() //Senão, mostra uma mensagem de inclusão Else MsgInfo("Registro INCLUIDO!", "Atenção") EndIf Else MsgInfo("Parâmetro MV_CADPROD deve conter tabela SBZ", "Atenção") EndIf RESET ENVIRONMENT Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE INCLUSÃO QUANDO JÁ EXISTE PRODUTO CADASTRADO */ //------------------------------------------------------------------------ User Function m019Inc3() Local oModel := Nil Local aFils := {} Local aArmz := {} Local nI := 0 Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " USER "Administrador" PASSWORD "" MODULO "EST" //Posiciona SB1->(DbSetOrder(1)) If SB1->(DbSeek(xFilial("SB1") + "TESTE")) oModel := FwLoadModel("MATA019") oModel:SetOperation(MODEL_OPERATION_UPDATE) oModel:Activate() aFils := {"D MG 01 ", "D MG 02 ", "M SP 01 ", "M SP 02 "} aArmz := {"04", "02", "03", "01"} //Altera a primeira linha oModelGrid := oModel:GetModel('SBZDETAIL') If oModelGrid:Length() > 0 oModelGrid:GoLine(1) oModelGrid:SetValue("BZ_FILIAL",aFils[1]) oModelGrid:SetValue("BZ_LOCPAD",aArmz[1]) EndIf //Adiciona mais 3 linhas For nI := 2 To 4 If oModelGrid:Length() < nI oModelGrid:AddLine() EndIf oModelGrid:GoLine(nI) oModelGrid:SetValue("BZ_FILIAL", aFils[nI]) oModelGrid:SetValue("BZ_LOCPAD", aArmz[nI]) Next If oModel:VldData() oModel:CommitData() MsgInfo("Registro ALTERADO!", "Atenção") Else Conout(VarInfo("",oModel:GetErrorMessage())) EndIf oModel:DeActivate() Else MsgInfo("Registro NAO LOCALIZADO!", "Atenção") EndIf RESET ENVIRONMENT Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE ALTERAÇÃO / INCLUSÃO QUANDO JÁ EXISTE PRODUTO CADASTRADO */ //------------------------------------------------------------------------ User Function m019Alt() Local oModel := Nil Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" USER "Administrador" PASSWORD "" MODULO "EST" //Posiciona SB1->(DbSetOrder(1)) If SB1->(DbSeek(xFilial("SB1") + "000000000000001")) oModel := FwLoadModel("MATA019") oModel:SetOperation(MODEL_OPERATION_UPDATE) oModel:Activate() oModel:SetValue("SBZDETAIL","BZ_FILIAL","E1U102") oModel:SetValue("SBZDETAIL","BZ_LOCPAD","02") If oModel:VldData() oModel:CommitData() MsgInfo("Registro ALTERADO!", "Atenção") Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() Else MsgInfo("Registro NAO LOCALIZADO!", "Atenção") EndIf RESET ENVIRONMENT Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE EXCLUSÃO */ //------------------------------------------------------------------------ User Function m019Exc() Local oModel := Nil Private aRotina := {} PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" USER "Administrador" PASSWORD "" MODULO "EST" //Posiciona SB1->(DbSetOrder(1)) If SB1->(DbSeek(xFilial("SB1") + "000000000000001")) oModel := FwLoadModel ("MATA019") oModel:SetOperation(MODEL_OPERATION_DELETE) oModel:Activate() If oModel:VldData() oModel:CommitData() MsgInfo("Registro EXCLUIDO!", "Atenção") Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() Else MsgInfo("Registro NAO LOCALIZADO!", "Atenção") EndIf RESET ENVIRONMENT Return Nil
04. DEMAIS INFORMAÇÕES
IMPORTANTE!
Ao utilizar a rotina MATA010 como modelo, é necessário que o parâmetro MV_CADPROD contenha a tabela SBZ para que o submodelo da rotina MATA019 também seja carregado e possibilite a manipulação dos dados.
05. TABELAS UTILIZADAS
- SB1
- SBZ
06. ASSUNTOS RELACIONADOS
Cross Segmento - Backoffice (Linha Protheus) - SIGAEST - MATA019 - Indicador de Produtos
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas