Registriert seit: 5. Jun 2013
4 Beiträge
|
Struktogramm
5. Jun 2013, 12: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;
|
|
Zitat
|