Skip to main content
Skip table of contents

Event "bei Aktualisierung Termin"

Event "bei Aktualisierung Termin"


Dieser Event wird aufgerufen, nachdem ein Termin (DabTRM: Terminkalender) gespeichert wurde.
Hierbei werden alle notwendigen Informationen für den Termin und dessen Besprechung bereitgestellt.
Der Event dient hauptsächlich zur Steuerung von individuellen Lese-Berechtigungen und dem Setzen des Info-Textes eines Termins.

Beispiel

CODE
|nEvtNo:P1, oDataMod:P2, oUpdInfo:P3|
// oDataMod: Datenmodul (in Transaktion, es dürfen keine Änderungen an den Tabellen erfolgen)
// oUpdInfo: Objekt bietet Information über den aktuellen Aktualisierungs-Prozess und
//           dient zur Modifizierung einiger Felder
//           MeetingID: (nur lesen) ID der Besprechung welche aktualisiert wird
//           EventID  : (nur lesen) ID des Termins welcher aktualisiert wird
//           InfoText : (setzbar) Inhalt der in das Feld "INFOTEXT" der DabTRM (Terminkalender)
//                                geschrieben wird
//           UseForAll: (setzbar) schaltet den Aufruf dieses Events für alle folgenden Termine
//                                der aktuellen Besprechung aus, hierbei werden die Informationen
//                                dieses Events für alle weiteren Besprechungs-Termine verwendet
//
//           ReadRightFullManual,
//           ReadRightInfoManual: (nur lesen) Lese-Berechtigung für das Feld "Voll-Zugriff" bzw. "Info-Zugriff"
//                                            wurde manuell angepasst
//           ReadRightFull,
//           ReadRightInfo      : (setzbar) vorberechneter Wert für alle User die "Voll-Zugriff" bzw. "Info-Zugriff"
//                                          haben. z.b. '050/060/080'
//                                          Dieser Wert kann gesetzt werden wird aber nochmals validiert,
//                                          damit sichergestellt ist das alle Teilnehmer (falls keine vorhanden alle User)
//                                          "Voll-Zugriff" besitzen.
//
//           Zur Lese-Berechtigung:
//           - Einträge können nie in beiden Feldern "Info" und "Voll" stehen
//           - der Eintrag "000" bedeutet "alle Benutzer"
//           - Einträge in "Info-Zugriff" schränken Einträge in "Voll-Zugriff" ein
//             z.b. "Info-Zugriff" = '050/060'
//                  "Voll-Zugriff" = '000'     -> alle Benutzer außer '050' und '060' haben "Voll-Zugriff"
//
// Rückgabe: keine

//******************************************************************************
// Die Matchcodes aller zu diesem Termin verknüpften Kunden als Komma-Liste ermitteln
//******************************************************************************
function CalcInfoText(nBesprechungsID)
| oSQLQuery, cSqlStr |
  Result  := '',
  cSqlStr := SqlStr( SELECT DISTINCT DAB000.MATCHCODE


                            on DAB000.ID = DABTRV.ZIEL_ID

                            AND DABTRV.WORKAREA = 1 ),

  // wichtig: SQL-Statement muss in Transkation des Datenmoduls laufen
  oSQLQuery := CreateObject('TBeAdsQuery', 'TRM_INFOTEXT_QRY', oDataMod.AdsConnection),
  startseq
    oSQLQuery.Sql    := cSqlStr,
    oSQLQuery.Active := True,

    DbGoTop(oSQLQuery),
    while not eof(oSQLQuery) do
      // Matchcodes mit Komma separiert auflisten
      if not empty(oSQLQuery:MATCHCODE) then
        if not empty(Result) then
          Result += ', ',
        endif,
        Result += AllTrim(oSQLQuery:MATCHCODE),
      endif,
      DbSkip(1, oSQLQuery),
    end,
  always
    DestroyObject(oSQLQuery),
  stopseq,
end,


startseq
  oUpdInfo.UseForAll     := True,
  oUpdInfo.ReadRightFull := oUpdInfo.ReadRightFull + '/100',
  oUpdInfo.ReadRightInfo := oUpdInfo.ReadRightInfo + '/050',
  oUpdInfo.InfoText      := CalcInfoText(oUpdInfo.MeetingID),
onerror
  MessageDlg('Fehler im Event ' + progName() + crlf + crlf + GetErrorText()),
  raise(),
stopseq,


// Ergebnis: - der Event wird pro Besprechung nur 1 mal ausgelöst, die setzbaren Felder gelten für alle Termine der Besprechung
//           - der User "100" hat immer Vollen-Zugriff auf alle Termine der Besprechung
//           - der User "050" hat nur Info-Zugriff auf alle Termine der Besprechung
//             (außer auf seine eigenen, dort hat er immer Vollen-Zugriff)
//           - alle Termine der Besprechung haben im Info-Text eine Liste mit den Matchcodes 
//             der zugehörigen Kunden stehen


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.