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
Nome | Tipo | Descrição | Obrigatório | Referência |
nTop | Numérico | Distância entre a MsGetDados e a extremidade superior do objeto que a contém. | X | |
nLeft | Numérico | Distância entre a MsGetDados e a extremidade esquerda do objeto que a contém. | X | |
nBottom | Numérico | Distância entre a MsGetDados e a extremidade inferior do objeto que a contém. | X | |
nRight | Numérico | Distância entre a MsGetDados e o extremidade direita do objeto que a contém. | X | |
nOpc | Numérico | Posição do elemento do vetor aRotina que a MsGetDados usará como referência. | X | |
cLinhaOk | Caracter | Função executada para validar o contexto da linha atual do aCols. | ||
cTudoOk | Caracter | Função executada para validar o contexto geral da MsGetDados (todo aCols). | ||
cIniCpos | Caracter | Nome dos campos do tipo caracter que utilizarão incremento automático. Este parametro deve ser no formato “+++...”. | ||
lDeleta | Lógico | Habilita deletar linhas do aCols. Valor padrão falso. | ||
aAlter | Vetor | Vetor com os campos que poderão ser alterados. | ||
nFreeze | Numérico | Indica a coluna que será congelada à esquerda. Só é permitido o congelamento de uma coluna, qualquer valor maior que 1 será convertido para 1. | ||
lEmpty | Lógico | Habilita validação da primeira coluna do aCols para que esta não possa ser vazia. Valor padrão falso. | ||
nMax | Numérico | Número máximo de linhas permitidas. Valor padrão 99. | ||
cFieldOk | Caracter | Função executada na validação do campo. | ||
cSuperDel | Caracter | Função executada quando pressionada as teclas +. | ||
uPar | Vetor | Parâmetro reservado | ||
cDelOk | Caracter | Função executada para validar a exclusão de uma linha do aCols. | ||
oWnd | Objeto | Objeto no qual a MsGetDados será criada. | ||
lUseFreeze | Lógico | Determina se as colunas poderão ser fixadas durante a navegação horizontal. Valor padrão falso. | ||
cTela | Caracter | Parâmetro reservado |
- ()
- 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.
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
ForceRefresh
Atualiza a MsGetDados com o aCols e posiciona na primeira linha.
MsGetDados(): ForceRefresh ( ) -->
SetEditLine
Método que habilita/desabilita o modo de edição por linha.
MsGetDados(): SetEditLine ( < lSet> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
lSet | Lógico | Se verdadeiro permite executar o modo de edição por linha. | X |
Propriedade | Descrição | Tipo |
aAlter | Vetor com nome dos campos que poderão ser editados. | Vetor |
aEdit | Parâmetro reservado. | Vetor |
aInfo | Vetor para controle interno da classe. | Vetor |
aPosCol | Vetor utilizado para identificar colunas de preencimento obrigatório no formato:[1] Título[2] Coluna | Vetor |
bBeforeEdit | Parâmetro fora de uso | Bloco de código |
cClassName | Indentifica a classe como "MSGETDADOS". | Caracter |
cDelOk | Expressão com retorno lógico executada para validar a deleção da linha. | Caracter |
cFieldOk | Expressão com retorno lógico executada para validar a edição junto com as validações do Dicionário de Campos (SX3). | Caracter |
cIniCPos | Nome dos campos do tipo caracter que utilizarão incremento automático. | Caracter |
cLinhaOk | Expressão com retorno lógico executada para validar a navegação entre as linhas. | Caracter |
cSuperDel | Expressão com retorno lógico executada ao utilizar as teclas Ctrl+Del. | Caracter |
cTudoOk | Expressão com retorno lógico para validação geral das linhas. | Caracter |
lActive | Determina que o objeto está habilitado. | Lógico |
lCanEditLine | Determina se o modo de edição por linha pode ser habilitado. | Lógico |
lChgField | Verdadeiro quando o campo posicionado foi editado | Lógico |
lDeleta | Verdadeiro se deleção de linhas esta habilitado. | Lógico |
lEditLine | Determina se o objeto utiliza o modo de edição por linha. | Lógico |
lEmpty | Verdadeiro se esta habilitado verificação se a primeira coluna está vazia. | Lógico |
lF3Header | Verdadeiro para utilizar Consula Padrão informada no aHeader e falso para utilizar do Dicionário de Campos (SX3). | Lógico |
lModified | Verdadeiro quando algum campo foi editado. | Lógico |
lNewLine | Identifica que foi criada uma nova linha. | Lógico |
nFreeze | Indica a coluna que será congelada à esquerda. Só é permitido o congelamento de uma coluna, qualquer valor maior que 1 será convertido para 1. | Numérico |
nMax | Controla o número máximo de linhas que podem ser criadas. | Numérico |
nOpc | Determina o tipo de evento que está sendo executado. | Numérico |
oBrowse | Objeto da MsGetDados | Objeto |
oWnd | Objeto 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
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 |