ApWizard

Classe ADVPL de interface que permite a criação de um objeto visual do tipo Wizard (assistente).

Propriedades


ARGUMENTO

TIPO

DESCRIÇÃO

oDlg

Objeto

Diálogo Principal 

oBmp

Objeto

Imagem utilizada no cabeçalho do Wizard 

oHPanel

Objeto

Painel do cabeçalho 

oMPanel

Objeto

Objeto do botão "Avançar" 

oNext

Objeto

Objeto do botão "Voltar" 

oBack

Objeto

Objeto do botão "Cancelar" 

oCancel

Objeto

Objeto do botão "Finalizar" 

oFinish

Objeto

Array contendo os blocos de código com as validações de cada passo do Wizard 

abValid

Array

Array contendo os textos dos cabeçalhos de cada passo do Wizard 

acHeader

Array

Array contendo os blocos de código com as execuções de cada passo 

abExecute

Array

Array contendo os blocos de código com as execuções 

chTitle

Caracter

Título do cabeçalho do passo ativo 

chMsg

Caracter

Mensagem do cabeçalho do passo ativo 

nPanel

Numérico

Número do painel ativo

nTPanel

Numérico

Número total de painéis

oMsgWelcome

Objeto

Objeto do título do painel de apresentação do Wizard

oText

Objeto

Objeto de mensagem do painel de apresentação do Wizard

oCHFont

Objeto

Objeto da fonte utilizada no título do cabeçalho

oCMFont

Objeto

Objeto da fonte utilizada na mensagem do cabeçalho

oHFont

Objeto

Objeto da fonte utilizada no título do painel de apresentação

oMFont

Objeto

Objeto da fonte utilizada na mensagem do painel de apresentação do Wizard


Métodos

New()

Método construtor da classe Wizard.

ApWizard():New ( < chTitle > , < chMsg > , < cTitle > , < cText > , < bNext > , < bFinish > , < lPanel > , < cResHead > , < bExecute > , < lNoFirst > , < aCoord > ) --> NIL

argumento

tipo

descrição

chTitle CaracterTitulo do cabeçalho
chMsgCaracterMensagem do cabeçalho
cTitle CaracterTítulo do painel de apresentação
cTextCaracterTexto do painel de apresentação
bNextCode-BlockBloco de código a ser executado para validar o botão "Avançar"
bFinish Code-BlockBloco de código a ser executado para validar o botão "Finalizar"
lPanelLógico
cResHeadCaracterNome da imagem usada no cabeçalho, essa tem que fazer parte do repositório  
bExecuteCode-BlockBloco de código contendo a ação a ser executada no clique dos botões "Avançar" e "Voltar"
lNoFirstLógicoSe .T. não exibe o painel de apresentação
aCoordArray Array contendo as coordenadas da tela

Activate()

Exibe o diálogo do Wizard.

oObj:Activate ( < lCenter > , < bValid > , < bInit > , < bWhen > ) --> NIL

argumento

tipo

descrição

lCenter LógicoDetermina se o diálogo será centralizado na tela
bValidCode-BlockBloco de código a ser executado no encerramento do diálogo
bInitCode-BlockBloco de código a ser executado na inicialização do diálogo
bWhenCode-Block Bloco de código para habilitar a execução do diálogo

NewPanel()

Cria novo painel no Wizard.

oObj:NewPanel ( < cTitle > , < cMsg > , < bBack > , < bNext > , < bFinish > , < lPanel > , < bExecute > ) --> NIL

argumento

tipo

descrição

cTitle Caracter Título do painel 
cMsgCaracterMensagem posicionada no cabeçalho do painel
bBackCode-BlockBloco de código utilizado para validar o botão "Voltar"
bNextCode-BlockBloco de código utilizado para validar o botão "Avançar"
bFinishCode-BlockBloco de código utilizado para validar o botão "Finalizar"
lPanelLógicoSe .T. será criado um painel, se .F. será criado um scrollbox
bExecuteCode-BlockBloco de código a ser executado quando o painel for selecionado

GetPanel()

Retorna o objeto painel desejado.

oObj:GetPanel ( < nPanel > ) --> NIL

argumento

tipo

descrição

nPanel NuméricoNúmero do painel a ser retornado 

SetFinish()

Exibe o botão "Finalizar" para encerrar o assistente.

oObj:SetFinish ( ) --> NIL


SetPanel()

Seleciona o objeto painel desejado.

oObj:SetPanel ( < nPanel > ) --> NIL


argumento

tipo

descrição

nPanel NuméricoNúmero do painel a ser retornado 

RefreshButtons()

Disponibiliza os botões do assistente de acordo com o painel corrente.

oObj:RefreshButtons ( ) --> NIL

DisableButtons()

Desabilita os botões do assistente.

oObj:DisableButtons ( ) --> NIL

EnableButtons()

Habilita os botões do assistente.

oObj:EnableButtons ( ) --> NIL

SetHeader()

Substitui o título do painel desejado.

oObj:SetHeader ( < cHeader > , < nPanel > , < lChange > ) --> NIL

argumento

tipo

descrição

cHeader Caracter Texto do título 
nPanelNumérico Número do painel
lChangeLógicoSe .T. substitui o título padrão do painel

SetHeader()

Substitui a mensagem do painel desejado.

oObj:SetMessage ( < cMsg > , < nPanel > , < lChange > ) --> NIL

argumento

tipo

descrição

cMsgCaracter Texto da mensagem
nPanelNumérico Número do painel
lChangeLógicoSe .T. substitui a mensagem padrão do painel
#include "protheus.ch"#include "apwizard.ch"User Function ExWizard()Local oNo 		:= LoadBitmap( GetResources(), "LBNO" )Local oOk 		:= LoadBitmap( GetResources(), "LBTIK" )Local oWizardLocal oGet1, oGet2, oGet3Local cGet1 := 0Local cGet2 := 0Local cGet3 := 0Local nPanelLocal aWiz := {{.F., ""}}Local oLbxWizLocal oChkTWizLocal oChkIWiz Local lChkTWiz := .F. Local lChkIWiz := .F.Local lWiz := .F.DEFINE WIZARD oWizard TITLE "Wizard" HEADER "Wizard de Configuração" MESSAGE " ";		TEXT "Esta é a tela de apresentação do wizard que pode ser suprimida através de parâmetros" PANEL;NEXT {|| .T.} FINISH {|| .T.}// PANEL 2//cria um novo passo (janela) para o wizardCREATE PANEL oWizard HEADER "Painel 2" MESSAGE "Painel2" PANEL;BACK {|| .T.} NEXT {|| If(Empty(cGet1) .Or. cGet1 == 0, (MsgStop("Informe o conteúdo para o Get1"), .F.), If(Empty(cGet2) .Or. cGet2 == 0, (msgStop("Informe o conteúdo para o Get2"), .F.), .T.))} FINISH {|| .T.} EXEC {|| .T.}	@ 010, 010 TO 125,280 OF oWizard:oMPanel[2] PIXEL                                                       	@ 20, 15 SAY oSay1 VAR "Get1: " OF oWizard:oMPanel[2] PIXEL	@ 20, 35 GET oGet1 VAR cGet1 PICTURE "9999" OF oWizard:oMPanel[2] SIZE 40,009 PIXEL 	@ 40, 15 SAY oSay2 VAR "Get2: " OF oWizard:oMPanel[2] PIXEL	@ 40, 35 GET oGet2 VAR cGet2 PICTURE "9999" OF oWizard:oMPanel[2] SIZE 40,009 PIXEL // PANEL 3//cria um novo passo (janela) para o wizardCREATE PANEL oWizard HEADER "Painel 3" MESSAGE "Painel3" PANEL;BACK {|| oWizard:nPanel := 3, .T.} NEXT {|| If(Ascan(aWiz,{|x| x[1] == .T.}) == 0, (MsgStop('Por favor selecione pelo menos um registro no listbox.'), .F.), .T. )} EXEC {||lChkTWiz:=.F., .T.}	@ 010, 010 TO 125,280 OF oWizard:oMPanel[3] PIXEL                                                  	@ 018, 020 LISTBOX oLbxWiz FIELDS HEADER "","Owner"  SIZE 171, 88 ON DBLCLICK (aWiz[oLbxWiz:nAt,1] := !aWiz[oLbxWiz:nAt,1],If(!aWiz[oLbxWiz:nAt,1],lChkTWiz := .F., ),oLbxWiz:Refresh(.f.),ApSxVerChk(@lChkTWiz,@aWiz,@oLbxWiz,@oChkTWiz)) OF oWizard:oMPanel[3] PIXEL 		oLbxWiz:SetArray(aWiz)	oLbxWiz:bLine := {|| {If(aWiz[oLbxWiz:nAt,1],oOK,oNO),aWiz[oLbxWiz:nAt,2]}}    oLbxWiz:bRClicked := { || AEVAL(aWiz,{|x|x[1]:=!x[1]}),oLbxWiz:Refresh(.F.) }    	@ 111, 20 CHECKBOX oChkTWiz VAR lChkTWiz PROMPT "Marcar Todos" SIZE 62, 10 OF oWizard:oMPanel[3] PIXEL	oChkTWiz:blClicked := {|| AEval( aWiz,{|x,y| x[1] := lChkTWiz , If(lChkTWiz, (lChkIWiz := .F.,oChkIWiz:Refresh()), )})}    	@ 111, 100 CHECKBOX oChkIWiz VAR lChkIWiz PROMPT "Inverter Marca" SIZE 62, 10 OF oWizard:oMPanel[3] PIXEL	oChkIWiz:blClicked := {|| AEval( aWiz,{|x,y| x[1] := !x[1]}), lChkTWiz := (Ascan(aWiz,{|x|!x[1]}) == 0), oChkTWiz:Refresh()}    // PANEL 4//cria um novo passo (janela) para o wizardCREATE PANEL oWizard HEADER "Configurações" MESSAGE "Selecione as configurações para a geração do arquivo." PANEL;BACK {|| oWizard:nPanel := 4, .T.} NEXT {|| .T.} FINISH {|| If(Empty(cGet3)  .Or. cGet3 == 0, (MsgStop('Informe o conteúdo para o Get3'), .F.), (lWiz := .T., .T.)) } EXEC {|| .T.}	@ 010, 010 TO 125,280 OF oWizard:oMPanel[4] PIXEL                                                  	@ 20, 15 SAY oSay3 VAR "Get3: " OF oWizard:oMPanel[4] PIXEL	@ 20, 35 GET oGet3 VAR cGet3 PICTURE "9999" OF oWizard:oMPanel[4] SIZE 40,009 PIXEL oWizard:oDlg:lEscClose := .F.ACTIVATE WIZARD oWizard CENTERED VALID {|| .T. } If lWiz	MsgAlert("Executa a rotina de processamento após a seleção dos dados no Wizard")EndIfReturnStatic Function ApSxVerChk(lChkTudo,aAlias,oLbx,oChk)Local nI               Local nCount := 0   Local nSizenSize := len(aAlias)For nI := 1 to nSize	If !aAlias[nI,1] 		nCount++	EndIfNext                                             If nCount > 0	lChkTudo := .F.Else	lChkTudo := .T.EndIfoLbx:Refresh()oChk:Refresh()                                      Return lChkTudo
Nível 1 (Acesso Clientes)
Espanhol , Inglês
Todas
Todos
Todos
Todos


  • Sem rótulos