Einzelnen Beitrag anzeigen

Gaijin

Registriert seit: 6. Sep 2005
Ort: Österreich
570 Beiträge
 
#292

Re: DevProject Manager (Projektverwaltung) 1.3.5

  Alt 6. Okt 2006, 07:55
Zitat von xZise:
Kann das denn so gehen?
Bei der Suche nach bereits vorhandenen Versionen verwendest du die falsche Variable (i statt j):
Delphi-Quellcode:
for j := 0 to High(Data.Versions) do
        if Data.Versions[j].Version = sVersion then
          VersionExists := j;
Überprüfe bitte auch, ob "PluginInfo.Notify.ChangelogCreated" auf True gesetzt ist.

Ich habe es mit folgendem Code getestet, wobei die erste Meldung die Anzahl der ToDo-Einträge anzeigt, und die zweite den obersten Wert des Array für die unterschiedlichen Versionen.
Delphi-Quellcode:
function TMyPlugin.ExecChangelogCreated(): Boolean;
type
  TCLList = record
    Version : String;
    ChangeType : Array of String;
    ChangeLog : Array of String;
  end;
var
  sVersion, sField: String;
  i, j, iVer: Integer;
  aCL: array of TCLList;
begin
  Result := False;
  App.GetTable(PChar('SELECT * FROM todo WHERE projectid = ' + IntToStr(App.GetProjectId) + ';'));

  showmessage(inttostr(App.TableCount));

  for i := 1 to App.TableCount do begin
    sVersion := App.FieldByName('version');
    iVer := -1;
    for j := 0 to High(aCL) do
      if (aCL[j].Version = sVersion) then iVer := j;
    if (iVer = -1) then begin
      SetLength(aCL, Length(aCL) + 1);
      iVer := High(aCL);
      aCL[iVer].Version := sVersion;
    end;
    SetLength(aCL[iVer].ChangeType, Length(aCL[iVer].ChangeType) + 1);
    aCL[iVer].ChangeType[High(aCL[iVer].ChangeType)] := App.FieldByName('type');
    SetLength(aCL[iVer].ChangeLog, Length(aCL[iVer].ChangeLog) + 1);
    if (Trim(App.FieldByName('changelog')) = '') then
      sField := 'description'
    else
      sField := 'changelog';
    aCL[iVer].ChangeType[High(aCL[iVer].ChangeType)] := App.FieldByName(sField);
    App.TableNext;
  end;

  showmessage(inttostr(high(aCL)));
end;
MfG
Gaijin
Gaijin.at
  Mit Zitat antworten Zitat