Auf der X-Seite wird der Name des Offiziers, der Offizierstyp und die Abteilung angezeigt (dazu verwende ich die Variable sessionScope). Es gibt eine combobox
, damit der Benutzer den Officertyp auswählen kann, den der Benutzer vergleichen möchte. Und dann wird eine Schaltfläche zum Exportieren der Daten verwendet.Xpages: Wie benutzt man viewEnt.getColumnValues () um alle relevanten Werte beim Export von Daten zu erhalten?
Die Exportdaten zeigen den Vergleich zwischen dem Dokument, das der ausgewählte Officer-Typ lesen muss, und dem Dokument, das der aktuelle Officer gelesen hat. Wenn der Offizier gelesen Dokument, das den ausgewählten Offizier Typ übereinstimmt muss lesen, wird es zeigen „Dokument gelesen wurde“, andernfalls wird es zeigen
Aufgrund dieser Beitrag me „Dokument nicht gelesen hat,“ wissen export data from panel lassen Wie man Daten aus dem Panel exportiert, beginne ich, den Code aus dem Post zu folgen und einen Code zu modifizieren, um die Benutzeranforderung zu erfüllen.
Ich habe zwei Ansichten den Vergleich zu tun:
Jeder Offizier Typ braucht verschiedene Dokumente zu lesen, so gibt es eine Ansicht, um den Wert zu speichern, ist die erste Spalte der Typ Offizier und die zweite Spalte ist das Dokument , dass der Offizierstyp lesen sollte. Die zweite Spalte ist ein Mehrfachwertfeld und ich kann das Mehrwert-Trennzeichen auf Neue Zeile setzen.
Eine andere Ansicht der Offizier Name, der im Zusammenhang Offizier Typ und Dokument lesen von dem Offizier. (Keine Spalte für Mehrwert)
Ich benutze @DbLookup
und for
Schleife um den Vergleich zu tun und hier schließt Teil des Codes:
var officer = sessionScope.Officer;
var officerType = sessionScope.OfficerType;
var showSelectedTypeDoc = @DbLookup(@DbName(),"view1", officerType, 2);
var showUserHasReadDoc= @DbLookup(@DbName(),"view2", officer, 3);
var result = "";
while (viewEnt != null)
{
if(viewEnt.getColumnValues()[1] == officer) //get the value related to the officer in the session
{
writer.write("<tr>");
for(var s = 0; s < showSelectedTypeDoc.length;s++) //loop in view1 first
{
for(var r = 0; r < showUserHasReadDoc.length;r++)//then loop the view2
{
if(showSelectedTypeDoc[s] == showUserHasReadDoc[r])//if value matches between 2 views
{
result = "Document has been read";
}
else
{
result = "Document has not read";
}
}
}
//display the list of the document category related to specific officer type
writer.write("<td>" + viewEnt.getColumnValues()[2] + "</td>"); //Problem occurs here, it only shows the first value, the appearance depends on the loop
writer.write("<td>" + result+ "</td>"); // only display the else part
writer.write("</tr>");
}
}
Eigentlich nehme ich
viewEnt.getColumnValues()[2]
zeigt alle relevanten Werte. Wenn ich den Wert jedoch exportiere, wird nur der erste Wert angezeigt, z. [erster Wert] Der Code
writer.write("<td>" + result+ "</td>");
ich die, wenn die Bedingung zu überprüfen, sollte es in Ordnung sein, aber es zeigt nur den sonst Teil
Ich versuchte
showSelectedTypeDoc[s]
statt
viewEnt.getColumnValues()[2]
es zeigt undefined und das Aussehen hängt von der Schleife ab.
Aber wenn ich versuche,
showSelectedTypeDoc[0] //or showSelectedTypeDoc[1], etc
es den richtigen Wert zeigen und das Aussehen ist abhängig von dem Looping.
aber ich werde nicht, wie viele Werte weiß, dass der Variable gespeichert, so dass ich lieber
showSelectedTypeDoc[s]
alle relevanten Werte zu finden, aber nicht erfolgreich.
Ich beginne zu denken, warum es nur den ersten Wert zeigt. Ich überarbeite den Code und die Ansicht, wahrscheinlich ist die Multi-Wert-Spalte das Problem. Das liegt daran, dass ich in In Views Client in der Ansicht nur einmal auf einen bestimmten Wert klicke, wenn der Wert einen Mehrfachwert hat, wird das "Tick" -Symbol für relevante Daten angezeigt.
So möchte ich gerne wissen, wie
verwendenviewEnt.getColumnValues()[2]
alle Daten auf einen bestimmten Wert bezogen abzurufen. Dankbar für Ihren Rat bitte. Vielen Dank.
In 'writer.write ("
Aber wenn ich versuche 'writer.write (" "+ showSelectedTypeDoc +" ");', Wenn ich die Daten exportieren, zeigt es seltsame Ergebnisse. Es zeigt '<<<<<' und der Standort stimmt nicht mit der relevanten Spalte überein. – beginner
Ich habe diesen Beitrag gelesen [Vorsicht, was getColumnValue zurückgibt] (http://linqed.eu/2010/08/16/beware-of-what-getcolumnvalue-is-returning/). Ich habe den Code in der Anwendung angewendet. Wenn ich die Daten exportiert habe, ist das Ergebnis leer. – beginner