Ga naar de hoofdnavigatie Ga naar de hoofdinhoud Ga naar de voettekst van de pagina
pascal
 1unit DataModule;
 2
 3interface
 4
 5uses
 6  Winapi.Windows, System.SysUtils, System.Classes, Data.DB, Data.Win.ADODB, Vcl.Forms,
 7
 8  Winapi.Messages, System.Variants, Vcl.Graphics, Vcl.Controls, Vcl.Dialogs;
 9
10const
11  { Connection string }
12  ConnectionStr = 'Provider=MSDASQL.1; Password=%s; Persist Security Info=True; User ID=%s;' +
13    'Extended Properties="DRIVER={MariaDB ODBC 3.2 Driver}; SERVER=%s; DATABASE=FinAdm; PORT=17002;"';
14
15  { User access }
16  DefaultUserName = 'user';
17  DefaultPassWord = 'password';
18  DefaultServer = 'server';
19
20type
21  Tdm = class(TDataModule)
22    Connection: TADOConnection;
23    DataSetMutaties: TADODataSet;
24    DataSourceMutaties: TDataSource;
25    DataSetSubcategories: TADODataSet;
26    DataSourceSubcategories: TDataSource;
27    DataSetCategories: TADODataSet;
28    DataSourceCategories: TDataSource;
29    DataSetCategoriesLU: TADODataSet;
30    DataSetSubcategoriesLU: TADODataSet;
31    DataSourceCategoriesLU: TDataSource;
32    DataSourceSubcategoriesLU: TDataSource;
33    DataSetMutatiesCatID: TIntegerField;
34    DataSetMutatiesSubID: TIntegerField;
35    DataSetMutatiesDatum: TDateField;
36    DataSetMutatiesBedrag: TFMTBCDField;
37    DataSetMutatiesNaam_tegenpartij: TWideStringField;
38    DataSetMutatiesOmschrijving_1: TWideStringField;
39    DataSetMutatiesOorspr_bedrag: TFMTBCDField;
40    DataSetMutatiesOorspr_munt: TWideStringField;
41    DataSetMutatiesKoers: TFMTBCDField;
42    DataSetMutatiesCategorie: TStringField;
43    DataSetMutatiesSubcategorie: TStringField;
44    DataSourceBudgetJaar: TDataSource;
45    DataSetBudgetJaar: TADODataSet;
46    DataSetBudget: TADODataSet;
47    DataSourceBudget: TDataSource;
48    DataSetBudgetTotaal: TADODataSet;
49    DataSourceBudgetTotaal: TDataSource;
50    CommandAppendBudgetJaar: TADOCommand;
51    DataSetBudgetEdit: TADODataSet;
52    DataSourceBudgetEdit: TDataSource;
53    DataSetBudgetEditID: TAutoIncField;
54    DataSetBudgetEditCreated: TDateTimeField;
55    DataSetBudgetEditModified: TDateTimeField;
56    DataSetBudgetEditCategorieID: TIntegerField;
57    DataSetBudgetEditSubcategorieID: TIntegerField;
58    DataSetBudgetEditJaarID: TIntegerField;
59    DataSetBudgetEditJan: TFMTBCDField;
60    DataSetBudgetEditFeb: TFMTBCDField;
61    DataSetBudgetEditMrt: TFMTBCDField;
62    DataSetBudgetEditApr: TFMTBCDField;
63    DataSetBudgetEditMei: TFMTBCDField;
64    DataSetBudgetEditJun: TFMTBCDField;
65    DataSetBudgetEditJul: TFMTBCDField;
66    DataSetBudgetEditAug: TFMTBCDField;
67    DataSetBudgetEditSep: TFMTBCDField;
68    DataSetBudgetEditOkt: TFMTBCDField;
69    DataSetBudgetEditNov: TFMTBCDField;
70    DataSetBudgetEditDec: TFMTBCDField;
71    DataSetReportSubCat: TADODataSet;
72    DataSourceReportCat: TDataSource;
73    DataSourceReportSubCat: TDataSource;
74    CommandImport: TADOCommand;
75    DataSetImportHistory: TADODataSet;
76    DataSetImportHistoryID: TAutoIncField;
77    DataSetImportHistoryCreated: TDateTimeField;
78    DataSetImportHistoryModified: TDateTimeField;
79    DataSetImportHistoryFileName: TWideStringField;
80    DataSetReportDetail: TADODataSet;
81    DataSourceReportDetail: TDataSource;
82    DataSetReportDetailCatID: TAutoIncField;
83    DataSetReportDetailCategorie: TWideStringField;
84    DataSetReportDetailSubID: TAutoIncField;
85    DataSetReportDetailSubcategorie: TWideStringField;
86    DataSetReportDetailDatum: TDateField;
87    DataSetReportDetailNaam_tegenpartij: TWideStringField;
88    DataSetReportDetailOmschrijving_1: TWideStringField;
89    DataSetReportDetailBedrag: TFMTBCDField;
90    DataSetReportCat: TADODataSet;
91    DataSetAutoAssignCategorie: TADODataSet;
92    DataSourceAutoAssignCategorie: TDataSource;
93    DatasetReport: TADODataSet;
94    DatasetReportCategorie: TWideStringField;
95    DatasetReportSubcategorie: TWideStringField;
96    DatasetReportDatum: TDateField;
97    DatasetReportNaam_tegenpartij: TWideStringField;
98    DatasetReportOmschrijving_1: TWideStringField;
99    DatasetReportBedrag: TFMTBCDField;
100    dsReport: TDataSource;
101    procedure DataSetMutatiesCatIDChange(Sender: TField);
102    procedure DataSetBeforePost(DataSet: TDataSet);
103    procedure DataSetReportCatAfterScroll(DataSet: TDataSet);
104    procedure DataSetReportSubCatAfterScroll(DataSet: TDataSet);
105  private
106    { Private declarations }
107  public
108    { Public declarations }
109    function Connect(Server, UserName, Password: string): boolean;
110  end;
111
112var
113  dm: Tdm;
114
115implementation
116
117{%CLASSGROUP 'Vcl.Controls.TControl'}
118
119uses MainForm;
120{$R *.dfm}
121// uses
122// MainForm;
123
124procedure Tdm.DataSetMutatiesCatIDChange(Sender: TField);
125begin
126  dm.DataSetMutatiesSubID.Value:= 0;
127end;
128
129procedure Tdm.DataSetReportCatAfterScroll(DataSet: TDataSet);
130begin
131  for var i:= 0 to dm.DataSetReportSubCat.Parameters.Count - 1 do
132    begin
133      if dm.DataSetReportSubCat.Parameters[i].Name = 'Cat' then
134        dm.DataSetReportSubCat.Parameters[i].Value:= dm.DataSetReportCat.FieldByName('ID').AsInteger;
135      if dm.DataSetReportSubCat.Parameters[i].Name = 'VasteKosten' then
136        dm.DataSetReportSubCat.Parameters[i].Value:= dm.DataSetReportCat.FieldByName('VK').AsInteger;
137
138      (* if dm.DataSetReportCat.Parameters[i].Name = 'BetaalRekening' then
139        dm.DataSetReportCat.Parameters[i].Value := Self.RegVars.Values
140        ['BetaalRekening'];
141        if dm.DataSetReportCat.Parameters[i].Name = 'SpaarRekening' then
142        dm.DataSetReportCat.Parameters[i].Value := Self.RegVars.Values
143        ['SpaarRekening'];
144      *)
145
146    end;
147  dm.DataSetReportSubCat.Active:= False;
148  dm.DataSetReportSubCat.Active:= True;
149  if Assigned(frmMain) then
150    begin
151      frmMain.LDBGridSubCat.SetColumnAttr;
152      frmMain.LDBGridSubCat.Columns[0].Width:= frmMain.LDBGridCat.Columns[0].Width;
153      frmMain.LDBGridSubCatColEnter(frmMain.LDBGridSubCat.Columns[frmMain.LDBGridSubCat.SelectedIndex]);
154    end;
155end;
156
157procedure Tdm.DataSetReportSubCatAfterScroll(DataSet: TDataSet);
158begin
159  if Assigned(frmMain) then
160    frmMain.LDBGridSubCatColEnter(Self);
161end;
162
163function Tdm.Connect(Server, UserName, Password: string): boolean;
164begin
165  Result:= True;
166  Connection.Connected:= False;
167
168  Connection.ConnectionString:= Format(
169    ConnectionStr,
170    [Password, UserName, Server]);
171
172  { Disable login prompt. }
173  Connection.LoginPrompt:= False;
174
175  try
176    Connection.Connected:= True;
177    DataSetAutoAssignCategorie.Active:= True;
178    DataSetBudget.Active:= True;
179    DataSetBudgetEdit.Active:= True;
180    DataSetBudgetJaar.Active:= True;
181    DataSetBudgetTotaal.Active:= True;
182    DataSetCategories.Active:= True;
183    DataSetCategoriesLU.Active:= True;
184    DataSetImportHistory.Active:= True;
185    DataSetMutaties.Active:= True;
186    DataSetReportCat.Active:= True;
187    DataSetReportDetail.Active:= True;
188    DataSetReportSubCat.Active:= True;
189    DataSetSubcategories.Active:= True;
190    DataSetSubcategoriesLU.Active:= True;
191  except
192    Result:= False;
193  end;
194end;
195
196procedure Tdm.DataSetBeforePost(DataSet: TDataSet);
197begin
198  case Application.MessageBox('Save edits to database?', 'Information', MB_YESNOCANCEL) of
199    IDCANCEL:
200      begin
201        DataSet.Cancel;
202        Abort;
203      end;
204    IDYES:
205      ;
206    IDNO:
207      Abort;
208  end;
209end;
210
211end.
212