/trunk/About.dfm |
---|
0,0 → 1,103 |
object AboutBox: TAboutBox |
Left = 200 |
Top = 108 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsDialog |
Caption = 'Info '#252'ber' |
ClientHeight = 213 |
ClientWidth = 298 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
OldCreateOrder = True |
Position = poMainFormCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object Panel1: TPanel |
Left = 8 |
Top = 8 |
Width = 281 |
Height = 161 |
BevelInner = bvRaised |
BevelOuter = bvLowered |
ParentColor = True |
TabOrder = 0 |
object ProgramIcon: TImage |
Left = 8 |
Top = 8 |
Width = 65 |
Height = 57 |
Picture.Data = { |
07544269746D617076020000424D760200000000000076000000280000002000 |
0000200000000100040000000000000200000000000000000000100000000000 |
000000000000000080000080000000808000800000008000800080800000C0C0 |
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF |
FF00000000000000000000000000000000000EE8787878EEEEEEE03F30878EEE |
EEE00EE8787878EEEEEEE03F30878EEEEEE00EE8787878EEEEEEE03F30878EEE |
EEE00EE8787878EEEEEEE03F30878EEEEEE00887787877788888803F3088787E |
EEE00788787878878887803F3088887EEEE00788887888878887803F3088887E |
EEE00877888887788888703F308887EEEEE00888777778888888037883088888 |
8EE007777777777777703787883087777EE00888888888888803787FF8830888 |
888008888888888880378777778830888880077777777788037873F3F3F87808 |
88E00888888888803787FFFFFFFF8830EEE00887777778800001111111111100 |
EEE00888888888888899B999B99999EEEEE00888888888888899B9B99BB9B9EE |
EEE0088888888888899BB9BB99BB99EEEEE0078888888888899B999B999999EE |
EEE0087788888778899B9B9BB9BB99EEEEE00888778778888E9B9B9BB9999EEE |
EEE0088888788888EE9B99B9BB9BEEEEEEE00EE8888888EEEEE999B9999EEEEE |
EEE00EEEE888EEEEEEEE99BB999EEEEEEEE00EEEEE8EEEEEEEEEE999B9EEEEEE |
EEE00EEEEE8EEEEEEEEEEEE999EEEEEEEEE00EEEEE8EEEEEEEEEEEEE99EEEEEE |
EEE00EEEEE8EEEEEEEEEEEEE9EEEEEEEEEE00EEEEE8EEEEEEEEEEEEEEEEEEEEE |
EEE00EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000 |
0000} |
Stretch = True |
IsControl = True |
end |
object ProductName: TLabel |
Left = 88 |
Top = 16 |
Width = 178 |
Height = 13 |
Caption = 'ViaThinkSoft Bugtracker f'#252'r Windows' |
IsControl = True |
end |
object Version: TLabel |
Left = 88 |
Top = 40 |
Width = 53 |
Height = 13 |
Caption = 'Version 0.1' |
IsControl = True |
end |
object Copyright: TLabel |
Left = 8 |
Top = 80 |
Width = 135 |
Height = 13 |
Caption = 'Copyright 2016 ViaThinkSoft' |
IsControl = True |
end |
object Comments: TLabel |
Left = 8 |
Top = 104 |
Width = 258 |
Height = 52 |
AutoSize = False |
Caption = 'Entwickelt von Daniel Marschall, www.daniel-marschall.de' |
WordWrap = True |
IsControl = True |
end |
end |
object OKButton: TButton |
Left = 111 |
Top = 180 |
Width = 75 |
Height = 25 |
Caption = 'OK' |
Default = True |
ModalResult = 1 |
TabOrder = 1 |
end |
end |
/trunk/About.pas |
---|
0,0 → 1,31 |
unit About; |
interface |
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, |
Buttons, ExtCtrls; |
type |
TAboutBox = class(TForm) |
Panel1: TPanel; |
ProgramIcon: TImage; |
ProductName: TLabel; |
Version: TLabel; |
Copyright: TLabel; |
Comments: TLabel; |
OKButton: TButton; |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
end; |
var |
AboutBox: TAboutBox; |
implementation |
{$R *.dfm} |
end. |
/trunk/DBDateEdit.txt |
---|
0,0 → 1,14 |
procedure TForm1.qryBugsAfterScroll(DataSet: TDataSet); |
begin |
DateTimePicker1.DateTime := qryBugs.FieldByName('fixdatum').AsDateTime; |
end; |
procedure TForm1.DateTimePicker1CloseUp(Sender: TObject); |
begin |
LockWindowUpdate(DBGrid1.Handle); |
if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
qryBugs.FieldByName('fixdatum').AsDateTime := DateTimePicker1.DateTime; |
LockWindowUpdate(0); |
end; |
/trunk/Login.dfm |
---|
0,0 → 1,110 |
object frmLogin: TfrmLogin |
Left = 0 |
Top = 0 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsDialog |
Caption = 'ViaThinkSoft Bugtracker f'#252'r Windows' |
ClientHeight = 385 |
ClientWidth = 298 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = False |
Position = poMainFormCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object Label1: TLabel |
Left = 32 |
Top = 24 |
Width = 233 |
Height = 33 |
AutoSize = False |
Caption = 'Wilkommen' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -27 |
Font.Name = 'Tahoma' |
Font.Style = [fsBold, fsItalic] |
ParentFont = False |
end |
object GroupBox1: TGroupBox |
Left = 32 |
Top = 80 |
Width = 233 |
Height = 105 |
Caption = 'Wer sind Sie?' |
TabOrder = 0 |
object Label2: TLabel |
Left = 98 |
Top = 59 |
Width = 103 |
Height = 13 |
Cursor = crHandPoint |
Alignment = taRightJustify |
Caption = 'Mitarbeiter verwalten' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clHotLight |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnClick = Label2Click |
end |
object cbxMitarbeiter: TDBLookupComboBox |
Left = 24 |
Top = 32 |
Width = 177 |
Height = 21 |
KeyField = 'id' |
ListField = 'name' |
ListSource = frmBugtracker.dsMitarbeiter |
TabOrder = 0 |
end |
end |
object GroupBox2: TGroupBox |
Left = 32 |
Top = 200 |
Width = 233 |
Height = 105 |
Caption = 'An was m'#246'chten Sie arbeiten?' |
TabOrder = 1 |
object Label3: TLabel |
Left = 110 |
Top = 59 |
Width = 91 |
Height = 13 |
Cursor = crHandPoint |
Alignment = taRightJustify |
Caption = 'Projekte verwalten' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clHotLight |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnClick = Label3Click |
end |
object cbxProjekt: TDBLookupComboBox |
Left = 24 |
Top = 32 |
Width = 177 |
Height = 21 |
KeyField = 'id' |
ListField = 'projekt' |
ListSource = frmBugtracker.dsProjekte |
TabOrder = 0 |
end |
end |
object Button1: TButton |
Left = 94 |
Top = 327 |
Width = 115 |
Height = 36 |
Caption = 'Los geht'#39's' |
TabOrder = 2 |
OnClick = Button1Click |
end |
end |
/trunk/Login.pas |
---|
0,0 → 1,68 |
unit Login; |
interface |
uses |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, StdCtrls, DBCtrls, DB, DBClient; |
type |
TfrmLogin = class(TForm) |
Label1: TLabel; |
GroupBox1: TGroupBox; |
GroupBox2: TGroupBox; |
Label2: TLabel; |
Label3: TLabel; |
Button1: TButton; |
cbxMitarbeiter: TDBLookupComboBox; |
cbxProjekt: TDBLookupComboBox; |
procedure Label2Click(Sender: TObject); |
procedure Label3Click(Sender: TObject); |
procedure Button1Click(Sender: TObject); |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
end; |
var |
frmLogin: TfrmLogin; |
implementation |
uses |
WuLiMain, Mitarbeiter, Projekte; |
{$R *.dfm} |
procedure TfrmLogin.Button1Click(Sender: TObject); |
begin |
if VarIsNull(cbxMitarbeiter.KeyValue) then |
begin |
ShowMessage('Bitte Mitarbeiter auswählen.'); |
cbxMitarbeiter.SetFocus; |
Exit; |
end; |
if VarIsNull(cbxProjekt.KeyValue) then |
begin |
ShowMessage('Bitte Projekt auswählen.'); |
cbxProjekt.SetFocus; |
Exit; |
end; |
frmBugtracker.eingeloggtMitarbeiter := cbxMitarbeiter.KeyValue; |
frmBugtracker.aktuellesProjekt := cbxProjekt.KeyValue; |
frmBugtracker.NeuFiltern; |
ModalResult := mrOk; // Das schließt den Dialog |
end; |
procedure TfrmLogin.Label2Click(Sender: TObject); |
begin |
frmMitarbeiter.ShowModal; |
end; |
procedure TfrmLogin.Label3Click(Sender: TObject); |
begin |
frmProjekte.ShowModal; |
end; |
end. |
/trunk/Mitarbeiter.dfm |
---|
21,7 → 21,7 |
Top = 8 |
Width = 257 |
Height = 233 |
DataSource = Form1.dsMitarbeiter |
DataSource = frmBugtracker.dsMitarbeiter |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
/trunk/Module.dfm |
---|
21,7 → 21,7 |
Top = 8 |
Width = 257 |
Height = 233 |
DataSource = Form1.dsModule |
DataSource = frmBugtracker.dsModule |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
/trunk/Projekte.dfm |
---|
21,7 → 21,7 |
Top = 8 |
Width = 257 |
Height = 233 |
DataSource = Form1.dsProjekte |
DataSource = frmBugtracker.dsProjekte |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
/trunk/Versionen.dfm |
---|
21,7 → 21,7 |
Top = 8 |
Width = 257 |
Height = 233 |
DataSource = Form1.dsVersionen |
DataSource = frmBugtracker.dsVersionen |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
/trunk/WuLi.dpr |
---|
2,20 → 2,24 |
uses |
Forms, |
WuLiMain in 'WuLiMain.pas' {Form1}, |
WuLiMain in 'WuLiMain.pas' {frmBugtracker}, |
Mitarbeiter in 'Mitarbeiter.pas' {frmMitarbeiter}, |
Versionen in 'Versionen.pas' {frmVersionen}, |
Module in 'Module.pas' {frmModule}, |
Projekte in 'Projekte.pas' {frmProdukte}; |
Projekte in 'Projekte.pas' {frmProjekte}, |
Login in 'Login.pas' {frmLogin}, |
ABOUT in 'About.pas' {AboutBox}; |
{$R *.res} |
begin |
Application.Initialize; |
Application.CreateForm(TForm1, Form1); |
Application.CreateForm(TfrmBugtracker, frmBugtracker); |
Application.CreateForm(TfrmMitarbeiter, frmMitarbeiter); |
Application.CreateForm(TfrmVersionen, frmVersionen); |
Application.CreateForm(TfrmModule, frmModule); |
Application.CreateForm(TfrmProdukte, frmProdukte); |
Application.CreateForm(TfrmProjekte, frmProjekte); |
Application.CreateForm(TfrmLogin, frmLogin); |
Application.CreateForm(TAboutBox, AboutBox); |
Application.Run; |
end. |
/trunk/WuLiMain.dfm |
---|
1,9 → 1,9 |
object Form1: TForm1 |
object frmBugtracker: TfrmBugtracker |
Left = 0 |
Top = 0 |
Caption = 'ViaThinkSoft Bugtracker f'#252'r Windows' |
ClientHeight = 440 |
ClientWidth = 691 |
ClientHeight = 498 |
ClientWidth = 751 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
13,10 → 13,108 |
Menu = MainMenu1 |
OldCreateOrder = False |
Position = poScreenCenter |
OnCreate = FormCreate |
PixelsPerInch = 96 |
TextHeight = 13 |
object Splitter1: TSplitter |
Left = 249 |
Top = 0 |
Height = 498 |
ExplicitLeft = 0 |
ExplicitTop = 136 |
ExplicitHeight = 100 |
end |
object Panel1: TPanel |
Left = 0 |
Top = 0 |
Width = 249 |
Height = 498 |
Align = alLeft |
TabOrder = 0 |
ExplicitLeft = 256 |
ExplicitTop = 448 |
DesignSize = ( |
249 |
498) |
object DBGrid1: TDBGrid |
Left = 8 |
Top = 35 |
Width = 233 |
Height = 406 |
Anchors = [akLeft, akTop, akRight, akBottom] |
DataSource = dsBugs |
ReadOnly = True |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
TitleFont.Height = -11 |
TitleFont.Name = 'Tahoma' |
TitleFont.Style = [] |
Columns = < |
item |
Expanded = False |
FieldName = 'id' |
Width = 46 |
Visible = True |
end |
item |
Expanded = False |
FieldName = 'titel' |
Width = 111 |
Visible = True |
end |
item |
Expanded = False |
FieldName = 'wichtigkeit' |
Width = 36 |
Visible = True |
end> |
end |
object ComboBox1: TComboBox |
Left = 8 |
Top = 8 |
Width = 233 |
Height = 21 |
Style = csDropDownList |
Anchors = [akLeft, akTop, akRight] |
ItemHeight = 13 |
ItemIndex = 0 |
TabOrder = 1 |
Text = 'Meine offenen Bugs (nach Wichtigkeit)' |
OnChange = ComboBox1Change |
Items.Strings = ( |
'Meine offenen Bugs (nach Wichtigkeit)' |
'Alle offenen Bugs (nach Wichtigkeit)' |
'Gel'#246'st ohne Ver'#246'ffentlichung (nach L'#246'sungsdatum)' |
'Gel'#246'st und Ver'#246'ffentlicht (nach Version und L'#246'sungsdatum)' |
'Alle Bugs (nach Er'#246'ffnungsdatum)') |
end |
object DBNavigator2: TDBNavigator |
Left = 11 |
Top = 456 |
Width = 232 |
Height = 25 |
DataSource = dsBugs |
VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast] |
Anchors = [akLeft, akRight, akBottom] |
TabOrder = 2 |
end |
end |
object Panel2: TPanel |
Left = 252 |
Top = 0 |
Width = 499 |
Height = 498 |
Align = alClient |
TabOrder = 1 |
ExplicitLeft = 320 |
ExplicitTop = 8 |
ExplicitWidth = 441 |
DesignSize = ( |
499 |
498) |
object Label1: TLabel |
Left = 247 |
Left = 15 |
Top = 53 |
Width = 50 |
Height = 13 |
23,7 → 121,7 |
Caption = 'Bearbeiter' |
end |
object Label2: TLabel |
Left = 247 |
Left = 15 |
Top = 149 |
Width = 20 |
Height = 13 |
30,7 → 128,7 |
Caption = 'Titel' |
end |
object Label3: TLabel |
Left = 472 |
Left = 240 |
Top = 53 |
Width = 33 |
Height = 13 |
37,7 → 135,7 |
Caption = 'Erstellt' |
end |
object Label4: TLabel |
Left = 472 |
Left = 240 |
Top = 101 |
Width = 29 |
Height = 13 |
44,7 → 142,7 |
Caption = 'Gefixt' |
end |
object Label5: TLabel |
Left = 247 |
Left = 15 |
Top = 101 |
Width = 28 |
Height = 13 |
51,7 → 149,7 |
Caption = 'Modul' |
end |
object Label6: TLabel |
Left = 472 |
Left = 240 |
Top = 149 |
Width = 119 |
Height = 13 |
58,7 → 156,7 |
Caption = 'Ver'#246'ffentlicht als Version' |
end |
object DBNavigator1: TDBNavigator |
Left = 247 |
Left = 15 |
Top = 16 |
Width = 224 |
Height = 25 |
67,57 → 165,26 |
TabOrder = 0 |
end |
object DBRichEdit1: TDBRichEdit |
Left = 247 |
Top = 208 |
Width = 402 |
Height = 209 |
Left = 15 |
Top = 248 |
Width = 471 |
Height = 233 |
Anchors = [akLeft, akTop, akRight, akBottom] |
DataField = 'beschreibung' |
DataSource = dsBugs |
TabOrder = 1 |
TabOrder = 9 |
end |
object DBGrid1: TDBGrid |
Left = 8 |
Top = 47 |
Width = 233 |
Height = 370 |
DataSource = dsBugs |
TabOrder = 2 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
TitleFont.Height = -11 |
TitleFont.Name = 'Tahoma' |
TitleFont.Style = [] |
Columns = < |
item |
Expanded = False |
FieldName = 'id' |
Width = 46 |
Visible = True |
end |
item |
Expanded = False |
FieldName = 'titel' |
Width = 111 |
Visible = True |
end |
item |
Expanded = False |
FieldName = 'wichtigkeit' |
Width = 36 |
Visible = True |
end> |
end |
object DBEdit1: TDBEdit |
Left = 247 |
Left = 15 |
Top = 168 |
Width = 186 |
Height = 21 |
DataField = 'titel' |
DataSource = dsBugs |
TabOrder = 3 |
TabOrder = 5 |
end |
object DBLookupComboBox1: TDBLookupComboBox |
Left = 247 |
Left = 15 |
Top = 72 |
Width = 186 |
Height = 21 |
126,32 → 193,35 |
KeyField = 'id' |
ListField = 'name' |
ListSource = dsMitarbeiter |
TabOrder = 4 |
NullValueKey = 46 |
TabOrder = 1 |
end |
object DBEdit2: TDBEdit |
Left = 472 |
Left = 240 |
Top = 72 |
Width = 121 |
Width = 155 |
Height = 21 |
TabStop = False |
Color = clBtnFace |
DataField = 'erstellt' |
DataSource = dsBugs |
ReadOnly = True |
TabOrder = 5 |
TabOrder = 2 |
end |
object DBEdit3: TDBEdit |
Left = 472 |
Left = 240 |
Top = 120 |
Width = 121 |
Width = 155 |
Height = 21 |
TabStop = False |
Color = clBtnFace |
DataField = 'fixdatum' |
DataSource = dsBugs |
ReadOnly = True |
TabOrder = 6 |
TabOrder = 4 |
end |
object DBLookupComboBox2: TDBLookupComboBox |
Left = 247 |
Left = 15 |
Top = 120 |
Width = 186 |
Height = 21 |
160,12 → 230,13 |
KeyField = 'id' |
ListField = 'modul' |
ListSource = dsModule |
TabOrder = 7 |
NullValueKey = 46 |
TabOrder = 3 |
end |
object DBLookupComboBox3: TDBLookupComboBox |
Left = 472 |
Left = 240 |
Top = 168 |
Width = 121 |
Width = 155 |
Height = 21 |
DataField = 'version_release' |
DataSource = dsBugs |
172,33 → 243,35 |
KeyField = 'id' |
ListField = 'version' |
ListSource = dsVersionen |
TabOrder = 8 |
TabOrder = 6 |
end |
object TrackBar1: TTrackBar |
Left = 477 |
Left = 245 |
Top = 8 |
Width = 150 |
Width = 164 |
Height = 45 |
Position = 5 |
TabOrder = 9 |
TabOrder = 10 |
OnChange = TrackBar1Change |
end |
object ComboBox1: TComboBox |
Left = 8 |
Top = 8 |
Width = 233 |
Height = 21 |
Style = csDropDownList |
ItemHeight = 13 |
ItemIndex = 0 |
TabOrder = 10 |
Text = 'Meine offene Bugs (nach Wichtigkeit)' |
Items.Strings = ( |
'Meine offene Bugs (nach Wichtigkeit)' |
'Alle ofene Bugs (nach Wichtigkeit)' |
'Gel'#246'st ohne Ver'#246'ffentlichung (nach L'#246'sungsdatum)' |
'Gel'#246'st und Ver'#246'ffentlicht (nach Version und L'#246'sungsdatum)') |
object btnFixedToggle: TButton |
Left = 401 |
Top = 118 |
Width = 72 |
Height = 25 |
Caption = 'Umschalten' |
TabOrder = 8 |
OnClick = btnFixedToggleClick |
end |
object btnBearbeitungsnotiz: TButton |
Left = 16 |
Top = 208 |
Width = 185 |
Height = 25 |
Caption = 'Bearbeitungsnotiz hinzuf'#252'gen' |
TabOrder = 7 |
end |
end |
object ADOConnection1: TADOConnection |
Connected = True |
ConnectionString = |
205,12 → 278,12 |
'Provider=MSDASQL.1;Persist Security Info=False;Data Source=MySQL' + |
' RAS;Initial Catalog=bugtracker' |
LoginPrompt = False |
Left = 336 |
Left = 104 |
Top = 344 |
end |
object dsBugs: TDataSource |
DataSet = qryBugs |
Left = 400 |
Left = 168 |
Top = 312 |
end |
object tblMitarbeiter: TADOTable |
218,17 → 291,17 |
Connection = ADOConnection1 |
CursorType = ctStatic |
TableName = 'mitarbeiter' |
Left = 440 |
Left = 208 |
Top = 344 |
end |
object dsMitarbeiter: TDataSource |
DataSet = tblMitarbeiter |
Left = 440 |
Left = 208 |
Top = 312 |
end |
object MainMenu1: TMainMenu |
Left = 640 |
Top = 48 |
Left = 88 |
Top = 216 |
object Stammdaten1: TMenuItem |
Caption = 'Stammdaten' |
object Mitarbeiter1: TMenuItem |
248,33 → 321,79 |
OnClick = Versionen1Click |
end |
end |
object Projektwechseln1: TMenuItem |
Caption = 'Projekt wechseln' |
OnClick = Projektwechseln1Click |
end |
object Hilfe1: TMenuItem |
Caption = 'Hilfe' |
object ber1: TMenuItem |
Caption = #220'ber' |
OnClick = ber1Click |
end |
end |
end |
object XPManifest1: TXPManifest |
Left = 640 |
Top = 8 |
Left = 48 |
Top = 216 |
end |
object qryBugs: TADOQuery |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
AfterInsert = qryBugsAfterInsert |
AfterScroll = qryBugsAfterScroll |
Parameters = <> |
SQL.Strings = ( |
'SELECT * FROM bugs order by wichtigkeit') |
Left = 400 |
Left = 168 |
Top = 344 |
object qryBugsid: TAutoIncField |
FieldName = 'id' |
ReadOnly = True |
end |
object qryBugstitel: TStringField |
FieldName = 'titel' |
Size = 255 |
end |
object qryBugsbeschreibung: TMemoField |
FieldName = 'beschreibung' |
BlobType = ftMemo |
end |
object qryBugserstellt: TDateTimeField |
FieldName = 'erstellt' |
end |
object qryBugswichtigkeit: TIntegerField |
FieldName = 'wichtigkeit' |
end |
object qryBugsbearbeiter: TIntegerField |
FieldName = 'bearbeiter' |
end |
object qryBugsfixdatum: TDateTimeField |
FieldName = 'fixdatum' |
end |
object qryBugsversion_release: TIntegerField |
FieldName = 'version_release' |
OnValidate = qryBugsversion_releaseValidate |
end |
object qryBugsmodul: TIntegerField |
FieldName = 'modul' |
end |
object qryBugsprojekt: TIntegerField |
FieldName = 'projekt' |
end |
end |
object tblVersionen: TADOTable |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
TableName = 'versionen' |
Left = 472 |
Left = 240 |
Top = 344 |
end |
object dsVersionen: TDataSource |
DataSet = tblVersionen |
Left = 472 |
Left = 240 |
Top = 312 |
end |
object tblProjekte: TADOTable |
282,12 → 401,12 |
Connection = ADOConnection1 |
CursorType = ctStatic |
TableName = 'projekte' |
Left = 504 |
Left = 272 |
Top = 344 |
end |
object dsProjekte: TDataSource |
DataSet = tblProjekte |
Left = 504 |
Left = 272 |
Top = 312 |
end |
object tblModule: TADOTable |
295,12 → 414,17 |
Connection = ADOConnection1 |
CursorType = ctStatic |
TableName = 'module' |
Left = 536 |
Left = 304 |
Top = 344 |
end |
object dsModule: TDataSource |
DataSet = tblModule |
Left = 536 |
Left = 304 |
Top = 312 |
end |
object Timer1: TTimer |
OnTimer = Timer1Timer |
Left = 128 |
Top = 216 |
end |
end |
/trunk/WuLiMain.pas |
---|
1,5 → 1,17 |
unit WuLiMain; |
(* |
* TODO: |
* - fertigstellen |
* ... multi user/projekt testen |
* ... bearbeitungsnotiz-button (rtf-farben usw) |
* ... |
* - abfragen ob speichern wenn fenster geschlossen wird |
* - filtern nach modul |
* - verbinden mit ticketsystem von HS |
* - rtf controls? |
*) |
interface |
uses |
8,29 → 20,40 |
ADODB, ComCtrls, Grids, DBGrids, Mask, Menus, XPMan; |
type |
TForm1 = class(TForm) |
ADOConnection1: TADOConnection; |
dsBugs: TDataSource; |
TfrmBugtracker = class(TForm) |
Panel1: TPanel; |
DBGrid1: TDBGrid; |
ComboBox1: TComboBox; |
DBNavigator2: TDBNavigator; |
Panel2: TPanel; |
Label1: TLabel; |
Label2: TLabel; |
Label3: TLabel; |
Label4: TLabel; |
Label5: TLabel; |
Label6: TLabel; |
DBNavigator1: TDBNavigator; |
DBRichEdit1: TDBRichEdit; |
DBGrid1: TDBGrid; |
DBEdit1: TDBEdit; |
DBLookupComboBox1: TDBLookupComboBox; |
DBEdit2: TDBEdit; |
DBEdit3: TDBEdit; |
DBLookupComboBox2: TDBLookupComboBox; |
DBLookupComboBox3: TDBLookupComboBox; |
TrackBar1: TTrackBar; |
ADOConnection1: TADOConnection; |
dsBugs: TDataSource; |
tblMitarbeiter: TADOTable; |
dsMitarbeiter: TDataSource; |
Label1: TLabel; |
Label2: TLabel; |
MainMenu1: TMainMenu; |
Stammdaten1: TMenuItem; |
Mitarbeiter1: TMenuItem; |
Projekte1: TMenuItem; |
Module1: TMenuItem; |
Versionen1: TMenuItem; |
Projektwechseln1: TMenuItem; |
XPManifest1: TXPManifest; |
qryBugs: TADOQuery; |
DBEdit2: TDBEdit; |
DBEdit3: TDBEdit; |
Label3: TLabel; |
Label4: TLabel; |
tblVersionen: TADOTable; |
dsVersionen: TDataSource; |
tblProjekte: TADOTable; |
37,75 → 60,188 |
dsProjekte: TDataSource; |
tblModule: TADOTable; |
dsModule: TDataSource; |
Versionen1: TMenuItem; |
DBLookupComboBox2: TDBLookupComboBox; |
Label5: TLabel; |
DBLookupComboBox3: TDBLookupComboBox; |
Label6: TLabel; |
TrackBar1: TTrackBar; |
ComboBox1: TComboBox; |
Timer1: TTimer; |
Splitter1: TSplitter; |
Hilfe1: TMenuItem; |
ber1: TMenuItem; |
btnFixedToggle: TButton; |
btnBearbeitungsnotiz: TButton; |
qryBugsid: TAutoIncField; |
qryBugstitel: TStringField; |
qryBugsbeschreibung: TMemoField; |
qryBugserstellt: TDateTimeField; |
qryBugswichtigkeit: TIntegerField; |
qryBugsbearbeiter: TIntegerField; |
qryBugsfixdatum: TDateTimeField; |
qryBugsversion_release: TIntegerField; |
qryBugsmodul: TIntegerField; |
qryBugsprojekt: TIntegerField; |
procedure Mitarbeiter1Click(Sender: TObject); |
procedure DateTimePicker1CloseUp(Sender: TObject); |
procedure qryBugsAfterScroll(DataSet: TDataSet); |
procedure Module1Click(Sender: TObject); |
procedure Projekte1Click(Sender: TObject); |
procedure Versionen1Click(Sender: TObject); |
procedure TrackBar1Change(Sender: TObject); |
procedure Timer1Timer(Sender: TObject); |
procedure ComboBox1Change(Sender: TObject); |
procedure Projektwechseln1Click(Sender: TObject); |
procedure qryBugsAfterInsert(DataSet: TDataSet); |
procedure ber1Click(Sender: TObject); |
procedure btnFixedToggleClick(Sender: TObject); |
procedure qryBugsversion_releaseValidate(Sender: TField); |
procedure FormCreate(Sender: TObject); |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
eingeloggtMitarbeiter: integer; |
aktuellesProjekt: integer; |
procedure NeuFiltern; |
end; |
var |
Form1: TForm1; |
frmBugtracker: TfrmBugtracker; |
implementation |
uses Mitarbeiter, Module, Versionen, Projekte; |
uses Mitarbeiter, Module, Versionen, Projekte, Login, About, inifiles; |
{$R *.dfm} |
procedure TForm1.qryBugsAfterScroll(DataSet: TDataSet); |
procedure TfrmBugtracker.qryBugsAfterInsert(DataSet: TDataSet); |
begin |
// DateTimePicker1.DateTime := qryBugs.FieldByName('fixdatum').AsDateTime; |
// TrackBar1.Position := qryBugs.FieldByName('wichtigkeit').AsInteger; |
// Standardwerte für einen neuen Bug |
qryBugs.FieldByName('wichtigkeit').AsInteger := 5; |
// qryBugs.FieldByName('bearbeiter').AsInteger := eingeloggtMitarbeiter; |
qryBugs.FieldByName('projekt').AsInteger := aktuellesProjekt; |
end; |
procedure TForm1.TrackBar1Change(Sender: TObject); |
procedure TfrmBugtracker.qryBugsAfterScroll(DataSet: TDataSet); |
var |
bakEvent: TNotifyEvent; |
begin |
bakEvent := TrackBar1.OnChange; |
TrackBar1.OnChange := nil; |
try |
TrackBar1.Position := qryBugs.FieldByName('wichtigkeit').AsInteger; |
finally |
TrackBar1.OnChange := bakEvent; |
end; |
end; |
procedure TfrmBugtracker.qryBugsversion_releaseValidate(Sender: TField); |
begin |
if qryBugs.FieldByName('fixdatum').IsNull then |
begin |
raise Exception.Create('Vor einer Veröffentlichung muss der Bugfix erst als gefixt markiert werden.'); |
end; |
end; |
procedure TfrmBugtracker.Timer1Timer(Sender: TObject); |
begin |
Timer1.Enabled := false; |
if frmLogin.ShowModal = mrCancel then Close; |
end; |
procedure TfrmBugtracker.TrackBar1Change(Sender: TObject); |
begin |
if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
qryBugs.FieldByName('wichtigkeit').AsInteger := TrackBar1.Position; |
end; |
procedure TForm1.Versionen1Click(Sender: TObject); |
procedure TfrmBugtracker.Versionen1Click(Sender: TObject); |
begin |
frmVersionen.ShowModal; |
end; |
procedure TForm1.DateTimePicker1CloseUp(Sender: TObject); |
procedure TfrmBugtracker.ber1Click(Sender: TObject); |
begin |
(* |
LockWindowUpdate(DBGrid1.Handle); |
AboutBox.ShowModal; |
end; |
procedure TfrmBugtracker.btnFixedToggleClick(Sender: TObject); |
begin |
if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
qryBugs.FieldByName('fixdatum').AsDateTime := DateTimePicker1.DateTime; |
LockWindowUpdate(0); |
*) |
if qryBugs.FieldByName('fixdatum').IsNull then |
qryBugs.FieldByName('fixdatum').AsDateTime := Now |
else |
qryBugs.FieldByName('fixdatum').Clear; |
end; |
procedure TForm1.Mitarbeiter1Click(Sender: TObject); |
procedure TfrmBugtracker.ComboBox1Change(Sender: TObject); |
begin |
case ComboBox1.ItemIndex of |
0: |
begin |
// Meine offenen Bugs (nach Wichtigkeit) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND fixdatum IS NULL AND bearbeiter = '+IntToStr(eingeloggtMitarbeiter)+' ORDER BY wichtigkeit DESC'; |
end; |
1: |
begin |
// Alle offenen Bugs (nach Wichtigkeit) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND fixdatum IS NULL ORDER BY wichtigkeit DESC'; |
end; |
2: |
begin |
// Gelöst ohne Veröffentlichung (nach Lösungsdatum) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND fixdatum IS NOT NULL ORDER BY fixdatum DESC'; |
end; |
3: |
begin |
// Gelöst und Veröffentlicht (nach Version und Lösungsdatum) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND fixdatum IS NOT NULL ORDER BY version_release DESC, fixdatum DESC'; |
end; |
4: |
begin |
// Alle Bugs (nach Eröffnungsdatum) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' ORDER BY erstellt DESC'; |
end; |
end; |
qryBugs.Active := true; |
end; |
procedure TfrmBugtracker.FormCreate(Sender: TObject); |
var |
ini: TMemIniFile; |
begin |
ini := TMemIniFile.Create('bugtracker.ini'); |
try |
ADOConnection1.ConnectionString := ini.ReadString('Database', 'ConnectionString', ''); |
finally |
ini.Free; |
end; |
ADOConnection1.Connected := true; |
qryBugs.Active := true; |
tblMitarbeiter.Active := true; |
tblVersionen.Active := true; |
tblProjekte.Active := true; |
tblModule.Active := true; |
end; |
procedure TfrmBugtracker.Mitarbeiter1Click(Sender: TObject); |
begin |
frmMitarbeiter.ShowModal; |
end; |
procedure TForm1.Module1Click(Sender: TObject); |
procedure TfrmBugtracker.Module1Click(Sender: TObject); |
begin |
frmModule.ShowModal; |
end; |
procedure TForm1.Projekte1Click(Sender: TObject); |
procedure TfrmBugtracker.NeuFiltern; |
begin |
ComboBox1Change(ComboBox1); |
end; |
procedure TfrmBugtracker.Projekte1Click(Sender: TObject); |
begin |
frmProjekte.ShowModal; |
end; |
procedure TfrmBugtracker.Projektwechseln1Click(Sender: TObject); |
begin |
frmLogin.ShowModal; |
end; |
end. |
/trunk/bugtracker.ini |
---|
0,0 → 1,2 |
[Database] |
ConnectionString=Provider=MSDASQL.1;Persist Security Info=False;Data Source=MySQL RAS;Initial Catalog=bugtracker; |
/trunk |
---|
Property changes: |
Modified: svn:ignore |
*.exe |
__history |
*.local |
+*.identcache |