app.popUpMenuEx

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
Yvonne
Beiträge: 1
Registriert: 27.04.2017, 12:14

app.popUpMenuEx

Beitrag von Yvonne » 27.04.2017, 12:54

Hallo,

ich hoffe das mir jemand bei meinem Problem helfen kann.

Ich übernehme in Feldern einer Tabelle Werte die ich über ein popUp auswählen kann. Dazu klicke ich z.B. in das Feld Produkt, worauf das MouseDown Ereignis die Funktion addProdukt() aufruft und mir ein popUp zur Auswahl der Produkte öffnet, Beispielcode nachfolgend. Bis hierhin ist alles gut.

Nun zu meinem Problem, treffe ich bei der Auswahl das popUp nicht, d.h. klicke neben den Eintrag, schließt sich das popUp und ein leerer String wird übernommen.

Gibt es eine Möglichkeit das popUp so einzustellen, dass es sich nur schließt, wenn ein Wert daraus gewählt wurde?

Code: Alles auswählen

var prodDesc = new Array("Wolfsblut Wild Duck Adult", "Wolfsblut Range Lamb", "Wolfsblut Dark Forest");

var prodPrice = new Array(3.98, 4.03, 3.89);

function addProduct(product, price)
{
	var pChoice = app.popUpMenuEx
	(
		{cName: "Woflsblut", bMarked:false, bEnabled:true, oSubMenu:
			[{cName: "Wild Duck Adult", bMarked:false, bEnabled:true, cReturn:"Wolfsblut Wild Duck Adult"},
			 {cName: "Range Lamb", bMarked:false, bEnabled:true, cReturn:"Wolfsblut Range Lamb"},
			 {cName: "Dark Forest", bMarked:false, bEnabled:true, cReturn:"Wolfsblut Dark Forest"}]}
	)
	
	product.rawValue = pChoice;
		
	var i;
	for (i = 0; i < prodDesc.length; i++)
	{
		if (prodDesc[i] == pChoice)
		{
			numUnitPrice.rawValue = prodPrice[i];
			break;
		}
	}	
}
Ich habe es derweil so gelöst:

Code: Alles auswählen

var prodDesc = new Array("Wolfsblut Wild Duck Adult", "Wolfsblut Range Lamb", "Wolfsblut Dark Forest");

var prodPrice = new Array(3.98, 4.03, 3.89);

function addProduct(product, price, quantity)
{
	var pChoice = app.popUpMenuEx
	(
		{cName: "Woflsblut", bMarked:false, bEnabled:true, oSubMenu:
			[{cName: "Wild Duck Adult", bMarked:false, bEnabled:true, cReturn:"Wolfsblut Wild Duck Adult"},
			 {cName: "Range Lamb", bMarked:false, bEnabled:true, cReturn:"Wolfsblut Range Lamb"},
			 {cName: "Dark Forest", bMarked:false, bEnabled:true, cReturn:"Wolfsblut Dark Forest"}]}
	)
	// **** Änderung ****
	if (pChoice != null && product.rawValue != pChoice)
	{
	    product.rawValue = pChoice;
	    quantity.rawValue = 1;
	
	    var i;
	    for (i = 0; i < prodDesc.length; i++)
	    {
		    if (prodDesc[i] == pChoice)
		    {
			    numUnitPrice.rawValue = prodPrice[i];
			    break;
		    }
	    }	
	}
}
// **** Ende Änderung ****
LG Yvonne

BAlheit
Beiträge: 840
Registriert: 16.08.2013, 12:22

app.popUpMenuEx

Beitrag von BAlheit » 27.04.2017, 14:02

Dies müsste funktionieren:

Code: Alles auswählen

var pChoice = null;
while (null == (pChoice = app.popUpMenuEx
(
{cName: "Woflsblut", bMarked:false, bEnabled:true, oSubMenu:
[{cName: "Wild Duck Adult", bMarked:false, bEnabled:true, cReturn:"Wolfsblut Wild Duck Adult"},
{cName: "Range Lamb", bMarked:false, bEnabled:true, cReturn:"Wolfsblut Range Lamb"},
{cName: "Dark Forest", bMarked:false, bEnabled:true, cReturn:"Wolfsblut Dark Forest"}]}
)));
Bernd Alheit

Antworten