Einrichtung von Sicherheitsstreifen in PrintBuilder-Berichten
Hinweis: Im Installationsverzeichnis Ihres Uncertainty-Moduls befindet sich eine IndySoft-Zertifikatsvorlage namens „GuardbandingExample.rtm“, die alle in diesem Hilfethema erwähnten Beispiel-Layouts und benutzerdefinierten Codes enthält. Um diese Beispiel-Zertifikatsvorlage in PrintBuilder zu importieren, wählen Sie in PrintBuilder den Vorlagentyp „Zertifikate“ aus und klicken Sie auf die Schaltfläche „Aus Datei importieren“.
Mithilfe von PrintBuilder lässt sich das Guardbanding ganz einfach in einem IndySoft-Zertifikats- oder Nichtkonformitätsbericht einrichten. Markieren Sie den gewünschten Bericht und bearbeiten Sie ihn mit dem IndySoft-Berichtsdesigner (doppelklicken Sie in PrintBuilder auf den Namen des Berichts). Wählen Sie den Unterbericht „CalibrationTestPoints“ aus den Registerkarten unten aus und fügen Sie dann das Feld „Uncertainty“ in Ihre Testpunkt-Tabelle ein. Nachfolgend finden Sie ein Beispiel:

Hinzufügen eines Unsicherheitsfelds zum Zertifikat – Beispiel
Neben dem neuen Feld „Unsicherheit“ verwendet dieses Beispiel auch ein optionales ***, um anzugeben, ob ein Messpunkt unter Berücksichtigung der Unsicherheit möglicherweise außerhalb der Toleranz liegt. Über die Registerkarte „Calc“ im IndySoft Report Designer können Sie benutzerdefinierten Code einrichten, der diese *** pro Testpunkt ein- oder ausblendet. Ein Beispiel für diesen benutzerdefinierten Code finden Sie unten. In diesem Fall wird das „BeforePrint“-Ereignis für das Detail-Band des Unterberichts „CalibrationTestPoints“ verwendet.

DetailBeforePrint – Benutzerdefinierter Code zum Ein- und Ausblenden des Hinweises zum Sicherheitsrand
Pascal
Var
dUncertainty, dAsFound, dTolerancePlus, dToleranceMinus : Double;
{Anzeige/Ausblendung *** der Beschriftung basierend auf Guardbanding}
Label3.Visible := False;
dUncertainty := CalibrationTestPoints['Uncertainty'];
dAsFound := CalibrationTestPoints['As Found'];
dTolerancePlus := CalibrationTestPoints['Tolerance +'];
dToleranceMinus := CalibrationTestPoints['Tolerance -'];
if dAsFound + dUncertainty > dTolerancePlus then Label3.Visible :=True;
if dAsFound - dUncertainty < dToleranceMinus then Label3.Visible :=True;
if Label3.Visible then Label3.Visible := True;
Schließlich ist es wahrscheinlich erforderlich, die Darstellung des Feldes „Unsicherheit“ im Zertifikat entsprechend der im Unsicherheitsbudget angegebenen Auflösung zu formatieren (die nicht unbedingt mit der für die Felder „Ist-Zustand“, „Soll-Zustand“ oder „Toleranz“ angegebenen Auflösung übereinstimmt). Diese Unsicherheitsbudgetauflösung wird mithilfe der Funktion „Einheit/Auflösung zuordnen“ einem benutzerdefinierten Feld für Testpunkte zugeordnet. Das Feld „To“ im Unsicherheitsmodul. Für dieses Beispiel wurde unter „Map Unit/Res.“ die Option „Custom 1“ ausgewählt. „An“. Um den Unsicherheitswert im Testpunkt-Raster innerhalb des Zertifikats zu formatieren, verwenden Sie den unten gezeigten benutzerdefinierten Code:

Vor der Detailberechnung: Code zur Anwendung der Unsicherheitsauflösung
Pascal
Var
I, I2, I3, iNumResolution, iResResolution, j : Integer;
sRes, sRes2 : String;
sSpecFormat, sResultFormat: String;
sUncertRes, sUncertTemp : String;
iUncertRes : Integer;
bWithinParentheses: Boolean;
dUncertainty, dAsFound, dTolerancePlus, dToleranceMinus : Double;
begin
{Apple Uncertainty Resolution, muss zuerst aus 'Custom 1' geparst werden}
sUncertRes := CalibrationTestPoints['Custom 1'];
bWithinParentheses := False;
sUncertTemp := '';
for j := 0 to 29 do
begin
if Copy(sUncertRes, j, 1) = '(' then bWithinParentheses := True;
if Copy(sUncertRes, j, 1) = ')' then bWithinParentheses := False;
if bWithinParentheses then
begin
if ((Copy(sUncertRes, j, 1) = '0') or (Copy(sUncertRes, j, 1) = '1') or
((Copy(sUncertRes, j, 1) = '2') or (Copy(sUncertRes, j, 1) = '3') oder
((Copy(sUncertRes, j, 1) = '4') oder (Copy(sUncertRes, j, 1) = '5') oder
((Copy(sUncertRes, j, 1) = '6') oder (Copy(sUncertRes, j, 1) = '7') oder
((Copy(sUncertRes, j, 1) = '8') oder (Copy(sUncertRes, j, 1) = '9')) dann
sUncertTemp := sUncertTemp + Copy(sUncertRes, j, 1);
end;
end;
iUncertRes := StrToInt(sUncertTemp);
sRes := '#######0';
if ((iUncertRes >= 0) and (iUncertRes <= 12) then i2 := iUncertRes
else i2 := 6;
if i2 > 0 then
begin
sRes := sRes + '.';
for i := 0 to i2-1 do sRes := sRes + '0';
end;
DBText1.DisplayFormat := sRes;
Beachten Sie im obigen Code-Beispiel, dass sich „Label3“ auf die Textkomponente „***“ bezieht, die auf der Registerkarte „Design“ hinzugefügt wurde. Label2 bezieht sich auf die Bildunterschrift unterhalb der Prüfpunkte, die lautet: „Die mit „***“ gekennzeichneten Prüfpunkte liegen unter Berücksichtigung der Messunsicherheit möglicherweise außerhalb der Toleranz.“ Da die Eigenschaft „Visible“ von Label2 in der Haupttabelle „Design“ standardmäßig auf „False“ gesetzt ist, wird Label2 nur angezeigt, wenn mindestens ein Testpunkt mit „***“ markiert ist. |