Thema: Struktogramm

Einzelnen Beitrag anzeigen

49rojhat49

Registriert seit: 5. Jun 2013
4 Beiträge
 
#1

Struktogramm

  Alt 5. Jun 2013, 11:40
Hallo Leute,

ich muss zu folgendem Code ein Struktogramm malen, habe aber keine Ahnung wie das funktioniert.

könnte mir vielleicht einer von euch helfen?

Code:
procedure TviewWizWerbemittelVersandDetails.refreshData;
var
  lRow, lCol: Integer;
  lLastAdrID: Double;
begin
  FWEMList.Clear;
  lLastAdrID := -1;
  //alle Zeilen ausser Header löschen
  grdDetails.Cells.RowCount := 0;
  //Spalten 5 - x löschen
  grdDetails.Cells.ColCount := 4;
  //Werbemittel einlesen
  CheckClose(qryWerbemittel);
  CheckOpen(qryWerbemittel);

  grdDetails.BeginUpdate;
  try
    while not (qryWerbemittel.Eof) do begin
      //Spalte erzeugen
      lCol := grdDetails.Cells.AddColumn;
      //es gibt wohl keine Möglichkeit, Daten in einer Header-Zelle zu speichern, also
      //speichern wird die WEM-IDs in einer Liste
      FWEMList.Add(TFloatClass.Create(qryWerbemittelwem_id.AsFloat));

      grdDetails.cells.Columns[lCol].Caption := qryWerbemittelwem_display_name.AsString;
      grdDetails.cells.Columns[lCol].Tag := qryWerbemittelwem_verfuegbar.AsInteger;
      qryWerbemittel.Next;
    end;
    CheckClose(qryWerbemittel);
    //Transfers einlesen
    lRow := 0;
    CheckClose(qryWerbemitteltransfer);
    CheckOpen(qryWerbemitteltransfer);
    while not (qryWerbemitteltransfer.Eof) do begin
      //neue Adresse, neue Spalte
      if (lLastAdrid <> qryWerbemitteltransferwmt_adrid.AsFloat) then begin
        lRow := grdDetails.cells.AddRow;
        grdDetails.Cells[0, lRow].Data := TFloatClass.Create(qryWerbemitteltransferwmt_adrid.AsFloat);
        grdDetails.Cells[0, lRow].Text := qryWerbemitteltransferadr_schluessel.AsString;
        grdDetails.Cells[0, lRow].CanEdit := false;
        grdDetails.Cells[0, lRow].CanEnter := false;
      end;
      //Spalten 2 bis 4 editierbar machen
      grdDetails.cells[2, lRow].Value := 0;
      grdDetails.cells[2, lRow].CanEdit := true;
      grdDetails.cells[2, lRow].CanEnter := true;
      // enthält die plz zum sortieren (-> sortData.value)
      grdDetails.cells[1, lRow].FormatString := qryWerbemitteltransferadr_plz.AsString;
      if (-1 <> getIndexFromAdrList(qryWerbemitteltransferwmt_adrid.AsFloat)) then begin
        grdDetails.cells[3, lRow].Value := 1;
      end else begin
        grdDetails.cells[3, lRow].Value := 0;
      end;
      grdDetails.cells[3, lRow].CanEdit := true;
      grdDetails.cells[3, lRow].CanEnter := true;
      //Spalte suchen
      for lCol := 4 to grdDetails.Cells.ColCount - 1 do begin
        if (TFloatClass(FWEMList[lCol - 4]).FData = qryWerbemitteltransferwmt_wemid.AsFloat) then begin
    grdDetails.cells[lCol, lRow].Alignment := taCenter;
          grdDetails.Cells[lCol, lRow].Text := qryWerbemitteltransferwmt_anzahl.AsString;
          if qryWerbemitteltransferwmt_vertroestetdatum.IsNull then begin
          end else begin
            grdDetails.Cells[lCol, lRow].Color := clLime;
          end;

        end;
        grdDetails.Cells[lCol, lRow].CanEdit := false;
        grdDetails.Cells[lCol, lRow].CanEnter := false;
      end;
      lLastAdrID := qryWerbemitteltransferwmt_adrid.AsFloat;
      qryWerbemitteltransfer.Next;
    end;
    CheckClose(qryWerbemitteltransfer);
  finally
    grdDetails.EndUpdate;
  end;
  lblCount.Caption := IntToStr(grdDetails.Cells.RowCount);
  sortData;
end;
  Mit Zitat antworten Zitat