aHeader do MsNewGetDados

Bom dia senhores, novamente estou com uma duvida sobre a classe MsNewGetDados. Estou utilizando o exemplo do link https://thiagocoimbra.com.br/2014/06/09/exemplo-completo-msnewgetdados/, recomendado pelo excelentíssimo Josué Danich Prestes daqui do Forum, que por sinal, o exemplo, esta me sendo uma mão na roda. Porem estou com um problema:

Como eu faço pra um dos campos ser um combobox? No banco ele é um campo booleano,então gostaria de colocar um combo com "1-Sim" e "2-Não". A linha que eu imagino que defina isto deve ser esta: aAdd(aAux,{"Ativo" ,"ATIVO" ,"@!" ,TamSX3("Z28_ATIVO") [1] ,0 ,"" ,"","L","" ,"" })

Na ordem do Aaux é a 10a. posição define o combobox, deveria ficar assim:

aAdd(aAux,{"Ativo" ,"ATIVO" ,"@!" ,TamSX3("Z28_ATIVO") [1] ,0 ,"" ,"","L","" ,"1=Sim;2=Nao" })

Não testei pessoalmente, mas o pessoal nesse link falou que deu certo:

http://www.supeerp.com.br/forum/display_topic_threads.asp?ForumID=1&TopicID=30909

Caramba, pior que eu tinha visto esse link e não tinha interpretado a mensagem do LBRITO direito. Mas infelizmente só adicionar isso não fez acontecer nada :confused:

Descobri que todos os combo box que tem na X3 são do tipo Caracter e com 1 de tamanho, porem mesmo mudando o tipo ainda assim não aparece na tabela como um combo. Sera que esta faltando alguma biblioteca ou algo assim?

hum, fica complicado pois é uma funcionalidade que na documentação oficial está obsoleta, o que você pode fazer é partir para algo mais complexo criando uma dialog com um get do jeito que precisar sempre que clicar no campo… mas aí começa a ficar tão complicado que vale muito a pena questionar as especificações e correr para mvc ou para um tcbrowse que vão te dar mais flexibilidade dentro de funcionalidades ativas do advpl

Para montar o aHeader completo de uma MsNewGetDados eu utilizo o seguinte padrão:


/*------------------------------------------*\
| Estrutura do array com o cabeçalho da Grid |
|--------------------------------------------|
| aHeader[01] - X3_TITULO  | Título          |
| aHeader[02] - X3_CAMPO   | Campo           |
| aHeader[03] - X3_PICTURE | Picture         |
| aHeader[04] - X3_TAMANHO | Tamanho         |
| aHeader[05] - X3_DECIMAL | Decimal         |
| aHeader[06] - X3_VALID   | Validação       |
| aHeader[07] - X3_USADO   | Usado           |
| aHeader[08] - X3_TIPO    | Tipo            |
| aHeader[09] - X3_F3      | F3              |
| aHeader[10] - X3_CONTEXT | Contexto (R,V)  |
| aHeader[11] - X3_CBOX    | Combobox        |
| aHeader[12] - X3_RELACAO | Inicial. Padrao |
| aHeader[13] - X3_WHEN    | Habilita edicao |
| aHeader[14] - X3_VISUAL  | Alteravel (A,V) |
| aHeader[15] - X3_VLDUSER | Valid de User   |
| aHeader[16] - X3_PICTVAR | Picture         |
| aHeader[17] - X3_OBRIGAT | Obrigatorio     |
\*------------------------------------------*/

Caramba o Array tem mais opções! Isso é bem interessante, obrigado!

Sim, Patrick. Acredito que deve ter ainda mais na verdade porém esse foi o maior que eu ja fiz. Sempre bom compartilhar conhecimento.

Boa tarde,

Acabei de passar pelo o mesmo problema, e descobri que a posição onde informa as opções de combobox é na opção 11 da array, e na 10 seria o contexto.

Segue abaixo:

aAdd( aHeader, { AlLTrim( X3Titulo() ), ; // 01 - Titulo SX3->X3_CAMPO , ; // 02 - Campo SX3->X3_Picture , ; // 03 - Picture SX3->X3_TAMANHO , ; // 04 - Tamanho SX3->X3_DECIMAL , ; // 05 - Decimal SX3->X3_Valid , ; // 06 - Valid SX3->X3_USADO , ; // 07 - Usado SX3->X3_TIPO , ; // 08 - Tipo SX3->X3_F3 , ; // 09 - F3 SX3->X3_CONTEXT , ; // 10 - Contexto cCombo , ; // 11 - ComboBox SX3->X3_RELACAO } ) // 12 - Relacao

Atenciosamente, Matheus Cunha