unit MainForm;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, System.WideStrUtils,
System.DateUtils, System.UITypes, System.IOUtils, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
Vcl.ExtCtrls, DataModule, Data.DB, Vcl.Grids, Vcl.DBGrids, Vcl.GraphUtil, FlatDesignColorsFull, Vcl.Menus,
Vcl.WinXCtrls, Data.Win.ADODB, Vcl.DBCtrls, Vcl.DBCGrids, DetailForm, Vcl.ComCtrls, TL.Components, RaboBrowser;
const
wm_AppStarted = wm_User + 101;
type
TfrmMain = class(TLForm)
pnlButtons: TPanel;
btnDecYear: TButton;
btnIncYear: TButton;
btnShowSubCat: TButton;
lblYear: TLabel;
pnlMain: TPanel;
LDBGridCat: TLDBGrid;
LDBGridSubCat: TLDBGrid;
Splitter1: TSplitter;
MainMenu: TMainMenu;
Exit2: TMenuItem;
Import1: TMenuItem;
Import2: TMenuItem;
Categorien1: TMenuItem;
Categorien2: TMenuItem;
Budget1: TMenuItem;
AssigCategories1: TMenuItem;
Mutaties1: TMenuItem;
Aftrekpostenbelastingaangifte1: TMenuItem;
FileOpenDialog: TFileOpenDialog;
btnToonDetails: TButton;
StatusBar1: TStatusBar;
btnLeft: TButton;
btnRight: TButton;
pnlGrids: TPanel;
RaboBank1: TMenuItem;
btnShowBudgetPlan: TButton;
Help1: TMenuItem;
AboutFinAdm1: TMenuItem;
procedure btnShowSubCatClick(Sender: TObject);
procedure btnDecYearClick(Sender: TObject);
procedure btnIncYearClick(Sender: TObject);
procedure LDBGridCatDrawColumnCell(
Sender: TObject;
const Rect: TRect;
DataCol: Integer;
Column: TColumn;
State: TGridDrawState);
procedure FormCreate(Sender: TObject);
procedure LDBGridSubCatDrawColumnCell(
Sender: TObject;
const Rect: TRect;
DataCol: Integer;
Column: TColumn;
State: TGridDrawState);
procedure Splitter1Moved(Sender: TObject);
procedure Categorien1Click(Sender: TObject);
procedure Budget1Click(Sender: TObject);
procedure Import1Click(Sender: TObject);
procedure AssigCategories1Click(Sender: TObject);
procedure Mutaties1Click(Sender: TObject);
procedure Aftrekpostenbelastingaangifte1Click(Sender: TObject);
procedure btnToonDetailsClick(Sender: TObject);
procedure AssignCategories;
function Import(AFileName: string): boolean;
procedure btnLeftClick(Sender: TObject);
procedure btnRightClick(Sender: TObject);
procedure FormKeyDown(
Sender: TObject;
var Key: Word;
Shift: TShiftState);
procedure LDBGridCatKeyDown(
Sender: TObject;
var Key: Word;
Shift: TShiftState);
procedure LDBGridSubCatColEnter(Sender: TObject);
procedure RaboBank1Click(Sender: TObject);
procedure btnShowBudgetPlanClick(Sender: TObject);
procedure AboutFinAdm1Click(Sender: TObject);
private
ShowBudgetPlan: bool;
{ Private declarations }
procedure Refresh(
DataSet: TDataSet;
Grid: TLDBGrid);
procedure wmAppStarted(var Msg: tMessage); message wm_AppStarted;
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
uses
BudgetForm, MutatiesForm, CategoriesForm, ReportForm, LoginForm, MessageForm, ProgressForm, AboutForm;
function Locate(
DataSet: TDataSet;
FieldName: string;
FieldValue: variant): boolean;
// var
// BM: TBookmark;
begin
Result:= False;
if DataSet.IsEmpty then
Exit;
// BM := DataSet.Bookmark;
DataSet.DisableControls;
try
DataSet.First;
while not DataSet.eof do
begin
if LowerCase(DataSet.FieldByname(FieldName).Value) = LowerCase(FieldValue) then
begin
Result:= True;
Break;
end;
DataSet.Next;
end;
// if not Result then DataSet.Bookmark := BM;
finally
DataSet.EnableControls;
end;
end;
function TfrmMain.Import(AFileName: string): boolean;
var
FileNameFull, FileName: string;
ImportPath: string;
begin
Result:= False;
if AFileName = '' then
begin
FileOpenDialog.DefaultFolder:= Folder.DownLoads;
if FileOpenDialog.Execute then
begin
FileNameFull:= FileOpenDialog.FileName;
FileName:= ExtractFileName(FileNameFull);
end
else
Exit;
end
else
begin
FileNameFull:= AFileName;
FileName:= ExtractFileName(FileNameFull);
end;
// Creates a new directory, including the creation of parent directories as needed
ImportPath:= Folder.ProgramData + '\Langstraat\FinAdm\Import\';
if not System.SysUtils.ForceDirectories(ImportPath) then
raise Exception.Create(ImportPath);
// Refresh
dm.DataSetImportHistory.Close;
dm.DataSetImportHistory.Open;
if not Locate(dm.DataSetImportHistory, 'FileName', FileName) then
begin
dm.DataSetImportHistory.AppendRecord([nil, nil, nil, ExtractFileName(FileName)]);
dm.CommandImport.CommandText:= WideStringReplace(
dm.CommandImport.CommandText,
'filename.csv',
FileNameFull.Replace('\', '/'),
[rfReplaceAll, rfIgnoreCase]);
dm.CommandImport.Execute;
TFile.Move(
FileNameFull,
ImportPath + FileName);
MessageDlg(
'Het bestand: ' + FileName + ' is succesvol geïmporteerd!',
mtInformation,
[mbOk],
0,
mbOk);
Result:= True;
end
else
MessageDlg(
'Het bestand: ' + FileName + ' is al geïmporteerd!',
mtInformation,
[mbOk],
0,
mbOk);
end;
procedure TfrmMain.Import1Click(Sender: TObject);
begin
if Self.Import('') then
begin
Self.AssignCategories;
// Refresh
frmMutaties.GridMutaties.DataSource.DataSet.Close;
frmMutaties.GridMutaties.DataSource.DataSet.Open;
frmMutaties.ToggleSwitchNotAssigned.State:= tssOn;
frmMutaties.ShowModal;
// Refresh
Refresh(
dm.DataSetReportCat,
Self.LDBGridCat);
Refresh(
dm.DataSetReportSubCat,
Self.LDBGridSubCat);
end;
end;
procedure TfrmMain.RaboBank1Click(Sender: TObject);
begin
frmRaboBrowser:= TfrmRaboBrowser.Create(Self);
try
frmRaboBrowser.LoadConfig;
frmRaboBrowser.ShowModal;
frmRaboBrowser.SaveConfig;
if frmRaboBrowser.FResultFilePath <> '' then
if Import(frmRaboBrowser.FResultFilePath) then
begin
frmMessage:= TfrmMessage.Create(nil);
try
frmMessage.Caption:= 'Processing...';
frmMessage.Label1.Caption:= 'Automatic category assignment is performed, please wait...';
frmMessage.Show;
Application.ProcessMessages;
Self.AssignCategories;
finally
frmMessage.Free;
end;
// Refresh
frmMutaties.GridMutaties.DataSource.DataSet.Close;
frmMutaties.GridMutaties.DataSource.DataSet.Open;
frmMutaties.ToggleSwitchNotAssigned.State:= tssOn;
frmMutaties.ShowModal;
// Refresh
Refresh(
dm.DataSetReportCat,
Self.LDBGridCat);
Refresh(
dm.DataSetReportSubCat,
Self.LDBGridSubCat);
end;
finally
frmRaboBrowser.Free;
end;
end;
procedure TfrmMain.Refresh(
DataSet: TDataSet;
Grid: TLDBGrid);
begin
DataSet.Active:= False;
DataSet.Active:= True;
Grid.SetColumnAttr;
Self.LDBGridSubCat.Columns[0].Width:= Self.LDBGridCat.Columns[0].Width;
end;
procedure TfrmMain.Splitter1Moved(Sender: TObject);
begin
Self.RegVars.Values['SubCatHeigth']:= IntToStr(Self.LDBGridSubCat.Height);
end;
procedure TfrmMain.AboutFinAdm1Click(Sender: TObject);
begin
frmAbout.Execute;
end;
procedure TfrmMain.Aftrekpostenbelastingaangifte1Click(Sender: TObject);
begin
frmReport.RLReport1.PreviewModal;
end;
procedure TfrmMain.AssignCategories;
var
Splitted: TArray<string>;
i: Integer;
var
AdoQuery: TADOQuery;
S: string;
ADOCommand: TADOCommand;
RecCount: Integer;
begin
AdoQuery:= TADOQuery.Create(nil);
try
AdoQuery.Connection:= dm.Connection;
AdoQuery.SQL.Add('SELECT * FROM AutoAssignCategorie');
AdoQuery.Open;
frmProgress.Show;
RecCount:= 0;
while not AdoQuery.eof do
begin
Inc(RecCount);
frmProgress.ProgressBar.Position:= Round(RecCount / (AdoQuery.RecordCount) * 100);
Application.ProcessMessages;
S:= AdoQuery.FieldByname('Zoekstring').AsString;
Splitted:= S.Split([';']);
for i:= 0 to Length(Splitted) - 1 do
begin
ADOCommand:= TADOCommand.Create(nil);
try
ADOCommand.Connection:= dm.Connection;
ADOCommand.Parameters.Clear;
ADOCommand.CommandText:=
'UPDATE Mutaties SET Categorie=:Cat, Subcategorie=:Subcat WHERE `Categorie` = 0 AND (`Naam_tegenpartij` LIKE :Zoekstr1 OR `Omschrijving_1` LIKE :Zoekstr2)';
ADOCommand.ParamCheck:= False;
ADOCommand.Parameters.ParamByName('Cat').Value:= AdoQuery.FieldByname('CategorieID').AsString;
ADOCommand.Parameters.ParamByName('Subcat').Value:= AdoQuery.FieldByname('SubcategorieID').AsString;
ADOCommand.Parameters.ParamByName('Zoekstr1').Value:= Splitted[i];
ADOCommand.Parameters.ParamByName('Zoekstr2').Value:= Splitted[i];
ADOCommand.Execute;
finally
ADOCommand.Free;
end;
end;
AdoQuery.Next;
end;
finally
AdoQuery.Free;
frmProgress.hide;
end;
frmMutaties.GridMutaties.DataSource.DataSet.Close;
frmMutaties.GridMutaties.DataSource.DataSet.Open;
end;
procedure TfrmMain.AssigCategories1Click(Sender: TObject);
begin
AssignCategories;
frmMutaties.ShowModal;
end;
procedure TfrmMain.btnDecYearClick(Sender: TObject);
var
Jaar: Integer;
begin
Jaar:= dm.DataSetReportCat.Parameters.ParamByName('Jaar').Value;
Dec(Jaar);
Self.lblYear.Caption:= Jaar.ToString;
Self.RegVars.Values['CurrentYear']:= Jaar.ToString;
for var i:= 0 to dm.DataSetReportCat.Parameters.Count - 1 do
begin
if dm.DataSetReportCat.Parameters[i].Name = 'Jaar' then
dm.DataSetReportCat.Parameters[i].Value:= Self.RegVars.Values['CurrentYear'];
if dm.DataSetReportCat.Parameters[i].Name = 'CatInkomsten' then
dm.DataSetReportCat.Parameters[i].Value:= 16;
end;
Refresh(
dm.DataSetReportCat,
LDBGridCat);
for var i:= 0 to dm.DataSetReportSubCat.Parameters.Count - 1 do
begin
if dm.DataSetReportSubCat.Parameters[i].Name = 'Jaar' then
dm.DataSetReportSubCat.Parameters[i].Value:= Self.RegVars.Values['CurrentYear'];
if dm.DataSetReportSubCat.Parameters[i].Name = 'Cat' then
dm.DataSetReportSubCat.Parameters[i].Value:= dm.DataSetReportCat.FieldByname('ID').AsInteger;
if dm.DataSetReportSubCat.Parameters[i].Name = 'VasteKosten' then
dm.DataSetReportSubCat.Parameters[i].Value:= dm.DataSetReportCat.FieldByname('VK').AsInteger;
end;
Refresh(
dm.DataSetReportSubCat,
LDBGridSubCat);
end;
procedure TfrmMain.btnIncYearClick(Sender: TObject);
var
Jaar: Integer;
begin
Jaar:= dm.DataSetReportCat.Parameters.ParamByName('Jaar').Value;
Inc(Jaar);
Self.lblYear.Caption:= Jaar.ToString;
Self.RegVars.Values['CurrentYear']:= Jaar.ToString;
for var i:= 0 to dm.DataSetReportCat.Parameters.Count - 1 do
begin
if dm.DataSetReportCat.Parameters[i].Name = 'Jaar' then
dm.DataSetReportCat.Parameters[i].Value:= Self.RegVars.Values['CurrentYear'];
if dm.DataSetReportCat.Parameters[i].Name = 'CatInkomsten' then
dm.DataSetReportCat.Parameters[i].Value:= 16;
end;
Refresh(
dm.DataSetReportCat,
LDBGridCat);
for var i:= 0 to dm.DataSetReportSubCat.Parameters.Count - 1 do
begin
if dm.DataSetReportSubCat.Parameters[i].Name = 'Jaar' then
dm.DataSetReportSubCat.Parameters[i].Value:= Self.RegVars.Values['CurrentYear'];
if dm.DataSetReportSubCat.Parameters[i].Name = 'Cat' then
dm.DataSetReportSubCat.Parameters[i].Value:= dm.DataSetReportCat.FieldByname('ID').AsInteger;
if dm.DataSetReportSubCat.Parameters[i].Name = 'VasteKosten' then
dm.DataSetReportSubCat.Parameters[i].Value:= dm.DataSetReportCat.FieldByname('VK').AsInteger;
end;
Refresh(
dm.DataSetReportSubCat,
LDBGridSubCat);
end;
procedure TfrmMain.btnLeftClick(Sender: TObject);
begin
// Shift left
for var i:= 1 to Self.LDBGridCat.Columns.Count - 2 do
Self.LDBGridCat.Columns[i].Visible:= Self.LDBGridCat.Columns[i + 1].Visible;
Self.LDBGridCat.Columns[Self.LDBGridCat.Columns.Count - 1].Visible:= True;
// Sync SubCatGrid
for var i:= 1 to Self.LDBGridCat.Columns.Count - 1 do
Self.LDBGridSubCat.Columns[i].Visible:= Self.LDBGridCat.Columns[i].Visible;
end;
procedure TfrmMain.btnRightClick(Sender: TObject);
begin
// Shift Right
for var i:= Self.LDBGridCat.Columns.Count - 1 downto 2 do
Self.LDBGridCat.Columns[i].Visible:= Self.LDBGridCat.Columns[i - 1].Visible;
Self.LDBGridCat.Columns[1].Visible:= False;
// Sync SubCatGrid
for var i:= 1 to Self.LDBGridCat.Columns.Count - 1 do
Self.LDBGridSubCat.Columns[i].Visible:= Self.LDBGridCat.Columns[i].Visible;
end;
procedure TfrmMain.btnShowSubCatClick(Sender: TObject);
begin
if Self.LDBGridSubCat.Height = 0 then
Self.LDBGridSubCat.Height:= 300;
Self.LDBGridSubCat.Visible:= Self.LDBGridSubCat.Visible xor True;
Self.btnToonDetails.Visible:= Self.LDBGridSubCat.Visible;
Self.Splitter1.Visible:= Self.LDBGridSubCat.Visible;
if Self.LDBGridSubCat.Visible then
Self.btnShowSubCat.Caption:= 'Verberg Subcategoriën'
else
Self.btnShowSubCat.Caption:= 'Toon Subcategoriën';
Self.RegVars.Values['SubCatVisible']:= BoolToStr(Self.LDBGridSubCat.Visible);
end;
procedure TfrmMain.Budget1Click(Sender: TObject);
begin
frmBudget.ShowModal
end;
procedure TfrmMain.btnShowBudgetPlanClick(Sender: TObject);
begin
if ShowBudgetPlan then
begin
Self.btnLeft.Visible:= True;
Self.btnRight.Visible:= True;
for var i:= 0 to Self.LDBGridCat.Columns.Count - 1 do
begin
if Self.LDBGridCat.Columns[i].Title.Caption[1] = 'P' then
Self.LDBGridCat.Columns[i].Visible:= True;
if Self.LDBGridSubCat.Columns[i].Title.Caption[1] = 'P' then
Self.LDBGridSubCat.Columns[i].Visible:= True;
end;
Self.btnShowBudgetPlan.Caption:= 'Verberg budgetplan';
end
else
begin
Self.btnLeft.Visible:= False;
Self.btnRight.Visible:= False;
for var i:= 0 to Self.LDBGridCat.Columns.Count - 1 do
begin
if Self.LDBGridCat.Columns[i].Title.Caption[1] = 'P' then
Self.LDBGridCat.Columns[i].Visible:= False;
if Self.LDBGridSubCat.Columns[i].Title.Caption[1] = 'P' then
Self.LDBGridSubCat.Columns[i].Visible:= False;
end;
Self.btnShowBudgetPlan.Caption:= 'Toon budgetplan';
end;
ShowBudgetPlan:= ShowBudgetPlan xor True;
Self.RegVars.Values['ShowBudgetPlan']:= BoolToStr(ShowBudgetPlan);
frmMain.SaveConfig;
end;
procedure TfrmMain.btnToonDetailsClick(Sender: TObject);
begin
if frmDetail.Visible then
begin
btnToonDetails.Caption:= 'Toon details';
frmDetail.Close;
end
else
begin
btnToonDetails.Caption:= 'Verberg details';
frmDetail.Show;
end;
end;
procedure TfrmMain.Categorien1Click(Sender: TObject);
begin
frmCategories.Show;
end;
procedure TfrmMain.wmAppStarted(var Msg: tMessage);
begin
for var i:= 0 to dm.DataSetReportCat.Parameters.Count - 1 do
begin
if dm.DataSetReportCat.Parameters[i].Name = 'Jaar' then
dm.DataSetReportCat.Parameters[i].Value:= Self.RegVars.Values['CurrentYear'];
if dm.DataSetReportCat.Parameters[i].Name = 'CatInkomsten' then
dm.DataSetReportCat.Parameters[i].Value:= 16;
if dm.DataSetReportCat.Parameters[i].Name = 'BetaalRekening' then
dm.DataSetReportCat.Parameters[i].Value:= Self.RegVars.Values['BetaalRekening'];
if dm.DataSetReportCat.Parameters[i].Name = 'SpaarRekening' then
dm.DataSetReportCat.Parameters[i].Value:= Self.RegVars.Values['SpaarRekening'];
end;
dm.DataSetReportCat.Active:= False;
dm.DataSetReportCat.Active:= True;
Self.LDBGridCat.SetColumnAttr;
for var i:= 0 to dm.DataSetReportSubCat.Parameters.Count - 1 do
begin
if dm.DataSetReportSubCat.Parameters[i].Name = 'Jaar' then
dm.DataSetReportSubCat.Parameters[i].Value:= Self.RegVars.Values['CurrentYear'];
if dm.DataSetReportSubCat.Parameters[i].Name = 'Cat' then
dm.DataSetReportSubCat.Parameters[i].Value:= dm.DataSetReportCat.FieldByname('ID').AsInteger;
if dm.DataSetReportSubCat.Parameters[i].Name = 'VasteKosten' then
dm.DataSetReportSubCat.Parameters[i].Value:= dm.DataSetReportCat.FieldByname('VK').AsInteger;
if dm.DataSetReportSubCat.Parameters[i].Name = 'BetaalRekening' then
dm.DataSetReportSubCat.Parameters[i].Value:= Self.RegVars.Values['BetaalRekening'];
if dm.DataSetReportSubCat.Parameters[i].Name = 'SpaarRekening' then
dm.DataSetReportSubCat.Parameters[i].Value:= Self.RegVars.Values['SpaarRekening'];
end;
dm.DataSetReportSubCat.Active:= False;
dm.DataSetReportSubCat.Active:= True;
Self.LDBGridSubCat.SetColumnAttr;
Self.lblYear.Caption:= Self.RegVars.Values['CurrentYear'];
dm.DataSetBudgetJaar.Locate(
'Jaar',
Self.RegVars.Values['CurrentBudgetYear'],
[]);
Self.LDBGridSubCat.Columns[0].Width:= Self.LDBGridCat.Columns[0].Width;
Self.LDBGridCat.repaint;
frmCategories.GridCategories.SetColumnAttr;
frmCategories.GridSubcategories.SetColumnAttr;
frmBudget.initGrids;
Self.btnShowBudgetPlanClick(Self);
Self.pnlMain.Visible:= True;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Self.StatusBar1.Panels[1].Text:= PixelsPerInch.ToString;
Self.StatusBar1.Panels[3].Text:= Screen.Width.ToString;
Self.StatusBar1.Panels[5].Text:= Screen.Height.ToString;
Self.StatusBar1.Panels[7].Text:= (PixelsPerInch * 100 / 96).ToString + '%';
Self.RegVars.Values['CurrentYear']:= IntToStr(CurrentYear);
Self.RegVars.Values['SubCatVisible']:= BoolToStr(Self.LDBGridSubCat.Visible);
Self.RegVars.Values['SubCatHeigth']:= IntToStr(Self.LDBGridSubCat.Height);
Self.RegVars.Values['CurrentBudgetYear']:= IntToStr(CurrentYear);
Self.RegVars.Values['ShowBudgetPlan']:= BoolToStr(False);
Self.RegVars.Values['BetaalRekening']:= 'NL83RABO0146805151';
Self.RegVars.Values['SpaarRekening']:= 'NL65RABO3582228673';
Self.LoadConfig;
if StrToBool(Self.RegVars.Values['ShowBudgetPlan']) then
ShowBudgetPlan:= True
else
ShowBudgetPlan:= False;
Self.btnShowBudgetPlanClick(Self);
if StrToBool(Self.RegVars.Values['SubCatVisible']) then
begin
Self.LDBGridSubCat.Height:= StrToInt(Self.RegVars.Values['SubCatHeigth']);
if Self.LDBGridSubCat.Height = 0 then
Self.LDBGridSubCat.Height:= 300;
Self.LDBGridSubCat.Visible:= True;
Self.Splitter1.Visible:= True;
end
else
begin
Self.LDBGridSubCat.Visible:= False;
Self.Splitter1.Visible:= False;
repaint;
Application.ProcessMessages;
end;
if Self.LDBGridSubCat.Visible then
Self.btnShowSubCat.Caption:= 'Verberg Subcategoriën'
else
Self.btnShowSubCat.Caption:= 'Toon Subcategoriën';
Self.btnToonDetails.Visible:= Self.LDBGridSubCat.Visible;
frmMain.Caption:= 'Financiële Administratie - ' + TL.Components.Folder.AppVersion;
PostMessage(
handle,
wm_AppStarted,
0,
0);
end;
procedure TfrmMain.FormKeyDown(
Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_DOWN:
;
VK_UP:
;
VK_RIGHT:
begin
btnRightClick(Self);
Key:= 0;
end;
VK_LEFT:
begin
btnLeftClick(Self);
Key:= 0;
end;
end;
end;
procedure TfrmMain.LDBGridCatDrawColumnCell(
Sender: TObject;
const Rect: TRect;
DataCol: Integer;
Column: TColumn;
State: TGridDrawState);
var
Grid: TLDBGrid;
begin
// Locale variables for coding convinience ;)
Grid:= (Sender as TLDBGrid);
Grid.SetStyle(
DataCol,
Grid,
Column,
State,
Grid.DataSource.DataSet.FieldByname('SoortID').AsInteger,
Grid.DataSource.DataSet.FieldByname('ID').AsInteger);
end;
procedure TfrmMain.LDBGridCatKeyDown(
Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_DOWN:
;
VK_UP:
;
VK_RIGHT:
btnRightClick(Self);
VK_LEFT:
btnLeftClick(Self);
end;
end;
procedure TfrmMain.LDBGridSubCatColEnter(Sender: TObject);
begin
var
Field:= Self.LDBGridSubCat.SelectedField;
var
name:= Field.FieldName;
if (name[1] = 'A') and (CharInSet(name[2], ['1' .. '9'])) then
begin
frmDetail.Maand:= name.Remove(0, 1).ToInteger;
frmDetail.Jaar:= Self.RegVars.Values['CurrentYear'].ToInteger;
frmDetail.Cat:= dm.DataSetReportSubCat.FindField('ID').AsInteger;
frmDetail.SubCat:= dm.DataSetReportSubCat.FindField('SubID').AsInteger;
frmDetail.Refresh;
end
else
begin
dm.DataSetReportDetail.Close;
frmDetail.Caption:= ' Mutaties';
end;
end;
procedure TfrmMain.LDBGridSubCatDrawColumnCell(
Sender: TObject;
const Rect: TRect;
DataCol: Integer;
Column: TColumn;
State: TGridDrawState);
var
Grid: TLDBGrid;
begin
// Create some local variables to write more readable code
Grid:= (Sender as TLDBGrid);
Grid.SetStyle(
DataCol,
Grid,
Column,
State,
Grid.DataSource.DataSet.FieldByname('SoortID').AsInteger,
Grid.DataSource.DataSet.FieldByname('ID').AsInteger);
end;
procedure TfrmMain.Mutaties1Click(Sender: TObject);
begin
frmMutaties.Show;
// ververs de datasets, er kunnen categorien toegewezen zijn in frmMutaties.
Refresh(
dm.DataSetReportCat,
Self.LDBGridCat);
Refresh(
dm.DataSetReportSubCat,
Self.LDBGridSubCat);
end;
end.