Classe: MsGetDados

Objeto tipo lista com uma ou mais colunas para cadastramento de dados.



Esta classe está depreciada, e por conta disso, não recebe mais atualizações.
Recomendamos a utilização do MVC Protheus.





New

Contrutor da Classe MsGetDados


MsGetDados(): New ( < nTop>, < nLeft>, < nBottom>, < nRight>, < nOpc>, [ cLinhaOk], [ cTudoOk], [ cIniCpos], [ lDeleta], [ aAlter], [ nFreeze], [ lEmpty], [ nMax], [ cFieldOk], [ cSuperDel], [ uPar], [ cDelOk], [ oWnd], [ lUseFreeze], [ cTela] ) --> oGetDados



NomeTipoDescriçãoObrigatórioReferência
nTopNuméricoDistância entre a MsGetDados e a extremidade superior do objeto que a contém.X
nLeftNuméricoDistância entre a MsGetDados e a extremidade esquerda do objeto que a contém.X
nBottomNuméricoDistância entre a MsGetDados e a extremidade inferior do objeto que a contém.X
nRightNuméricoDistância entre a MsGetDados e o extremidade direita do objeto que a contém.X
nOpcNuméricoPosição do elemento do vetor aRotina que a MsGetDados usará como referência.X
cLinhaOkCaracterFunção executada para validar o contexto da linha atual do aCols.

cTudoOkCaracterFunção executada para validar o contexto geral da MsGetDados (todo aCols).

cIniCposCaracterNome dos campos do tipo caracter que utilizarão incremento automático. Este parametro deve ser no formato “+++...”.

lDeletaLógicoHabilita deletar linhas do aCols. Valor padrão falso.

aAlterVetorVetor com os campos que poderão ser alterados.

nFreezeNuméricoIndica a coluna que será congelada à esquerda. Só é permitido o congelamento de uma coluna, qualquer valor maior que 1 será convertido para 1.

lEmptyLógicoHabilita validação da primeira coluna do aCols para que esta não possa ser vazia. Valor padrão falso.

nMaxNuméricoNúmero máximo de linhas permitidas. Valor padrão 99.

cFieldOkCaracterFunção executada na validação do campo.

cSuperDelCaracterFunção executada quando pressionada as teclas +.

uParVetorParâmetro reservado

cDelOkCaracterFunção executada para validar a exclusão de uma linha do aCols.

oWndObjetoObjeto no qual a MsGetDados será criada.

lUseFreezeLógicoDetermina se as colunas poderão ser fixadas durante a navegação horizontal. Valor padrão falso.

cTelaCaracterParâmetro reservado


oGetDados
    ()
  • Objeto da classe MsGetDados

#include "protheus.ch"User Function Exemplo()Local nILocal oDlgLocal oGetDadosLocal nUsado := 0Private lRefresh := .T.Private aHeader := {}Private aCols := {}Private aRotina := {{"Pesquisar", "AxPesqui", 0, 1},;                    {"Visualizar", "AxVisual", 0, 2},;                    {"Incluir", "AxInclui", 0, 3},;                    {"Alterar", "AxAltera", 0, 4},;                    {"Excluir", "AxDeleta", 0, 5}}DbSelectArea("SX3")DbSetOrder(1)DbSeek("SA1")While !Eof() .and. SX3->X3_ARQUIVO == "SA1"If X3Uso(SX3->X3_USADO) .and. cNivel >= SX3->X3_NIVEL        nUsado++        Aadd(aHeader,{Trim(X3Titulo()),;                      SX3->X3_CAMPO,;                      SX3->X3_PICTURE,;                      SX3->X3_TAMANHO,;                      SX3->X3_DECIMAL,;                      SX3->X3_VALID,;                      "",;                      SX3->X3_TIPO,;                      "",;                      "" })EndIfDbSkip()EndAadd(aCols,Array(nUsado+1))For nI := 1 To nUsado    aCols[1][nI] := CriaVar(aHeader[nI][2])NextaCols[1][nUsado+1] := .F.DEFINE MSDIALOG oDlg TITLE "Exemplo" FROM 00,00 TO 300,400 PIXELoGetDados := MsGetDados():New(05, 05, 145, 195, 4, "U_LINHAOK", "U_TUDOOK", "+A1_COD", .T., {"A1_NOME"}, , .F., 200, "U_FIELDOK", "U_SUPERDEL", , "U_DELOK", oDlg)ACTIVATE MSDIALOG oDlg CENTEREDReturn User Function LINHAOK()ApMsgStop("LINHAOK")Return .T. User Function TUDOOK()ApMsgStop("LINHAOK")Return .T. User Function DELOK()ApMsgStop("DELOK")Return .T. User Function SUPERDEL()ApMsgStop("SUPERDEL")Return .T. User Function FIELDOK()ApMsgStop("FIELDOK")Return .T.


Observação

A função indicada no parâmetro cDelOk irá receber como parâmetro uma variável numérica, que irá indicar a origem da chamada, sendo:
nOrigem = 0 - Origem não definida, possivelmente uma chamada direta do método DelOk
nOrigem = 1 - Codeblock bDelOk, chamada pela ação de exclusão do objeto
nOrigem = 2 - Codeblock bDelete, validação da exclusão


Exemplo de uso:
Function MyDelOk( nOrigem )
local lRet as logical

default nOrigem := 0

lRet := .T.
If nOrigem == 0
FwAlertInfo( 'Origem não definida, possivelmente uma chamada direta do método DelOk' )
ElseIf nOrigem == 1
FwAlertInfo( 'Origem: bDelOk, chamada pela ação de exclusão do objeto' )
ElseIf nOrigem == 2
lRet := FwAlertYesNo( 'Origem: bDelete, Aqui valida se vai executar a exclusão... Exclui o registro?' )
EndIf
Return lRet


Disable

Desabilita o objeto da MsGetDados.


MsGetDados(): Disable ( ) -->

Enable

Habilita o objeto da MsGetDados.


MsGetDados(): Enable ( ) -->

ForceRefresh

Atualiza a MsGetDados com o aCols e posiciona na primeira linha.


MsGetDados(): ForceRefresh ( ) -->

Hide

Inibe a MsGetDados.


MsGetDados(): Hide ( ) -->

SetEditLine

Método que habilita/desabilita o modo de edição por linha.


MsGetDados(): SetEditLine ( < lSet> ) -->



NomeTipoDescriçãoObrigatórioReferência
lSetLógicoSe verdadeiro permite executar o modo de edição por linha.X


Show

Exibe a MsGetDados.


MsGetDados(): Show ( ) -->



PropriedadeDescriçãoTipo
aAlterVetor com nome dos campos que poderão ser editados.Vetor
aEditParâmetro reservado.Vetor
aInfoVetor para controle interno da classe.Vetor
aPosColVetor utilizado para identificar colunas de preencimento obrigatório no formato:[1] Título[2] ColunaVetor
bBeforeEditParâmetro fora de usoBloco de código
cClassNameIndentifica a classe como "MSGETDADOS".Caracter
cDelOkExpressão com retorno lógico executada para validar a deleção da linha.Caracter
cFieldOkExpressão com retorno lógico executada para validar a edição junto com as validações do Dicionário de Campos (SX3).Caracter
cIniCPosNome dos campos do tipo caracter que utilizarão incremento automático.Caracter
cLinhaOkExpressão com retorno lógico executada para validar a navegação entre as linhas.Caracter
cSuperDelExpressão com retorno lógico executada ao utilizar as teclas Ctrl+Del.Caracter
cTudoOkExpressão com retorno lógico para validação geral das linhas.Caracter
lActiveDetermina que o objeto está habilitado.Lógico
lCanEditLineDetermina se o modo de edição por linha pode ser habilitado.Lógico
lChgFieldVerdadeiro quando o campo posicionado foi editadoLógico
lDeletaVerdadeiro se deleção de linhas esta habilitado.Lógico
lEditLineDetermina se o objeto utiliza o modo de edição por linha.Lógico
lEmptyVerdadeiro se esta habilitado verificação se a primeira coluna está vazia.Lógico
lF3HeaderVerdadeiro para utilizar Consula Padrão informada no aHeader e falso para utilizar do Dicionário de Campos (SX3).Lógico
lModifiedVerdadeiro quando algum campo foi editado.Lógico
lNewLineIdentifica que foi criada uma nova linha.Lógico
nFreezeIndica a coluna que será congelada à esquerda. Só é permitido o congelamento de uma coluna, qualquer valor maior que 1 será convertido para 1.Numérico
nMaxControla o número máximo de linhas que podem ser criadas.Numérico
nOpcDetermina o tipo de evento que está sendo executado.Numérico
oBrowseObjeto da MsGetDadosObjeto
oWndObjeto onde a MsGetDados será criada.Objeto



A MsGetDados precisa que sejam declaradas as variáveis abaixo sendo tipo Private:

- aRotina

Vetor com as rotinas que serão executadas na MBrowse e que definira o tipo de operação que esta sendo executada (inclusão, alteração, exclusão, visualização, pesquisa, ...) no formato:


Elemento
Conteúdo
1
Título
2
Rotina
3
Reservado
4
Operação (1 - pesquisa; 2 - visualização; 3 - inclusão; 4 - alteração; 5 - exclusão)
5
Acesso relacionado a rotina, se esta posição não for informada nenhum acesso será validado


 - aHeader
Vetor com informações das colunas no formato:
Elemento
Conteúdo
1
Título
2
Campo
3
Picture
4
Tamanho
5
Decimal
6
Validação
7
Reservado
8
Tipo
9
Reservado
10
Reservado

- aCols

Vetor com as linhas a serem editadas. As colunas devem ser construídas com base no aHeader mais uma ultima com valor lógico que determina se a linha foi excluída.


- lRefresh

Variável tipo lógica para uso reservado.

A MsGetDados cria a variável publica n que indica qual a linha posicionada do aCols.

As funções passadas como parâmetro para a MsGetDados (cLinhaOk, cTudoOk, ...) não poderão ser declaradas como Static Function.

A consulta padrão, validação do usuário e gatilhos estarão habilitados se o campo estiver cadastrado no Dicionário de Dados (SX3/SX7) e apresentar estas opções disponíveis.



Protheus 10


  • Sem rótulos