Páginas filhas
  • FWFormView

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Classe: FWFormView



Pivot Table
id1552321459512_525861285
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ãoP10 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


NomeTipoDescriçãoDefaultObrigatórioReferência
oViewOwnerObjetoObjeto 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


NomeTipoDescriçãoDefaultObrigatórioReferência
lValueLógicoSe 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


NomeTipoDescriçãoDefaultObrigatórioReferência
oObjObjetoObjeto 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cViewIDCaracteresID do formulário. Esse ID será utilizado em diversos momentos na criação da view.
X
oStructObjetoObjeto do tipo FWFormViewStruct a ser usado no formulário
X
cSubModelIDCaracteresID 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 ], [ bLostFocus ])-> 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cViewIDCaracteresID do formulário. Esse ID será utilizado em diversos momentos na criação da view.
X
oStructObjetoObjeto do tipo FWFormViewStruct a ser usado no formulário.
X
cSubModelIDCaracteresID do submodelo do tipo FormField do model ao qual o formulário se relaciona.""

uParam4QualquerCompatibilidade.
X
bGotFocusBloco de CódigoBloco 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

bLostFocusBloco de CódigoBloco de código invocado no momento que o grid perde o foco. O bloco não recebe
parâmetro e nem precisa retornar algum valor. (disponível a partir da lib 20220613)
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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDCaracteresID do tree. Esse ID será utilizado em diversos momentos na criação da view.
X
aInfosArrayArray 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
cIdDetailCaracteresID 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


Observação
A Tree disponibilizada em MVC é um componente simples que foi previsto para utilização em apenas um nível.


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


NomeTipoDescriçãoDefaultObrigatórioReferência
cFormModelIDCaracteresRepresenta 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cViewIDCaracteresID do formulário (definido pelo metodo addField/addGrid/AddTreeGrid).
X
cIDBoxCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDFolderCaracteresID da Folder a ser criada
X
cIDOwnerCaracteresId 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDFolderCaracteresID do folder
X
cIDSheetCaracteresID para a Aba
X
cTituloCaracteresTitulo da Aba
X
bActionBloco de CódigoBloco 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


NomeTipoDescriçãoDefaultObrigatórioReferência
oOwnerObjetoObjeto do tipo Dialog(tDialog, tWindow, tPanel) que será pai dos objetos graficos.
X
lCloseOnOKLógicoSe 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDSubModelCaracteresID do submodelo ou então do formulário (somente se os dois forem iguais)
X
cFieldIDCaracteresID do campo
X
nLineNuméricoNú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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDSubModelCaracteresID do submodelo ou então do formulário (somente se os dois forem iguais)
X
cIdFieldCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
nOpeNuméricoNú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


NomeTipoDescriçãoDefaultObrigatórioReferência
lSetLógicoSe 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


NomeTipoDescriçãoDefaultObrigatórioReferência
lIsOwnerDlgLógicoSe 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDCaracteresID do Box a ser utilizado.
X
nPercHeightNuméricoValor da Altura do box( caso o lFixPixel seja verdadeiro é a quantidade de pixel exato).
X
cIdOwnerCaracteresID do Box Vertical pai. Podemos fazer diversas criações uma dentro da outra.
X
lFixPixelLógicoDetermina que o valor passado no parametro nPercHeight é na verdade a quantidade de pixel a ser usada.
X
cIDFolderCaracteresID 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.
NILX
cIDSheetCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDCaracteresID do Box a ser utilizado.
X
nPercHeightNuméricoValor da Altura do box( caso o lFixPixel seja verdadeiro é a quantidade de pixel exato).
X
cIdOwnerCaracteresID do Box Horizontal pai. Podemos fazer diversas criações uma dentro da outra.
X
lFixPixelLógicoDetermina que o valor passado no parametro nPercHeight é na verdade a quantidade de pixel a ser usada.
X
cIDFolderCaracteresID 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.
NILX
cIDSheetCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresId do formulário onde o campo está, necessario ser um FormGrid.
X
cFieldCaracteresId 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDSubModelCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cDescriptionCaracteresDescriçã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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDSubModelCaracteresID 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 ], [lShowBar])-> NIL

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


Parâmetros


NomeTipoDescriçãoDefaultObrigatórioReferência
cTitleCaracteresTitulo do Botao
X
cResourceCaracteresNome do resource compilado no RPO que será a imagem do botao.
X
bBlocoBloco de CódigoBloco de codigo que será executado, esse bloco recebe o objeto oView(FWFormView) como parametro.
X
cToolTipCaracteresComentário do botãoCTITLE

nShortCutNuméricoCodigo da Tecla para criação de Tecla de Atalho


aOptionsArrayArray 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}

lShowBarLógicoIndica se o botão deverá aparecer na barra, fora do botão Outras Ações, caso haja espaço..F. (falso)


 

Exemplo

   oView := FWFormView()
   bBlocoMagic := {|oView| Myfunction(oView)}
   oView:AddUserButton("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


NomeTipoDescriçãoDefaultObrigatórioReferência
cViewIDCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
bBlockBloco de CódigoBloco 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


NomeTipoDescriçãoDefaultObrigatórioReferência
bBlockBloco de CódigoBloco 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


NomeTipoDescriçãoDefaultObrigatórioReferência
bBlockBloco de CódigoBloco 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresId 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


NomeTipoDescriçãoDefaultObrigatórioReferência
bBlocoBloco de CódigoBloco 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cViewIDCaracteresID do painel otherObject
X
bActivateBloco de CódigoBloco 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.



bDeActivateBloco de CódigoBloco 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.



bRefreshBloco de CódigoBloco 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cViewIDCaracteresID do formulário.
X
cTitleCaracteresTitulo 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cViewIDCaracteresID 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
cActionCaracteresID da propriedade. Verifique as observações para visualizar todas
as opções disponíveis.

X
aParamArrayArray 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}})
         | Observação: Os tamanhos (linha/coluna) informados no SIZEMEMO podem não ser acatados conforme condicionais e cálculos presentes na lib.
         |
          --------------------------------------------------------
         |
         | 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", "GRIDDOUBLECLICK", {{|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})         
         |
       --------------------------------------------------------

         |
         | GRIDNOORDER
         | Tipo de formulário: FormGrid habitado com o ENABLENEWGRID
         | Aceita o uso de * no ID.
         | Descrição: Define se não quer permitir a ordenação do grid
         | aParam : Deve ser passado o ID da propriedade no 2º parametro da SetViewProperty
         | Exemplo: oView:SetViewProperty( "*", "GRIDNOORDER")
         |
       --------------------------------------------------------

--------------------------------------------------------
|
| SETGRIDLINES
| Tipo de formulário: FormGrid habitado com o ENABLENEWGRID
| Aceita o uso de * no ID.
| Descrição: Define quantas linhas do formulário serão visíveis
| aParam : Deve ser passado o número de linhas, o lContinuousForm é incluído automaticamente
| Exemplo: oView:SetViewProperty('FORM_ZL4', 'SETGRIDLINES', {20})
|
--------------------------------------------------------


 

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


NomeTipoDescriçãoDefaultObrigatórioReferência
cViewIDCaracteresID do formulário.
X
cFieldIDCaracteresID do campo a se alterar.
X
cActionCaracteresID da propriedade. Verifique as observações para maiores detalhes.
X
aparamArraycom 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresID 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresID do formulário do grid.
X
nLineFromNuméricoNumero da linha de origem::GETLINE(CIDVIEW)

nLineToNuméricoNumero 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cActionlIDCaracteresID 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
bActionBloco de CódigoBloco 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDFieldCaracteresID campo, pode ser um campo de qualquer formulário da view.
X
bActionBloco de CódigoBloco 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDViewCaracteresId do formulário
X
cIdFieldCaracteresId 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDCaracteresID do formulário do tipo FormField ou ID da Folder
X
nTypeNuméricoTipo 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDCaracteresID do formulário do tipo FormField ou ID da Folder
X
xFolderQualquerNúmero da Aba ou Título dela
X
nTypeNuméricoTipo 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIDCaracteresID do formulário do tipo FormField ou ID da Folder
X
xFolderQualquerNúmero da Aba ou Título dela
X
nTypeNuméricoTipo 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


NomeTipoDescriçãoDefaultObrigatórioReferência
lValueLógicoSe 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


NomeTipoDescriçãoDefaultObrigatórioReferência
nIntervalNuméricoIndica o intervalo, em milissegundos , para disparar o bloco de código do Timer.
X
bActionBloco de CódigoIndica 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


NomeTipoDescriçãoDefaultObrigatórioReferência
lHtmLógicoIndica se o layout deve ser gerado como HTML.F.

lEmbededLógicoIndica se o javascript e css serao embutidos no layout
X
lDocTypeLógicoIndica se gera o HTML com a tag DOCTYPE (enviar falso para o ECM).T.

cInitJsCaracteresJavascript que deve ser executado no load do HTML""

cDirCssCaracteresIndica o diretorio do css para inserir no HTML""

cDirJsCaracteresIndica o diretorio do javascript para inserir no HTML""

lImgEmbeddedLógicoIndica se as imagens do css serao embutidos.T.

lLoadLógicoIndica se cria os inputs com os valores do model.F.

lLookUpLógicoIndica 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


NomeTipoDescriçãoDefaultObrigatórioReferência
bVldFolderBloco de CódigoBloco 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


NomeTipoDescriçãoDefaultObrigatórioReferência
lContinuousLógicoSe 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cTitleCaracteresTítulo da mensagem
X
cDescCaracteresDescricao 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cTitleCaracteresTítulo da mensagem
X
cDescCaracteresDescricao 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cTitleCaracteresTítulo da mensagem
X
cDescCaracteresDescricao da mensagem
X


 
 showUpdateMsg

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

Descrição
Desativa mensagem de Update


Parâmetros


NomeTipoDescriçãoDefaultObrigatórioReferência
lUpdateMsgLógicoVariavel que define se a mensagem será exibida (.T.) ou não (.F.)
X


 
 
 showInsertMsg

 
Sintaxe
FWFORMVIEW():showInsertMsg(<lInsertMsg >)-> NIL
Descrição
Desativa mensagem de Inserção
Parâmetros


NomeTipoDescriçãoDefaultObrigatórioReferência
lInsertMsgLógicoVariavel 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


NomeTipoDescriçãoDefaultObrigatórioReferência
cIdViewCaracteresID 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

NomeTipoDescriçãoDefaultObrigatórioReferência
cFieldCaracteresCampo do struct
X



 


CopyLine


Sintaxe
FWFORMVIEW():CopyLine()-> NIL

Descrição
Executa a cópia de uma linha.

Exemplo

static function copyline(oModel,oView)
Local oModelZA2 := oModel:GetModel( 'ZA2DETAIL' )
oModelZA2:CopyLine(,oView)
//oView:copyline(1)
Return




ApplyModifyToViewByModel


Sintaxe

FWFormView():ApplyModifyToViewByModel()-> NIL

Descrição
Atualiza a view conforme o status do modelo

Exemplo


Expandir

static function xisto()

local oView as object


oView := FWViewActive()


if oView != nil .and. oView:IsActive()

      oView:ApplyModifyToViewByModel()

endif


return



Observação

Esse método só está disponível na lib 20220725 ou superior.