Einzelnen Beitrag anzeigen

r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#1

In Excel via Delphi reinschreiben

  Alt 26. Mär 2007, 15:36
Guten Tag zusammen,

Seid kurzem bin ich in Rahmen meiner Ausbildung als "Delphi Programmierer" unterwegs... Bzw man will es noch werden

Nun Zum Lernen hab ich mir folgendes Ausgedacht. Ein Zeiterfassungssystem Tausend mal schon in Excel erstellt. Aber man will ja selber was machen.

Nunja kommen wir zum Programm: ich habe 4 Buttons
Arbeits Anfang
Pausen Anfang
Pausen Ende
Arbeits Ende

Bis jetzt geben die Einfach eine MessageBox aus mit der Aktuellen Zeit... Nun Will ich das aber alles In Excel haben...

In Excel habe ich folgende Spalten ...
Datum Anfangszeit Pausenanfang Pausenende Endzeit Soll Zeit PlusStunden


SollZeit wird Errechnet aus Anfangzeit plus 7Stunden 48 plus 30 Minuten Pause...
PlusStunden wird die Gearbeitete Stunden -7:48 und sowas
Das ist jetzt nicht das Problem das Problem besteht dadrin wie ich jetzt auf die Excel Datei zugreife in sie Reinschreibe... Und Falls ein neuer Monat ist das Er Mir ne Neue Tabelle mit einen anderen Namen erstellt.

Mein BIsheriger Quell code:
Delphi-Quellcode:
unit Zeiterfassung_pas;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TfrmZeiterfassung = class(TForm)
    lbldate: TLabel;
    lblTime: TLabel;
    UhrzeitTimer: TTimer;
    Exit: TButton;
    AnfangArbeit: TButton;
    AnfangPause: TButton;
    EndePause: TButton;
    EndeArbeit: TButton;
    procedure FormCreate(Sender: TObject);
    procedure UhrzeitTimerTimer(Sender: TObject);
    procedure ExitClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure AnfangArbeitClick(Sender: TObject);
    procedure EndeArbeitClick(Sender: TObject);
    procedure AnfangPauseClick(Sender: TObject);
    procedure EndePauseClick(Sender: TObject);
  private
    { Private-Deklarationen }
    AnfangsZeitArbeit: TTime;
    EndeZeitArbeit: TTime;
    AnfangsZeitPause: TTime;
    EndeZeitPause: TTime;
    AmArbeiten: boolean;
    InderPause: boolean;
  public
    { Public-Deklarationen }
  end;

var
  frmZeiterfassung: TfrmZeiterfassung;

implementation

{$R *.dfm}


procedure TfrmZeiterfassung.FormCreate(Sender: TObject);
begin
  lbldate.Caption:= DateToStr(Date);
  lbltime.Caption:= TimeToStr(Time);
  frmZeiterfassung.Caption:= 'Programm gestartet am: ' + DateToStr(Date) +
                              ' um: ' + TimeToStr(Time);
  AmArbeiten:= false;
  InderPause:= false;
end;

procedure TfrmZeiterfassung.UhrzeitTimerTimer(Sender: TObject);
begin
  lbltime.Caption:= TimeToStr(Time);
end;

procedure TfrmZeiterfassung.ExitClick(Sender: TObject);
begin
  close;
end;

procedure TfrmZeiterfassung.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
CanClose:= true;
end;



procedure TfrmZeiterfassung.AnfangArbeitClick(Sender: TObject);
begin
  if AmArbeiten= true then
    Messagedlg('Sie Sind schon am Arbeiten',mtError,[mbok],0)
  else
  begin
    AmArbeiten:= true;
    AnfangsZeitArbeit:= Time;
    ShowMessage(TimeToStr(AnfangsZeitArbeit));
  end;
end;


procedure TfrmZeiterfassung.EndeArbeitClick(Sender: TObject);
begin
  if AmArbeiten= false then
    Messagedlg('Sie Sind nicht am Arbeiten',mtError,[mbok],0)
  else
  begin
    AmArbeiten:= false;
    EndeZeitArbeit:= Time;
    ShowMessage(TimeToStr(EndeZeitArbeit));
  end;
end;


procedure TfrmZeiterfassung.AnfangPauseClick(Sender: TObject);
begin
  if AmArbeiten= false then
    Messagedlg('Sie können nicht in die Pause gehen da sie noch nicht am Arbeiten sind.',mtError,[mbok],0)
  else
  begin
    if InderPause= true then
      Messagedlg('Sie Sind schon in der Pause.',mtError,[mbok],0)
    else
    begin
      InderPause:= true;
      AnfangsZeitPause:= Time;
      ShowMessage(TimeToStr(AnfangsZeitPause));
    end;
  end;
end;

procedure TfrmZeiterfassung.EndePauseClick(Sender: TObject);
begin
  if AmArbeiten= false then
    Messagedlg('Sie können nicht in die Pause gehen da sie noch nicht am Arbeiten sind.',mtError,[mbok],0)
  else
  begin
    if InderPause= false then
      Messagedlg('Sie Sind nicht in der Pause.',mtError,[mbok],0)
    else
    begin
      InderPause:= false;
      EndeZeitPause:= Time;
      ShowMessage(TimeToStr(EndeZeitPause));
    end;
  end;
end;

end.
Mitz freundlichen Grüßen

r3v0
Blub ich bin die Sig.
  Mit Zitat antworten Zitat