import.css=/download/attachments/327912/newLayout.css
Classe: FWFormView
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Nível de Acesso: Nível 1 (Acesso Clientes)
Idiomas: Português, Inglês, Espanhol
Versão P10 R1.4 <br />
Descrição
Fornece uma interface gráfica para um model(FWFormModel/MPFormModel).
A classe fornece as opções graficas abaixo:
- Criação de formulário do tipo FormField, onde é possível que o usuário edite um registro por vez
- Criação de formulário do tipo FormGrid, onde é possível que o usuário edite N registros por vez
- Criação de botões
- Divisão da tela em diversos paineis
- Criação 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

Observações

Quando utilizamos o FWBrowse na rotina, não é necessário implementar a passagem de Owner, pois é feita
pelo FWBrowse, caso contrário é necessário passar o Owner através do metódo SetOwner.

Veja também

FWFormModel
MPFormModel

New

Sintaxe
FWFORMVIEW():New([ oViewOwner ])-> NIL

Descrição
Método construtor da classe


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
oViewOwner Objeto Objeto do tipo FWFormView que será o pai da view. Quando
uma view possui uma view pai, ela não realiza a gravação dos dados
quando o botão OK é acionado. O model é preenchido, todavia a
gravação dos dados fica como responsabilidade da view pai.
NIL
 

setUseCursor

Sintaxe
FWFORMVIEW():setUseCursor(<lValue >)-> NIL

Descrição
Define se será habilitado o uso do cursor(navegação em registros).


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
lValue Lógico Se falso desabilita o uso. O padrão da view é manter
o curso habilitado.
X
 

Observações

Se o fonte chama o mvc através do browse esse método não tem
efeito, o cursor será sempre habilitado.

SetModel

Sintaxe
FWFORMVIEW():SetModel(<oObj >)-> NIL

Descrição
Seta o relacionamento da View com o Model. Esse método é obrigatório
ser usado, pois uma view sempre precisa de um model.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
oObj Objeto Objeto do tipo FWFormModel/MPFormModel a se associar a view.
X
 

AddField

Sintaxe
FWFORMVIEW():AddField(<cViewID >, <oStruct >, [ cSubModelID ])-> NIL

Descrição
Adiciona ao view um formulário do tipo FormFields(antiga enchoice).
Nesse formulário o usuário poderá editar um registro por vez.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cViewID Caracteres ID do formulário. Esse ID será utilizado em diversos momentos na criação da view. X
oStruct Objeto Objeto do tipo FWFormViewStruct a ser usado no formulário X
cSubModelID Caracteres ID do submodelo do tipo FormField do model ao qual o formulário se relaciona.
""
 

Observações

Pode-se usar o mesmo ID do submodelo para o formulário, quando isso é feito não é
necessário passar o terceiro parametro.
Exemplo:

Static Function ModelDef()
Local oModel := MPFormModel():New("MODEL")
Local oStruZA1:= FWFormStruct(1,'ZA1')
oModel:addFields('ZA1MASTER',,oStruZA1)
Return

Static Function ViewDef()
Local oModel := ModelDef()
Local oView := FWFormView():New()
Local oStruZA1:= FWFormStruct(2,'ZA1')

oView:SetModel(oModel)
oView:addField('ZA1MASTER',oStruZA1)
Return


Veja também

FWFormViewStruct
Função FWFormStruct

AddGrid

Sintaxe
FWFORMVIEW():AddGrid(<cViewID >, <oStruct >, [ cSubModelID ], <uParam4 >, [ bGotFocus ])-> NIL

Descrição
Adiciona ao view um formulário do tipo FWFormGrid.
Nesse formulário o usuário poderá editar N registros por vez.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cViewID Caracteres ID do formulário. Esse ID será utilizado em diversos momentos na criação da view. X
oStruct Objeto Objeto do tipo FWFormViewStruct a ser usado no formulário. X
cSubModelID Caracteres ID do submodelo do tipo FormField do model ao qual o formulário se relaciona. ""
uParam4 Qualquer Compatibilidade. X
bGotFocus Bloco de Código Bloco de código invocado no momento que o grid ganha o foco. O bloco não recebe
parametro e nem precisa retornar algum valor.
NIL
 

Observações

Pode-se usar o mesmo ID do submodelo para o formulário, quando isso é feito não é
necessário passar o terceiro parametro.
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 também

FWFormViewStruct
Função FWFormStruct

AddTreeGrid

Sintaxe
FWFORMVIEW():AddTreeGrid(<cID >, <aInfos >, <cIdDetail >)-> NIL

Descrição
Adiciona um formulário do tipo Tree baseado em submodelos do tipo FormGrid que estejam no model,
transformando o grid em tree.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cID Caracteres ID do tree. Esse ID será utilizado em diversos momentos na criação da view. X
aInfos Array Array com as informações dos submodelos que devem aparecer no tree, no formato abaixo:
[n] array
[n][1] ExpC : ID do SubModelo
[n][2] ExpA: Array unidimensional com os IDs dos campos que devem aparecer no tree
[n][3] ExpO: Objeto do tipo FWFormViewStruct com a Estruturas de Dados
X
cIdDetail Caracteres ID do formulário de detalhes dos itens do Tree.

X
 

Exemplo

Static Function ViewDef()
Local aTreeInfo:={}
// Cria a estrutura a ser usada na View
Local oStruZA3 := FWFormStruct( 2, 'ZA3' )
Local oStruZA4 := FWFormStruct( 2, 'ZA4' )
Local oStruZA5 := FWFormStruct( 2, 'ZA5' )
// Cria um objeto de Modelo de Dados baseado no ModelDef do fonte informado
Local oModel := FWLoadModel( 'COMP023_MVC' )
Local oView

// Remove campos da estrutura
oStruZA4:RemoveField( 'ZA4_ALBUM' )
oStruZA5:RemoveField( 'ZA5_ALBUM' )
oStruZA5:RemoveField( 'ZA5_MUSICA' )

// Cria o objeto de View
oView := FWFormView():New()

// Define qual o Modelo de dados será utilizado
oView:SetModel( oModel )

//Adiciona no nosso View um controle do tipo FormFields
oView:AddField( 'VIEW_ZA3', oStruZA3, 'ZA3MASTER' )

// Cria a estrutura das grids em formato de árvore
aAdd( aTreeInfo, { "ZA4DETAIL", { "ZA4_MUSICA", "ZA4_TITULO" }, oStruZA4 } )
aAdd( aTreeInfo, { "ZA5DETAIL", { "ZA5_INTER" } , oStruZA5 } )

oView:AddTreeGrid( "TREE", aTreeInfo, "DETAIL_TREE" )

// Criar "box" horizontal para receber algum elemento da view
oView:CreateHorizontalBox( 'EMCIMA' , 20 )
oView:CreateHorizontalBox( 'EMBAIXO', 80 )

// Criar "box" vertical para receber algum elemento da view
oView:CreateVerticalBox( 'EMBAIXOESQ', 30, 'EMBAIXO' )
oView:CreateVerticalBox( 'EMBAIXODIR', 70, 'EMBAIXO' )

// Relaciona o ID da View com o "box" para exibicao
oView:SetOwnerView( 'VIEW_ZA3' , 'EMCIMA' )
oView:SetOwnerView( 'TREE' , 'EMBAIXOESQ' )
oView:SetOwnerView( 'DETAIL_TREE', 'EMBAIXODIR' )

Return oView

Veja também

FWFormViewStruct
Função FWFormStruct

GetViewObj

Sintaxe
FWFORMVIEW():GetViewObj(<cFormModelID >)-> oObjeto

Descrição
Retorna um Array com informações do formulario procurado.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cFormModelID Caracteres Representa o ID X
 

Retorno
oObjeto Objeto que pode ser um FWFormView e FWFormGrid ou FWOtherObject

GetListFields

Sintaxe
FWFORMVIEW():GetListFields()-> aRetorno

Descrição
Retorna a lista de campos que estão presente no View


Retorno
aRetorno Array na seguinte estrutura
            [n]
            [n][1] ExpC: Id do formulário
            [n][2] ExpC: Id do campo
            [n][3] ExpC: Picture
            [n][4] ExpA: Array com as opções de ComboBox
            [n][5] ExpL :Visual

SetOwnerView

Sintaxe
FWFORMVIEW():SetOwnerView(<cViewID >, [ cIDBox ])-> NIL

Descrição
Relaciona um formulário ou uma pasta com um box visual.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cViewID Caracteres ID do formulário (definido pelo metodo addField/addGrid/AddTreeGrid). X
cIDBox Caracteres ID do Box que onde será encaixado o componente (definido pelo metodo CreateHorizontalBox/CreateVerticalBox).
 

ClassName

Sintaxe
FWFORMVIEW():ClassName()-> cClassName

Descrição
Retorna o nome da classe (FWFORMVIEW)


Retorno
cClassName Nome da classe

CreateFolder

Sintaxe
FWFORMVIEW():CreateFolder(<cIDFolder >, <cIDOwner >)-> NIL

Descrição
Cria uma pasta dentro de um box. Esse método cria somente o espaço onde
será possível criar as abas da pasta, ele não cria as abas, para cria-las veja
o método AddSheet.

Cria uma Folder num Box especifico, ou Adiciona uma folder ao um FormField existente.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDFolder Caracteres ID da Folder a ser criada X
cIDOwner Caracteres Id do Owner. Pode ser um box ou um formulário do tipo FormField que
ja contenha folders(via estrutura,Ex. Dic). No segundo caso não será criada
outra pasta, as abas adicionadas a pasta serão colocadas dentro do FormField, ao lado
das abas já existentes da estrutura de dados.
"" X
 

addSheet

Sintaxe
FWFORMVIEW():addSheet(<cIDFolder >, <cIDSheet >, <cTitulo >, <bAction >)-> NIL

Descrição
Adiciona uma aba dentro de uma folder.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDFolder Caracteres ID do folder X
cIDSheet Caracteres ID para a Aba X
cTitulo Caracteres Titulo da Aba X
bAction Bloco de Código Bloco de codigo acionado quando a Aba for selecionada, não recebe nenhum parametro e nem deve retornar valor.
X
 

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

Descrição
Seta o Owner (Dialog principal) onde a view deve ser criada.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
oOwner Objeto Objeto do tipo Dialog(tDialog, tWindow, tPanel) que será pai dos objetos graficos. X
lCloseOnOK Lógico Se verdadeiro determina que ao clicar em OK na ControlBar(se ela for usada) ira fechar o Owner.
.F.
 

Observações

Quando utilizamos o FWBrowse na rotina, não é necessário implementar a passagem de Owner, pois é feita
pelo FWBrowse.

GetValue

Sintaxe
FWFORMVIEW():GetValue(<cIDSubModel >, <cFieldID >, <nLine >)-> xValue

Descrição
Retorna o valor de um determinado campo.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDSubModel Caracteres ID do submodelo ou então do formulário (somente se os dois forem iguais) X
cFieldID Caracteres ID do campo X
nLine Numérico Número da Linha(caso o submodelo seja um Grid)
X
 

Retorno
xValue Valor do Campo em questão.

CanSetValue

Sintaxe
FWFORMVIEW():CanSetValue(<cIDSubModel >, <cIdField >)-> lRet

Descrição
Retorna se um determinado campo pode ter seu valor alterado.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDSubModel Caracteres ID do submodelo ou então do formulário (somente se os dois forem iguais) X
cIdField Caracteres ID do campo
X
 

Retorno
lRet Set verdadeiro o campo pode ser alterado.

Activate

Sintaxe
FWFORMVIEW():Activate()-> NIL

Descrição
Inicializa o View. Chama em cascata todos os Activates dos formulários, containers e model que estiverem nele.
Esse método deve ser usado quando o componente de view já está inteiramente configurado e o model
relacionado não pode estar ativo.


Observações

Cuidado ao usa-lo, pois em loop pode ocorrer perda de peformace.

DeActivate

Sintaxe
FWFORMVIEW():DeActivate()-> NIL

Descrição
Desativa os formulários, containers e model, limpando todos os dados
dos formulários gráficos e dos submodelos e também matando todos os
componentes gráficos.


setOperation

Sintaxe
FWFORMVIEW():setOperation(<nOpe >)-> NIL

Descrição
Informa qual é o modo de operação para o View.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
nOpe Numérico Número da operação, podendo ser:
1 - Visualização
3 - Inserção
4 - Atualização
5 - Exclusão
9 - Cópia
X
 

Observações

O setOperation vale para todos os Views. Não é possível setar cada Field/Grid em uma operação diferente.

EnableControlBar

Sintaxe
FWFORMVIEW():EnableControlBar(<lSet >)-> NIL

Descrição
Habilita o uso do ControlBar(Antiga EnchoiceBar)


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
lSet Lógico Se verdadeiro habilita o controlBar.
X
 

ButtonOkAction

Sintaxe
FWFORMVIEW():ButtonOkAction(<lIsOwnerDlg >)-> NIL

Descrição
Executação a ação que estiver programada para o botão OK.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
lIsOwnerDlg Lógico Se verdadeiro diz que a o owner do view é uma Dialog.
X
 

ButtonCancelAction

Sintaxe
FWFORMVIEW():ButtonCancelAction()-> NIL

Descrição
Executa ação programada para o botão cancelar.


createHorizontalBox

Sintaxe
FWFORMVIEW():createHorizontalBox(<cID >, <nPercHeight >, <cIdOwner >, <lFixPixel >, <cIDFolder >, <cIDSheet >)-> NIL

Descrição
Cria um box horizontal dentro do container do view. Ele é necessário para dividir a tela em diversas partes.
Um box horizontal somente pode ser criado dentro de um box vertical ou então no painel principal da view.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cID Caracteres ID do Box a ser utilizado. X
nPercHeight Numérico Valor da Altura do box( caso o lFixPixel seja verdadeiro é a quantidade de pixel exato). X
cIdOwner Caracteres ID do Box Vertical pai. Podemos fazer diversas criações uma dentro da outra. X
lFixPixel Lógico Determina que o valor passado no parametro nPercHeight é na verdade a quantidade de pixel a ser usada. X
cIDFolder Caracteres ID da folder onde queremos criar o box. Esse parametro deve ser passado sempre que o box for criado
dentro de uma sheet e, se passado esse valor, é necessário informar o parametro cIDSheet.
NIL X
cIDSheet Caracteres ID da Sheet onde queremos criar o box, esse parametro deve ser passado sempre que o box for criado
dentro de uma sheet.
X
 

createVerticalBox

Sintaxe
FWFORMVIEW():createVerticalBox(<cID >, <nPercHeight >, <cIdOwner >, <lFixPixel >, <cIDFolder >, <cIDSheet >)-> NIL

Descrição
Cria um box vertical dentro do container do view. Ele é necessário para dividir a tela em diversas partes.
Um box vertical somente pode ser criado dentro de um box horizontal.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cID Caracteres ID do Box a ser utilizado. X
nPercHeight Numérico Valor da Altura do box( caso o lFixPixel seja verdadeiro é a quantidade de pixel exato). X
cIdOwner Caracteres ID do Box Horizontal pai. Podemos fazer diversas criações uma dentro da outra. X
lFixPixel Lógico Determina que o valor passado no parametro nPercHeight é na verdade a quantidade de pixel a ser usada. X
cIDFolder Caracteres ID da folder onde queremos criar o box. Esse parametro deve ser passado sempre que o box for criado
dentro de uma sheet e, se passado esse valor, é necessário informar o parametro cIDSheet.
NIL X
cIDSheet Caracteres ID da Sheet onde queremos criar o box, esse parametro deve ser passado sempre que o box for criado
dentro de uma sheet.
X
 

addIncrementField

Sintaxe
FWFORMVIEW():addIncrementField(<cIDView >, <cField >)-> NIL

Descrição
Adiciona um campo para ser AutoIncremental em um FormGrid.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres Id do formulário onde o campo está, necessario ser um FormGrid. X
cField Caracteres Id do Campo que será autoIncremental
X
 

GetViewStruct

Sintaxe
FWFORMVIEW():GetViewStruct(<cID >)-> oFormViewStruct

Descrição
Recupera o objeto com a estrutura de dados de um formulário.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cID Caracteres ID do formulário que se deseja recuperar a estrutura.
X
 

Retorno
oFormViewStruct Objeto com a estrutura de dados.

GetModel

Sintaxe
FWFORMVIEW():GetModel([ cIDSubModel ])-> oRetorno

Descrição
Fornece um objeto de submodelo do Model.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDSubModel Caracteres ID do submodelo ou então do formulário (somente se os dois forem iguais).
 

Retorno
oRetorno Objeto do tipo FWFormFieldsModel ou FWFormGridModel.

SetDescription

Sintaxe
FWFORMVIEW():SetDescription(<cDescription >)-> NIL

Descrição
Atribui um texto explicativo sobre o objetivo da view.
O objetivo é mostrado em diversos operações, tais como web services,
relatórios e schemas (xsd).


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cDescription Caracteres Descrição do objetivo da view
X
 

GetDescription

Sintaxe
FWFORMVIEW():GetDescription()-> cDescription

Descrição
Fornece um texto com a descrição do objetivo do View.


Retorno
cDescription Descrição do objetivo do view.

SetNoInsertLine

Sintaxe
FWFORMVIEW():SetNoInsertLine(<cIDView >)-> NIL

Descrição
Especifica que o formulário do tipo grid não pode receber inserção de linha.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres ID do formulário (grid)
X
 

SetNoUpdateLine

Sintaxe
FWFORMVIEW():SetNoUpdateLine(<cIDView >)-> NIL

Descrição
Especifica que o formulário do tipo grid não pode receber alteração nas linha.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres ID do formulário (grid)
X
 

SetNoDeleteLine

Sintaxe
FWFORMVIEW():SetNoDeleteLine(<cIDView >)-> NIL

Descrição
Especifica que o formulário do tipo grid não pode receber exclusão de linha.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres ID do formulário (grid)
X
 

CanInsertLine

Sintaxe
FWFORMVIEW():CanInsertLine(<cIDView >)-> lInsertLine

Descrição
Informa se o grid aceita a inserção de novas linhas.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres ID do formulário (grid)
X
 

Retorno
lInsertLine Se verdadeiro a inclusão de linhas é permitida.

CanUpdateLine

Sintaxe
FWFORMVIEW():CanUpdateLine(<cIDView >)-> lUpdateLine

Descrição
Informa se o grid aceita a manutenção nas linhas.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres ID do formulário (grid)
X
 

Retorno
lUpdateLine Se verdadeiro a manutenção é permitida.

CanDeleteLine

Sintaxe
FWFORMVIEW():CanDeleteLine(<cIDView >)-> lDeleteLine

Descrição
Informa se o grid aceita exclusão nas linhas.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres ID do formulário (grid)
X
 

Retorno
lDeleteLine Se verdadeiro a exclusão é permitida.

getWhenFields

Sintaxe
FWFORMVIEW():getWhenFields(<cIDSubModel >)-> aFields

Descrição
Retorna os campos que precisam ser avaliados no when. Esse método somente
pode ser usado para analisar submodelos do tipo formField.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDSubModel Caracteres ID do submodelo ou então do formulário (somente se os dois forem iguais)
X
 

Retorno
aFields Array unidimensional com o ID dos campos

addUserButton

Sintaxe
FWFORMVIEW():addUserButton(<cTitle >, <cResource >, <bBloco >, [ cToolTip ], [ nShortCut ], [ aOptions ])-> NIL

Descrição
Adiciona botões do desenvolvedor na barra de ferramentas do formulario.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cTitle Caracteres Titulo do Botao X
cResource Caracteres Nome do resource compilado no RPO que será a imagem do botao. X
bBloco Bloco de Código Bloco de codigo que será executado, esse bloco recebe o objeto oView(FWFormView) como parametro. X
cToolTip Caracteres Comentário do botão CTITLE
nShortCut Numérico Codigo da Tecla para criação de Tecla de Atalho
aOptions Array Array unidimensional com as operações(MODEL_OPERATION_VIEW,MODEL_OPERATION_INSERT ,MODEL_OPERATION_UPDATE,MODEL_OPERATION_DELETE)
que o botao ira ser mostrado, caso o parametro nao seja informado, irá mostrar em todos.
{MODEL_OPERATION_VIEW,MODEL_OPERATION_INSERT ,MODEL_OPERATION_UPDATE,MODEL_OPERATION_DELETE}
 

Exemplo

   oView := FWFormView()
   bBlocoMagic := {|oView| Myfunction(oView)}
   oView:AddUserBotton("Texto abaixo do botão","MAGIC_BMP",bBlocoMagic,"Comentário do botão")

Refresh

Sintaxe
FWFORMVIEW():Refresh([ cViewID ])-> NIL

Descrição
Executa o refresh dos componentes Visuais.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cViewID Caracteres ID do formulário. Se o parametro não for passado, o refresh
será executado em todos os componentes da view.
''
 

GetUseControlBar

Sintaxe
FWFORMVIEW():GetUseControlBar()-> lUseControlBar

Descrição
Verifica se o uso do ControlBar(Antiga EnchoiceBar) está habilitado.


Retorno
lUseControlBar Se verdadeiro o uso está habilitado.

SetCloseOnOk

Sintaxe
FWFORMVIEW():SetCloseOnOk(<bBlock >)-> NIL

Descrição
Metodo que seta um bloco de código para verificar se a janela deve ou não
ser fechada após a execução do botão OK. Se o view estiver valido, o
bloco de código é invocado e recebe como parametro o View. O bloco deve
retornar verdadeiro para Fechar a janela ou falso para manter ela aberta.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
bBlock Bloco de Código Bloco de Codigo a ser executado
X
 

SetAfterOkButton

Sintaxe
FWFORMVIEW():SetAfterOkButton(<bBlock >)-> NIL

Descrição
Metodo que seta um bloco de código que será chamado no final da execução
do botão OK. O bloco recebe como parametro o objeto de View e não
precisa retornar nenhum valor.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
bBlock Bloco de Código Bloco de Codigo a ser executado.
X
 

SetViewCanActivate

Sintaxe
FWFORMVIEW():SetViewCanActivate(<bBlock >)-> NIL

Descrição
Metodo que seta um Code-block para ser avaliado antes de se ativar o View,
caso precisamos avaliar, ou questionar o usuario sobre algo.
No momento de chamada desse bloco o Model e o View não estão ativos,
portanto não é possivel recuperar dados.
O bloco recebe como parametro o objeto oView e deve retornar verdadeiro
para permitir a ativação. Se retornar falso a janela será fechada.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
bBlock Bloco de Código Bloco de Codigo a ser executado
X
 

ShowLastError

Sintaxe
FWFORMVIEW():ShowLastError()-> NIL

Descrição
Mostra o ultimo erro ocorrido.


GetMaxLines

Sintaxe
FWFORMVIEW():GetMaxLines(<cIDView >)-> nMax

Descrição
Retorna quantas linhas o um formulário do tipo grid aceita.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres Id do formulário a ser analisado.
X
 

Retorno
nMax Quantidade maxima de linhas permitidas.

SetVldActivate

Sintaxe
FWFORMVIEW():SetVldActivate()-> NIL

Descrição


Obsoleto
Método em desuso. Use o método SetViewCanActivate.

SetAfterViewActivate

Sintaxe
FWFORMVIEW():SetAfterViewActivate(<bBloco >)-> NIL

Descrição
Seta um bloco de código que será chamado depois do Activate do View. Esse bloco
será apenas executado, o retorno dele não será observado.
O bloco de código recebe como parametro o objeto View.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
bBloco Bloco de Código Bloco de código a ser chamado. X
 

Exemplo

   bBloco := {|oView| MinhaFunc(oView)}
   oView:SetAfterViewActivate(bBloco)
   

GetbuttonWasPressed

Sintaxe
FWFORMVIEW():GetbuttonWasPressed()-> nButton

Descrição
Retorna qual botão 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

Descrição
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

Descrição
Adiciona um painel onde é possível adicionar componentes que não sejam MVC.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cViewID Caracteres ID do painel otherObject X
bActivate Bloco de Código Bloco chamado no Activate do painel. Deve ser usado para criar os componentes
do painel. O bloco recebe como parametro o painel onde serão criados os componentes.
bDeActivate Bloco de Código Bloco chamado no DeActivate do painel. Deve ser usado para matar os objetos
criados no painel. O bloco recebe como parametro o painel onde serão criados os componentes.
bRefresh Bloco de Código Bloco chamado no refresh do painel. O bloco recebe como parametro o painel onde estão os componentes.
X
 

Exemplo

Static Function ViewDef()
// Cria a estrutura a ser usada na View
Local oStruZA1 := FWFormStruct( 2, 'ZA1' )
Local oModel := FWLoadModel( 'COMP021G_MVC' )
Local oView
Local oGrafPizza
Local oGrafBar

oView := FWFormView():New()
oView:SetModel( oModel )

oView:AddField( 'VIEW_ZA1', oStruZA1, 'ZA1MASTER' )
oView:AddOtherObject("OTHER_PIZZA", {|oPanel| GrafPizza(oPanel)})

oView:CreateHorizontalBox( 'SUPERIOR', 53 )
oView:CreateHorizontalBox( 'INFERIOR', 47)

oView:SetOwnerView( 'VIEW_ZA1', 'SUPERIOR' )
oView:SetOwnerView("OTHER_PIZZA",'INFERIOR')

Return oView

GetOperation

Sintaxe
FWFORMVIEW():GetOperation()-> nOperation

Descrição
Retorna a operação que está definida no model.


Retorno
nOperation Indica a operação, sendo:
               1 - View
               3 - Insert
               4 - Update
               5 - Delete
               6 - Only Update

EnableTitleView

Sintaxe
FWFORMVIEW():EnableTitleView(<cViewID >, [ cTitle ])-> NIL

Descrição
Cria um título para um formulário (Somente pode ser usado para grid e field).


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cViewID Caracteres ID do formulário. X
cTitle Caracteres Titulo para o formulário.
OMODEL:GETDESCRIPTION()
 

SetViewProperty

Sintaxe
FWFORMVIEW():SetViewProperty(<cViewID >, <cAction >, <aParam >)-> NIL

Descrição
Seta uma propriedade especifica para um formulário do tipo Grid ou Field.
   

Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cViewID Caracteres ID do formulário. Caso seja passado um * a propriedade será
alterada em todos os formulários. Verifique as
observações para saber quais propriedades aceitam essa opção.
X
cAction Caracteres ID da propriedade. Verifique as observações para visualizar todas
as opções disponíveis.
X
aParam Array Array com os parametros a serem passado para a propriedade. Verifique as
observações para detalhes sobre os parametros em cada item.
X
 

Observações


Lista de propriedades disponíveis:

          --------------------------------------------------------
         |
         | SETLAYOUT
         |    Tipo de formulário: FormField                  
         | Descrição: 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 opções abaixo:
         |                 FF_LAYOUT_VERT_DESCR_TOP - Vertical com descrição acima do get
         |                LAYOUT_VERT_DESCR_LEFT - Vertical com descrição a esquerda
         |                FF_LAYOUT_HORZ_DESCR_TOP - Horizontal com descrição acima do get
         |                FF_LAYOUT_HORZ_DESCR_LEFT - Horizontal com descrição a 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 formulário: FormGrid   
         | Descrição: Divide o box do formGrid, criando abaixo do mesmo
         |          um formulário do tipo formField baseado no grid.
         |   aParam : Deve ser passado um array com a estrutura abaixo,
         |          se o array não for passado o percentual padrão é 50%:
         |          [1] ExpN: Percentual que o detail vai ocupar do box do grid.
         |   Exemplo: oView:SetViewProperty( 'VIEW_ZA2', "ENABLEDGRIDDETAIL", { 20 } )
         |
          --------------------------------------------------------
         |
         | CHANGELINE   
         |   Tipo de formulário: FormGrid
         |   Descrição: Define um bloco de código que será executado na troca de linha do grid.
         |   aParam : Deve ser passado um array com a estrutura abaixo:
         |          [1] ExpB: O bloco recebe como parametro a View e o ID do formulário.
         |   Exemplo: oView:SetViewProperty( 'VIEW_ZA2', "CHANGELINE", {{ |oView, cViewID| ChangeLine(oView, cViewID) }} )
         |
          --------------------------------------------------------
         |
         | SETCOLUMNSEPARATOR
         |   Tipo de formulário: FormField
         |   Descrição: Define a distancia entre as colunas.
         |   aParam : Deve ser passado um array com a estrutura abaixo:
         |          [1] ExpN: Tamanho da distancia, em pixel      
         |   Exemplo: oView:SetViewProperty("ZA1MASTER", "SETCOLUMNSEPARATOR", {40})   
         |
          --------------------------------------------------------
         |
         | ONLYVIEW
         |   Tipo de formulário: FormGrid e FormField
         | Aceita o uso de * no ID.
         |   Descrição: Define que os campos do formulário não permitem edição de dados, são somente para visualização.
         |   aParam : Não possui, não precisa ser passado.
         |   Exemplo: oView:SetViewProperty("ZA1MASTER", "ONLYVIEW")      
         |
          --------------------------------------------------------
         |
         | DISABLELOOKUP
         |   Tipo de formulário: FormGrid e FormField
         | Aceita o uso de * no ID.
         |   Descrição: Define que a consulta padrão dos campos do formulário será desabilitada.
         |   aParam : Não possui, não precisa ser passado.
         |   Exemplo: oView:SetViewProperty("ZA1MASTER", "DISABLELOOKUP")   
         |
          --------------------------------------------------------
         |
         | ENABLENEWGRID
         |   Tipo de formulário: FormGrid
         | Aceita o uso de * no ID.
         |   Descrição: Define que o grid deve usar como interface visual o browse (FWBrowse)
         |   aParam : Não possui, não precisa ser passado.
         |   Exemplo: oView:SetViewProperty("VIEW_ZA2", "ENABLENEWGRID")
         |
          --------------------------------------------------------
         |
         | SIZEMEMO
         |   Tipo de formulário: FormField         
         |   Descrição: 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 formulário: FormGrid habitado com o ENABLENEWGRID
         | Aceita o uso de * no ID.
         |   Descrição: Define se será exibida ou nao a opcao de filtro no grid.
         |   aParam : Deve ser passado um array com a estrutura abaixo,
         |           se o array não for passado, o default é exibir
         |           o filtro no grid:
         |          [1] ExpL: Se Verdadeiro habilita, Se falso desabilita
         |    Exemplo: oView:SetViewProperty("VIEW_ZA2", "GRIDFILTER", {.T.})
         |          
          --------------------------------------------------------
         |
         | GRIDSEEK
         |   Tipo de formulário: FormGrid habitado com o ENABLENEWGRID
         | Aceita o uso de * no ID.
         |   Descrição: Define se será exibida ou nao a opcao de pesquisa no grid.
         |   aParam : Deve ser passado um array com a estrutura abaixo,
         |           se o array não for passado, o default é exibir
         |           a pesquisa no grid:
         |          [1] ExpL: Se Verdadeiro habilita, Se falso desabilita
         |    Exemplo: oView:SetViewProperty("VIEW_ZA2", "GRIDSEEK", {.T.})
         |      
          --------------------------------------------------------
         |
         | GRIDROWHEIGHT
         |   Tipo de formulário: FormGrid habitado com o ENABLENEWGRID
         | Aceita o uso de * no ID.
         |   Descrição: Define a altura da linha do grid.
         |   aParam : Deve ser passado um array com a estrutura abaixo:
         |          [1] ExpN: Altura da linha
         |    Exemplo: oView:SetViewProperty("VIEW_ZA2", "GRIDROWHEIGHT", {40})   
         |
          --------------------------------------------------------
         |
         | GRIDVSCROLL
         |   Tipo de formulário: FormGrid habitado com o ENABLENEWGRID
         | Aceita o uso de * no ID.
         |   Descrição: Define se será exibida ou nao o scroll vertical do grid
         |   aParam : Deve ser passado um array com a estrutura abaixo,
         |           se o array não for passado, o default é exibir
         |           o scroll no grid:
         |          [1] ExpL: Se Verdadeiro exibe, Se falso não exibe
         |    Exemplo: oView:SetViewProperty("VIEW_ZA2", "GRIDVSCROLL", {.F.})
         |
          --------------------------------------------------------
         |
         | GRIDCANGOTFOCUS
         |   Tipo de formulário: FormGrid habitado com o ENABLENEWGRID
         | Aceita o uso de * no ID.
         |   Descrição: Define se grid pode receber foco.
         |   aParam : Deve ser passado um array com a estrutura abaixo,
         |           se o array não for passado, o default é permitir
         |           o foco no grid:
         |          [1] ExpL: Se Verdadeiro habilita, Se falso desabilita
         |   Exemplo: oView:SetViewProperty("VIEW_ZA2", "GRIDCANGOTFOCUS", {.F.})
         |         
         --------------------------------------------------------
         |         
         | SETCSS
         |   Tipo de formulário: FormGrid habitado com o ENABLENEWGRID
         | Aceita o uso de * no ID.
         |   Descrição: Define um CSS para o grid.
         |   aParam : Deve ser passado um array com a estrutura abaixo:
         |          [1] ExpC: CSS para o componente
         |   Exemplo: oView:SetViewProperty("VIEW_ZA2", "SETCSS", {cCSS})         
         |
         --------------------------------------------------------
         --------------------------------------------------------
         |
         | GRIDDOUBLECLICK
         |   Tipo de formulário: FormGrid habitado com o ENABLENEWGRID
         | Aceita o uso de * no ID.
         |   Descrição: Define uma acao no duplo clique do formulario
         |   aParam : Deve ser passado um array com a estrutura abaixo,
         |           se o array não for passado
         |          [1] ExpB: Bloco de codigo a ser executado da acao
         |          do clie
         |    Exemplo: oView:SetViewProperty("VIEW_ZA2", "GRIDDLBCLICK", {{|oFormulario,cFieldName,nLineGrid,nLineModel| MyDoubleClick(oFormulario,cFieldName,nLineGrid,nLineModel)}})
         | Obs: A funcao vai receber 4 parametros:
         |      oFormulario - Objeto do Tipo FWFormGrid
         |      cFieldName    - Nome do campo do model
         |      nLineGrid    - Linha do selecionada do Grid, pode não corresponder a do modelo, caso o mesmo
         |                esteja filtrado
         |      nLineModel - Linha Correspondente no Model
         | A funcao deve retornar .T. para executar a edicao de celular o .F. caso não queira editar          
          --------------------------------------------------------
         |         
         | SETCSSTITLE
         |   Tipo de formulário: FormGrid habitado com o ENABLENEWGRID
         | Aceita o uso de * no ID.
         |   Descrição: Define um CSS para o titulo.
         |   aParam : Deve ser passado um array com a estrutura abaixo:
         |          [1] ExpC: CSS para o componente
         |   Exemplo: oView:SetViewProperty("VIEW_ZA2", "SETCSS", {cCSS})         
         |
         --------------------------------------------------------
         

SetFieldProperty

Sintaxe
FWFORMVIEW():SetFieldProperty(<cViewID >, <cFieldID >, <cAction >, <aparam >)-> NIL

Descrição
Seta uma propriedade especifica em um campo do formulário, em tempo de execução.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cViewID Caracteres ID do formulário. X
cFieldID Caracteres ID do campo a se alterar. X
cAction Caracteres ID da propriedade. Verifique as observações para maiores detalhes. X
aparam Array com os parametros a serem passado para a propriedade. Verifique as
observações para detalhes sobre os parametros em cada item.
X
 

Observações


Lista de propriedades disponíveis:

         --------------------------------------------------------
         |         
         | COMBOVALUES
         |   Descrição: Altera as opções de combo do campo.
         |   aParam : Deve ser passado um array unidimensional com os novos valores.
         |   Exemplo: oView:SetFieldProperty("ZA1MASTER","BUTTON_0","COMBOVALUES",{aValues})         
         |
         --------------------------------------------------------

SetOnlyView

Sintaxe
FWFORMVIEW():SetOnlyView(<cIDView >)-> NIL

Descrição
Define que o formulário e o submodelo não podem ter alteração nos campos.
Esse método difere do setviewproperty "ONLYVIEW", pois o setviewproperty
realiza a alteração apenas no formulário, deixando o submodelo ainda editavel.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres ID do formulário
X
 

LineShift

Sintaxe
FWFORMVIEW():LineShift(<cIDView >, [ nLineFrom ], [ nLineTo ])-> NIL

Descrição
Realiza uma troca de dados entre duas linhas. Os dados da linha origem
serão movidos para a linha destino e os dados da linha destino serão
movidos para a linha origem.
Se a linha atualmente posicionada é a origem ou o destino, o número
da linha posicionada irá ser mudado para o numero da origem ou do
destino, porque os dados são trocados porém a linha ainda precisa
ser validada.
O método somente pode ser usado para formulários do tipo grid.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres ID do formulário do grid. X
nLineFrom Numérico Numero da linha de origem ::GETLINE(CIDVIEW)
nLineTo Numérico Numero da linha de destino
::GETLINE(CIDVIEW)
 

IsActive

Sintaxe
FWFORMVIEW():IsActive()-> lActivate

Descrição
Retorna se o view esta ativo.


Retorno
lActivate Se verdadeiro está ativo.

GetBrowseOpc

Sintaxe
FWFORMVIEW():GetBrowseOpc()-> nOpc

Descrição
Retorna a opcao selecionada via Browse


Retorno
nOpc Numero da opção

SetViewAction

Sintaxe
FWFORMVIEW():SetViewAction(<cActionlID >, <bAction >)-> NIL

Descrição
Define uma acao a ser executada em determinados pontos da View.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cActionlID Caracteres ID do ponto a acao sera executada que podem ser
REFRESH - Executa a ação no Refresh da View
BUTTONOK - Executa a ação no acionamento do botão confirmar da View
BUTTONCANCEL - Executa a ação no acionamento do botão cancelar da View
DELETELINE - Executa a ação na deleção da linha da grid
UNDELETELINE - Executa a ação na restauração da linha da grid
X
bAction Bloco de Código Bloco com a acao a ser executada. Recebe como parametro:
REFRESH - Recebe como parameto o objeto de View
BUTTONOK - Recebe como parameto o objeto de View
BUTTONCANCEL - Recebe como parameto o objeto de View
DELETELINE - Recebe como parameto o objeto de View, Id do Submodelo e Numero da linha
UNDELETELINE - Recebe como parameto o objeto de View, Id do Submodelo e Numero da linha
X
 

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

Descrição
Define uma acao a ser executada apos a validacao do campo.
Como o formulário não é passado, se existir mais de um formulário com o mesmo
campo, o campo verificado será o primeiro que for encontrado.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDField Caracteres ID campo, pode ser um campo de qualquer formulário da view. X
bAction Bloco de Código Bloco com a acao a ser executada. Recebe como parametro o objeto de View,
o ID do formulário, o ID do campo e o conteudo do campo.
X
 

Exemplo

oView:SetFieldAction( 'A1_COD', { |oView, cIDView, cField, xValue| SuaFuncao( oView, cIDView, cField, xValue ) } )

HasField

Sintaxe
FWFORMVIEW():HasField(<cIDView >, <cIdField >)-> Se

Descrição
Informa de um determinado campo existe na estrutura de dados de um formulário.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIDView Caracteres Id do formulário X
cIdField Caracteres Id do campo
X
 

Retorno
Se verdadeiro, o campo existe na estrutura de dados.

Exemplo

If oView:HasField( "VIEW_SA1", "A1_COD" )
...
EndIf

GetCurrentSelect

Sintaxe
FWFORMVIEW():GetCurrentSelect()-> Array

Descrição
Obtem o ID do último campo que obteve foco na view.


Retorno
Array com a estrutura abaixo:
            [1] ExpC: ID do formulário
            [2] ExpC: ID do campo

ShowHelpInView

Sintaxe
FWFORMVIEW():ShowHelpInView()-> NIL

Descrição
Uso interno.

GetFolderActive

Sintaxe
FWFORMVIEW():GetFolderActive(<cID >, <nType >)-> aInfo

Descrição
Obtem o Número e o Título da aba selecionada em uma Pasta.
No View existem dois tipos de pastas, as pastas criadas no view através
do método createFolder e as pastas provenientes da estrutura de dados que
existem dentro de um formulário do tipo FormField.
O método analisa os dois tipos de pastas, de acordo com o valor informado
no segundo parametro.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cID Caracteres ID do formulário do tipo FormField ou ID da Folder X
nType Numérico Tipo de Folder [ 1 - Estrutura de Dados(FormField) | 2 - View(Método CreateFolder) ]
X
 

Retorno
aInfo Array com a estrutura abaixo:
[1] ExpN: Número da aba
[2] ExpC: Título da aba

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

Static Function Folder3(oView)
Local aInfo

   aInfo := oView:GetFolderActive("FORM1", 1)
   Alert( "FORM1 - Aba Ativa: " + aInfo[2] )

   aInfo := oView:GetFolderActive("FOLDER", 2)
   Alert( "FOLDER - Aba Ativa: "   + aInfo[2] )
Return

Veja também
SelectFolder

SelectFolder

Sintaxe
FWFORMVIEW():SelectFolder(<cID >, <xFolder >, <nType >)-> NIL

Descrição
Seleciona e exibe a aba de uma pasta. Pode ser usado tanto para as
pastas provientes da estrutura de dados que existem dentro de um
formulário do tipo FormField quanto para as pastas criadas no view
através do método CreateFolder.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cID Caracteres ID do formulário do tipo FormField ou ID da Folder X
xFolder Qualquer Número da Aba ou Título dela X
nType Numérico Tipo de Folder [ 1 - Estrutura de Dados(FormField) | 2 - View(Método CreateFolder) ]
X
 

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

Static Function Folder3(oView)
Local aInfo

   aInfo := oView:GetFolderActive("FORM1", 1)
   Alert( "FORM1 - Aba Ativa: " + aInfo[2] )

   aInfo := oView:GetFolderActive("FOLDER", 2)
   Alert( "FOLDER - Aba Ativa: "   + aInfo[2] )
Return

Veja também
GetFolderActive

HideFolder

Sintaxe
FWFORMVIEW():HideFolder(<cID >, <xFolder >, <nType >)-> NIL

Descrição
Oculta uma aba de uma pasta. Pode ser usado tanto para as
pastas provientes da estrutura de dados que existem dentro de um
formulário do tipo FormField quanto para as pastas criadas no view
através do método CreateFolder.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cID Caracteres ID do formulário do tipo FormField ou ID da Folder X
xFolder Qualquer Número da Aba ou Título dela X
nType Numérico Tipo de Folder [ 1 - Estrutura de Dados(FormField) | 2 - View(Método CreateFolder) ]
X
 

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( 'Hide Folder', 'TESTE FOLDER', {|oView| HideFolder(oView) } )

Return oView

Static Function HideFolder(oView)   
   oView:HideFolder("FOLDER","Aba 1",2)
   oView:HideFolder("FORM1",1,1)
Return

DisableGoBackFolders

Sintaxe
FWFORMVIEW():DisableGoBackFolders()-> NIL

Descrição
Desabilita o retorno dos folders do view para a primeira aba após
a inclusão de registros.


SetProgressBar

Sintaxe
FWFORMVIEW():SetProgressBar(<lValue >)-> NIL

Descrição
Ativa ou desativa o uso da MsgRun na carga do formulario,
utilizar em rotina onde a carga pode demorar muito.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
lValue Lógico Se verdadeiro, habilita o uso.
X
 

GetProgressBar

Sintaxe
FWFORMVIEW():GetProgressBar()-> lValue

Descrição
Informa se o view está configurado para usar a MsgRun na carga
dos dados dos formulário.s


Retorno
lValue Se verdadeiro, o uso está habilitado.

SetTimer

Sintaxe
FWFORMVIEW():SetTimer(<nInterval >, <bAction >)-> NIL

Descrição
Define um timer para a janela do view.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
nInterval Numérico Indica o intervalo, em milissegundos , para disparar o bloco de código do Timer. X
bAction Bloco de Código Indica o bloco de código que será executado a cada intervalo definido.
X
 

GetXMLLayout

Sintaxe
FWFORMVIEW():GetXMLLayout([ lHtm ], <lEmbeded >, [ lDocType ], [ cInitJs ], [ cDirCss ], [ cDirJs ], [ lImgEmbedded ], [ lLoad ], [ lLookUp ])-> aRet

Descrição
Retorna uma string no formato XSLT com base nas caracteristicas da view.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
lHtm Lógico Indica se o layout deve ser gerado como HTML .F.
lEmbeded Lógico Indica se o javascript e css serao embutidos no layout X
lDocType Lógico 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 diretorio do css para inserir no HTML ""
cDirJs Caracteres Indica o diretorio do javascript para inserir no HTML ""
lImgEmbedded Lógico Indica se as imagens do css serao embutidos .T.
lLoad Lógico Indica se cria os inputs com os valores do model .F.
lLookUp Lógico Indica se cria opção de lookup
.F.
 

Retorno
aRet Array com o(s) arquivo(s) do layout (html, js e css dependendo dos parametros)

GetModelsIds

Sintaxe
FWFORMVIEW():GetModelsIds()-> aRetorno

Descrição
Retorna a lista de submodelos relacionados no view.


Retorno
aRetorno Array unidimensional com os IDs dos submodelos.

Destroy

Sintaxe
FWFORMVIEW():Destroy()-> NIL

Descrição
Remove todas referencias circulares dos objtos criados na view.
O método somente pode ser chamado depois do deactivate.
Só é necessário o uso desse método se o view foi instanciado na mão,
se o view é usado com FWExecView ou então com o Browse o método destroy
é chamado internamente.


SetVldFolder

Sintaxe
FWFORMVIEW():SetVldFolder(<bVldFolder >)-> NIL

Descrição
Executa ação quando uma aba é selecionada em qualquer folder da View


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
bVldFolder Bloco de Código Bloco a ser executado quando uma aba é selecionada, deve retornar um booleano.
Caso o bloco retorne falso, não será alterada a aba que está selecionada.
O bloco irá receber 3 parâmetros:
cFolderID : ID do folder(quando for criado pelo desenvolvedor através do método AddFolder)
ou ID formulário do tipo Formfield(quando a pasta for proveniente da estrutura de dados)
nOldSheet : Sheet que estava selecionada
nSelSheet : Sheet que o usuário clicou
X
 

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',, 'Não é permitido selecionar a aba 2 se você estiver na aba 1.', 1, 0 )
      lRet := .F.
   EndIf
   
Return lRet

SetContinuousForm

Sintaxe
FWFORMVIEW():SetContinuousForm([ lContinuous ])-> NIL

Descrição
Indica que os formulários da view devem ser continuos. Em um formulário continuo
o scroll é geral e não especifico em cada formulário, simulando o
comportamento de uma página.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
lContinuous Lógico Se verdadeiro, a view é continua.
.T.
 

setUpdateMessage

Sintaxe
FWFORMVIEW():setUpdateMessage(<cTitle >, <cDesc >)-> NIL

Descrição
Define uma mensagem a ser mostrada para o usuário quando uma operação
de atualização for concluida. Pode-se usar #nomeDoCampo caso seja
necessario mostrar na mensagem alguma informação do registro que foi
atualizado.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cTitle Caracteres Título da mensagem X
cDesc Caracteres Descricao da mensagem
X
 

setInsertMessage

Sintaxe
FWFORMVIEW():setInsertMessage(<cTitle >, <cDesc >)-> NIL

Descrição
Define uma mensagem a ser mostrada para o usuário quando uma operação
de inclusão for concluida. Pode-se usar #nomeDoCampo caso seja
necessario mostrar na mensagem alguma informação do registro que foi
incluido.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cTitle Caracteres Título da mensagem X
cDesc Caracteres Descricao da mensagem
X
 

setDeleteMessage

Sintaxe
FWFORMVIEW():setDeleteMessage(<cTitle >, <cDesc >)-> NIL

Descrição
Define uma mensagem a ser mostrada para o usuário quando uma operação
de exclusão for acionada. Pode-se usar #nomeDoCampo caso seja
necessario mostrar na mensagem alguma informação do registro.


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cTitle Caracteres Título da mensagem X
cDesc Caracteres Descricao da mensagem
X
 

showUpdateMsg

Sintaxe
FWFORMVIEW():showUpdateMsg(<lUpdateMsg >)-> NIL

Descrição
Desativa mensagem de Update


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
lUpdateMsg Lógico Variavel que define se a mensagem será exibida (.T.) ou não (.F.)
X
 

getSubMldId

Sintaxe
FWFORMVIEW():getSubMldId(<cIdView >)-> NIL

Descrição
Retorna o ID do SubModel


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cIdView Caracteres ID da View
X
 

SetFldHidden

Sintaxe
FWFORMVIEW():SetFldHidden(<cField >)-> NIL

Descrição
Informa que o campo deverá ser type="hidden" na geração da versão HTML


Parâmetros
Nome Tipo Descrição Default Obrigatório Referência
cField Caracteres Campo do struct
X