No site de suporte Totvs é possível encontrar inúmeras funções em Advpl mas infelizmente nem sempre tem tudo o que precisamos.
O objeto para criação de abas em uma Dialog se chama Tfolder e está no TDN conforme link abaixo:
No link informado pode ser consultado as propriedades básicas do objeto para sua criação e manipulação.
Para criar o objeto:
Private oTFolder := NIL
Private aTFolder := {}
aTFolder := { 'Status Produção', 'Alterações', 'Engengharia', 'Movimento NFs','Veículo', 'Base Instalada'}
oTFolder := TFolder():New( 0,0,aTFolder,,oWinOp4,,,,.T.,,539,140 )
Onde oWinOp4 é o nome da Dialog ou Window de um Layer onde esta sendo criado o objeto, observe que ao criar o TFolder o mesmo estará com as coordenadas Left e Top 0,0 e seu tamanho definido como 539,140. Sendo assim o objeto será criado nessas dimensões.
O array aTFolder serão as abas que serão criadas dentro do folder, sendo assim quando quiser criar algum objeto dentro do folder basta referenciar assim: oTFolder:aDialogs[X], onde X é o numero da aba.
Caso queira que o objeto seja instanciado num tamanho em que ocupe toda a Dialog ou Window que ele foi criado sem a necessidade de ficar pegando o tamanho da janela e passar para o objeto, pode-se utilizar o seguinte comando apo´s a declaração do objeto:
oTFolder:Align := CONTROL_ALIGN_ALLCLIENT
Folder utilizando a propriedade de alinhamento (oTFolder:Align := CONTROL_ALIGN_ALLCLIENT)
É possível efetuar a criação de abas dentro de abas, caso tenham alguma dúvida por favor postem pois posso passar vários exemplos de utilização.
Até a próxima.