Such- und Navigationsmethode für VIEWTABLE

Dieser Code ist auch verfügbar auf: English Español Français
Schwierigkeitsgrad
Anfänger
Veröffentlicht am :
Die Methode `execcmd` überschreibt die Elternmethode, um eine benutzerdefinierte Such- und Navigationsfunktionalität bereitzustellen. Sie verarbeitet die Befehle 'FINDU' zur Suche in der Spalte `usubjid`, 'FINDS' zur Suche in der Spalte `subject` und 'GOTO' zur Navigation zu einer absoluten Zeile. Falls der Befehl nicht erkannt wird, wird er zur Standardverarbeitung an die Elternmethode (`super`) weitergeleitet. Der Code enthält einen auskommentierten Abschnitt, der eine allgemeinere Suchfunktion ('FINDF') vorschlägt, die deaktiviert wurde.
Datenanalyse

Type : EXTERNE


Der Code lädt keine Daten. Er operiert auf einem vorhandenen Datensatz, der in einer VIEWTABLE-Komponente angezeigt wird. Der Ursprung dieser Daten ist in diesem Codeausschnitt nicht spezifiziert und wird angenommen, dass er vom Ausführungskontext der Anwendung bereitgestellt wird.

1 Codeblock
METHOD
Erklärung :
Dieser Block definiert die Methode `execcmd` innerhalb einer SCL-Klasse (SAS Component Language). Er verwendet eine Reihe von `if/else if`-Bedingungen, um spezifische Befehle (`inCmd`) abzufangen und zu verarbeiten. Für 'FINDU' und 'FINDS' erstellt er eine Suchbedingungszeichenkette und ruft die Methode `_findRow` des aktuellen Objekts (`_self_`) auf. Für 'GOTO' konvertiert er das Argument in eine Zahl und ruft `_gotoAbsoluteRow` auf. Für alle anderen Befehle verwendet er `call super()`, um die Implementierung der Elternmethode aufzurufen. Die Variable `retCode` wird auf 1 gesetzt, um anzuzeigen, dass der Befehl von dieser Methode erfolgreich verarbeitet wurde.
Kopiert!
1execcmd: method
2 
3 inCmd :char
4 RETCODE :num
5 
6 optional=outCmd:char
7;
8*------------------- Find USUBJID --------------------;
9IF upcase(incmd)='FINDU' THEN DO;
10 IF ^missing(outCmd) THEN DO;
11 findlist = 'find(usubjid,"'||strip(outCmd)||'")';
12 _self_._findRow(findlist);
13 END;
14 
15 /* let VT know that we processed the command */
16 RETCODE = 1;
17END;
18 
19*------------------- Find SUBJECT --------------------;
20ELSE IF upcase(incmd)='FINDS' THEN DO;
21 IF ^missing(outCmd) THEN DO;
22 findlist = 'find(subject,"'||strip(outCmd)||'")';
23 _self_._findRow(findlist);
24 END;
25 
26 /* let VT know that we processed the command */
27 RETCODE = 1;
28END;
29 
30*------------------- Find SUBJECT --------------------;
31/* else if upcase(incmd)='FINDF' then do;
32 if ^missing(outCmd) then do;
33 matchvar = scan(outCmd,1);
34 matchval = scan(outCmd,-1);
35 if find(outCmd,'=') then do;
36 if _self_._getColumnAttribute(matchvar,'TYPE') ='C' then findlist = strip(matchvar)||'="'||strip(matchval)||'"';
37 else findlist = strip(matchvar)||'='||strip(matchval);
38 end;
39 else do;
40 findlist = 'find('||strip(matchvar)||',"'||strip(matchval)||'")';
41 end;
42 _self_._findRow(findlist);
43 end; */
44 
45 /* let VT know that we processed the command */
46/* retCode = 1;
47end; */
48*------------------- Goto Specific row --------------------;
49ELSE IF upcase(incmd)='GOTO' THEN DO;
50 
51 obs=INPUT(outCmd, 12.);
52 
53 IF obs > 0 THEN _self_._gotoAbsoluteRow(obs);
54 
55 /* let VT know that we processed the command */
56 RETCODE = 1;
57END;
58 /* otherwise, if command ne 'GOTO' let VIEWTABLE */
59 /* try to process it */
60ELSE call super(_SELF_, '_execCommand', inCmd, RETCODE, outCmd);
61 
62_self_=_self_;
63endmethod;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.

Zugehörige Dokumentation

Aucune documentation spécifique pour cette catégorie.