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 
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