Programação

PutSx1 – Criação de pergunte via programa

Escritor por Vinícius Moreira

 

E ai pessoal, já vimos como criar o pergunte manualmente no artigo “Criação de Pergunte”, mas desta vez veremos como fazer isso utilizando a função PutSx1.

 

Porque utilizar esta função ao invés de fazer manualmente?

 

A resposta mais pratica é que criando na mão, você precisaria repetir o processo para cada uma das empresas que forem utilizar o relatório. Então, é mais simples utilizar o PutSx1 no programa para que o processo seja realizado automaticamente.

 

Sintaxe:

 

PutSx1(cGrupo,;   //Grupo
       cOrdem,;   //Ordem
       cPergunt,; //Título da pergunta em português
       cPerSpa,;  //Título da pergunta em espanhol
       cPerEng,;  //Título da pergunta em inglês
       cVar,;     //Variavel Ex: mv_ch1 - Detalhe inportante é que o ultimo caracter no nome começa com 1 e vai aumentando sequencialmente, mas depois do 9 passa para letras.
       cTipo,;    //Tipo de campo - C=Caracter;N=Numerico;D=Data
       nTamanho,; //Tamanho
       nDecimal,; //Decimais
       nPresel,;  //Pre selecao (Combo)
       cGSC,;     //Objeto - G=Edit;C=Combo
       cValid,;   //Validação
       cF3,;      //F3
       cGrpSxg,;  //Grupo de campos
       cPyme,;    //Pyme
       cVar01,;   //Variavel Ex: mv_par01
       cDef01,;   //1ª opção do comboboxcheckbox em português
       cDefSpa1,; //1ª opção do comboboxcheckbox em espanhol
       cDefEng1,; //1ª opção do comboboxcheckbox em inglês
       cCnt01,;   //
       cDef02,;   //2ª opção do comboboxcheckbox em português
       cDefSpa2,; //2ª opção do comboboxcheckbox em espanhol
       cDefEng2,; //2ª opção do comboboxcheckbox em inglês
       cDef03,;   //3ª opção do comboboxcheckbox em português
       cDefSpa3,; //3ª opção do comboboxcheckbox em espanhol
       cDefEng3,; //3ª opção do comboboxcheckbox em inglês
       cDef04,;   //4ª opção do comboboxcheckbox em português
       cDefSpa4,; //4ª opção do comboboxcheckbox em espanhol
       cDefEng4,; //4ª opção do comboboxcheckbox em inglês
       cDef05,;   //5ª opção do comboboxcheckbox em português
       cDefSpa5,; //5ª opção do comboboxcheckbox em espanhol
       cDefEng5,; //5ª opção do comboboxcheckbox em inglês
       aHelpPor,; //Array com dicas em português
       aHelpEng,; //Array com dicas em inglês
       aHelpSpa)  //Array com dicas em espanhol

 

Como pode ver acima, coloquei a explicação sobre cada um dos parâmetros da função.

Fique atualizado, É GRÁTIS!
Cadastre o seu endereço de e-mail e fique por dentro de todas as atualizações da AcademiaERP.
Não enviamos spam.

Coloquei bastante comentário no fonte de exemplo pra facilitar o entendimento.

 

#Include "Protheus.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma  ³ RESPA01  ºAutor  ³ Vinícius Moreira   º Data ³ 31/10/2013  º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc.     ³ Testando criação de pergunte com PutSx1.                   º±±
±±º          ³                                                            º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso       ³                                                            º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function RESPA01 ()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Definição dos arrays que serão utilizados para criação das dicas das ³
//³perguntas.                                                           ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local cPerg    := PadR("RESPA01", Len(SX1->X1_GRUPO))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Definição dos arrays que serão utilizados para criação das dicas das |
//|perguntas.                                                           ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local aHelpPor := {}
Local aHelpEng := {}
Local aHelpSpa := {}

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Carregando arrays de dicas. Note que cada lingua que um array próprio. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aAdd( aHelpPor, "Selecione o código do banco.  ")//Português
aAdd( aHelpSpa, "Seleccione el código de banco.")//Espanhol
aAdd( aHelpEng, "Select the bank code.         ")//Inglês

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Agora chamamos a função para criar as peruntas.                        ³
//³Lembrando que a função é executada uma vez pra cada pergunta do grupo. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PutSx1( cPerg, "01","Do Banco ?" ,"¿De Banco ?","From Bank ?","mv_ch1",;
"C",3,0,0,"G","","SA6","007","S","MV_PAR01","","","","","","","","","",;
"","","","","","","",aHelpPor,aHelpEng,aHelpSpa)

PutSx1( cPerg, "02","Ate Banco ?","¿A Banco ?" ,"To Bank ?"  ,"mv_ch2",;
"C",3,0,0,"G","","SA6","007","S","MV_PAR02","","","","","","","","","",;
"","","","","","","",aHelpPor,aHelpEng,aHelpSpa)

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Zera arrays e em seguida carrega com as novas dicas dos campos.        ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aHelpPor	:= {}
aHelpEng	:= {}
aHelpSpa	:= {}
aAdd( aHelpPor, "Selecione a data de emissão      ")
aAdd( aHelpSpa, "Seleccione la fecha de expedición")
aAdd( aHelpEng, "Infome the date of issue         ")
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Criando mais duas perguntas.                                           ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PutSx1( cPerg, "03","Da Emissao ?"   ,"¿De Emision ?" ,"From Issue Date ?",;
"mv_ch3","D",8,0,0,"G","","","","S","MV_PAR03","","","","","","","","","",;
"","","","","","","",aHelpPor,aHelpEng,aHelpSpa)

PutSx1( cPerg, "04","Ate a Emissao ?","¿Ate Emision ?","To Issue Date ?"  ,;
"mv_ch4","D",8,0,0,"G","","","","S","MV_PAR04","","","","","","","","","",;
"","","","","","","",aHelpPor,aHelpEng,aHelpSpa)

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Zera arrays e em seguida carrega com as novas dicas dos campos.        ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aHelpPor	:= {}
aHelpEng	:= {}
aHelpSpa	:= {}
aAdd( aHelpPor, "Selecione qual moeda deve ser  ")
aAdd( aHelpPor, "considerada.                   ")
aAdd( aHelpSpa, "Elija la moneda que se debe    ")
aAdd( aHelpSpa, "considerar.                    ")
aAdd( aHelpEng, "Select the currency that must  ")
aAdd( aHelpEng, "be considered.                 ")
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Criando a última pergunta.                                              ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PutSx1( cPerg, "05","Qual Moeda ?","¿Que Moneda ?","Wich Currencies ?",;
"mv_ch5","N",2,0,1,"C","","","","S","MV_PAR05","Moeda 1","Moneda 1",;
"Currency 1","","Moeda 2","Moneda 2","Currency 2","Moeda 3","Moneda 3",;
"Currency 3","Moeda 4","Moneda 4","Currency 4","Moeda 5","Moneda 5",;
"Currency 5",aHelpPor,aHelpEng,aHelpSpa)

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-¿
//³Abre a tela do pergunte para visualização e preenchimento das           |
//|informações.                                                            ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Pergunte(cPerg, .T.)

Return

 

É isso ai galera, a sintaxe e o fonte sozinhos já explicam tudo.

 

Clique aqui para baixar o arquivo fonte.

 

Abraço

 

Sobre o Autor

Vinícius Moreira

3 comentários

Deixe um comentário

Dúvida?