Prozeduren Previous topic Chapter index Next topic

SE_GETGROUPEND

 

Eingabeparameter

Parameter

Typ

Beschreibung

SNID

INTEGER

Primary Key Wert von der SENDUNGEN Tabelle

SEPOSITION

INTEGER

Positionsnummer vom selektierten Sendeelement.

SEGRUPPE

CHAR(1)

Das Gruppen Kürzel vom selektierten Sendeelement.

 

Ausgabeparameter

Parameter

Typ

Beschreibung

NEXTSEPOSITION

INTEGER

Gibt die nächste Position zurück.

 

Beschreibung

Damit erhält man anhand einer Position das Positions-Ende.

 

Definition

CREATE PROCEDURE SE_GETGROUPEND(
    SNID INTEGER,
    SEPOSITION INTEGER,
    SEGRUPPE CHAR(1))
RETURNS (
    NEXTSEPOSITION INTEGER)
AS
  DECLARE VARIABLE DestSeID          INTEGER;
  DECLARE VARIABLE DestSePosition    INTEGER;
  DECLARE VARIABLE DestSeGruppe      CHAR(1);
  DECLARE VARIABLE DestSeTyp         CHAR(2);
  DECLARE VARIABLE MaxTriggerPos     INTEGER;
BEGIN
  FOR SELECT SEID, SEPOSITION, SEGRUPPE, SETYP FROM SENDEELEMENTE
        WHERE (SESNID = :SnId) AND
              (SEPOSITION >= :SePosition)
        ORDER BY SEPOSITION ASCENDING
        INTO :DestSeID,:DestSePosition,:DestSeGruppe,:DestSeTyp
  DO BEGIN
    /* Wegen VT im SC8 */
    MaxTriggerPos = NULL;
    SELECT MAX(SEPOSITION)
    FROM SENDEELEMENTE JOIN TRIGGEREDEVENTS
      ON ((TETYP <= 99) AND ((SEID = TETRIGGEREDSEID) OR (SEID = TESEID)))
    WHERE ((TESEID = :DestSeID) OR
           (TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
                       WHERE (TETRIGGEREDSEID = :DestSeID))))
    INTO :MaxTriggerPos;
    IF (MaxTriggerPos IS NOT NULL) THEN BEGIN
      DestSePosition = MaxTriggerPos;
      NextSePosition = MaxTriggerPos;
    END
    /* Eine Gruppe wird durch eines neues Header-Element oder */
    /* den Wechsel von SEGRUPPE definiert */
    IF ((((DestSeTyp = 'H') OR (DestSeTyp = 'HR') OR (DestSeTyp = 'HB')) AND 
         (DestSePosition <> SePosition)) OR
        (DestSeGruppe <> SeGruppe)) THEN EXIT;
    NextSePosition = DestSePosition;
    IF ((SEGRUPPE = ' ') OR (SEGRUPPE = '-')) THEN EXIT;
  END
END

 

     Previous topic Chapter index Next topic