Erro ao solicitar a identificação do operador

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Fernando Almeida
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Set 2016 12:53
Localização: Dourados - MS

Erro ao solicitar a identificação do operador

Mensagem por Fernando Almeida »

Boa tarde, fiz um novo tópico para não confundir mais os colegas pelo erro que apresentei.
Consegui, acho, corrigir o problema, mas aproveito e pergunto se tem lógica este tipo de problema.
Sempre que pedia a identificação do operador ele abria esse Form no Form principal e neste segundo.
Isto porque eu maximizava este formulário após fazer a sua leitura como mensiono abaixo.

Código: Selecionar todos

Load Window Pedido_de_Vendas 
 Maximize Window Pedido_de_Vendas
 Activate Window Pedido_de_Vendas
Depois de diversas tentativas só consegui resolver o problema retirando essa linha de maximização e colocando essa instrução no oninit desse Form:

Código: Selecionar todos

DoMethod("Pedido_de_Vendas", "Maximize")
Pergunto se consideram este comportamento normal, a maximização do Form dá problemas, ou teria que fazer alguma instrução antes para poder maximizar ?
ivanil
Usuário Nível 3
Usuário Nível 3
Mensagens: 166
Registrado em: 11 Set 2004 15:13
Localização: Florianópolis/SC

Erro ao solicitar a identificação do operador

Mensagem por ivanil »

Ola;

A execução do código abaixo, abrirá frmClientes Maximizada naturalmente; tome cuidado ao usar as constantes this/thiswindow, ambas são muito interessantes; mas pode causar confusão se não usadas apropriadamente.

Código: Selecionar todos

#include <hmg.ch>
Function LoadFrmfrmClientes()
    Local cAlias:=IdGlobal('Dbf')
    Load window frmVendas as frmVendas
        *frmVendas.Maximize() &&isto
        maximize window frmVendas &&e isto, são equivalentes (ambas ao passar pelo pré-processador passam a ser domethod("frmvendas","maximize"))
    frmVendas.activate()
    REturn TRUE
Fernando Almeida
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Set 2016 12:53
Localização: Dourados - MS

Erro ao solicitar a identificação do operador

Mensagem por Fernando Almeida »

Sr. Ivanil eu estou a fazer uma revisão ao Form e divido-lo para não sobrecarrega-lo.
Fiz um PanelWindow e coloquei lá todos os botões das operações relacionadas com as vendas.
Form.FMG com o mesmo nome do panel e está tudo a funcionar. Vou experimentar hoje à noite, lançando várias mesas e aguardando pelo pedido do operador para ver se ficou tudo resolvido.
Pergunto, como nunca tinha usado o PanelWindow, para os botões serem reconhecidos no Form das Vendas eu coloco a seguinte frase nos PRGS desse Form. "declare Window PanelXXX" junto com o declare Window Form_de_Vendas ou há outra forma de relacionar esse panelwindow com o Form onde ele está inserido. Pergunto isto para não sobrecarregar o aplicativo.

Aproveito e faço outra pergunta, sempre que uso uma LABEL para apresentar um numero, uso o Transform() como exemplifico abaixo.

Código: Selecionar todos

Pedido_de_Vendas.Label_Total_Pago.Value   :=TRANSF(Pedido_de_Vendas.Text_ValTotDoc.Value, "9,999,999.99")
Mas depois para voltar a usar esse valor tive que fazer o seguinte:

Código: Selecionar todos

Pedido_de_Vendas.Text_ValTotDoc.Value :=VAL(STRTRAN(Pedido_de_Vendas.Label_Tot_Merc.Value,",",""))-;
		                                                          VAL(STRTRAN(Pedido_de_Vendas.Label_Total_Desc.Value,",",""))
Só assim é que consigo o valor certo.
Há alguma forma de fazer isto mais simplificado.
ivanil
Usuário Nível 3
Usuário Nível 3
Mensagens: 166
Registrado em: 11 Set 2004 15:13
Localização: Florianópolis/SC

Erro ao solicitar a identificação do operador

Mensagem por ivanil »

Olá Fernando,
Não entendo o que vc quer dizer com sobrecarga...
Vc já abriu o Designer que desenvolvi? Todos os controles ativos e uma série de eventos, basicamente tratados em tempo real e não ha sobrecarga, tudo é 100% minigui...
Quanto a valor do label, troque para um textbox tipo numérico e use as propriedades enabled ou readonly para inibir alteração.
Fernando Almeida
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Set 2016 12:53
Localização: Dourados - MS

Erro ao solicitar a identificação do operador

Mensagem por Fernando Almeida »

Relativamente a sobrecarga, eu referia-me ao numero de linhas de código no mesmo Form.
Criei o PanelWindow e passei para lá os botões que usa no processamento da venda, como suspender cupom, Gestão de caixa, Abertura de Gaveta, Pagamento, etc. Depois destas mudanças parece que está tudo a funcionar.
Já fiz alguns testes e não deu nada errado.
Aproveitei e criei uma forma de ativar/desativar o pedido de identificação do usuário premindo 2 teclas, dentro do aplicativo e tendo permissão, e obrigou-me a colocar um setfocus antes do pedido de senha.
Fiz assim desta forma.

Código: Selecionar todos

ON KEY CONTROL+S OF Pedido_de_Vendas ACTION {|| DoMethod('Pedido_de_Vendas', "SetFocus"),;
                                             oSenhaMT :=Prepare_InputWindow( oSenhaMT, 1,;
                                              IF(DesligaTela==.f., 'Desliga a proteção de Ecran', 'Ativa a proteção de ecran'),;
                                               { 'Senha do Responsável:' }, { "" }, { "PASSWORD" }, CFG_EMP->SenhaMestr ),;
                                               IF(!Empty(oSenhaMT), DesligaTela:=ATIVASCREEN(DesligaTela, 'Pedido_de_Vendas', 'TPDVUser'), Nil) }
E está a funcionar bem.

Sobre o Designer, não sabia que era seu e ainda não o usei.
Então domina muito bem a linguagem.
Faço-lhe duas perguntas, Tem alguma rotina de Venda nas mesas feita para cellulares ?
E se estava disposto a converter uma rotina de geração de listagens em modo console com escolha de campos com cabeçalhos, totalizadores, ordenação e condições de filtragem, para modo gráfico. Ela está á a funcionar bem. Está feita em Clipper 5.2e
ivanil
Usuário Nível 3
Usuário Nível 3
Mensagens: 166
Registrado em: 11 Set 2004 15:13
Localização: Florianópolis/SC

Erro ao solicitar a identificação do operador

Mensagem por ivanil »

Olá Fernando,

A quantidade de linha não causa sobrecarga, mas sim o que tem nas linhas.
O painel que você acredita ter diminuido o fonte, o pre-processador junta tudo, depois olhe o ppo gerado para fins didaticos.
Sobre celulares, não é minha praia,soluções que teria mudaria completamente o paradgma de seu sistema, procure pelo Marcelo Neves.
Sobre conversão, acho que outros colegas aqui do grupo fazem este trabalho.
Grande abraço.
WestGangster12
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 23 Mar 2024 07:57
Localização: Sao Paulo

Erro ao solicitar a identificação do operador

Mensagem por WestGangster12 »

Parece que o problema estava relacionado à maximização do formulário no momento inadequado. É comum que algumas operações, como a maximização de janelas, causem problemas se não forem feitas na sequência correta ou se não houver controle adequado sobre elas. Tive um problema semelhante quando estava trabalhando nos processos internos do lucky slots, e espero que meu conselho o ajude a resolver o problema. Ao mover a instrução de maximização para o evento oninit do formulário, você pode ter resolvido o problema ao garantir que a maximização ocorra em um momento apropriado durante o ciclo de vida do formulário. É sempre bom considerar o contexto e a sequência de eventos ao lidar com operações que afetam a interface do usuário para evitar comportamentos inesperados.
BlazeBolt12
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 27 Mar 2024 15:22
Localização: Sao Paulo, SP

Erro ao solicitar a identificação do operador

Mensagem por BlazeBolt12 »

Parece que você conseguiu resolver o problema ao retirar a instrução de maximização do formulário e colocá-la no evento oninit do formulário. O comportamento que descreve, onde a maximização do formulário causava problemas, pode ser considerado normal em alguns casos, especialmente se a maximização ocorrer em um momento inoportuno ou interferir com outros elementos da interface. Compartilhe sua solução para esse problema em diferentes portais, por exemplo Sweet Bonanza, e você poderá ajudar muitos desenvolvedores. A abordagem de maximizar o formulário no oninit parece ser uma solução adequada para garantir que a maximização ocorra no momento correto e sem problemas.
Responder