/trunk/WuLi.dpr |
---|
File deleted |
/trunk/WuLi.bdsproj |
---|
File deleted |
/trunk/WuLiMain.pas |
---|
File deleted |
/trunk/WuLi.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/trunk/WuLiMain.dfm |
---|
File deleted |
/trunk/Bugtracker.bdsproj |
---|
0,0 → 1,175 |
<?xml version="1.0" encoding="utf-8"?> |
<BorlandProject> |
<PersonalityInfo> |
<Option> |
<Option Name="Personality">Delphi.Personality</Option> |
<Option Name="ProjectType"></Option> |
<Option Name="Version">1.0</Option> |
<Option Name="GUID">{D9325F5E-2B75-4C5F-B683-9907A01F0C72}</Option> |
</Option> |
</PersonalityInfo> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">Bugtracker.dpr</Source> |
</Source> |
<FileVersion> |
<FileVersion Name="Version">7.0</FileVersion> |
</FileVersion> |
<Compiler> |
<Compiler Name="A">8</Compiler> |
<Compiler Name="B">0</Compiler> |
<Compiler Name="C">1</Compiler> |
<Compiler Name="D">1</Compiler> |
<Compiler Name="E">0</Compiler> |
<Compiler Name="F">0</Compiler> |
<Compiler Name="G">1</Compiler> |
<Compiler Name="H">1</Compiler> |
<Compiler Name="I">1</Compiler> |
<Compiler Name="J">0</Compiler> |
<Compiler Name="K">0</Compiler> |
<Compiler Name="L">1</Compiler> |
<Compiler Name="M">0</Compiler> |
<Compiler Name="N">1</Compiler> |
<Compiler Name="O">1</Compiler> |
<Compiler Name="P">1</Compiler> |
<Compiler Name="Q">0</Compiler> |
<Compiler Name="R">0</Compiler> |
<Compiler Name="S">0</Compiler> |
<Compiler Name="T">0</Compiler> |
<Compiler Name="U">0</Compiler> |
<Compiler Name="V">1</Compiler> |
<Compiler Name="W">0</Compiler> |
<Compiler Name="X">1</Compiler> |
<Compiler Name="Y">1</Compiler> |
<Compiler Name="Z">1</Compiler> |
<Compiler Name="ShowHints">True</Compiler> |
<Compiler Name="ShowWarnings">True</Compiler> |
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> |
<Compiler Name="NamespacePrefix"></Compiler> |
<Compiler Name="GenerateDocumentation">False</Compiler> |
<Compiler Name="DefaultNamespace"></Compiler> |
<Compiler Name="SymbolDeprecated">True</Compiler> |
<Compiler Name="SymbolLibrary">True</Compiler> |
<Compiler Name="SymbolPlatform">True</Compiler> |
<Compiler Name="SymbolExperimental">True</Compiler> |
<Compiler Name="UnitLibrary">True</Compiler> |
<Compiler Name="UnitPlatform">True</Compiler> |
<Compiler Name="UnitDeprecated">True</Compiler> |
<Compiler Name="UnitExperimental">True</Compiler> |
<Compiler Name="HResultCompat">True</Compiler> |
<Compiler Name="HidingMember">True</Compiler> |
<Compiler Name="HiddenVirtual">True</Compiler> |
<Compiler Name="Garbage">True</Compiler> |
<Compiler Name="BoundsError">True</Compiler> |
<Compiler Name="ZeroNilCompat">True</Compiler> |
<Compiler Name="StringConstTruncated">True</Compiler> |
<Compiler Name="ForLoopVarVarPar">True</Compiler> |
<Compiler Name="TypedConstVarPar">True</Compiler> |
<Compiler Name="AsgToTypedConst">True</Compiler> |
<Compiler Name="CaseLabelRange">True</Compiler> |
<Compiler Name="ForVariable">True</Compiler> |
<Compiler Name="ConstructingAbstract">True</Compiler> |
<Compiler Name="ComparisonFalse">True</Compiler> |
<Compiler Name="ComparisonTrue">True</Compiler> |
<Compiler Name="ComparingSignedUnsigned">True</Compiler> |
<Compiler Name="CombiningSignedUnsigned">True</Compiler> |
<Compiler Name="UnsupportedConstruct">True</Compiler> |
<Compiler Name="FileOpen">True</Compiler> |
<Compiler Name="FileOpenUnitSrc">True</Compiler> |
<Compiler Name="BadGlobalSymbol">True</Compiler> |
<Compiler Name="DuplicateConstructorDestructor">True</Compiler> |
<Compiler Name="InvalidDirective">True</Compiler> |
<Compiler Name="PackageNoLink">True</Compiler> |
<Compiler Name="PackageThreadVar">True</Compiler> |
<Compiler Name="ImplicitImport">True</Compiler> |
<Compiler Name="HPPEMITIgnored">True</Compiler> |
<Compiler Name="NoRetVal">True</Compiler> |
<Compiler Name="UseBeforeDef">True</Compiler> |
<Compiler Name="ForLoopVarUndef">True</Compiler> |
<Compiler Name="UnitNameMismatch">True</Compiler> |
<Compiler Name="NoCFGFileFound">True</Compiler> |
<Compiler Name="ImplicitVariants">True</Compiler> |
<Compiler Name="UnicodeToLocale">True</Compiler> |
<Compiler Name="LocaleToUnicode">True</Compiler> |
<Compiler Name="ImagebaseMultiple">True</Compiler> |
<Compiler Name="SuspiciousTypecast">True</Compiler> |
<Compiler Name="PrivatePropAccessor">True</Compiler> |
<Compiler Name="UnsafeType">False</Compiler> |
<Compiler Name="UnsafeCode">False</Compiler> |
<Compiler Name="UnsafeCast">False</Compiler> |
<Compiler Name="OptionTruncated">True</Compiler> |
<Compiler Name="WideCharReduced">True</Compiler> |
<Compiler Name="DuplicatesIgnored">True</Compiler> |
<Compiler Name="UnitInitSeq">True</Compiler> |
<Compiler Name="LocalPInvoke">True</Compiler> |
<Compiler Name="MessageDirective">True</Compiler> |
<Compiler Name="CodePage"></Compiler> |
</Compiler> |
<Linker> |
<Linker Name="MapFile">0</Linker> |
<Linker Name="OutputObjs">0</Linker> |
<Linker Name="GenerateHpps">False</Linker> |
<Linker Name="ConsoleApp">1</Linker> |
<Linker Name="DebugInfo">False</Linker> |
<Linker Name="RemoteSymbols">False</Linker> |
<Linker Name="GenerateDRC">False</Linker> |
<Linker Name="MinStackSize">16384</Linker> |
<Linker Name="MaxStackSize">1048576</Linker> |
<Linker Name="ImageBase">4194304</Linker> |
<Linker Name="ExeDescription"></Linker> |
</Linker> |
<Directories> |
<Directories Name="OutputDir"></Directories> |
<Directories Name="UnitOutputDir"></Directories> |
<Directories Name="PackageDLLOutputDir"></Directories> |
<Directories Name="PackageDCPOutputDir"></Directories> |
<Directories Name="SearchPath"></Directories> |
<Directories Name="Packages"></Directories> |
<Directories Name="Conditionals"></Directories> |
<Directories Name="DebugSourceDirs"></Directories> |
<Directories Name="UsePackages">False</Directories> |
</Directories> |
<Parameters> |
<Parameters Name="RunParams"></Parameters> |
<Parameters Name="HostApplication"></Parameters> |
<Parameters Name="Launcher"></Parameters> |
<Parameters Name="UseLauncher">False</Parameters> |
<Parameters Name="DebugCWD"></Parameters> |
<Parameters Name="Debug Symbols Search Path"></Parameters> |
<Parameters Name="LoadAllSymbols">True</Parameters> |
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
</Parameters> |
<Language> |
<Language Name="ActiveLang"></Language> |
<Language Name="ProjectLang">$00000000</Language> |
<Language Name="RootDir"></Language> |
</Language> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1031</VersionInfo> |
<VersionInfo Name="CodePage">1252</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName">ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="FileDescription">Bugtracker für Windows</VersionInfoKeys> |
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName">WuLi</VersionInfoKeys> |
<VersionInfoKeys Name="LegalCopyright">(C) 2016 ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> |
<VersionInfoKeys Name="OriginalFilename">Bugtracker.exe</VersionInfoKeys> |
<VersionInfoKeys Name="ProductName">ViaThinkSoft Bugtracker für Windows</VersionInfoKeys> |
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Comments">www.daniel-marschall.de</VersionInfoKeys> |
</VersionInfoKeys> |
</Delphi.Personality> |
</BorlandProject> |
/trunk/Bugtracker.cfg |
---|
0,0 → 1,38 |
-$A8 |
-$B- |
-$C+ |
-$D+ |
-$E- |
-$F- |
-$G+ |
-$H+ |
-$I+ |
-$J- |
-$K- |
-$L+ |
-$M- |
-$N+ |
-$O+ |
-$P+ |
-$Q- |
-$R- |
-$S- |
-$T- |
-$U- |
-$V+ |
-$W- |
-$X+ |
-$YD |
-$Z1 |
-cg |
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; |
-H+ |
-W+ |
-M |
-$M16384,1048576 |
-K$00400000 |
-LE"C:\Users\user\Documents\Borland Studio-Projekte\Bpl" |
-LN"C:\Users\user\Documents\Borland Studio-Projekte\Bpl" |
-w-UNSAFE_TYPE |
-w-UNSAFE_CODE |
-w-UNSAFE_CAST |
/trunk/Bugtracker.dpr |
---|
0,0 → 1,25 |
program Bugtracker; |
uses |
Forms, |
BugtrackerMain in 'BugtrackerMain.pas' {frmBugtracker}, |
Mitarbeiter in 'Mitarbeiter.pas' {frmMitarbeiter}, |
Versionen in 'Versionen.pas' {frmVersionen}, |
Module in 'Module.pas' {frmModule}, |
Projekte in 'Projekte.pas' {frmProjekte}, |
Login in 'Login.pas' {frmLogin}, |
About in 'About.pas' {AboutBox}; |
{$R *.res} |
begin |
Application.Initialize; |
Application.CreateForm(TfrmBugtracker, frmBugtracker); |
Application.CreateForm(TfrmMitarbeiter, frmMitarbeiter); |
Application.CreateForm(TfrmVersionen, frmVersionen); |
Application.CreateForm(TfrmModule, frmModule); |
Application.CreateForm(TfrmProjekte, frmProjekte); |
Application.CreateForm(TfrmLogin, frmLogin); |
Application.CreateForm(TAboutBox, AboutBox); |
Application.Run; |
end. |
/trunk/Bugtracker.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/trunk/BugtrackerMain.dfm |
---|
0,0 → 1,431 |
object frmBugtracker: TfrmBugtracker |
Left = 0 |
Top = 0 |
Caption = 'ViaThinkSoft Bugtracker f'#252'r Windows' |
ClientHeight = 498 |
ClientWidth = 751 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
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 |
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 |
DesignSize = ( |
499 |
498) |
object Label1: TLabel |
Left = 15 |
Top = 53 |
Width = 50 |
Height = 13 |
Caption = 'Bearbeiter' |
end |
object Label2: TLabel |
Left = 15 |
Top = 149 |
Width = 20 |
Height = 13 |
Caption = 'Titel' |
end |
object Label3: TLabel |
Left = 240 |
Top = 53 |
Width = 33 |
Height = 13 |
Caption = 'Erstellt' |
end |
object Label4: TLabel |
Left = 240 |
Top = 101 |
Width = 29 |
Height = 13 |
Caption = 'Gefixt' |
end |
object Label5: TLabel |
Left = 15 |
Top = 101 |
Width = 28 |
Height = 13 |
Caption = 'Modul' |
end |
object Label6: TLabel |
Left = 240 |
Top = 149 |
Width = 119 |
Height = 13 |
Caption = 'Ver'#246'ffentlicht als Version' |
end |
object DBNavigator1: TDBNavigator |
Left = 15 |
Top = 16 |
Width = 224 |
Height = 25 |
DataSource = dsBugs |
VisibleButtons = [nbInsert, nbDelete, nbPost, nbCancel] |
TabOrder = 0 |
end |
object DBRichEdit1: TDBRichEdit |
Left = 15 |
Top = 248 |
Width = 471 |
Height = 233 |
Anchors = [akLeft, akTop, akRight, akBottom] |
DataField = 'beschreibung' |
DataSource = dsBugs |
TabOrder = 9 |
end |
object DBEdit1: TDBEdit |
Left = 15 |
Top = 168 |
Width = 186 |
Height = 21 |
DataField = 'titel' |
DataSource = dsBugs |
TabOrder = 5 |
end |
object DBLookupComboBox1: TDBLookupComboBox |
Left = 15 |
Top = 72 |
Width = 186 |
Height = 21 |
DataField = 'bearbeiter' |
DataSource = dsBugs |
KeyField = 'id' |
ListField = 'name' |
ListSource = dsMitarbeiter |
NullValueKey = 46 |
TabOrder = 1 |
end |
object DBEdit2: TDBEdit |
Left = 240 |
Top = 72 |
Width = 155 |
Height = 21 |
TabStop = False |
Color = clBtnFace |
DataField = 'erstellt' |
DataSource = dsBugs |
ReadOnly = True |
TabOrder = 2 |
end |
object DBEdit3: TDBEdit |
Left = 240 |
Top = 120 |
Width = 155 |
Height = 21 |
TabStop = False |
Color = clBtnFace |
DataField = 'fixdatum' |
DataSource = dsBugs |
ReadOnly = True |
TabOrder = 4 |
end |
object DBLookupComboBox2: TDBLookupComboBox |
Left = 15 |
Top = 120 |
Width = 186 |
Height = 21 |
DataField = 'modul' |
DataSource = dsBugs |
KeyField = 'id' |
ListField = 'modul' |
ListSource = dsModule |
NullValueKey = 46 |
TabOrder = 3 |
end |
object DBLookupComboBox3: TDBLookupComboBox |
Left = 240 |
Top = 168 |
Width = 155 |
Height = 21 |
DataField = 'version_release' |
DataSource = dsBugs |
KeyField = 'id' |
ListField = 'version' |
ListSource = dsVersionen |
TabOrder = 6 |
end |
object TrackBar1: TTrackBar |
Left = 245 |
Top = 8 |
Width = 164 |
Height = 45 |
Position = 5 |
TabOrder = 10 |
OnChange = TrackBar1Change |
end |
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 = |
'Provider=MSDASQL.1;Persist Security Info=False;Data Source=MySQL' + |
' RAS;Initial Catalog=bugtracker' |
LoginPrompt = False |
Left = 104 |
Top = 344 |
end |
object dsBugs: TDataSource |
DataSet = qryBugs |
Left = 168 |
Top = 312 |
end |
object tblMitarbeiter: TADOTable |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
TableName = 'mitarbeiter' |
Left = 208 |
Top = 344 |
end |
object dsMitarbeiter: TDataSource |
DataSet = tblMitarbeiter |
Left = 208 |
Top = 312 |
end |
object MainMenu1: TMainMenu |
Left = 88 |
Top = 216 |
object Stammdaten1: TMenuItem |
Caption = 'Stammdaten' |
object Mitarbeiter1: TMenuItem |
Caption = 'Mitarbeiter' |
OnClick = Mitarbeiter1Click |
end |
object Projekte1: TMenuItem |
Caption = 'Projekte' |
OnClick = Projekte1Click |
end |
object Module1: TMenuItem |
Caption = 'Module' |
OnClick = Module1Click |
end |
object Versionen1: TMenuItem |
Caption = 'Versionen' |
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 = 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 = 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 dsVersionen: TDataSource |
DataSet = qryVersionen |
Left = 240 |
Top = 312 |
end |
object tblProjekte: TADOTable |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
TableName = 'projekte' |
Left = 272 |
Top = 344 |
end |
object dsProjekte: TDataSource |
DataSet = tblProjekte |
Left = 272 |
Top = 312 |
end |
object dsModule: TDataSource |
DataSet = qryModule |
Left = 304 |
Top = 312 |
end |
object Timer1: TTimer |
OnTimer = Timer1Timer |
Left = 128 |
Top = 216 |
end |
object qryVersionen: TADOQuery |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
AfterInsert = qryVersionenAfterInsert |
Parameters = <> |
SQL.Strings = ( |
'SELECT * FROM versionen') |
Left = 240 |
Top = 344 |
end |
object qryModule: TADOQuery |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
AfterInsert = qryModuleAfterInsert |
Parameters = <> |
SQL.Strings = ( |
'SELECT * FROM module') |
Left = 304 |
Top = 344 |
end |
end |
/trunk/BugtrackerMain.pas |
---|
0,0 → 1,266 |
unit BugtrackerMain; |
(* |
* TODO: |
* - fertigstellen |
* ... bearbeitungsnotiz-button (rtf-farben usw) |
* ... |
* - abfragen ob speichern wenn fenster geschlossen wird |
* - filtern nach modul |
* - verbinden mit ticketsystem von HS |
* - rtf controls? |
*) |
interface |
uses |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, DBXpress, WideStrings, DB, SqlExpr, StdCtrls, ExtCtrls, DBCtrls, |
ADODB, ComCtrls, Grids, DBGrids, Mask, Menus, XPMan; |
type |
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; |
DBEdit1: TDBEdit; |
DBLookupComboBox1: TDBLookupComboBox; |
DBEdit2: TDBEdit; |
DBEdit3: TDBEdit; |
DBLookupComboBox2: TDBLookupComboBox; |
DBLookupComboBox3: TDBLookupComboBox; |
TrackBar1: TTrackBar; |
ADOConnection1: TADOConnection; |
dsBugs: TDataSource; |
tblMitarbeiter: TADOTable; |
dsMitarbeiter: TDataSource; |
MainMenu1: TMainMenu; |
Stammdaten1: TMenuItem; |
Mitarbeiter1: TMenuItem; |
Projekte1: TMenuItem; |
Module1: TMenuItem; |
Versionen1: TMenuItem; |
Projektwechseln1: TMenuItem; |
XPManifest1: TXPManifest; |
qryBugs: TADOQuery; |
dsVersionen: TDataSource; |
tblProjekte: TADOTable; |
dsProjekte: TDataSource; |
dsModule: TDataSource; |
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; |
qryVersionen: TADOQuery; |
qryModule: TADOQuery; |
procedure Mitarbeiter1Click(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); |
procedure qryVersionenAfterInsert(DataSet: TDataSet); |
procedure qryModuleAfterInsert(DataSet: TDataSet); |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
eingeloggtMitarbeiter: integer; |
aktuellesProjekt: integer; |
procedure NeuFiltern; |
end; |
var |
frmBugtracker: TfrmBugtracker; |
implementation |
uses Mitarbeiter, Module, Versionen, Projekte, Login, About, inifiles; |
{$R *.dfm} |
procedure TfrmBugtracker.qryBugsAfterInsert(DataSet: TDataSet); |
begin |
// Standardwerte für einen neuen Bug |
qryBugs.FieldByName('wichtigkeit').AsInteger := 5; |
// qryBugs.FieldByName('bearbeiter').AsInteger := eingeloggtMitarbeiter; |
qryBugs.FieldByName('projekt').AsInteger := aktuellesProjekt; |
end; |
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.qryModuleAfterInsert(DataSet: TDataSet); |
begin |
// Standardwerte für ein neues Modul |
qryModule.FieldByName('projekt').AsInteger := aktuellesProjekt; |
end; |
procedure TfrmBugtracker.qryVersionenAfterInsert(DataSet: TDataSet); |
begin |
// Standardwerte für eine neue Version |
qryVersionen.FieldByName('projekt').AsInteger := aktuellesProjekt; |
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 TfrmBugtracker.Versionen1Click(Sender: TObject); |
begin |
frmVersionen.ShowModal; |
end; |
procedure TfrmBugtracker.ber1Click(Sender: TObject); |
begin |
AboutBox.ShowModal; |
end; |
procedure TfrmBugtracker.btnFixedToggleClick(Sender: TObject); |
begin |
if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
if qryBugs.FieldByName('fixdatum').IsNull then |
qryBugs.FieldByName('fixdatum').AsDateTime := Now |
else |
qryBugs.FieldByName('fixdatum').Clear; |
end; |
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; |
qryVersionen.Active := true; |
tblProjekte.Active := true; |
qryModule.Active := true; |
end; |
procedure TfrmBugtracker.Mitarbeiter1Click(Sender: TObject); |
begin |
frmMitarbeiter.ShowModal; |
end; |
procedure TfrmBugtracker.Module1Click(Sender: TObject); |
begin |
frmModule.ShowModal; |
end; |
procedure TfrmBugtracker.NeuFiltern; |
begin |
ComboBox1Change(ComboBox1); |
qryModule.SQL.Text := 'SELECT * FROM module WHERE projekt = ' + IntToStr(aktuellesProjekt); |
qryModule.Active := true; |
qryVersionen.SQL.Text := 'SELECT * FROM versionen WHERE projekt = ' + IntToStr(aktuellesProjekt); |
qryVersionen.Active := true; |
end; |
procedure TfrmBugtracker.Projekte1Click(Sender: TObject); |
begin |
frmProjekte.ShowModal; |
end; |
procedure TfrmBugtracker.Projektwechseln1Click(Sender: TObject); |
begin |
frmLogin.ShowModal; |
end; |
end. |
/trunk/Login.pas |
---|
31,7 → 31,7 |
implementation |
uses |
WuLiMain, Mitarbeiter, Projekte; |
BugtrackerMain, Mitarbeiter, Projekte; |
{$R *.dfm} |
/trunk/Mitarbeiter.pas |
---|
23,6 → 23,6 |
{$R *.dfm} |
uses |
WuLiMain; |
BugtrackerMain; |
end. |
/trunk/Module.pas |
---|
23,6 → 23,6 |
{$R *.dfm} |
uses |
WuLiMain; |
BugtrackerMain; |
end. |
/trunk/Projekte.pas |
---|
23,6 → 23,6 |
{$R *.dfm} |
uses |
WuLiMain; |
BugtrackerMain; |
end. |
/trunk/Versionen.pas |
---|
23,6 → 23,6 |
{$R *.dfm} |
uses |
WuLiMain; |
BugtrackerMain; |
end. |