-
Notifications
You must be signed in to change notification settings - Fork 0
/
MGFIN04.prw
136 lines (89 loc) · 3.91 KB
/
MGFIN04.prw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#INCLUDE 'Totvs.ch'
#INCLUDE 'Fwmvcdef.ch'
#INCLUDE 'FwEditPanel.ch
#INCLUDE "TopConn.ch"
/*/{Protheus.doc} MGFIN04
Rotina MVC de cadastro de Operacao e CFOP
@type function
@version
@author Joao Goncalves
@since 6/19/2023
@return Nao retorna nada
/*/
User Function MGFIN04()
Local oBrowse
oBrowse := FWmBrowse():New()
oBrowse:SetDescription(" Operacao x CFOP ")
oBrowse:SetAlias("ZA5")
oBrowse:Activate()
return
Static Function MenuDef()
Local aRotina := {}
ADD OPTION aRotina TITLE "Visualizar" ACTION "VIEWDEF.MGFIN04" OPERATION 2 ACCESS 0
ADD OPTION aRotina TITLE "Incluir" ACTION "VIEWDEF.MGFIN04" OPERATION 3 ACCESS 0
ADD OPTION aRotina TITLE "Alterar" ACTION "VIEWDEF.MGFIN04" OPERATION 4 ACCESS 0
ADD OPTION aRotina TITLE "Excluir" ACTION "VIEWDEF.MGFIN04" OPERATION 5 ACCESS 0
return aRotina
/*/{Protheus.doc} ModelDef
description
@type function
@version
@author Joao Goncalves
@since 6/19/2023
@return oModel
/*/
Static Function ModelDef()
//Declaro o meu modelo de dados sem passar blocos de validação pois usaremos a validação padrão do MVC
Local oPaiZA5 := FwFormStruct(1,"ZA5") //Master
Local oFilhoZA6 := FwFormStruct(1,"ZA6") //Detalhe
Local oModel := MPFormModel():New("PMGFIN04",/*bPre*/, /*bPos*/, /*bCommit*/,/*bCancel*/)
//Crio as estruturas das tabelas PAI(SZ5) e FILHO(SZ6)
//Crio Modelos de dados Cabeçalho e Item
oModel:AddFields('ZA5MASTER', /*cOwner*/, oPaiZA5, /*bPreValidacao*/, /*bPosValidacao*/, /*bCarga*/ )
//ESSAS vÃrgulas em branco, são blocos de validação que não vamos usar
oModel:AddGrid("ZA6DETAIL","ZA5MASTER",oFilhoZA6,,,,,)
//O meu grid, irá se relacionar com o cabeçalho, através dos campos FILIAL e CODIGO DE Pedido e CFOP
oModel:SetRelation("ZA6DETAIL",{{"ZA6_FILIAL","xFILIAL('ZA6')","ZA6_COD","ZA5_COD"}/*, {"ZA6_CDIAG", "ZA5_CDIAG"}*/},ZA6->(IndexKey(1)))
// Adiciona a chave primaria da tabela principal
oModel:SetPrimarykey({"ZA5_FILIAL","ZA5_COD"})
// oModel:GetModel("ZA6DETAIL"):SetUniqueLine({"ZA6_CDIAG"})
// Adiciona a descricao do Modelo de Dados
oModel:SetDescription("Tipo operacao e CFOP Operacao")
// Adiciona a descrição dos Componentes do Modelo de Dados
oModel:GetModel("ZA5MASTER"):SetDescription("Tipo Operaçao")
// Adiciona a descrição dos Componentes do Modelo de Dados
oModel:GetModel("ZA6DETAIL"):SetDescription("CFOP Operacao")
Return oModel
/*/{Protheus.doc} ViewDef
description
@type function
@version
@author Joao Goncalves
@since 6/19/2023
@return oView
/*/
Static Function ViewDef()
Local oView
//Invoco o Model da função que quero
Local oModel := FwLoadModel("MGFIN04")
Local oPaiZA5 := FwFormStruct(2,"ZA5")
Local oFilhoZA6 := FwFormStruct(2,"ZA6") //Detalhe
// Local oFilhoZB3 := FwFormStruct(2,"ZB3") //Detalhe
//Faço a instancia da função FwFormView para a variável oView
oView := FwFormView():New()
oView:SetModel(oModel)
//Crio as views/visões/layout de cabeçalho e item, com as estruturas de dados criadas acima
oView:AddField("VIEWZA5",oPaiZA5,"ZA5MASTER")
oView:AddGrid("VIEWZA6",oFilhoZA6,"ZA6DETAIL")
//Faço o campo de Item ficar incremental
// oView:AddIncrementField("ZA6DETAIL","ZA6_CDIAG") //Soma 1 ao campo de Item
//Criamos os BOX horizontais para CABEÇALHO E ITENS
oView:CreateHorizontalBox("CABEC",30) //70% do tamanho para cabeçalho
oView:CreateHorizontalBox("GRID1",70) //30% para itens
//Amarro as views criadas aos BOX criados
oView:SetOwnerView("VIEWZA5","CABEC")
oView:SetOwnerView("VIEWZA6","GRID1")
//Darei tÃtulos personalizados ao cabeçalho e comentários do Pedido
oView:EnableTitleView("VIEWZA5","Tipo Operacao")
oView:EnableTitleView("VIEWZA6","CFOP Operacao")
return oView