Alerta Pop up com Query
29/01/2016
0
begin With dmmonitora.querypedidos do begin SQL.Clear; SQL.Add('with CTE_Sum as (SELECT CODIGO, sum(QUANTIDADE * CUSTO_LIQUIDO) as total_liquido '); SQL.Add('from ITENS_PED1 group by CODIGO ) '); SQL.Add(' SELECT i.CODIGO, i.VENDEDOR_NOME, i.CLI_NOME,i.TOTAL,i.DATA, e.total_liquido'); SQL.Add(' from PEDIDOS_ORCAMENTOS i INNER JOIN CTE_Sum e ON i.codigo = e.CODIGO '); SQL.Add(' where i.Data >= '); SQL.Add(QuotedStr(FormatDateTime('yyyy/mm/dd', DateTimePicker1.Date)) + ' and i.DATA <= '); SQL.Add(QuotedStr(FormatDateTime('yyyy/mm/dd', DateTimePicker2.Date))); //ShowMessage(SQL.Text); Open; end; end;
e gostaria de que fosse exibido um alerta nesse formulário que tá com esse codigo,
var I: Integer; fAlertaMsn: TForm; BarraIniciar: HWND; {Barra Iniciar} tmAltura: Integer; tmRect: TRect; xTop : Integer; xIniTop : Integer; begin //localiza o Handle da janela iniciar BarraIniciar := FindWindow('Shell_TrayWnd', nil); //Pega o "retângulo" que envolve a barra e sua altura GetWindowRect(BarraIniciar, tmRect); tmAltura := tmRect.Bottom - tmRect.Top; fAlertaMsn := TFormAlerta.Create(Self); with fAlertaMsn do begin Left := Screen.Width - ClientWidth; if tmRect.Top = -2 then tmAltura := 3000; //Pega o top final xTop := Screen.Height - ClientHeight - tmAltura; //Pega o top inicial xIniTop := Screen.Height + ClientHeight + tmAltura; Top := xIniTop; for I := xIniTop downto xTop do begin Top := Top - 1; Show; Update; Application.ProcessMessages; Sleep(10); end; Sleep(4000); //tempo de exibição na tela Close; FreeAndNil(fAlertaMsn); end; end;
quando houvesse um novo lançamento na query , que nesse caso ficaria rodando com algum intervalo para monitorar um novo registro que não estivesse carregado no grid
tem como ?/
[img]http://i66.tinypic.com/2m64fuw.jpg[/img]
Valmir Inacio
Posts
30/01/2016
Rodrigo Oliveira
31/01/2016
Valmir Inacio
01/02/2016
Raimundo Pereira
De x em x tempo que pode ser definido em uma tabela de parâmetros ou arquivo ini.
Dá um refresh na tabela e verificando uma flag tipo "Pedido_Finalizado=N".
Se os registros forem >0 avisa tem x pedidos pedentes,
o ideal seria ter um grid para escolher qual pedido acessar.
É só uma ideia.
01/02/2016
Valmir Inacio
01/02/2016
Raimundo Pereira
Quais os procedimentos ?
Setor [Vendas] - Realizando pedidos.
Setor [Financeiro]- Realizando Vendas dos pedidos.
Setor [Estoque]- Aguardando finalização da venda, realiza expedição dos produtos e entrega para o cliente.?
Preciso de mais detalhes do funcionamento da logística utilizada para então sugerir algo mais preciso.
01/02/2016
Valmir Inacio
o codigo ficou assim:
begin With dmmonitora.querypedidos do begin SQL.Clear; SQL.Add(' with CTE_Sum as (SELECT CODIGO, sum(QUANTIDADE * CUSTO_LIQUIDO) as total_liquido '); SQL.Add(' from ITENS_PED1 group by CODIGO ) '); SQL.Add(' SELECT i.CODIGO, i.VENDEDOR_NOME,i.hora, i.CLI_NOME,i.TOTAL,i.DATA,i.cliente,i.vendedor,j.nome,l.nome, e.total_liquido'); SQL.Add(' from PEDIDOS_ORCAMENTOS i INNER JOIN CTE_Sum e ON i.codigo = e.CODIGO '); SQL.Add(' LEFT JOIN clientes j ON (i.cliente= j.cliente_id) LEFT JOIN vendedores l ON (i.vendedor =l.codigo) '); SQL.Add(' where i.Data >= '); SQL.Add(QuotedStr(FormatDateTime('yyyy/mm/dd', DateTimePicker1.Date)) + ' and i.DATA <= '); SQL.Add(QuotedStr(FormatDateTime('yyyy/mm/dd', DateTimePicker2.Date)));
26/09/2016
Alexandre Santos
No botão você implementa no envento OnClik este código que vc postou acima.... se funcionar exibindo o seu form é só você adaptar ao que deseja....
Se observar o procedimento do botão é implementado como do tipo "Sender" ou seja você poderia chamar o seu popup atraves de uma procedure que implementasse um Sender também...
Vou postar um exemplo do botão e depois como uma procedure
O Evento OnClik do Botão: (nao esqueça de dar uses no form que será o PoPup)
procedure TFormPrincipal.Button1Click(Sender: TObject); var I: Integer; MeuForm: TForm; //Cria a variavel do tipo TForm para ser instanciado na criação do Form BarraIniciar: HWND; {Barra Iniciar} tmAltura: Integer; tmRect: TRect; xTop: Integer; xIniTop: Integer; begin //localiza o Handle da janela iniciar BarraIniciar := FindWindow('Shell_TrayWnd', nil); //Pega o "retângulo" que envolve a barra e sua altura GetWindowRect(BarraIniciar, tmRect); tmAltura := tmRect.Bottom - tmRect.Top; MeuForm := TfrmPopUp.Create(Self); // Observe que o metodo create recebeu um form que eu ja havia preparado with FAPopup do begin Left := Screen.Width - ClientWidth; if tmRect.Top = -2 then tmAltura := 30; //Pega o top final xTop := Screen.Height - ClientHeight - tmAltura; //Pega o top inicial xIniTop := Screen.Height + ClientHeight + tmAltura; Top := xIniTop; for I := xIniTop downto xTop do begin Top := Top - 1; Show; Update; Application.ProcessMessages; Sleep(1); end; Sleep(100000); for I := xTop to xIniTop do begin Top := Top + 1; Show; Update; Application.ProcessMessages; Sleep(1); end; Close; FreeAndNil(MeuForm); end; end;/code] Então seguindo o exemplo do procedimento do botão, criei a procedure "ExibirPoPup" conforme este exemplo: [code] public { Public declarations } criei em public para poder ser chamado de qualquer outro local procedure ExibirPoPup(Sender: TObject);
Esta procedure segue o mesmo modelo do botão que é do tipo TObject e usa o método Sender.
na implementação da procedure ExibirPoPup vc coloca o mesmo código do botão conforme o exemplo:
procedure ExibirPoPup(Sender: TObject); var I: Integer; MeuForm: TForm; //Cria a variavel do tipo TForm para ser instanciado na criação do Form BarraIniciar: HWND; {Barra Iniciar} tmAltura: Integer; tmRect: TRect; xTop: Integer; xIniTop: Integer; begin //localiza o Handle da janela iniciar BarraIniciar := FindWindow('Shell_TrayWnd', nil); //Pega o "retângulo" que envolve a barra e sua altura GetWindowRect(BarraIniciar, tmRect); tmAltura := tmRect.Bottom - tmRect.Top; MeuForm := TfrmPopUp.Create(Self); // Observe que o metodo create recebeu um form que eu ja havia preparado with FAPopup do begin Left := Screen.Width - ClientWidth; if tmRect.Top = -2 then tmAltura := 30; //Pega o top final xTop := Screen.Height - ClientHeight - tmAltura; //Pega o top inicial xIniTop := Screen.Height + ClientHeight + tmAltura; Top := xIniTop; for I := xIniTop downto xTop do begin Top := Top - 1; Show; Update; Application.ProcessMessages; Sleep(1); end; Sleep(100000); for I := xTop to xIniTop do begin Top := Top + 1; Show; Update; Application.ProcessMessages; Sleep(1); end; Close; FreeAndNil(MeuForm); end;
Então depois que você fizer a verificação em sua base basta dispara o método assim:
ExibirPoPup(Sender); // Desta forma o Sender enviará o que estiver implementado na procedure Exibir PoPup...
Clique aqui para fazer login e interagir na Comunidade :)