Página 1 de 1

Recursos sobre a Janela Principal

Enviado: 19 Jul 2019 15:58
por scooby
Boa Tarde Senhores

Gostaria de tirar 2 dúvidas, para saber se existe a possibilidade de implementação no sistema.
A primeira é se é possível eu criar um grid dentro da minha janela principal, caso um condicional seja atendido, se sim como devo proceder?
E a segunda é semelhante a primeira, eu to criando uma dialog em uma janela principal, para que ela venha a ser uma tela de funcionalidades do banco de dados, porém ao ativar ela... eu não consigo acessar os botões que na janela principal, eu tentei mudar o style da tela, porém não consegui acessar os botões..
Estou usando a criação desta maneira:
Define Dialog oDlgLogSnc From 01,01 TO 19,73 Title "Teste" COLOR "N/W" STYLE WS_POPUP+WS_THICKFRAME+WS_CAPTION+WS_VISIBLE
Activate Dialog oDlgLogSnc Centered

Ambas perguntas, se referem há um único recurso: Estou sincronizando tabelas com a nuvem, porém se houver alguma falha, esse erro seria jogado ou para esse grid na janela principal ou para esse dialog.

Att

Márcio Pinheiro

Recursos sobre a Janela Principal

Enviado: 19 Jul 2019 17:35
por asimoes
A segunda janela não pode ser dialog, tem que ser child, ai você pode acessar a janela main

Recursos sobre a Janela Principal

Enviado: 22 Jul 2019 16:02
por scooby
asimoes escreveu:A segunda janela não pode ser dialog, tem que ser child, ai você pode acessar a janela main
Boa Tarde

Muito obrigado asimoes, mudando para mdichild funcionou perfeito, porém na hora que apresentei para gestão, os mesmos disseram que queriam ao invés de um dialog ou windows, sim um grid dentro da janela principal. Para evitar que o usuário feche o processo, já que ele é de certa forma crítico.
Até consegui fazer o que solicitaram, porém agora não consigo utilizar os scrolls do grid criado.

Recursos sobre a Janela Principal

Enviado: 22 Jul 2019 16:54
por asimoes
Olá como é que você está definindo a grid ?

Recursos sobre a Janela Principal

Enviado: 22 Jul 2019 16:56
por Itamar M. Lins Jr.
Ola!
De qualquer forma basta teclar ALT+F4 que fecha qualquer coisa.
Se é só para esperar, coloca uma barra de progresso.
Ou um outro processo na barra de tarefas, só mandando os avisos do que está fazendo.

Saudações,
Itamar M. Lins Jr.

Recursos sobre a Janela Principal

Enviado: 22 Jul 2019 16:58
por asimoes
Olá Márcio ,

Se estamos falando de Minigui é fórum apropriado é a seção MiniGui

Recursos sobre a Janela Principal

Enviado: 22 Jul 2019 18:31
por JoséQuintas
Bom... primeira coisa que me veio à cabeça foi ..... multithread.
Se o processo é crítico e não pode parar, talvez verificar se precisa ou não da janela visível.

Recursos sobre a Janela Principal

Enviado: 23 Jul 2019 08:49
por scooby
asimoes escreveu:Olá como é que você está definindo a grid ?
*****************************
Procedure CarLogSnc()
Local oBrwLog,;
aVetLog:={{"","","","","","","",""}}
IniVetBrw(aVetLog)
If AtuTabGer({"TabGpg"})
TabGpg->(DbGoTop())
While TabGpg->(!Eof())
If TabGpg->Empresa=vEmpPro.And.;
TabGpg->Data=Dtos(Date()).And.;
TabGpg->TpoProc$"IE"
aVetLog[Len(aVetLog),01]:=TabGpg->TpoProc
aVetLog[Len(aVetLog),02]:=TabGpg->CodProc
aVetLog[Len(aVetLog),03]:=TabGpg->Empresa
aVetLog[Len(aVetLog),04]:=Cvot(TabGpg->Data)
aVetLog[Len(aVetLog),05]:=TabGpg->Hora
aVetLog[Len(aVetLog),06]:=TabGpg->DesProc
aVetLog[Len(aVetLog),07]:=TabGpg->Usuario
aVetLog[Len(aVetLog),08]:=TabGpg->DatLan
Aadd(aVetLog,{"","","","","","","",""})
EndIf
TabGpg->(DbSkip())
End
SelAreAbr("TabGpg",1)
aSort(aVetLog,,Len(aVetLog)-1,{|x,y|x[8]+x[5]>y[8]+y[5]}) // Ordenar em chave primária
EndIf
If Len(aVetLog)>1
@ 30, 0 ListBox oBrwLog Fields "" Of oVentPrinc Size 600, 400 Color "N/W"
oBrwLog:bLine :={||{ aVetLog[oBrwLog:nAt,01],;
aVetLog[oBrwLog:nAt,04],;
aVetLog[oBrwLog:nAt,05],;
aVetLog[oBrwLog:nAt,06],;
aVetLog[oBrwLog:nAt,02]}}
oBrwLog:aHeaders :={"T","Data","Hora","Descrição","Excução"}
oBrwLog:aJustify :={.F.,.F.,.F.,.F.,.F.}
oBrwLog:aColSizes :={15,70,40,400,120}
oBrwLog:nLineStyle:=4
oBrwLog:nClrPane :={||If(oBrwLog:nAt%2==0,CLR_AZUL3,CLR_WHITE)}
oBrwLog:bValid :=.T.
oBrwLog:nStyle := WS_CHILD+WS_BORDER+WS_VISIBLE+WS_VSCROLL+WS_HSCROLL
oBrwLog:SetArray(aVetLog)
oBrwLog:Refresh()
EndIf
Return Nil
Itamar M. Lins Jr. escreveu:Ola!
De qualquer forma basta teclar ALT+F4 que fecha qualquer coisa.
Se é só para esperar, coloca uma barra de progresso.
Ou um outro processo na barra de tarefas, só mandando os avisos do que está fazendo.

Saudações,
Itamar M. Lins Jr.
Olá Itamar, pois é, vou verificar a possibilidade de alterar para a barra de progresso e ver se visualmente fica bom, valeu pela dica.
JoséQuintas escreveu:Bom... primeira coisa que me veio à cabeça foi ..... multithread.
Se o processo é crítico e não pode parar, talvez verificar se precisa ou não da janela visível.
Pois é José, o processo é critico.. caso ocorra uma falha de conexão com o banco ou a internet caia ou até mesmo o usuário efetue uma parada manual do processo, essa informação teria que ficar a vista, para que no primeiro momento o proprio usuário possa identificar o erro e por ventura se precisar a intervenção do suporte o mesmo saiba em qual pé está a sincronização.

Recursos sobre a Janela Principal

Enviado: 23 Jul 2019 09:20
por asimoes
Olá eu faria um ajuste nessa leitura, outra coisa isso é um listbox que é diferente de grid

TabGpg->(DbSkip())
Do Events // <-----