Autor Téma: ZEOS a filtrovani  (Přečteno 148 krát)

Offline Kony

  • Hrdina
  • ****
  • Příspěvků: 330
  • Karma: 1
    • Verze Delphi: Delphi 7
ZEOS a filtrovani
« kdy: 20-07-2022, 11:42:34 »
Ahoj, snazim se v Delphi pomoci ZEOS filtrovat zaznamy v MySQL.. a pak k vyhledanému zaznamu do položky "ks" přičíst 1..

Kód: Delphi [Vybrat]
  1.       ZTable1.Filtered := false;
  2.       ZTable1.Filter := ('EAN = ''' + Edit1.Text + '''');
  3.       ZTable1.Filtered := true;

Kód: Delphi [Vybrat]
  1. pricteno := (ZTable1.FieldList[2].CurValue+ 1);
  2. ZTable1.Edit;
  3. ZTable1.FieldList[2].CurValue := pricteno;

Ale ani za boha mi to nevyhleda a ani nepricte....

Celý to mám takto

Kód: Delphi [Vybrat]
  1. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  2. begin
  3.   if Key = #13 then begin
  4.     SelectNext(Sender as tWinControl, True, True );
  5.     if Sender = Edit1 then
  6.       ZTable1.Filtered := false;
  7.       ZTable1.FilterOptions:= [foCaseInsensitive];
  8.       ZTable1.Filter := 'EAN LIKE' + QuotedStr(Edit1.Text);
  9.       ZTable1.Filtered := true;
  10.       pricteno := (ZTable1.FieldList[2].CurValue+ 1);
  11.       ZTable1.Edit;
  12.       ZTable1.FieldList[2].CurValue :=  pricteno;
  13.       ZTable1.Filtered := false;

Offline jirka52

  • Mladík
  • **
  • Příspěvků: 97
  • Karma: 3
    • Verze Delphi: D2, D5, D6, D2005, D2006, D2009, DXE2,DXE7,D10.2, D11
Re:ZEOS a filtrovani
« Odpověď #1 kdy: 20-07-2022, 11:50:34 »
A nechybí ti tam vnořený begin?
A voláš post?
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then begin
        SelectNext(Sender as tWinControl, True, True );
        if Sender = Edit1 then
begin
          ZTable1.Filtered := false;
          ZTable1.FilterOptions:= [foCaseInsensitive];
          ZTable1.Filter := 'EAN LIKE' + QuotedStr(Edit1.Text);
          ZTable1.Filtered := true;
          pricteno := (ZTable1.FieldList[2].CurValue+ 1);
          ZTable1.Edit;
          ZTable1.FieldList[2].CurValue :=  pricteno;
        ZTable1.Post;
          ZTable1.Filtered := false;
end;
« Poslední změna: 20-07-2022, 11:52:27 od jirka52 »

Offline Kony

  • Hrdina
  • ****
  • Příspěvků: 330
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:ZEOS a filtrovani
« Odpověď #2 kdy: 20-07-2022, 12:48:37 »
no uplne celý to mam takto

Kód: Delphi [Vybrat]
  1. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  2. begin
  3.   if Key = #13 then begin
  4.     SelectNext(Sender as tWinControl, True, True );
  5.     if Sender = Edit1 then
  6.     begin
  7.       ZTable1.Filtered := false;
  8.       ZTable1.FilterOptions:= [foCaseInsensitive];
  9.       ZTable1.Filter := 'EAN LIKE' + QuotedStr(Edit1.Text);
  10.       ZTable1.Filtered := true;
  11.       Edit3.Text := (ZTable1.FieldByName('ks').Value+ 1);
  12.       ZTable1.Edit;
  13.       ZTable1.FieldByName('ks').Value :=  Edit3.Text;
  14.       ZTable1.Filtered := false;
  15.       end;
  16.       Memo1.Clear;
  17.       Memo1.Font.Size := 100;
  18.       Memo1.Text := 'OK';
  19.     Key := #0;
  20.   end;
  21.     ZTable1.Next;
  22.     ZTable1.Filtered := false;
  23.     ZTable1.Filter :='ks > ''0''';
  24.     ZTable1.Filtered := true;
  25.     Edit1.SetFocus;
  26.     Timer1.Enabled := True;
  27. end;
ono to asi vyfiltruje, ale neudela to co má, tzn najít a přičíst do sloupce ks jedničku

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6690
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:ZEOS a filtrovani
« Odpověď #3 kdy: 20-07-2022, 12:51:33 »
Ale ten Post tam stále nemáš ::)
Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Kony

  • Hrdina
  • ****
  • Příspěvků: 330
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:ZEOS a filtrovani
« Odpověď #4 kdy: 20-07-2022, 12:56:20 »
Tak post jsem tam dal, ale stejne to stale nepripocitava

Kód: Delphi [Vybrat]
  1.     procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  2.     begin
  3.       if Key = #13 then begin
  4.         SelectNext(Sender as tWinControl, True, True );
  5.         if Sender = Edit1 then
  6.         begin
  7.           ZTable1.Filtered := false;
  8.           ZTable1.FilterOptions:= [foCaseInsensitive];
  9.           ZTable1.Filter := 'EAN LIKE' + QuotedStr(Edit1.Text);
  10.           ZTable1.Filtered := true;
  11.           Edit3.Text := (ZTable1.FieldByName('ks').Value+ 1);
  12.           ZTable1.Edit;
  13.           ZTable1.FieldByName('ks').Value :=  Edit3.Text;
  14.           ZTable1.Filtered := false;
  15.           ZTable1.post;
  16.           end;
  17.           Memo1.Clear;
  18.           Memo1.Font.Size := 100;
  19.           Memo1.Text := 'OK';
  20.         Key := #0;
  21.       end;
  22.         ZTable1.Next;
  23.         ZTable1.Filtered := false;
  24.         ZTable1.Filter :='ks > ''0''';
  25.         ZTable1.Filtered := true;
  26.         Edit1.SetFocus;
  27.         Timer1.Enabled := True;
  28.     end;
« Poslední změna: 20-07-2022, 13:20:30 od Kony »

Offline Kony

  • Hrdina
  • ****
  • Příspěvků: 330
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:ZEOS a filtrovani
« Odpověď #5 kdy: 20-07-2022, 13:40:46 »
zmenil jsem i vyber sloupce
Kód: Delphi [Vybrat]
  1.         procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  2.         begin
  3.           if Key = #13 then begin
  4.             SelectNext(Sender as tWinControl, True, True );
  5.             if Sender = Edit1 then
  6.             begin
  7.               ZTable1.Filtered := false;
  8.               ZTable1.FilterOptions:= [foCaseInsensitive];
  9.               ZTable1.Filter := 'EAN LIKE' + QuotedStr(Edit1.Text);
  10.               ZTable1.Filtered := true;
  11.               pocitej := (ZTable1.Fields[1].AsInteger  + 1);
  12.               ZTable1.Edit;
  13.               ZTable1.Fields[1].AsInteger :=  pocitej;
  14.               ZTable1.Filtered := false;
  15.               ZTable1.post;
  16.               end;
  17.               Memo1.Clear;
  18.               Memo1.Font.Size := 100;
  19.               Memo1.Text := 'OK';
  20.               Edit3.Text := InttoStr(pocitej);
  21.             Key := #0;
  22.           end;
  23.      //       ZTable1.Next;
  24.      //       ZTable1.Filtered := false;
  25.      //       ZTable1.Filter :='ks > ''0''';
  26.        //     ZTable1.Filtered := true;
  27.             Edit1.SetFocus;
  28.             Timer1.Enabled := True;
  29.         end;

A taky porad nic, neposle se proste ten novy udaj zpet do DB... v Edit3 se ukaze nova hodnota, ale ta se neodesle


Tak hotovo :

Kód: Delphi [Vybrat]
  1.     procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  2.         begin
  3.           if Key = #13 then begin
  4.             SelectNext(Sender as tWinControl, True, True );
  5.             if Sender = Edit1 then
  6.             begin
  7.               ZTable1.Filtered := false;
  8.               ZTable1.FilterOptions:= [foCaseInsensitive];
  9.               ZTable1.Filter := 'EAN LIKE' + QuotedStr(Edit1.Text);
  10.               ZTable1.Filtered := true;
  11.               jednicka := 1;
  12.               pocitej := (ZTable1.Fields[1].AsInteger  + jednicka);
  13.               Edit3.Text := InttoStr(pocitej);
  14.               ZTable1.Edit;
  15.               ZTable1.FieldByName('ks').AsString := Edit3.Text;
  16.        //       ZTable1.Filtered := false;
  17.               ZTable1.post;
  18.               end;
  19.               Memo1.Clear;
  20.               Memo1.Font.Size := 100;
  21.               Memo1.Text := 'OK';
  22.             Key := #0;
  23.           end;
  24.             ZTable1.Next;
  25.             ZTable1.Filtered := false;
  26.             ZTable1.Filter :='ks > ''0''';
  27.             ZTable1.Filtered := true;
  28.             Edit1.SetFocus;
  29.             Timer1.Enabled := True;
  30.         end;
  31.  
« Poslední změna: 20-07-2022, 13:53:07 od Kony »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6690
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:ZEOS a filtrovani
« Odpověď #6 kdy: 20-07-2022, 14:35:38 »
Aa ZTable1.Post; pridaj ZTable1.Refresh;
To načíta aktuálny obsah tabuľky.
Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.