Clipper On Line • Ver Tópico - Várias ABAS com MiniGui

Várias ABAS com MiniGui

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Várias ABAS com MiniGui

Mensagempor Hasse » 03 Nov 2019 11:30

Bom dia colegas.

FUNCTION CreaBrowse( cBaseFile, aNomb, aLong, aJust, lAutofit )
   *
   aHdr       := aClone( aNomb )
   aHdr[1]    := Nil
   aCabImg    := aClone( VerHeadIcon() )
   ( Alias() )->( DBGoTop() )
   *
   DEFINE TAB Tab_1 OF oWndBase AT 40,10 WIDTH oWndBase.width  - 38 HEIGHT oWndBase.height - 150 VALUE 1 FONT "Arial" SIZE 9 TOOLTIP "" FLAT  ON CHANGE Nil
      *
      PAGE cBaseFile
         *
         DEFINE BROWSE Browse_1
            ROW         26
            COL         00
            WIDTH       oWndBase.width  - 40
            HEIGHT      oWndBase.height - 160
            VALUE       0
            WIDTHS      aLong
            HEADERS     aHdr
            WORKAREA    &cBaseFile
            FIELDS      aNomb
            FONTNAME    "Arial"
            FONTSIZE    10
            TOOLTIP     ""
            ONCHANGE    MostraRecord( cBaseFile )
            ONGOTFOCUS  NIL
            ONLOSTFOCUS NIL
            FONTBOLD    .F.
            FONTITALIC  .F.
            FONTUNDERLINE .F.
            FONTSTRIKEOUT .F.
         END BROWSE
         *
      END PAGE
      *
   END TAB
   *
   SetHeaderImages()
   *
RETURN Nil

A minha intenção é poder abrir 1 ou mais DBF´s, conforme a necessidade, cada um em sua ABA.

Com uma só ABA já está funcionando, mas estou apanhando para abrir o segundo DBF, numa segunda ABA, sem fechar a primeira ABA.

Procurei no fórum e nos SAMPLES e nenhuma "luz se acendeu".
Alguma orientação de como fazer ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar de usuário

Hasse
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 815
Data de registro: 19 Out 2004 10:30
Cidade/Estado: Jaraguá do Sul - SC
Curtiu: 0 vez
Mens.Curtidas: 24 vezes

Várias ABAS com MiniGui

Mensagempor Heero » 19 Nov 2019 08:59

Hasse escreveu:Bom dia colegas.
Com uma só ABA já está funcionando, mas estou apanhando para abrir o segundo DBF, numa segunda ABA, sem fechar a primeira ABA.


Você pode criar uma função que recupera o value do TAB e por ele definir o que você quer fazer:

Veja se ajuda, código de um TAB meu, observe o ON CHANGE:

define tab tab_produto;
       at 10,10;
       width 930;
       height 435;
       value 1;
       on change vnp12000_tab(this.value)


Com o value da TAB, faço o que quero, no código abaixo eu checo se o usuário tem permissão ou não. No seu caso pode colocar para abrir/fechar DBFs:

/*
* Checa permissões do tab
*/

function vnp12000_tab(n)
    do case
        case n = 1
        //    wcdpgm = 'vnp12010'
        case n = 2
            wcdpgm = 'vnp12020'
        case n = 3
            wcdpgm = 'vnp12030'
        case n = 4
            wcdpgm = 'vnp12040'
    endcase
    if n > 1
        if !Seg()
            setproperty('vnp12000_produto','tab_produto','value',1)
        endif
    endif
return


O que a função Seg faz é só checar em outra tabela se ele pode acessar aquele programa, caso contrário retorna em falso, dá um aviso e volta pra aba número 1.

Abraços.
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Heero
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 51
Data de registro: 13 Jul 2015 22:10
Cidade/Estado: Guarulhos/SP
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

Várias ABAS com MiniGui

Mensagempor Hasse » 19 Nov 2019 21:10

Boa noite colega Heero.

Beleza a tua contribuição...
Com ela já dei mais um passo à frente.
Muito obrigado.
Fico ainda com uma dúvida:

Para o controle dos vários DBF's abertos, tanto os TAB, os PAGE quanto os BROWSE podem ser controlados por índices como no teste abaixo ?
Isto fuciona desta forma ?

FUNCTION CreaBrowse( cBaseFile, aNomb, aLong, aJust, lAutofit )
*
...........
...........
*
DEFINE TAB Tab_1(n) OF oWndBase AT 40,colun(n1) WIDTH oWndBase.width - 38 HEIGHT oWndBase.height - 150 VALUE 1 FONT "Arial" SIZE 9 TOOLTIP "" FLAT ON CHANGE Nil
*
PAGE cBaseFile(n)
*
DEFINE BROWSE Browse_1(n)
ROW 26
COL 00
............
............

ON Change entendido.
Função SEG() entendido.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar de usuário

Hasse
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 815
Data de registro: 19 Out 2004 10:30
Cidade/Estado: Jaraguá do Sul - SC
Curtiu: 0 vez
Mens.Curtidas: 24 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro