Classe: MsGetDB

Objeto tipo lista com uma ou mais colunas para cadastramento de dados baseado em uma tabela temporária.



New

New

Cria o objeto da MSGetDb.


MsGetDB(): New ( < nTop>, < nLeft>, < nBottom>, < nRight>, < nOpc>, [ cLinhaOk], [ cTudoOk], [ cIniCpos], [ lDelete], [ aAlter], [ nFreeze], [ lEmpty], [ uPar1], < cTRB>, [ cFieldOk], [ uPar2], [ lAppend], [ oWnd], [ lDisparos], [ uPar3], [ cDelOk], [ cSuperDel] ) --> oObj


NomeTipoDescriçãoObrigatórioReferência
nTopNuméricoDistância entre a MSGetDB e o extremidade superior do objeto que a contém. X
nLeftNuméricoDistância entre a MSGetDB e o extremidade esquerda do objeto que a contém. X
nBottomNuméricoDistância entre a MSGetDB e o extremidade inferior do objeto que a contém. X
nRightNuméricoDistância entre a MSGetDB e o extremidade direita do objeto que a contém. X
nOpcNuméricoPosição do elemento do vetor aRotina que a MSGetDB 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 MSGetDB (todo aCols).
cIniCposCaracterNome dos campos do tipo caracter que utilizarão incremento automático. Este parâmetro deve ser no formato “+nome do primeiro campo+nome do segundo campo+...”.
lDeleteLógicoHabilita a opção de deletar linhas do aCols. Valor padrão falso.
aAlterArray of RecordVetor com os campos que poderão ser alterados.
nFreezeNuméricoIndica qual coluna ficará congelada na exibição.
lEmptyLógicoHabilita validação da primeira coluna do aCols para esta não poder estar vazia. Valor padrão falso.
uPar1NuméricoParâmetro reservado
cTRBCaracterAlias da tabela temporária X
cFieldOkCaracterFunção executada na validação do campo.
uPar2LógicoParâmetro reservado
lAppendLógicoIndica se a MSGetDB irá criar uma linha em branco automaticamente quando for inclusão.
oWndArray of RecordObjeto no qual a MSGetDB será criada.
lDisparosLógicoIndica se será utilizado o Dicionário de Dados para consulta padrão, inicializador padrão e gatilhos.
uPar3LógicoParâmetro reservado.
cDelOkCaracterFunção executada para validar a exclusão de uma linha do aCols
cSuperDelCaracterFunção executada quando pressionada as teclas +.
    oObj()
  • Objeto da classe MSGetDb.

Disable

Desabilita o uso do objeto MSGetDB.


MsGetDB(): Disable ( ) -->

Enable

Habilita o uso do objeto MSGetDB.


MsGetDB(): Enable ( ) -->

ForceRefresh

Atualiza a MSGetDB com a tabela e posiciona na primeira linha.


MsGetDB(): ForceRefresh ( ) -->


PropriedadeDescriçãoTipo
Array of Record

A MSGetDB precisa que sejam declaradas as variáveis abaixo sendo tipo Private.

  • aRotina

Vetor com as rotinas que serão executadas na MBrowse e que define o tipo de operação que está sendo executada (inclusão, alteração, exclusão, visualização, pesquisa, etc...) seguindo o seguinte 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 à 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

A tabela temporária utilizada pela MSGetDB deverá ser criada com base no aHeader mais um último campo tipo lógico que determina se a linha foi excluída.

A MSGetDB cria a variável pública nBrLin que indica qual a linha posicionada do aCols.

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

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


#include "protheus.ch"User Function F29317()Private cCadastro := "Cadastro de . . ."Private aRotina := { {"Pesquisar","AxPesqui",0,1} ,;             {"Visualizar","u_mgetdb",0,2} ,;             {"Incluir","u_mgetdb",0,3} ,;             {"Alterar","u_mgetdb",0,4} ,;             {"Excluir","u_mgetdb",0,5} }Private cString := "SB1"dbSelectArea(cString)dbSetOrder(1)mBrowse( 6,1,22,75,cString)returnuser function mgetdb(calias,nrec,nopc)Local aStruct := {}Local x,odlg,ogetdb     Local nUsado := 0private aheader := {}private aaltera := {}  DbSelectArea("SX3")DbSetOrder(1)DbSeek("SB1")While !Eof() .and. SX3->X3_ARQUIVO == "SB1"	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,;                      "",;                      "" })        Aadd(aStruct,{SX3->X3_CAMPO,;                      SX3->X3_TIPO,;                      SX3->X3_TAMANHO,;                      SX3->X3_DECIMAL})	EndIf	DbSkip()EndAadd(aStruct,{"FLAG","L",1,0})cCriaTrab := CriaTrab(aStruct,.T.)DbUseArea(.T.,__LocalDriver,cCriaTrab,,.T.,.F.)DEFINE MSDIALOG oDlg TITLE "Documentação - MsGetDb" FROM 00,00 TO 300,400 PIXELoGetDB := MsGetDB():New(05, 05, 145, 195, 3, "U_LINHAOK", "U_TUDOOK", "+A1_COD", .T., {"B1_DESC"}, 1, .F., , cCriaTrab, "U_FIELDOK", , .T., oDlg, .T., ,"U_DELOK", "U_SUPERDEL")ACTIVATE MSDIALOG oDlg CENTEREDDbSelectArea(cCriaTrab)DbCloseArea()returnUser 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.

Protheus 10

  • Sem rótulos