Werkzeug um Belege zu scannen, Texterkennung durchzuführen und Belege sortiert abzulegen
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

127 lines
2.6 KiB

unit scanner;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtDlgs,
StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
ScnaButton: TButton;
Product: TComboBox;
Destination: TComboBox;
FolderName: TLabel;
Origin: TComboBox;
TypeSelector: TComboBox;
dateButton: TButton;
DateSelector: TCalendarDialog;
DateView: TLabel;
procedure ProductChange(Sender: TObject);
procedure DestinationChange(Sender: TObject);
procedure dateButtonClick(Sender: TObject);
procedure OriginChange(Sender: TObject);
procedure ScnaButtonClick(Sender: TObject);
procedure TypeSelectorChange(Sender: TObject);
procedure UpdateTypes();
procedure UpdateFolder();
private
date: TDateTime;
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.TypeSelectorChange(Sender: TObject);
var
state: boolean;
begin
TypeSelector.Tag:=1;
state := TypeSelector.Text = 'Ticket';
Origin.Enabled:=state;
Origin.Visible:=state;
Destination.Enabled:=state;
Product.Enabled:=not state;
Product.Visible:=not state;
UpdateFolder();
end;
procedure TForm1.dateButtonClick(Sender: TObject);
begin
DateSelector.Execute;
date := DateSelector.Date;
DateView.Caption:=FormatDateTime('YYYY-MM-DD',date);
UpdateTypes();
TypeSelector.enabled := true;
UpdateFolder();
end;
procedure TForm1.OriginChange(Sender: TObject);
begin
Origin.Tag := 1;
UpdateFolder();
end;
procedure TForm1.ScnaButtonClick(Sender: TObject);
var
config: TFileStream;
filename: String;
begin
filename := GetEnvironmentVariable('HOME') + '/.config/belegscanner.conf';
FolderName.Caption:=filename;
try
config :=TFilestream.Create(filename, fmCreate);
config.Write(filename[1],filename.Length);
finally
config.Free;
end;
end;
procedure TForm1.DestinationChange(Sender: TObject);
begin
Destination.Tag := 1;
UpdateFolder();
end;
procedure TForm1.ProductChange(Sender: TObject);
begin
Product.Tag := 1;
UpdateFolder();
end;
procedure TForm1.UpdateFolder();
var
tx: String;
begin
tx := FormatDateTime('YYYY-MM-DD',date);
if (TypeSelector.Tag > 0) then tx := tx + ' - ' + TypeSelector.Text;
if (Origin.Enabled AND (Origin.Tag > 0)) then tx := tx + ': ' + Origin.Text;
if (Destination.Enabled AND (Destination.Tag > 0)) then tx := tx + ' - ' + Destination.Text;
if (Product.Enabled AND (Product.Tag > 0)) then tx := tx + ' von ' + Product.Text;
FolderName.Caption:=tx;
end;
procedure TForm1.UpdateTypes();
begin
WriteLn('Test');
TypeSelector.Items.Clear;
TypeSelector.Items.Add('Ticket');
end;
end.