Fórum Alerta Pop up com Query #544137
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
Curtir tópico
+ 0Posts
30/01/2016
Rodrigo Oliveira
Gostei + 0
31/01/2016
Valmir Inacio
Gostei + 0
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.
Gostei + 0
01/02/2016
Valmir Inacio
Gostei + 0
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.
Gostei + 0
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)));Gostei + 0
03/02/2016
Valmir Inacio
Gostei + 0
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...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)