Event "Bei Berechnung des Infotexts für Personen-Daten"
Event "Bei Berechnung des Infotexts für Personen-Daten"
Dieser Event wird ab be Version 7.8.1.1 aufgerufen, wenn Informationen über Personen in der Personensuche (Globale Personensuche, Termin-Kalender, Vorgesetzte im Personalstamm, Alternative Logins) ermittelt werden. Die angezeigte Zusatzinformationen können beeinflusst werden.
Zusätzlich kann die Spalte "Info" für die Listen im E-Mail-Versand-Dialog durch diesen Event bearbeitet werden, wenn der Feature Toggle /SHOW_NEW_EMAIL_DIALOG
aktiviert ist.
Beispiel
| nEvtNo:P1, nType:P2, cText:P3, nWorkArea:P4, nID:P5, oTable:P6, oDab005:P7, cNewText, oCacheTbl |
//################################################################################
// Event wird bei der Berechnung von Info-Text von Personen-Daten (gegenwärtig in
// der Personensuche und im E-Mail-Versand-Dialog ausgeführt). Hiermit kann man
// den Info-Text ändern, indem man den neuen Text als Ergebnis dieses Programms
// zurückgibt.
//
// nType - zeigt aus welcher Umgebung das Ereignis ausgeführt wird (Read-Only) -
// bpittPersonFinder - aus der Personensuche
// bpittEmailSendDlg - aus dem E-Mail-Versanddialog
// cText - der bestehende Text (Read-Only)
// nWorkArea - die Workarea der Tabelle (Read-Only)
// nID - der ID des Datensatzes (Read-Only)
// oTable - wenn vorhanden, wird die Haupttabelle positioniert übergeben.
// oDab005 - wenn vorhanden, wird die Kontakten-Tabelle positioniert übergeben.
// ACHTUNG bei der Anpassung der Werte oder beim Navigieren der oTable oder oDab005 sind
// die Auswirkungen ggf. nicht überschaubar und könnten bestimmte Prozesse kaputt machen!
// Rückgabe: Der neue Infotext (string)
//################################################################################
function IsContact()
Result := not Empty(oDab005),
end,
cNewText := cText,
if EditorMode() then
nWorkArea := waDab000,
nID := 3,
endif,
if oTable = nil then
oCacheTbl := DBGetTable(gl_oDM, nWorkArea, 'EMAILVERSAND_CACHE'),
DBLocate('ID',{nID},,oCacheTbl),
else
oCacheTbl := oTable,
endif,
startseq
case nWorkArea
of waDab000 ::
cNewText := 'Kunden-Nr: ' + Str(oCacheTbl:KDNR),
of waDab100 ::
cNewText := 'Lieferanten-Nr: ' + Str(oCacheTbl:LINR),
of waDab062 ::
cNewText := 'Vertreter-Nr: ' + Str(oCacheTbl:VTNR),
of waDabFil ::
cNewText := 'DabFil-Datei: ' + Str(oCacheTbl:DATEI),
of waDab262 ::
cNewText := 'Personen-Nr: ' + Str(oCacheTbl:PERSNR),
of waDab330 ::
cNewText := 'Ressourcen-ID: ' + Str(oCacheTbl:ID),
of waDabUSR ::
cNewText := 'Benutzer-Nr.: ' + Str(oCacheTbl:USER_NR),
of waDab005 ::
if IsContact() then
cNewText := 'Kontakten-ID: ' + Str(oDab005:ID),
case oCacheTbl.WorkArea
of waDab000 ::
cNewText += ', Kunden-Nr: ' + Str(oCacheTbl:KDNR),
of waDab100 ::
cNewText += ', Lieferanten-Nr: ' + Str(oCacheTbl:LINR),
of waDab062 ::
cNewText += ', Vertreter-Nr: ' + Str(oCacheTbl:VTNR),
endcase,
else
cNewText := 'Wie kommt es dazu??',
endif,
endcase,
always
if oCacheTbl <> oTable then
DestroyObject(oCacheTbl),
endif,
stopseq,
case nType
of bpittPersonFinder :: cNewText += ' (PSuche - noch welches Info)',
of bpittEmailSendDlg :: cNewText += ' (Email)',
otherwise
endcase,
cNewText