MP FWFormView 010714 1639 188
MP FWFormView 010714 1639 188
MP FWFormView 010714 1639 188
Classe: FWFormView
Compatvel Pases:
Todos
Sistemas Operacionais:
Todos
Todos
Nvel de Acesso:
Idiomas:
Verso
Descrio:
Fornece uma interface grfica para um model
(FWFormModel/MPFormModel).
A classe fornece as opes grficas abaixo:
- Criao de formulrio do tipo FormField, no qual
possvel que o usurio edite um registro por vez.
- Criao de formulrio do tipo FormGrid, no qual possvel
que o usurio edite N registros por vez.
- Criao de botes.
- Diviso da tela em diversos painis.
- Criao de Folder.
Exemplo:
Static Function ViewDef()
Local oView
Local oStructSA1
//------------------------------------------------------------------//Busca o Model da SA1
//------------------------------------------------------------------Local oModel := FWLoadModel("MATA010_MVC") //Busca o
Model da SA1
//------------------------------------------------------------------//Instancia o objeto
//------------------------------------------------------------------oView := FWFormView():New()
//------------------------------------------------------------------//Faz a carga dos campos do SA1 do dicionario (Apenas
Protheus)
//------------------------------------------------------------------oStructSA1 := FWFormStruct(2,"SA1")
//------------------------------------------------------------------// Set o Model que esse view ira ultilizar
//------------------------------------------------------------------oView:SetModel(oModel)
//------------------------------------------------------------------//Adiciona um Field(antiga Enchoice)
//------------------------------------------------------------------oView:AddField( "MATA010_SA1" , oStructSA1)
//------------------------------------------------------------------//Cria um box Horizontal de 100% do Owner
//------------------------------------------------------------------oView:CreateHorizontalBox("CABEC",100)
//------------------------------------------------------------------//Mapeia a Field("MATA010_SA1") criada no Box("CABEC"
criado
//-------------------------------------------------------------------
oView:SetOwnerView( "MATA010_SA1","CABEC")
//------------------------------------------------------------------//HAbilita o ControlBar(Antiga EnchoiceBar)
//------------------------------------------------------------------oView:EnableControlBar(.T.)
Return oView
Observaes:
Quando utilizamos o FWBrowse na rotina, no necessrio
implementar a passagem de Owner, pois feita pelo
FWBrowse. Caso contrrio, necessrio passar o Owner
atravs do mtodo SetOwner.
Veja tambm:
FWFormModel
MPFormModel
New
Sintaxe:
FWFORMVIEW():New([ oViewOwner ])-> NIL
Descrio:
Mtodo construtor da classe.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
Referncia
oViewOwner
Objeto
Objeto do
tipo
FWFormView
que ser o
pai da view.
Quando
uma view
possui uma
view pai, ela
no realiza a
gravao dos
dados
quando o
boto OK
acionado. O
model
preenchido,
todavia a
gravao dos
dados fica
como
responsabilid
ade da view
pai.
NIL
setUseCursor
Sintaxe:
FWFORMVIEW():setUseCursor(< lValue >)-> NIL
Descrio:
Define se ser habilitado o uso do cursor (navegao em
registros).
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
Referncia
lValue
Lgico
Se for falso,
desabilita o
uso. O
padro da
view
manter
o curso
habilitado.
Observaes:
AddField
Nome
Tipo
Descrio
oObj
Objeto
Objeto do
tipo
FWFormMod
el/MPFormM
odel a se
associar a
view.
Default
Obrigatrio
X
Referncia
Sintaxe:
FWFORMVIEW():AddField(< cViewID >, < oStruct >, [
cSubModelID ])-> NIL
Descrio:
Adiciona ao view um formulrio do tipo FormFields (antiga
enchoice).
Nesse formulrio o usurio poder editar um registro por
vez.
Parmetros:
Nome
Tipo
Descrio
cViewID
Caracteres
ID do
formulrio.
Esse ID ser
utilizado em
diversos
momentos na
criao da
view.
oStruct
Objeto
Objeto do
tipo
FWFormView
Struct a ser
usado no
formulrio.
cSubModelID
Caracteres
ID do
submodelo
do tipo
FormField do
model ao
qual o
formulrio se
relaciona.
Observaes:
Default
""
Obrigatrio
Referncia
Veja tambm:
FWFormViewStruct
Funo FWFormStruct
AddGrid
Sintaxe:
FWFORMVIEW():AddGrid(< cViewID >, < oStruct >, [
cSubModelID ], < uParam4 >, [ bGotFocus ])-> NIL
Descrio:
Tipo
Descrio
Default
Obrigatrio
cViewID
Caracteres
ID do
formulrio.
Esse ID ser
utilizado em
diversos
momentos na
criao da
view.
oStruct
Objeto
Objeto do
tipo
FWFormView
Struct a ser
usado no
formulrio.
cSubModelID
Caracteres
ID do
submodelo
do tipo
FormField do
model ao
qual o
formulrio se
relaciona.
uParam4
Qualquer
Compatibilida
de.
bGotFocus
Bloco de
Cdigo
Bloco de
cdigo
invocado no
momento
que o grid
ganha o foco.
O bloco no
recebe
parmetro
nem precisa
retornar
algum valor.
""
X
NIL
Referncia
Observaes:
Pode-se usar o mesmo ID do submodelo para o formulrio.
Quando isso feito, no necessrio passar o terceiro
parmetro.
Exemplo:
Static Function ModelDef()
Local oModel := MPFormModel():New("MODEL")
Local oStruZA1:= FWFormStruct(1,'ZA1')
Local oStruZA2:= FWFormStruct(1,'ZA2')
oModel:addFields('ZA1MASTER',,oStruZA1)
oModel:addGrid('ZA2DETAIL',,oStruZA2)
Return
Static Function ViewDef()
Local oModel := ModelDef()
Local oView := FWFormView():New()
Local oStruZA1:= FWFormStruct(2,'ZA1')
Local oStruZA2:= FWFormStruct(2,'ZA2')
oView:SetModel(oModel)
oView:addField('ZA1MASTER',oStruZA1)
oView:addGrid('ZA2DETAIL',oStruZA2)
Return
Veja tambm:
FWFormViewStruct
Funo FWFormStruct
AddTreeGrid
Sintaxe:
FWFORMVIEW():AddTreeGrid(< cID >, < aInfos >, <
cIdDetail >)-> NIL
Descrio:
Adiciona um formulrio do tipo Tree baseado em
submodelos do tipo FormGrid que estejam no
model, transformando o grid em tree.
Parmetros:
Nome
Tipo
Descrio
cID
Caracteres
ID do tree.
Esse ID ser
utilizado em
diversos
momentos na
criao da
view.
Default
Obrigatrio
X
Referncia
aInfos
Array
Array com as
informaes
dos
submodelos
que devem
aparecer no
tree, no
formato
abaixo:
[n] array
[n][1] ExpC :
ID do
SubModelo
[n][2] ExpA:
Array
unidimension
al com os IDs
dos campos
que devem
aparecer no
tree.
[n][3] ExpO:
Objeto do
tipo
FWFormView
Struct com a
Estrutura de
Dados.
cIdDetail
Caracteres
ID do
formulrio de
detalhes dos
itens do
Tree.
Exemplo:
Sintaxe:
FWFORMVIEW():SetOwnerView(< cViewID >, [ cIDBox ])->
NIL
Descrio:
Relaciona um formulrio ou uma pasta a um box visual.
Parmetros:
Nome
Tipo
Descrio
cViewID
Caracteres
ID do
formulrio
(definido pelo
mtodo
addField/add
Grid/AddTree
Grid).
cIDBox
Caracteres
ID do Box
que em que
ser
encaixado o
componente
(definido pelo
mtodo
CreateHorizo
ntalBox/Creat
eVerticalBox)
.
Default
Obrigatrio
X
ClassName
Sintaxe:
FWFORMVIEW():ClassName()-> cClassName
Descrio:
Referncia
Tipo
Descrio
cIDFolder
Caracteres
ID da Folder
a ser criada
Default
Obrigatrio
X
Referncia
cIDOwner
Caracteres
Id do Owner.
Pode ser um
box ou um
formulrio do
tipo
FormField
que j
contenha
folders (via
estrutura. Ex.
Dic). No
segundo
caso, no
ser criada
outra pasta,
as abas
adicionadas
pasta sero
colocadas
dentro do
FormField,
ao lado
das abas j
existentes da
estrutura de
dados.
""
addSheet
Sintaxe:
FWFORMVIEW():addSheet(< cIDFolder >, < cIDSheet >, <
cTitulo >, < bAction >)-> NIL
Descrio:
Adiciona uma aba dentro de uma folder.
Parmetros:
Nome
Tipo
Descrio
cIDFolder
Caracteres
ID do folder.
Default
Obrigatrio
X
Referncia
cIDSheet
Caracteres
ID para a
Aba.
cTitulo
Caracteres
Titulo da
Aba.
bAction
Bloco de
Cdigo
Bloco de
cdigo
acionado
quando a
Aba for
selecionada.
No recebe
nenhum
parmetro
nem deve
retornar
valor.
Exemplo:
Static Function ViewDef()
Local oModel := ModelDef()
Local oView
Local oStr1:= FWFormStruct(2, 'ZA1')
Local oStr2:= FWFormStruct(2, 'ZA2')
oView := FWFormView():New()
oView:SetModel( oModel )
oView:AddField('ZA1MASTER' , oStr1)
oView:AddGrid('ZA2DETAIL' , oStr2)
oView:CreateHorizontalBox( 'BOX6', 100)
oView:CreateFolder( 'FOLDER7', 'BOX6')
oView:AddSheet('FOLDER7','SHEET9','SHEET9')
oView:CreateHorizontalBox( 'BOXFORM2', 100, , ,
'FOLDER7', 'SHEET9')
oView:AddSheet('FOLDER7','SHEET8','SHEET8')
oView:CreateHorizontalBox( 'BOXFORM4', 100, , ,
'FOLDER7', 'SHEET8')
oView:SetOwnerView('ZA1MASTER','BOXFORM2')
oView:SetOwnerView('ZA2DETAIL','BOXFORM4')
Return
SetOwner
Sintaxe:
FWFORMVIEW():SetOwner(< oOwner >, [ lCloseOnOK ])->
NIL
Descrio:
Seta o Owner (Dialog principal) em que a view deve ser
criada.
Parmetros:
Nome
Tipo
Descrio
oOwner
Objeto
Objeto do
tipo Dialog
(tDialog,
tWindow,
tPanel) que
ser pai dos
objetos
grficos.
Default
Obrigatrio
X
Referncia
lCloseOnOK
Lgico
Se
verdadeiro,
determina
que ao clicar
em OK na
ControlBar
(se ela for
usada)
fechar o
Owner.
.F.
Observaes:
Quando utilizamos o FWBrowse na rotina, no
necessrio implementar a passagem de Owner, pois esta
feita pelo FWBrowse.
GetValue
Sintaxe:
FWFORMVIEW():GetValue(< cIDSubModel >, < cFieldID >, <
nLine >)-> xValue
Descrio:
Retorna o valor de um determinado campo.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
cIDSubModel
Caracteres
ID do
submodelo
ou ento do
formulrio
(somente se
os dois forem
iguais).
cFieldID
Caracteres
ID do campo.
Referncia
nLine
Numrico
Nmero da
Linha (caso o
submodelo
seja um
Grid).
Retorno:
Tipo
Descrio
Default
Obrigatrio
cIDSubModel
Caracteres
ID do
submodelo
ou ento do
formulrio
(somente se
os dois forem
iguais).
cIdField
Caracteres
ID do campo.
Retorno:
Referncia
Sintaxe:
FWFORMVIEW():Activate()-> NIL
Descrio:
Inicializa o View. Chama em cascata todos os Activates
dos formulrios, containers e model que estiverem nele.
Esse mtodo deve ser usado quando o componente de
view j est inteiramente configurado e o
model relacionado no est ativo.
Observaes:
Cuidado ao us-lo, pois em loop pode ocorrer perda de
performance.
DeActivate
Sintaxe:
FWFORMVIEW():DeActivate()-> NIL
Descrio:
Desativa os formulrios, containers e model, limpando
todos os dados dos formulrios grficos e dos
submodelos e tambm matando todos os componentes
grficos.
setOperation
Sintaxe:
FWFORMVIEW():setOperation(< nOpe >)-> NIL
Descrio:
Informa qual o modo de operao para o View.
Parmetros:
Nome
Tipo
Descrio
nOpe
Numrico
Nmero da
operao,
podendo ser:
1Visualizao
3 - Insero
4Atualizao
5 - Excluso
9 - Cpia
Default
Obrigatrio
Referncia
Observaes:
O setOperation vale para todos os Views. No possvel
setar cada Field/Grid em uma operao diferente.
EnableControlBar
Sintaxe:
FWFORMVIEW():EnableControlBar(< lSet >)-> NIL
Descrio:
Habilita o uso do ControlBar(Antiga EnchoiceBar).
Parmetros:
Nome
Tipo
Descrio
lSet
Lgico
Se
verdadeiro
habilita o
controlBar.
Default
Obrigatrio
X
Referncia
ButtonOkAction
Sintaxe:
FWFORMVIEW():ButtonOkAction(< lIsOwnerDlg >)-> NIL
Descrio:
Executa a ao que estiver programada para o boto OK.
Parmetros:
Nome
Tipo
Descrio
lIsOwnerDlg
Lgico
Se
verdadeiro,
diz que a o
owner do
view uma
Dialog.
Default
Obrigatrio
Referncia
ButtonCancelAction
Sintaxe:
FWFORMVIEW():ButtonCancelAction()-> NIL
Descrio:
Executa a ao programada para o boto cancelar.
createHorizontalBox
Sintaxe:
FWFORMVIEW():createHorizontalBox(< cID >, <
nPercHeight >, < cIdOwner >, < lFixPixel >, < cIDFolder >, <
Tipo
Descrio
Default
Obrigatrio
cID
Caracteres
ID do Box a
ser utilizado.
nPercHeight
Numrico
Valor da
Altura do box
(caso o
lFixPixel seja
verdadeiro
a quantidade
de pixel
exato).
cIdOwner
Caracteres
ID do Box
Vertical pai.
Podemos
fazer
diversas
criaes uma
dentro da
outra.
lFixPixel
Lgico
Determina
que o valor
passado no
parmetro
nPercHeight
corresponde
quantidade
de pixel a ser
usada.
Referncia
cIDFolder
Caracteres
ID da folder
em que
queremos
criar o box.
Esse
parmetro
deve ser
passado
sempre que
o box for
criado
dentro de
uma sheet e,
se passado
esse valor,
necessrio
informar o
parmetro
cIDSheet.
cIDSheet
Caracteres
ID da Sheet
em que
queremos
criar o box.
Esse
parmetro
deve ser
passado
sempre que
o box for
criado
dentro de
uma sheet.
NIL
createVerticalBox
Sintaxe:
FWFORMVIEW():createVerticalBox(< cID >, < nPercHeight
>, < cIdOwner >, < lFixPixel >, < cIDFolder >, < cIDSheet
>)-> NIL
Descrio:
Cria um box vertical dentro do container do view. Ele
necessrio para dividir a tela em diversas partes.
Tipo
Descrio
Default
Obrigatrio
cID
Caracteres
ID do Box a
ser utilizado.
nPercHeight
Numrico
Valor da
Altura do box
(caso o
lFixPixel seja
verdadeiro,
a quantidade
de pixel
exato).
cIdOwner
Caracteres
ID do Box
Horizontal
pai.
Podemos
fazer
diversas
criaes,
uma dentro
da outra.
lFixPixel
Lgico
Determina
que o valor
passado no
parmetro
nPercHeight
corresponde
quantidade
de pixel a ser
usada.
Referncia
cIDFolder
Caracteres
ID da folder
em que
queremos
criar o box.
Esse
parmetro
deve ser
passado
sempre que
o box for
criado
dentro de
uma sheet e,
se passado
esse valor,
necessrio
informar o
parmetro
cIDSheet.
cIDSheet
Caracteres
ID da Sheet
em que
queremos
criar o box.
Esse
parmetro
deve ser
passado
sempre que
o box for
criado
dentro de
uma sheet.
NIL
addIncrementField
Sintaxe:
FWFORMVIEW():addIncrementField(< cIDView >, < cField
>)-> NIL
Descrio:
Adiciona um campo para ser AutoIncremental em um
FormGrid.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
cIDView
Caracteres
Id do
formulrio
em que o
campo est.
necessrio
ser um
FormGrid.
cField
Caracteres
Id do Campo
que ser
autoincremen
tal.
Referncia
GetViewStruct
Sintaxe:
FWFORMVIEW():GetViewStruct(< cID >)->
oFormViewStruct
Descrio:
Recupera o objeto com a estrutura de dados de um
formulrio.
Parmetros:
Nome
Tipo
Descrio
cID
Caracteres
ID do
formulrio
que se
deseja
recuperar a
estrutura.
Default
Obrigatrio
X
Referncia
Retorno:
Tipo
Descrio
cIDSubModel
Caracteres
ID do
submodelo
ou ento do
formulrio
(somente se
os dois forem
iguais).
Default
Obrigatrio
Referncia
Retorno:
oRetorno Objeto do tipo FWFormFieldsModel ou
FWFormGridModel.
SetDescription
Sintaxe:
FWFORMVIEW():SetDescription(< cDescription >)-> NIL
Descrio:
Atribui um texto explicativo sobre o objetivo da view.
O objetivo mostrado em diversos operaes, tais como
Tipo
Descrio
cDescription
Caracteres
Descrio do
objetivo da
view.
Default
Obrigatrio
Referncia
GetDescription
Sintaxe:
FWFORMVIEW():GetDescription()-> cDescription
Descrio:
Fornece um texto com a descrio do objetivo do View.
Retorno:
cDescription Descrio do objetivo do view.
SetNoInsertLine
Sintaxe:
FWFORMVIEW():SetNoInsertLine(< cIDView >)-> NIL
Descrio:
Especifica que o formulrio do tipo grid no pode receber
insero de linha.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
Referncia
cIDView
Caracteres
ID do
formulrio
(grid)
SetNoUpdateLine
Sintaxe:
FWFORMVIEW():SetNoUpdateLine(< cIDView >)-> NIL
Descrio:
Especifica que o formulrio do tipo grid no pode receber
alterao na linha.
Parmetros:
Nome
Tipo
Descrio
cIDView
Caracteres
ID do
formulrio
(grid)
Default
Obrigatrio
Referncia
SetNoDeleteLine
Sintaxe:
FWFORMVIEW():SetNoDeleteLine(< cIDView >)-> NIL
Descrio:
Especifica que o formulrio do tipo grid no pode receber
excluso de linha.
Parmetros:
Nome
Tipo
Descrio
cIDView
Caracteres
ID do
formulrio
(grid)
Default
Obrigatrio
Referncia
CanInsertLine
Sintaxe:
FWFORMVIEW():CanInsertLine(< cIDView >)-> lInsertLine
Descrio:
Informa se o grid aceita a insero de novas linhas.
Parmetros:
Nome
Tipo
Descrio
cIDView
Caracteres
ID do
formulrio
(grid)
Default
Obrigatrio
Referncia
Retorno:
lInsertLine Se verdadeiro, a incluso de linhas permitida.
CanUpdateLine
Sintaxe:
FWFORMVIEW():CanUpdateLine(< cIDView >)->
lUpdateLine
Descrio:
Informa se o grid aceita a manuteno nas linhas.
Parmetros:
Nome
Tipo
Descrio
cIDView
Caracteres
ID do
formulrio
(grid)
Default
Obrigatrio
Referncia
Retorno:
Tipo
Descrio
cIDView
Caracteres
ID do
formulrio
(grid)
Default
Obrigatrio
Referncia
Retorno:
Descrio:
Retorna os campos que precisam ser avaliados no When.
Esse mtodo somente pode ser usado para analisar
submodelos do tipo formField.
Parmetros:
Nome
Tipo
Descrio
cIDSubModel
Caracteres
ID do
submodelo
ou ento do
formulrio
(somente se
os dois forem
iguais).
Default
Obrigatrio
Referncia
Retorno:
aFields Array unidimensional com o ID dos campos.
addUserButton
Sintaxe:
FWFORMVIEW():addUserButton(< cTitle >, < cResource >,
< bBloco >, [ cToolTip ], [ nShortCut ], [ aOptions ])-> NIL
Descrio:
Adiciona botes do desenvolvedor na barra de
ferramentas do formulrio.
Parmetros:
Nome
Tipo
Descrio
cTitle
Caracteres
Ttulo do
Boto
Default
Obrigatrio
X
Referncia
cResource
Caracteres
Nome do
resource
compilado no
RPO que
ser a
imagem do
boto.
bBloco
Bloco de
Cdigo
Bloco de
cdigo que
ser
executado.
Esse bloco
recebe o
objeto
oView(FWFo
rmView)
como
parmetro.
cToolTip
Caracteres
Comentrio
do boto.
nShortCut
Numrico
Cdigo da
Tecla para
criao de
Tecla de
Atalho.
aOptions
Array
Array
unidimension
al com as
operaes
(MODEL_OP
ERATION_VI
EW,MODEL_
OPERATION
_INSERT
,MODEL_OP
ERATION_U
PDATE,MOD
EL_OPERAT
ION_DELET
E)
em que o
boto ser
mostrado. Se
o parmetro
no for
informado,
mostrar em
todos.
CTITLE
{MODEL_OP
ERATION_VI
EW,MODEL_
OPERATION
_INSERT
,MODEL_OP
ERATION_U
PDATE,MOD
EL_OPERAT
ION_DELET
E}
Exemplo:
oView := FWFormView()
bBlocoMagic := {|oView| Myfunction(oView)}
oView:AddUserBotton("Texto abaixo do
boto","MAGIC_BMP",bBlocoMagic,"Comentrio do
boto")
Refresh
Sintaxe:
FWFORMVIEW():Refresh([ cViewID ])-> NIL
Descrio:
Executa o refresh dos componentes Visuais.
Parmetros:
Nome
Tipo
Descrio
Default
cViewID
Caracteres
ID do
formulrio.
Se o
parmetro
no for
passado, o re
fresh
ser
executado
em todos os
componentes
da view.
''
Obrigatrio
Referncia
GetUseControlBar
Sintaxe:
FWFORMVIEW():GetUseControlBar()-> lUseControlBar
Descrio:
Verifica se o uso do ControlBar (Antiga EnchoiceBar) est
habilitado.
Retorno:
lUseControlBar Se verdadeiro o uso est habilitado.
SetCloseOnOk
Sintaxe:
FWFORMVIEW():SetCloseOnOk(< bBlock >)-> NIL
Descrio:
Mtodo que seta um bloco de cdigo para verificar se a
janela deve ou no ser fechada aps a execuo do boto
OK. Se o view estiver vlido, o bloco de cdigo invocado
e recebe como parmetro o View. O bloco deve retornar
verdadeiro para Fechar a janela ou falso para mant-la
aberta.
Parmetros:
Nome
Tipo
Descrio
bBlock
Bloco de
Cdigo
Bloco de
Cdigo a ser
executado.
Default
Obrigatrio
Referncia
SetAfterOkButton
Sintaxe:
FWFORMVIEW():SetAfterOkButton(< bBlock >)-> NIL
Descrio:
Mtodo que seta um bloco de cdigo que ser chamado
no final da execuo do boto OK. O bloco recebe como
parmetro o objeto de View e no precisa retornar nenhum
valor.
Parmetros:
Nome
Tipo
Descrio
bBlock
Bloco de
Cdigo
Bloco de
Cdigo a ser
executado.
Default
Obrigatrio
Referncia
SetViewCanActivate
Sintaxe:
FWFORMVIEW():SetViewCanActivate(< bBlock >)-> NIL
Descrio:
Mtodo que seta um Code-block para ser avaliado antes
de se ativar o View, caso seja necessrio avaliar ou
questionar o usurio sobre algo.
No momento de chamada desse bloco o Model e o View
no esto ativos, portanto no possvel recuperar dados.
O bloco recebe como parmetro o objeto oView e deve
retornar verdadeiro para permitir a ativao. Se retornar
falso, a janela ser fechada.
Parmetros:
Nome
Tipo
Descrio
bBlock
Bloco de
Cdigo
Bloco de
Cdigo a ser
executado.
Default
Obrigatrio
Referncia
ShowLastError
Sintaxe:
FWFORMVIEW():ShowLastError()-> NIL
Descrio:
Mostra o ltimo erro ocorrido.
GetMaxLines
Sintaxe:
FWFORMVIEW():GetMaxLines(< cIDView >)-> nMax
Descrio:
Retorna quantas linhas o um formulrio do tipo grid aceita.
Parmetros:
Nome
Tipo
Descrio
cIDView
Caracteres
Id do
formulrio a
ser
analisado.
Default
Obrigatrio
X
Retorno:
nMax Quantidade mxima de linhas permitidas.
Referncia
SetVldActivate
Sintaxe:
FWFORMVIEW():SetVldActivate()-> NIL
Obsoleto:
Nome
Tipo
Descrio
bBloco
Bloco de
Cdigo
Bloco de
cdigo a ser
chamado.
Default
Exemplo:
bBloco := {|oView| MinhaFunc(oView)}
oView:SetAfterViewActivate(bBloco)
Obrigatrio
X
Referncia
GetbuttonWasPressed
Sintaxe:
FWFORMVIEW():GetbuttonWasPressed()-> nButton
Descrio:
Retorna qual boto causou o fechamento do View (o OK
ou o Cancelar).
Retorno:
nButton Retorna 0 se o botao foi o OK ou 1 se foi o
Cancelar.
HasError
Sintaxe:
FWFORMVIEW():HasError()-> Se
Descrio:
Retorna se o view possui algum erro.
Retorno:
Se verdadeiro, o view possui algum erro pendente.
AddOtherObject
Sintaxe:
FWFORMVIEW():AddOtherObject(< cViewID >, [ bActivate
], [ bDeActivate ], < bRefresh >)-> NIL
Descrio:
Adiciona um painel em que possvel adicionar
componentes que no sejam MVC.
Parmetros:
Nome
Tipo
Descrio
cViewID
Caracteres
ID do painel
otherObject.
bActivate
Bloco de
Cdigo
Bloco
chamado no
Activate do
painel. Deve
ser usado
para criar os
componentes
do painel.
O bloco
recebe como
parmetro o
painel em
que sero
criados os
componentes
.
bDeActivate
Bloco de
Cdigo
Bloco
chamado no
DeActivate
do painel.
Deve ser
usado para
matar os
objetos
criados no
painel. O
bloco recebe
como
parmetro o
painel em
que sero
criados os
componentes
.
Default
Obrigatrio
X
Referncia
bRefresh
Bloco de
Cdigo
Bloco
chamado no
Refresh do
painel. O
bloco recebe
como
parmetro o
painel em
que esto os
componentes
.
Exemplo:
oView:SetOwnerView("OTHER_PIZZA",'INFERIOR')
Return oView
GetOperation
Sintaxe:
FWFORMVIEW():GetOperation()-> nOperation
Descrio:
Retorna a operao que est definida no model.
Retorno:
nOperation Indica a operao, sendo:
1 - View
3 - Insert
4 - Update
5 - Delete
6 - Only Update
EnableTitleView
Sintaxe:
FWFORMVIEW():EnableTitleView(< cViewID >, [ cTitle ])->
NIL
Descrio:
Cria um ttulo para um formulrio. (Pode ser usado
somente para grid e field).
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
Referncia
cViewID
Caracteres
ID do
formulrio.
cTitle
Caracteres
Ttulo para o
formulrio.
X
OMODEL:GE
TDESCRIPTI
ON()
SetViewProperty
Sintaxe:
FWFORMVIEW():SetViewProperty(< cViewID >, < cAction >,
< aParam >)-> NIL
Descrio:
Seta uma propriedade especfica para um formulrio do
tipo Grid ou Field.
Parmetros:
Nome
Tipo
Descrio
cViewID
Caracteres
ID do
formulrio.
Caso seja
passado um
*, a
propriedade
ser alterada
em todos os
formulrios.
Verifique as
observaes
para saber
quais
propriedades
aceitam essa
opo.
Default
Obrigatrio
X
Referncia
cAction
Caracteres
ID da
propriedade.
Verifique as
observaes
para
visualizar
todas
as opes
disponveis.
aParam
Array
Array com os
parmetros a
serem
passados
para a
propriedade.
Verifique as
observaes
para detalhes
sobre os
parmetros
em cada
item.
Observaes:
Lista de propriedades disponveis:
-------------------------------------------------------|
| SETLAYOUT
| Tipo de formulrio: FormField
| Descrio: Define o layout da FormField
| aParam : Deve ser passado um array com a
estrutura abaixo:
|
[1] ExpN: Tipo de Layout. Use o
FWEditPanel.CH e passe
|
uma das opes abaixo:
|
FF_LAYOUT_VERT_DESCR_TOP - Vertical
com descrio acima do get
|
LAYOUT_VERT_DESCR_LEFT - Vertical
com descrio esquerda
|
FF_LAYOUT_HORZ_DESCR_TOP Horizontal com descrio acima do get
|
FF_LAYOUT_HORZ_DESCR_LEFT Horizontal com descrio esquerda
|
[2] ExpN: Quantidade de colunas
|
[3] ExpN: Largura da coluna
| Exemplo: oView:SetViewProperty( "ZA1MASTER",
"SETLAYOUT", { FF_LAYOUT_HORZ_DESCR_TOP , 5 } )
|
-------------------------------------------------------|
| ENABLEDGRIDDETAIL
| Tipo de formulrio: FormGrid
| Descrio: Divide o box do formGrid, criando abaixo
dele
|
um formulrio do tipo formField baseado no
grid.
| aParam : Deve ser passado um array com a
estrutura abaixo.
|
Se o array no for passado o percentual
padro 50%:
|
[1] ExpN: Percentual que o detail vai ocupar do
box do grid.
| Exemplo: oView:SetViewProperty( 'VIEW_ZA2',
"ENABLEDGRIDDETAIL", { 20 } )
|
-------------------------------------------------------|
| CHANGELINE
| Tipo de formulrio: FormGrid
|
-------------------------------------------------------|
| DISABLELOOKUP
| Tipo de formulrio: FormGrid e FormField
| Aceita o uso de * no ID.
| Descrio: Define que a consulta padro dos
campos do formulrio ser desabilitada.
| aParam : No possui, no precisa ser passado.
| Exemplo: oView:SetProperty("ZA1MASTER",
"DISABLELOOKUP")
|
-------------------------------------------------------|
| ENABLENEWGRID
| Tipo de formulrio: FormGrid
| Aceita o uso de * no ID.
| Descrio: Define que o grid deve usar o
browse como interface visual (FWBrowse)
| aParam : No possui, no precisa ser passado.
| Exemplo: oView:SetProperty("VIEW_ZA2",
"ENABLENEWGRID")
|
-------------------------------------------------------|
| SIZEMEMO
| Tipo de formulrio: FormField
| Descrio: Define um novo tamanho para um
campo MEMO
| aParam : Deve ser passado um array com a
estrutura abaixo:
|
[1] ExpN: Nome do Campo
|
[2] Array com tamanho da linha e coluna
|
[2][1] ExpN: Tamanho da linha
|
[2][2] ExpN: Tamanho da coluna
| Exemplo: oView:SetViewProperty("ZA1MASTER",
"SIZEMEMO", {SA1_MEMO , {9, 300}})
|
-------------------------------------------------------|
| GRIDFILTER
| Tipo de formulrio: FormGrid habitado com o
ENABLENEWGRID
| Aceita o uso de * no ID.
| Descrio: Define se ser exibida ou no a opo
de filtro no grid.
| aParam : Deve ser passado um array com a
estrutura abaixo.
|
Se o array no for passado, o default exibir
|
o filtro no grid:
|
[1] ExpL: Se Verdadeiro habilita, Se falso
desabilita
| Exemplo: oView:SetProperty("VIEW_ZA2",
"GRIDFILTER", {.T.})
|
-------------------------------------------------------|
| GRIDSEEK
| Tipo de formulrio: FormGrid habitado com o
ENABLENEWGRID
| Aceita o uso de * no ID.
| Descrio: Define se ser ou no exibida a opo
de pesquisa no grid.
| aParam : Deve ser passado um array com a
estrutura abaixo.
|
Se o array no for passado, o default exibir
|
a pesquisa no grid:
|
[1] ExpL: Se Verdadeiro habilita, Se falso
desabilita
| Exemplo: oView:SetProperty("VIEW_ZA2",
"GRIDSEEK", {.T.})
|
-------------------------------------------------------|
| GRIDROWHEIGHT
| Tipo de formulrio: FormGrid habitado com o
ENABLENEWGRID
| Aceita o uso de * no ID.
| Descrio: Define a altura da linha do grid.
| aParam : Deve ser passado um array com a
estrutura abaixo:
|
[1] ExpN: Altura da linha
| Exemplo: oView:SetProperty("VIEW_ZA2",
"GRIDROWHEIGHT", {40})
|
-------------------------------------------------------|
| GRIDVSCROLL
| Tipo de formulrio: FormGrid habitado com o
ENABLENEWGRID
| Aceita o uso de * no ID.
| Descrio: Define se ser exibida ou nao o scroll
vertical do grid
| aParam : Deve ser passado um array com a
estrutura abaixo.
|
Se o array no for passado, o default exibir
|
o scroll no grid:
|
[1] ExpL: Se Verdadeiro exibe, Se falso no
exibe
| Exemplo: oView:SetProperty("VIEW_ZA2",
"GRIDVSCROLL", {.F.})
|
-------------------------------------------------------|
| GRIDCANGOTFOCUS
| Tipo de formulrio: FormGrid habitado com o
ENABLENEWGRID
| Aceita o uso de * no ID.
| Descrio: Define se grid pode receber foco.
| aParam : Deve ser passado um array com a
estrutura abaixo.
|
Se o array no for passado, o default
permitir
|
o foco no grid:
|
[1] ExpL: Se Verdadeiro habilita, Se falso
desabilita
| Exemplo: oView:SetProperty("VIEW_ZA2",
"GRIDCANGOTFOCUS", {.F.})
|
-------------------------------------------------------|
| SETCSS
| Tipo de formulrio: FormGrid habitado com o
ENABLENEWGRID
| Aceita o uso de * no ID.
| Descrio: Define um CSS para o grid.
| aParam : Deve ser passado um array com a
estrutura abaixo:
|
[1] ExpC: CSS para o componente
| Exemplo: oView:SetProperty("VIEW_ZA2",
"SETCSS", {cCSS})
|
-------------------------------------------------------SetFieldProperty
Sintaxe:
FWFORMVIEW():SetFieldProperty(< cViewID >, < cFieldID
>, < cAction >, < aparam >)-> NIL
Descrio:
Seta uma propriedade especfica em um campo do
formulrio, em tempo de execuo.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
cViewID
Caracteres
ID do
formulrio.
cFieldID
Caracteres
ID do campo
a se alterar.
cAction
Caracteres
ID da
propriedade.
Verifique as
observaes
para maiores
detalhes.
Referncia
aparam
Array
Com os
parmetros a
serem
passados
para a
propriedade.
Verifique as
observaes
para detalhes
sobre os
parmetros
em cada
item.
Observaes:
Lista de propriedades disponveis:
-------------------------------------------------------|
| COMBOVALUES
| Descrio: Altera as opes de combo do campo.
| aParam : Deve ser passado um array
unidimensional com os novos valores.
| Exemplo:
oView:SetFieldProperty("ZA1MASTER","BUTTON_0","CO
MBOVALUES",{aValues})
|
-------------------------------------------------------SetOnlyView
Sintaxe:
FWFORMVIEW():SetOnlyView(< cIDView >)-> NIL
Descrio:
Define que o formulrio e o submodelo no podem ter
Tipo
Descrio
cIDView
Caracteres
ID do
formulrio
Default
Obrigatrio
Referncia
LineShift
Sintaxe:
FWFORMVIEW():LineShift(< cIDView >, [ nLineFrom ], [
nLineTo ])-> NIL
Descrio:
Realiza uma troca de dados entre duas linhas. Os dados
da linha origem sero movidos para a linha destino e os
dados da linha destino sero movidos para a linha origem.
Se a linha atualmente posicionada a origem ou o destino,
o nmero da linha posicionada ser mudado para o
nmero da origem ou do destino, porque os dados so
trocados porm a linha ainda precisa
ser validada.
O mtodo somente pode ser usado para formulrios do
tipo grid.
Parmetros:
Nome
Tipo
Descrio
Default
cIDView
Caracteres
ID do
formulrio do
grid.
nLineFrom
Numrico
Nmero da
linha de
origem.
::GETLINE(C
IDVIEW)
nLineTo
Numrico
Nmero da
linha de
destino.
::GETLINE(C
IDVIEW)
IsActive
Sintaxe:
FWFORMVIEW():IsActive()-> lActivate
Descrio:
Retorna se o view est ativo.
Retorno:
lActivate Se verdadeiro est ativo.
GetBrowseOpc
Sintaxe:
FWFORMVIEW():GetBrowseOpc()-> nOpc
Descrio:
Retorna a opo selecionada via Browse.
Retorno:
nOpc Nmero da opo.
SetViewAction
Sintaxe:
Obrigatrio
Referncia
Tipo
Descrio
Default
Obrigatrio
Referncia
cActionlID
Caracteres
ID do ponto
da ao a ser
executada,
que pode
ser:
REFRESH Executa a
ao no
Refresh da
View.
BUTTONOK
- Executa a
ao no
acionamento
do boto
confirmar da
View.
BUTTONCA
NCEL Executa a
ao no
acionamento
do boto
cancelar da
View.
DELETELIN
E - Executa a
ao na
deleo da
linha da grid.
UNDELETEL
INE Executa a
ao na
restaurao
da linha da
grid.
bAction
Bloco de
Cdigo
Bloco com a
ao a ser
executada.
Recebe
como
parmetro:
REFRESH Recebe
como parm
etro o objeto
de View.
BUTTONOK
- Recebe
como parm
etro o objeto
de View.
BUTTONCA
NCEL Recebe
como parm
etro o objeto
de View.
DELETELIN
E - Recebe
como parm
etro o objeto
de View, Id
do
Submodelo e
Nmero da
linha.
UNDELETEL
INE - Recebe
como parm
etro o objeto
de View, Id
do
Submodelo e
Nmero da
linha.
Exemplo:
oView:SetViewAction( 'BUTTONOK' , { |oView| SuaFuncao(
oView ) } )
oView:SetViewAction( 'BUTTONCANCEL', { |oView|
OutraFuncao( oView ) } )
oView:SetViewAction( 'DELETELINE', {
|oView,cIdView,nNumLine| OutraFuncao(
oView,cIdView,nNumLine ) } )
SetFieldAction
Sintaxe:
FWFORMVIEW():SetFieldAction(< cIDField >, < bAction
>)-> NIL
Descrio:
Define uma ao a ser executada aps a validao do
campo.
Como o formulrio no passado, se existir mais de um
formulrio com o mesmo campo, o campo verificado ser
o primeiro que for encontrado.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
cIDField
Caracteres
ID campo,
pode ser um
campo de
qualquer
formulrio da
view.
bAction
Bloco de
Cdigo
Bloco com a
ao a ser
executada.
Recebe
como
parmetro o
objeto de
View,
o ID do
formulrio, o
ID do campo
e o contedo
do campo.
Referncia
Exemplo:
oView:SetFieldAction( 'A1_COD', { |oView, cIDView, cField,
xValue| SuaFuncao( oView, cIDView, cField, xValue ) } )
HasField
Sintaxe:
FWFORMVIEW():HasField(< cIDView >, < cIdField >)-> Se
Descrio:
Informa se um determinado campo existe na estrutura de
dados de um formulrio.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
cIDView
Caracteres
Id do
formulrio
cIdField
Caracteres
Id do campo
Referncia
Retorno:
Se verdadeiro, o campo existe na estrutura de dados.
Exemplo:
If oView:HasField( "VIEW_SA1", "A1_COD" )
...
EndIf
GetCurrentSelect
Sintaxe:
FWFORMVIEW():GetCurrentSelect()-> Array
Descrio:
Obtem o ID do ltimo campo que obteve foco na view.
Retorno:
Array com a estrutura abaixo:
[1] ExpC: ID do formulrio
[2] ExpC: ID do campo
ShowHelpInView
Sintaxe:
FWFORMVIEW():ShowHelpInView()-> NIL
Descrio:
Uso interno.
GetFolderActive
Sintaxe:
FWFORMVIEW():GetFolderActive(< cID >, < nType >)->
aInfo
Descrio:
Obtm o Nmero e o Ttulo da aba selecionada em uma
Pasta.
No View existem dois tipos de pastas: as criadas
atravs do mtodo createFolder e as provenientes da
estrutura de dados que h dentro de um formulrio do tipo
FormField.
O mtodo analisa os dois tipos de pastas, de acordo com
o valor informado no segundo parmetro.
Parmetros:
Nome
Tipo
Descrio
Default
cID
Caracteres
ID do
formulrio do
tipo
FormField ou
ID da Folder
nType
Numrico
Tipo de
Folder [ 1 Estrutura de
Dados(Form
Field) | 2 View(Mtodo
CreateFolder
)]
Retorno:
Obrigatrio
Referncia
oView := FWFormView():New()
oView:SetModel(oModel)
oView:AddField('FORM1' , oStr1,'FIELD1' )
oView:AddOtherObject('FORM8',{|| },{|| })
oView:AddOtherObject('FORM10',{|| },{|| })
oView:CreateHorizontalBox( 'BOXFORM1', 50)
oView:CreateHorizontalBox( 'BOX3', 50)
oView:CreateFolder( 'FOLDER', 'BOX3')
oView:AddSheet('FOLDER','ABA1','Aba 1')
oView:AddSheet('FOLDER','ABA2','Aba 2')
oView:CreateHorizontalBox( 'BOXFORM10', 100, , ,
'FOLDER', 'ABA2')
oView:CreateHorizontalBox( 'BOXFORM8', 100, , ,
'FOLDER', 'ABA1')
oView:SetOwnerView('FORM1','BOXFORM1')
oView:SetOwnerView('FORM8','BOXFORM8')
oView:SetOwnerView('FORM10','BOXFORM10')
oView:AddUserButton( 'Select Folder Estrutura de Dados',
'TESTE FOLDER', {|oView| Folder1(oView) } )
oView:AddUserButton( 'Select Folder View' , 'TESTE
FOLDER', {|oView| Folder2(oView) } )
oView:AddUserButton( 'Get Folders Active', 'TESTE
FOLDER', {|oView| Folder3(oView) } )
Return oView
Static Function Folder1(oView)
oView:SelectFolder("FORM1",4,1)
Return
Tipo
Descrio
Default
Obrigatrio
Referncia
cID
Caracteres
ID do
formulrio do
tipo
FormField ou
ID da Folder.
xFolder
Qualquer
Nmero da
Aba ou Ttulo
dela.
nType
Numrico
Tipo de
Folder [ 1 Estrutura de
Dados(Form
Field) | 2 View(Mtodo
CreateFolder
)]
Exemplo:
Static Function ModelDef()
Local oModel
Local oStr1:= FWFormStruct(1,'SA1')
oModel := MPFormModel():New('MODEL')
oModel:SetDescription('teste')
oModel:addFields('FIELD1',,oStr1)
Return oModel
Static Function ViewDef()
Local oView
Local oModel := ModelDef()
Local oStr1:= FWFormStruct(2, 'SA1')
oView := FWFormView():New()
oView:SetModel(oModel)
oView:AddField('FORM1' , oStr1,'FIELD1' )
oView:AddOtherObject('FORM8',{|| },{|| })
oView:AddOtherObject('FORM10',{|| },{|| })
oView:CreateHorizontalBox( 'BOXFORM1', 50)
oView:CreateHorizontalBox( 'BOX3', 50)
oView:CreateFolder( 'FOLDER', 'BOX3')
oView:AddSheet('FOLDER','ABA1','Aba 1')
oView:AddSheet('FOLDER','ABA2','Aba 2')
oView:CreateHorizontalBox( 'BOXFORM10', 100, , ,
'FOLDER', 'ABA2')
oView:CreateHorizontalBox( 'BOXFORM8', 100, , ,
'FOLDER', 'ABA1')
oView:SetOwnerView('FORM1','BOXFORM1')
oView:SetOwnerView('FORM8','BOXFORM8')
oView:SetOwnerView('FORM10','BOXFORM10')
oView:AddUserButton( 'Select Folder Estrutura de Dados',
'TESTE FOLDER', {|oView| Folder1(oView) } )
oView:AddUserButton( 'Select Folder View' , 'TESTE
FOLDER', {|oView| Folder2(oView) } )
oView:AddUserButton( 'Get Folders Active', 'TESTE
FOLDER', {|oView| Folder3(oView) } )
Return oView
Static Function Folder1(oView)
oView:SelectFolder("FORM1",4,1)
Return
Static Function Folder2(oView)
oView:SelectFolder("FOLDER","Aba 1",2)
Return
Tipo
Descrio
cID
Caracteres
ID do
formulrio do
tipo
FormField ou
ID da Folder
Default
Obrigatrio
X
Referncia
xFolder
Qualquer
Nmero da
Aba ou Ttulo
dela.
nType
Numrico
Tipo de
Folder [ 1 Estrutura de
Dados(Form
Field) | 2 View(Mtodo
CreateFolder
)]
Exemplo:
Sintaxe:
FWFORMVIEW():SetProgressBar(< lValue >)-> NIL
Descrio:
Ativa ou desativa o uso da MsgRun na carga do
formulrio. Utilize em rotina em que a carga pode demorar
muito.
Parmetros:
Nome
Tipo
Descrio
lValue
Lgico
Se
verdadeiro,
habilita o
uso.
Default
Obrigatrio
Referncia
GetProgressBar
Sintaxe:
FWFORMVIEW():GetProgressBar()-> lValue
Descrio:
Informa se o view est configurado para usar a MsgRun na
carga dos dados dos formulrios.
Retorno:
lValue Se verdadeiro, o uso est habilitado.
SetTimer
Sintaxe:
FWFORMVIEW():SetTimer(< nInterval >, < bAction >)-> NIL
Descrio:
Define um timer para a janela do view.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
nInterval
Numrico
Indica o
intervalo, em
milissegundo
s, para
disparar o
bloco de
cdigo do
Timer.
bAction
Bloco de
Cdigo
Indica o
bloco de
cdigo que
ser
executado a
cada
intervalo
definido.
Referncia
GetXMLLayout
Sintaxe:
FWFORMVIEW():GetXMLLayout([ lHtm ], < lEmbeded >, [
lDocType ], [ cInitJs ], [ cDirCss ], [ cDirJs ], [
lImgEmbedded ], [ lLoad ], [ lLookUp ])-> aRet
Descrio:
Retorna uma string no formato XSLT com base nas
caracteristicas da view.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
Referncia
lHtm
Lgico
Indica se o la
yout deve ser
gerado como
HTML.
.F.
lEmbeded
Lgico
Indica se o
javascript e
css sero
embutidos no
layout.
lDocType
Lgico
Indica se
gera o HTML
com a tag
DOCTYPE
(enviar falso
para o ECM).
.T.
cInitJs
Caracteres
Javascript
que deve ser
executado no
load do
HTML.
""
cDirCss
Caracteres
Indica o
diretrio do
css para
inserir no
HTML.
""
cDirJs
Caracteres
Indica o
diretrio do
javascript
para inserir
no HTML.
""
lImgEmbedd
ed
Lgico
Indica se as
imagens do
css sero
embutidas.
.T.
lLoad
Lgico
Indica se cria
os inputs
com os
valores do
model.
.F.
lLookUp
Lgico
Indica se cria
opo de
lookup.
.F.
Retorno:
Descrio:
Executa ao quando uma aba selecionada em qualquer
folder da View.
Parmetros:
Nome
Tipo
Descrio
Default
Obrigatrio
Referncia
bVldFolder
Bloco de
Cdigo
Bloco a ser
executado
quando uma
aba
selecionada.
Deve
retornar um
booleano.
Caso o bloco
retorne falso,
no ser
alterada a
aba que est
selecionada.
O bloco ir
receber 3
parmetros:
cFolderID:
ID do folder
(quando for
criado pelo
desenvolved
or atravs do
mtodo
AddFolder)
ou ID
formulrio do
tipo Formfield
(quando a
pasta for
proveniente
da estrutura
de dados).
nOldSheet:
Sheet que
estava
selecionada.
nSelSheet:
Sheet em
que o usurio
clicou.
Exemplo:
Static Function ModelDef()
Local oModel
Local oStr1:= FWFormStruct(1,'SA1')
oModel := MPFormModel():New('MODEL')
oModel:SetDescription('teste')
oModel:addFields('FIELD1',,oStr1)
Return oModel
Static Function ViewDef()
Local oView
Local oModel := ModelDef()
Local oStr1:= FWFormStruct(2, 'SA1')
oView := FWFormView():New()
oView:SetModel(oModel)
oView:AddField('FORM1' , oStr1,'FIELD1' )
oView:AddOtherObject('FORM8',{|| },{|| })
oView:AddOtherObject('FORM10',{|| },{|| })
oView:CreateHorizontalBox( 'BOXFORM1', 50)
oView:CreateHorizontalBox( 'BOX3', 50)
oView:CreateFolder( 'FOLDER', 'BOX3')
oView:AddSheet('FOLDER','ABA1','Aba 1')
oView:AddSheet('FOLDER','ABA2','Aba 2')
oView:CreateHorizontalBox( 'BOXFORM10', 100, , ,
'FOLDER', 'ABA2')
oView:CreateHorizontalBox( 'BOXFORM8', 100, , ,
'FOLDER', 'ABA1')
oView:SetOwnerView('FORM1','BOXFORM1')
oView:SetOwnerView('FORM8','BOXFORM8')
oView:SetOwnerView('FORM10','BOXFORM10')
oView:SetVldFolder({|cFolderID, nOldSheet, nSelSheet|
VldFolder(cFolderID, nOldSheet, nSelSheet)})
Return oView
Static Function VldFolder(cFolderID, nOldSheet,
nSelSheet)
Local lRet := .T.
If nOldSheet == 1 .And. nSelSheet == 2
Help( ,, 'Help',, 'No permitido selecionar a aba 2 se
voc estiver na aba 1.', 1, 0 )
lRet := .F.
EndIf
Return lRet