Einzelnen Beitrag anzeigen

Duffy Duck

Registriert seit: 22. Feb 2005
56 Beiträge
 
Delphi 7 Enterprise
 
#52

AW: Problem mit zugriff auf dbf Dateien und bearbeiten.

  Alt 10. Feb 2016, 22:06
Hallo Leute

nach ein paar Tagen abwesenheit melde ich mich wieder
Bin im meinem Projekt ein wenig weiter gekommen. Habe es so wie mir "nahpets" empfohlen hat meinen Code bereinigt und den Buttons und Editfelder mit Namen versehen

Jetzt zum eigentlichem, nahpets Du hast doch auf Seite 2 doch ein Miniprogramm geschreiben vo die Tabelle gefiltert wird. Das ist doch genau das was ich brauche...
Was ich jetzt nicht verstehe ist, im Editfeld (bei mir vonGast) hast Du im Objektinspektor bei Text folgendes reingeschrieben:
KUNR > 1 and KUNR < 4

wie bekomme ich es nun hin, genau diesen befehl über die Editfelder (vonGast und bisGast) zu Steuern?
Genaugenommen sollte nicht ein "fester Wert" drin stehen, sondern ich möchte eine Eingabe machen z.B. vonGast 3 bisGast 7...

bin so Frei und poste den Code nochmals:

Danke

Code:
unit Main;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, ComCtrls, DB, Grids,
  DBGrids, dbf, DBTables, XPMan, jpeg, ToolWin, RpRender, RpRenderPDF,
  RpDefine, RpRave, RpCon, RpConDS, ImgList, FMTBcd, SqlExpr;

type
  TMainForm = class(TForm)
    MainMenu: TMainMenu;
    FileExitItem: TMenuItem;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    EdLimitMax: TEdit;
    BtnOK: TButton;
    Dbf1: TDbf;
    XPManifest1: TXPManifest;
    EdLimitNull: TEdit;
    BtnLoeschen: TButton;
    GroupBox1: TGroupBox;
    LabvonGast: TLabel;
    LabbisGast: TLabel;
    vonGast: TEdit;
    bisGast: TEdit;
    BtnFilter: TButton;
    GroupBox2: TGroupBox;
    LabLoeschen: TLabel;
    LabEintragen: TLabel;
    Timer1: TTimer;
    StatusBar1: TStatusBar;
    OpenDialog1: TOpenDialog;
    Oeffnen1: TMenuItem;
    RvRenderPDF1: TRvRenderPDF;
    RvDataSetConnection1: TRvDataSetConnection;
    RvCustomConnection1: TRvCustomConnection;
    RvProject1: TRvProject;
    Drucken1: TMenuItem;
    PrintDialog1: TPrintDialog;
    Dbf1KUNR: TIntegerField;
    Dbf1KUNAM: TStringField;
    Dbf1KUANRED: TStringField;
    Dbf1KUFIRMA: TStringField;
    Dbf1KUSALDO: TFloatField;
    Dbf1KULIMIT: TLargeintField;
    ImageList1: TImageList;
    Query1: TQuery;
    procedure FormCreate(Sender: TObject);
    procedure FileExit(Sender: TObject);
    procedure BtnOKClick(Sender: TObject);
    procedure BtnLoeschenClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Oeffnen1Click(Sender: TObject);
    procedure Drucken1Click(Sender: TObject);
    procedure EdLimitMaxKeyPress(Sender: TObject; var Key: Char);
    procedure vonGastChange(Sender: TObject);
    procedure EdLimitMaxChange(Sender: TObject);
    procedure BtnFilterClick(Sender: TObject);
    procedure bisGastChange(Sender: TObject);

end;

var
  MainForm: TMainForm;

implementation

{$r *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);
// Datum und Uhrzeit in der Statusleiste
begin
  Statusbar1.Panels[1].Text:=TimeToStr (now);
  Statusbar1.Panels[2].Text:=DateToStr (now);
end;

procedure TMainForm.FileExit(Sender: TObject);
// Programm beenden
begin
  dbf1.Close;
  application.Terminate;
end;

procedure TMainForm.BtnOKClick(Sender: TObject);
// Guthaben für alle Gäste auf einmal setzen
begin
    dbf1.First;
  while not dbf1.EoF do begin
    dbf1.Edit;
    dbf1.FieldByName('KULimit').AsString := edlimitMax.Text;
    dbf1.Post;
    dbf1.Next;
 end;
end;
procedure TMainForm.BtnLoeschenClick(Sender: TObject);
//Guthaben für alle Gäste auf einmal löschen
begin
    dbf1.First;
  while not dbf1.EoF do begin
    dbf1.Edit;
    dbf1.FieldByName('KULimit').AsString := edLimitNull.Text;
    dbf1.Post;
    dbf1.Next;
  end;
end;

procedure TMainForm.Timer1Timer(Sender: TObject);
//Timer für Datum und Uhrzeit
begin
  Statusbar1.Panels[1].Text:=DateToStr (now);
  Statusbar1.Panels[2].Text:=TimeToStr (now);
end;

procedure TMainForm.Oeffnen1Click(Sender: TObject);
begin
   dbf1.Close;
   if OpenDialog1.Execute then begin
     dbf1.TableName := OpenDialog1.FileName;
   end;
   dbf1.Open;
end;

procedure TMainForm.Drucken1Click(Sender: TObject);
//Tabelle Drucken über Rave Reports
begin
   RvProject1.Open;
   RvProject1.Execute;
end;

procedure TMainForm.EdLimitMaxKeyPress(Sender: TObject; var Key: Char);
//Guthabenfeld nur Zahlen möglich
begin
     if NOT (Key in [#08, '0'..'9']) then
    Key := #0;
end;

procedure TMainForm.vonGastChange(Sender: TObject);
//Filter Button wird eingeschaltet sobald Zahl in vonGast Feld eingegeben wird
begin
      btnFilter.Enabled:=true;
end;

procedure TMainForm.EdLimitMaxChange(Sender: TObject);
//OK Bestätigen Button wird eingeschaltet sobald im EdLimitMaxfeld eine Eingabe erfolgt
begin
      btnOk.Enabled:=true;
  end;

procedure TMainForm.BtnFilterClick(Sender: TObject);
//Ausführen des Filter im dbgrid
begin
    dbf1.Filter :=vonGast.Text;
    dbf1.Filter :=bisGast.Text;
    dbf1.Filtered := not dbf1.Filtered;
end;

procedure TMainForm.bisGastChange(Sender: TObject);
begin

end;

end.
  Mit Zitat antworten Zitat