Páginas filhas
  • Modelo3

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Altura da enchoice
Portuguese

Pagetitle
Modelo3
Modelo3

Função: Modelo3


Versões:Microsiga Protheus 8.11 , Protheus 10
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:Espanhol , Inglês


Descrição:
Exibe formulário para cadastro contendo uma enchoice e uma getdados.
Programa Fonte:
MATXATU.PRW
Sintaxe:

Modelo3 ( cTitulocAliascAlias2 [ aMyEncho ] [ cLinhaOk ] [ cTudoOk ] [ nOpcE ] [ nOpcG ] [ cFieldOk ] [ lVirtual ] [ nLinhas ] [ aAltEnchoice ] [ nFreeze ] [ aButtons ] [ aCordW ] [ nSizeHeader ] ) --> lRet

Retorno:
lRetlRet (logico)
Retorno .T. Confirma / .F. Abandona
Exemplos #include "

Parâmetros:



Nome

Tipo

Descrição

Default

Obrigatório

Referência

cTitulo

Caracter

Titulo da janela




X




cAlias

Caracter

Alias da Enchoice




X




cAlias2

Caracter

Alias da Getdados




X




aMyEncho

Vetor

Array com campos da enchoice










cLinhaOk

Caracter

Função para validação da linha










cTudoOk

Caracter

Função para validação na confirmação










nOpcE

Numérico

nOpc da Enchoice










nOpcG

Numérico

nOpc da Getdados










cFieldOk

Caracter

Validação para todos os campos da GetDados










lVirtual

Lógico

Permite visualizar campos virtuais na enchoice










nLinhas

Numérico

Número máximo de linhas na getdados










aAltEnchoice

Vetor

Array com campos alteráveis da Enchoice










nFreeze

Numérico

Congelamento das colunas.










aButtons

Vetor

Array com botões de usuário na enchoicebar










aCordW

Vetor

Coordenadas da janela










nSizeHeader

Numérico

Altura da enchoice










Exemplo:

Bloco de código
languagetext
linenumberstrue
#include "protheus.ch"
#include "rwmake.ch"     


User Function RDMOD3()
Local cOpcao        as character
Local nOpcE         as numeric
Local nOpcG         as numeric
Local nUsado      
Local _niaRotina
  as numeric
Local _ni           as numeric

Private aHeader     as array
Private aRotina     as array
Private aCols       as array

aRotina := {{ "Pesquisa","AxPesqui", 0 , 1},
;
 
{ "Visual","AxVisual", 0 , 2},
;
 
{ "Inclui","AxInclui", 0 , 3},
;
 
{ "Altera","AxAltera", 0 , 4, 20 },
;
 
{ "Exclui","AxDeleta", 0 , 5, 21 }}

//+--------------------------------------------------------------+
//| Opcoes de acesso para a Modelo 3                             |
//+--------------------------------------------------------------+
cOpcao:= "INCLUIR"

Do Case	
    Case cOpcao=="INCLUIR"; nOpcE:=3 ; nOpcG:=3	
    Case cOpcao=="ALTERAR"; nOpcE:=3 ; nOpcG:=3	
    Case cOpcao=="VISUALIZAR"; nOpcE:=2 ; nOpcG:=
2EndCaseDbSelectArea
2
EndCase

DbSelectArea("SC5")
DbSetOrder(1)
DbGotop()

//+--------------------------------------------------------------+
//| Cria variaveis M->????? da Enchoice                          |
//+--------------------------------------------------------------+
RegToMemory("SC5", (cOpcao=="INCLUIR"))
//+--------------------------------------------------------------+
//| Cria aHeader e aCols da GetDados                             |
//+--------------------------------------------------------------+
nUsado :=
0dbSelectArea
 0

dbSelectArea("SX3")
DbSetOrder(1)
DbSeek("SC6")
aHeader := {}
While !Eof() .And. (
x3
X3_
arquivo
ARQUIVO == "SC6")	
    If Alltrim(
x3
X3_
campo
CAMPO) == "C6_ITEM"		
        dbSkip()		
        Loop	
    Endif	
    If X3USO(
x3
X3_
usado
USADO) .And.
cNivel>=x3_nivel
 cNivel >= X3_NIVEL    	
        nUsado := nUsado+1        
        Aadd(aHeader,{ TRIM(
x3
X3_
titulo
TITULO),
x3_campo, x3_picture,;
;
                        AllTrim(X3_CAMPO),;
                        X3_PICTURE,;
                        
x3
X3_
tamanho
TAMANHO,
x3_decimal,
;
                        X3_DECIMAL,;
                        "AllwaysTrue()",; 
                   
     
x3
X3_
usado, x3_tipo, x3_arquivo, x3_context
USADO,; 
                        X3_TIPO,; 
                        X3_ARQUIVO,; 
                        X3_CONTEXT } )	
    Endif
    dbSkip()
EndIf

EndDo 

If cOpcao == "INCLUIR"	
    aCols:={Array(nUsado+1)}	
    aCols[1, nUsado+1] := .F.	

    For _ni := 1 to nUsado		
        aCols[1, _ni] := CriaVar(aHeader[_ni, 2])	
NextElse aCols

    Next
Else	
    aCols := {}	
    dbSelectArea("SC6")	
    dbSetOrder(1)	
    dbSeek(xFilial()+M->C5_NUM)	
    While !eof() .and. SC6->C6_NUM == M->C5_NUM		
        AADD(aCols, Array(nUsado+1))		

        For _ni := 1 to nUsado			
            aCols[Len(aCols), _ni] := FieldGet(FieldPos(aHeader[_ni, 2]))		
        Next 		

        aCols[Len(aCols), nUsado+1] := .F.		
        dbSkip()	
EndEndifIf

    EndDo
Endif
    
If Len(aCols)
>0
 > 0	
//+--------------------------------------------------------------+	
//| Executa a Modelo 3                                           |	
//+--------------------------------------------------------------+	
    cTitulo := "Teste de Modelo3
()
"	
    cAliasEnchoice := "SC5"	
    cAliasGetD := "SC6"	
    cLinOk := "AllwaysTrue()"	
    cTudOk := "AllwaysTrue()"	
    cFieldOk := "AllwaysTrue()"
// aCpoEnchoice:={} //{"C5_CLIENTE"}
	
    _lRet:= Modelo3(cTitulo, cAliasEnchoice, cAliasGetD,, cLinOk, cTudOk, nOpcE, nOpcG, cFieldOk)	
    //+--------------------------------------------------------------+	
    //| Executar processamento                                       |	
    //+--------------------------------------------------------------+	
    If _lRet		
        Aviso("Modelo3()", "Confirmada operacao!", {"Ok"})	
EndifEndif

    Endif
Endif                 
Return
Parâmetros:
NomeTipoDescriçãoDefaultObrigatórioReferênciacTituloCaracterTitulo da janelaXcAliasCaracterAlias da EnchoiceXcAlias2CaracterAlias da GetdadosXaMyEnchoVetorArray com campos da enchoicecLinhaOkCaracterFunção para validação da linhacTudoOkCaracterFunção para validação na confirmaçãonOpcENumériconOpc da EnchoicenOpcGNumériconOpc da GetdadoscFieldOkCaracterValidação para todos os campos da GetDadoslVirtualLógicoPermite visualizar campos virtuais na enchoicenLinhasNuméricoNúmero máximo de linhas na getdadosaAltEnchoiceVetorArray com campos alteráveis da EnchoicenFreezeNuméricoCongelamento das colunas.aButtonsVetorArray com botões de usuário na enchoicebaraCordWVetorCoordenadas da janelanSizeHeaderNumérico

Return