Seitenhistorie
Anker | ||||
---|---|---|---|---|
|
Inhalt |
---|
...
Beschreibung
Ändert Status in Titeldatensatz
Zeile 2028 - 2078
Code in WinIBW2 (Makro/VBScript)Sub
Auszug |
---|
Setzt den Status in Kategorie 0599 von b auf a (bzw. von bz auf az). Aufruf aus der Vollanzeige heraus! |
Historie
Datum | geändert von | Beschreibung |
---|---|---|
2011-02-03 | Althaus | neu erstellt |
2011-02-23 | Althaus | Prüfung Status os entfernt |
2011-05-04 | Althaus | Anforderung Nr. 1 umgesetzt |
Neue Anforderungen
Nr. | Datum | Anforderung von | Beschreibung |
---|---|---|---|
1 | 2011-02-28 | Bernhard, IE | Bitte das Skript „Freigabe“ zukünftig in der Form gestalten, dass im Fall der Sperrung eine Titels durch die Formalerschließung ( Feld 0599 jj-mm-tt : bz) „bz“ nicht durch „a“ ersetzt werden kann. Ob lediglich „b“ durch „a“ ersetzt wird, also dann im Status „az“ stünde, oder die Freigabe von „bz“ grundsätzlich nicht möglich gemacht wird, ist egal. Wichtig ist, dass von FE noch nicht fertig bearbeitete Sätze nicht im WV veröffentlicht werden. |
Code
dnb_inhaltserschliessung.js
Codeblock |
---|
function Freigabe () {
var strNewStatus = "";
if (application.activeWindow.getVariable("scr") != "8A") {
__dnbFehler("Fehler","Die Funktion kann nur aus der Vollanzeige aufgerufen werden!");
} else {
var cTitle = application.activeWindow.copyTitle();
//application.messageBox("cTitle", cTitle, "");
//var regExp = /0599 \d\d-\d\d-\d\d : b|0599 \d\d-\d\d-\d\d : os/;
var regExp = /0599 \d\d-\d\d-\d\d : b/;
var regExpz = /0599 \d\d-\d\d-\d\d : bz/;
var regMatch = regExpz.exec(cTitle);
if (regMatch) {
strNewStatus = "0599 az";
} else {
regMatch = regExp.exec(cTitle);
if (regMatch) {
strNewStatus = "0599 a";
}
}
if (strNewStatus != "") {
//application.messageBox("regMatch", regMatch, "");
application.activeWindow.command("k", false);
application.activeWindow.title.findTag("0599", 0, false, true, false);
application.activeWindow.title.startOfField(false);
application.activeWindow.title.endOfField(true);
//application.activeWindow.title.deleteSelection;
application.activeWindow.title.insertText(strNewStatus);
} else {
var regMatch = regExp.exec(cTitle);
__dnbFehler("Funktion: Freigabe","Es existiert kein mit >b< oder >os< codiertes Feld 0599.\nEine Freigabe des Datensatzes ist nicht möglich!");
}
}
}
|
VB-Code
Codeblock |
---|
Sub Freigabe()
|
...
'************************************************ |
...
On error resume next 'Vollanzeige erzwingen Set WinA = Application.ActiveWindow if not WinA.Variable("scr") = "8A" |
...
then Fehler "Es liegt kein Datensatz in Vollanzeige vor!" |
...
exit sub end if 'Datensatz kopieren CopyTitle = WinA.CopyTitle 'msgbox Application.ActiveWindow.Variable("P3CLIP") |
...
'neue Instanz des Regular Expression Objektes |
...
erzeugen set RegEx0599 = New RegExp 'zu suchendes Muster: 0599 xx-xx-xx : |
...
b 'RegEx0599.Pattern = "0599 \d\d-\d\d-\d\d : b" |
...
'zu suchendes Muster ab 07.04.08 |
...
RegEx0599.Pattern = "0599 \d\d-\d\d-\d\d : b|0599 \d\d-\d\d-\d\d : os" |
...
'Globale Suche über den gesamten |
...
Datensatz RegEx0599.Global = |
...
True 'Groß- und Kleinschreibung |
...
ignorieren RegEx0599.IgnoreCase = |
...
True Set Matches = RegEx0599.Execute(CopyTitle) |
...
for each Match in Matches search0599b = Match.Value 'Msg = Msg & "Match.Value = " & Match.Value & vbcrlf & "Match.Length = " & Match.Length & vbcrlf & "Matches.Count = " & Matches.Count & vbcrlf & "Match.FirstIndex = " & Match.FirstIndex |
...
'msgbox |
...
Msg 'Datensatz |
...
editieren Application.ActiveWindow.Command "k", |
...
False 'Match suchen und |
...
markieren Application.ActiveWindow.Title.Find search0599b, True, False, |
...
False Application.ActiveWindow.Title.EndOfField |
...
True Application.ActiveWindow.Title.DeleteSelection |
...
Application.ActiveWindow.Title.InsertText "0599 a" |
...
'Bug bei Replace: abhängig von Benutzerrechten bestimmte Felder nicht editierbar, |
...
'wenn der Cursor sich auf einem solchem Feld befindet läuft Replace nicht korrekt |
...
ab 'Application.ActiveWindow.Title.Find search0599b, true, false, |
...
true 'Match |
...
ersetzen 'Application.ActiveWindow.Title.Replace("0599 a") |
...
next 'keine Matches gefunden? Fehlermeldung und Funktionsabbruch if search0599b = "" then Fehler "Es existiert kein mit ""b"" codiertes Feld 0599," & vbcr & "eine Freigabe des Datensatzes ist nicht möglich!" |
...
exit sub end if 'Abspeichern (war aus Sicherheitsgründen zunächst noch auskommentiert) Application.ActiveWindow.SimulateIBWKey("FR") |
...
End Sub |
...
|
Code in WinIBW3 (Javascript)
...