Rev 2 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2 | Rev 3 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | unit WuLiMain; |
1 | unit WuLiMain; |
2 | 2 | ||
- | 3 | (* |
|
- | 4 | * TODO: |
|
- | 5 | * - fertigstellen |
|
- | 6 | * ... multi user/projekt testen |
|
- | 7 | * ... bearbeitungsnotiz-button (rtf-farben usw) |
|
- | 8 | * ... |
|
- | 9 | * - abfragen ob speichern wenn fenster geschlossen wird |
|
- | 10 | * - filtern nach modul |
|
- | 11 | * - verbinden mit ticketsystem von HS |
|
- | 12 | * - rtf controls? |
|
- | 13 | *) |
|
- | 14 | ||
3 | interface |
15 | interface |
4 | 16 | ||
5 | uses |
17 | uses |
6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
18 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
7 | Dialogs, DBXpress, WideStrings, DB, SqlExpr, StdCtrls, ExtCtrls, DBCtrls, |
19 | Dialogs, DBXpress, WideStrings, DB, SqlExpr, StdCtrls, ExtCtrls, DBCtrls, |
8 | ADODB, ComCtrls, Grids, DBGrids, Mask, Menus, XPMan; |
20 | ADODB, ComCtrls, Grids, DBGrids, Mask, Menus, XPMan; |
9 | 21 | ||
10 | type |
22 | type |
11 | TForm1 = class(TForm) |
23 | TfrmBugtracker = class(TForm) |
- | 24 | Panel1: TPanel; |
|
- | 25 | DBGrid1: TDBGrid; |
|
- | 26 | ComboBox1: TComboBox; |
|
12 | ADOConnection1: TADOConnection; |
27 | DBNavigator2: TDBNavigator; |
- | 28 | Panel2: TPanel; |
|
- | 29 | Label1: TLabel; |
|
- | 30 | Label2: TLabel; |
|
- | 31 | Label3: TLabel; |
|
- | 32 | Label4: TLabel; |
|
- | 33 | Label5: TLabel; |
|
13 | dsBugs: TDataSource; |
34 | Label6: TLabel; |
14 | DBNavigator1: TDBNavigator; |
35 | DBNavigator1: TDBNavigator; |
15 | DBRichEdit1: TDBRichEdit; |
36 | DBRichEdit1: TDBRichEdit; |
16 | DBGrid1: TDBGrid; |
- | |
17 | DBEdit1: TDBEdit; |
37 | DBEdit1: TDBEdit; |
18 | DBLookupComboBox1: TDBLookupComboBox; |
38 | DBLookupComboBox1: TDBLookupComboBox; |
- | 39 | DBEdit2: TDBEdit; |
|
- | 40 | DBEdit3: TDBEdit; |
|
- | 41 | DBLookupComboBox2: TDBLookupComboBox; |
|
- | 42 | DBLookupComboBox3: TDBLookupComboBox; |
|
- | 43 | TrackBar1: TTrackBar; |
|
- | 44 | ADOConnection1: TADOConnection; |
|
- | 45 | dsBugs: TDataSource; |
|
19 | tblMitarbeiter: TADOTable; |
46 | tblMitarbeiter: TADOTable; |
20 | dsMitarbeiter: TDataSource; |
47 | dsMitarbeiter: TDataSource; |
21 | Label1: TLabel; |
- | |
22 | Label2: TLabel; |
- | |
23 | MainMenu1: TMainMenu; |
48 | MainMenu1: TMainMenu; |
24 | Stammdaten1: TMenuItem; |
49 | Stammdaten1: TMenuItem; |
25 | Mitarbeiter1: TMenuItem; |
50 | Mitarbeiter1: TMenuItem; |
26 | Projekte1: TMenuItem; |
51 | Projekte1: TMenuItem; |
27 | Module1: TMenuItem; |
52 | Module1: TMenuItem; |
- | 53 | Versionen1: TMenuItem; |
|
- | 54 | Projektwechseln1: TMenuItem; |
|
28 | XPManifest1: TXPManifest; |
55 | XPManifest1: TXPManifest; |
29 | qryBugs: TADOQuery; |
56 | qryBugs: TADOQuery; |
30 | DBEdit2: TDBEdit; |
- | |
31 | DBEdit3: TDBEdit; |
- | |
32 | Label3: TLabel; |
- | |
33 | Label4: TLabel; |
- | |
34 | tblVersionen: TADOTable; |
57 | tblVersionen: TADOTable; |
35 | dsVersionen: TDataSource; |
58 | dsVersionen: TDataSource; |
36 | tblProjekte: TADOTable; |
59 | tblProjekte: TADOTable; |
37 | dsProjekte: TDataSource; |
60 | dsProjekte: TDataSource; |
38 | tblModule: TADOTable; |
61 | tblModule: TADOTable; |
39 | dsModule: TDataSource; |
62 | dsModule: TDataSource; |
- | 63 | Timer1: TTimer; |
|
- | 64 | Splitter1: TSplitter; |
|
40 | Versionen1: TMenuItem; |
65 | Hilfe1: TMenuItem; |
41 | DBLookupComboBox2: TDBLookupComboBox; |
66 | ber1: TMenuItem; |
42 | Label5: TLabel; |
67 | btnFixedToggle: TButton; |
43 | DBLookupComboBox3: TDBLookupComboBox; |
68 | btnBearbeitungsnotiz: TButton; |
44 | Label6: TLabel; |
69 | qryBugsid: TAutoIncField; |
45 | TrackBar1: TTrackBar; |
70 | qryBugstitel: TStringField; |
- | 71 | qryBugsbeschreibung: TMemoField; |
|
- | 72 | qryBugserstellt: TDateTimeField; |
|
- | 73 | qryBugswichtigkeit: TIntegerField; |
|
- | 74 | qryBugsbearbeiter: TIntegerField; |
|
- | 75 | qryBugsfixdatum: TDateTimeField; |
|
- | 76 | qryBugsversion_release: TIntegerField; |
|
46 | ComboBox1: TComboBox; |
77 | qryBugsmodul: TIntegerField; |
- | 78 | qryBugsprojekt: TIntegerField; |
|
47 | procedure Mitarbeiter1Click(Sender: TObject); |
79 | procedure Mitarbeiter1Click(Sender: TObject); |
48 | procedure DateTimePicker1CloseUp(Sender: TObject); |
- | |
49 | procedure qryBugsAfterScroll(DataSet: TDataSet); |
80 | procedure qryBugsAfterScroll(DataSet: TDataSet); |
50 | procedure Module1Click(Sender: TObject); |
81 | procedure Module1Click(Sender: TObject); |
51 | procedure Projekte1Click(Sender: TObject); |
82 | procedure Projekte1Click(Sender: TObject); |
52 | procedure Versionen1Click(Sender: TObject); |
83 | procedure Versionen1Click(Sender: TObject); |
53 | procedure TrackBar1Change(Sender: TObject); |
84 | procedure TrackBar1Change(Sender: TObject); |
- | 85 | procedure Timer1Timer(Sender: TObject); |
|
- | 86 | procedure ComboBox1Change(Sender: TObject); |
|
- | 87 | procedure Projektwechseln1Click(Sender: TObject); |
|
- | 88 | procedure qryBugsAfterInsert(DataSet: TDataSet); |
|
- | 89 | procedure ber1Click(Sender: TObject); |
|
- | 90 | procedure btnFixedToggleClick(Sender: TObject); |
|
- | 91 | procedure qryBugsversion_releaseValidate(Sender: TField); |
|
- | 92 | procedure FormCreate(Sender: TObject); |
|
54 | private |
93 | private |
55 | { Private-Deklarationen } |
94 | { Private-Deklarationen } |
56 | public |
95 | public |
57 | { Public-Deklarationen } |
96 | { Public-Deklarationen } |
- | 97 | eingeloggtMitarbeiter: integer; |
|
- | 98 | aktuellesProjekt: integer; |
|
- | 99 | procedure NeuFiltern; |
|
58 | end; |
100 | end; |
59 | 101 | ||
60 | var |
102 | var |
61 | Form1: TForm1; |
103 | frmBugtracker: TfrmBugtracker; |
62 | 104 | ||
63 | implementation |
105 | implementation |
64 | 106 | ||
65 | uses Mitarbeiter, Module, Versionen, Projekte; |
107 | uses Mitarbeiter, Module, Versionen, Projekte, Login, About, inifiles; |
66 | 108 | ||
67 | {$R *.dfm} |
109 | {$R *.dfm} |
68 | 110 | ||
69 | procedure TForm1.qryBugsAfterScroll(DataSet: TDataSet); |
111 | procedure TfrmBugtracker.qryBugsAfterInsert(DataSet: TDataSet); |
70 | begin |
112 | begin |
- | 113 | // Standardwerte für einen neuen Bug |
|
71 | // DateTimePicker1.DateTime := qryBugs.FieldByName('fixdatum').AsDateTime; |
114 | qryBugs.FieldByName('wichtigkeit').AsInteger := 5; |
- | 115 | // qryBugs.FieldByName('bearbeiter').AsInteger := eingeloggtMitarbeiter; |
|
- | 116 | qryBugs.FieldByName('projekt').AsInteger := aktuellesProjekt; |
|
- | 117 | end; |
|
- | 118 | ||
- | 119 | procedure TfrmBugtracker.qryBugsAfterScroll(DataSet: TDataSet); |
|
- | 120 | var |
|
- | 121 | bakEvent: TNotifyEvent; |
|
- | 122 | begin |
|
- | 123 | bakEvent := TrackBar1.OnChange; |
|
- | 124 | TrackBar1.OnChange := nil; |
|
- | 125 | try |
|
72 | // TrackBar1.Position := qryBugs.FieldByName('wichtigkeit').AsInteger; |
126 | TrackBar1.Position := qryBugs.FieldByName('wichtigkeit').AsInteger; |
- | 127 | finally |
|
- | 128 | TrackBar1.OnChange := bakEvent; |
|
- | 129 | end; |
|
73 | end; |
130 | end; |
74 | 131 | ||
- | 132 | procedure TfrmBugtracker.qryBugsversion_releaseValidate(Sender: TField); |
|
- | 133 | begin |
|
- | 134 | if qryBugs.FieldByName('fixdatum').IsNull then |
|
- | 135 | begin |
|
- | 136 | raise Exception.Create('Vor einer Veröffentlichung muss der Bugfix erst als gefixt markiert werden.'); |
|
- | 137 | end; |
|
- | 138 | end; |
|
- | 139 | ||
- | 140 | procedure TfrmBugtracker.Timer1Timer(Sender: TObject); |
|
- | 141 | begin |
|
- | 142 | Timer1.Enabled := false; |
|
- | 143 | if frmLogin.ShowModal = mrCancel then Close; |
|
- | 144 | end; |
|
- | 145 | ||
75 | procedure TForm1.TrackBar1Change(Sender: TObject); |
146 | procedure TfrmBugtracker.TrackBar1Change(Sender: TObject); |
76 | begin |
147 | begin |
77 | if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
148 | if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
78 | qryBugs.FieldByName('wichtigkeit').AsInteger := TrackBar1.Position; |
149 | qryBugs.FieldByName('wichtigkeit').AsInteger := TrackBar1.Position; |
79 | end; |
150 | end; |
80 | 151 | ||
81 | procedure TForm1.Versionen1Click(Sender: TObject); |
152 | procedure TfrmBugtracker.Versionen1Click(Sender: TObject); |
82 | begin |
153 | begin |
83 | frmVersionen.ShowModal; |
154 | frmVersionen.ShowModal; |
84 | end; |
155 | end; |
85 | 156 | ||
86 | procedure TForm1.DateTimePicker1CloseUp(Sender: TObject); |
157 | procedure TfrmBugtracker.ber1Click(Sender: TObject); |
- | 158 | begin |
|
- | 159 | AboutBox.ShowModal; |
|
- | 160 | end; |
|
- | 161 | ||
- | 162 | procedure TfrmBugtracker.btnFixedToggleClick(Sender: TObject); |
|
87 | begin |
163 | begin |
88 | (* |
- | |
89 | LockWindowUpdate(DBGrid1.Handle); |
- | |
90 | if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
164 | if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
91 | qryBugs.FieldByName('fixdatum').AsDateTime := DateTimePicker1.DateTime; |
165 | if qryBugs.FieldByName('fixdatum').IsNull then |
92 | LockWindowUpdate(0); |
166 | qryBugs.FieldByName('fixdatum').AsDateTime := Now |
93 | *) |
167 | else |
- | 168 | qryBugs.FieldByName('fixdatum').Clear; |
|
94 | end; |
169 | end; |
95 | 170 | ||
- | 171 | procedure TfrmBugtracker.ComboBox1Change(Sender: TObject); |
|
- | 172 | begin |
|
- | 173 | case ComboBox1.ItemIndex of |
|
- | 174 | 0: |
|
- | 175 | begin |
|
- | 176 | // Meine offenen Bugs (nach Wichtigkeit) |
|
- | 177 | qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND fixdatum IS NULL AND bearbeiter = '+IntToStr(eingeloggtMitarbeiter)+' ORDER BY wichtigkeit DESC'; |
|
- | 178 | end; |
|
- | 179 | 1: |
|
- | 180 | begin |
|
- | 181 | // Alle offenen Bugs (nach Wichtigkeit) |
|
- | 182 | qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND fixdatum IS NULL ORDER BY wichtigkeit DESC'; |
|
- | 183 | end; |
|
- | 184 | 2: |
|
- | 185 | begin |
|
- | 186 | // Gelöst ohne Veröffentlichung (nach Lösungsdatum) |
|
- | 187 | qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND fixdatum IS NOT NULL ORDER BY fixdatum DESC'; |
|
- | 188 | end; |
|
- | 189 | 3: |
|
- | 190 | begin |
|
- | 191 | // Gelöst und Veröffentlicht (nach Version und Lösungsdatum) |
|
- | 192 | qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND fixdatum IS NOT NULL ORDER BY version_release DESC, fixdatum DESC'; |
|
- | 193 | end; |
|
- | 194 | 4: |
|
- | 195 | begin |
|
- | 196 | // Alle Bugs (nach Eröffnungsdatum) |
|
- | 197 | qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' ORDER BY erstellt DESC'; |
|
- | 198 | end; |
|
- | 199 | end; |
|
- | 200 | qryBugs.Active := true; |
|
- | 201 | end; |
|
- | 202 | ||
- | 203 | procedure TfrmBugtracker.FormCreate(Sender: TObject); |
|
- | 204 | var |
|
- | 205 | ini: TMemIniFile; |
|
- | 206 | begin |
|
- | 207 | ini := TMemIniFile.Create('bugtracker.ini'); |
|
- | 208 | try |
|
- | 209 | ADOConnection1.ConnectionString := ini.ReadString('Database', 'ConnectionString', ''); |
|
- | 210 | finally |
|
- | 211 | ini.Free; |
|
- | 212 | end; |
|
- | 213 | ||
- | 214 | ADOConnection1.Connected := true; |
|
- | 215 | qryBugs.Active := true; |
|
- | 216 | tblMitarbeiter.Active := true; |
|
- | 217 | tblVersionen.Active := true; |
|
- | 218 | tblProjekte.Active := true; |
|
- | 219 | tblModule.Active := true; |
|
- | 220 | end; |
|
- | 221 | ||
96 | procedure TForm1.Mitarbeiter1Click(Sender: TObject); |
222 | procedure TfrmBugtracker.Mitarbeiter1Click(Sender: TObject); |
97 | begin |
223 | begin |
98 | frmMitarbeiter.ShowModal; |
224 | frmMitarbeiter.ShowModal; |
99 | end; |
225 | end; |
100 | 226 | ||
101 | procedure TForm1.Module1Click(Sender: TObject); |
227 | procedure TfrmBugtracker.Module1Click(Sender: TObject); |
102 | begin |
228 | begin |
103 | frmModule.ShowModal; |
229 | frmModule.ShowModal; |
104 | end; |
230 | end; |
105 | 231 | ||
- | 232 | procedure TfrmBugtracker.NeuFiltern; |
|
- | 233 | begin |
|
- | 234 | ComboBox1Change(ComboBox1); |
|
- | 235 | end; |
|
- | 236 | ||
106 | procedure TForm1.Projekte1Click(Sender: TObject); |
237 | procedure TfrmBugtracker.Projekte1Click(Sender: TObject); |
107 | begin |
238 | begin |
108 | frmProjekte.ShowModal; |
239 | frmProjekte.ShowModal; |
109 | end; |
240 | end; |
110 | 241 | ||
- | 242 | procedure TfrmBugtracker.Projektwechseln1Click(Sender: TObject); |
|
- | 243 | begin |
|
- | 244 | frmLogin.ShowModal; |
|
- | 245 | end; |
|
- | 246 | ||
111 | end. |
247 | end. |