Ciao, sto usando JMP16. Ho una finestra pop-up per chiedere l'input dell'utente per definire due variabili ("Entity" e "Last_X_Days") che vorrei utilizzare per interrogare un database. Non ho problemi a definire queste variabili, ma la query di pull dei dati è tra virgolette e non accetta input come variabili. Li prende alla lettera.
Se "Last_X_Days" e "Entity" sono stati precedentemente definiti come variabili (in base all'input dell'utente), come faccio a ottenere che la query estragga le variabili e non si limiti a scrivere letteralmente i nomi delle variabili?
Nota: ho modificato parte del codice irrilevante in termini più generici in CAPS.
Grazie!!!
script = PROGRAM:openDATABASEscript("\[
<PROGRAMINPUT>
<TASK>
<TASKNAME>PROGRAM</TASKNAME>
<ADDITIONALQUERIES>
<QUERY>
<TASKNAME>PARAMETER</TASKNAME>
<AUTOJOIN>1</AUTOJOIN>
<PARAMETERS>TOOL</PARAMETERS>
<PRIMARYENTITY>1</PRIMARYENTITY>
</QUERY>
</ADDITIONALQUERIES>
<AUTORUN>1</AUTORUN>
<EXTRACTXML>1</EXTRACTXML>
<SITE>LOCATION</SITE>
<DATABASEQUERY>
<QUERY>
<TASKNAME>DATABASEByDateRange</TASKNAME>
<PARAMETERS>PARAMETER NAME</PARAMETERS>
<DATERANGE><FONT color="#FF6600"><U><STRONG>Last_X_Days</STRONG></U></FONT></DATERANGE>
<ENTITY><STRONG>><FONT color="#FF6600">Entity</FONT></STRONG></ENTITY>
<EXCLUDEINVALID>0</EXCLUDEINVALID>
<EXCLUDENONSTANDARD>0</EXCLUDENONSTANDARD>
<EXCLUDEPRE>1</EXCLUDEPRE>
<INCLUDESUBS>1</INCLUDESUBS>
<MONITORTYPE>ALL</MONITORTYPE>
</QUERY>
</DATABASEQUERY>
<TECHNOLOGY>TECHNOLOGY</TECHNOLOGY>
<TOOLSTYLE>DATABASE</TOOLSTYLE>
<WRITEJSL>FILE</WRITEJSL>
</TASK>
</PROGRAMINPUT>
]\"
);
In questo caso molto probabilmente userei Eval Inserisci ()
Names Default To Here(1);
Last_X_Days = 1;
Entity = "ABC";
query_template = "\[
<PROGRAMINPUT>
<TASK>
<TASKNAME>PROGRAM</TASKNAME>
<ADDITIONALQUERIES>
<QUERY>
<TASKNAME>PARAMETER</TASKNAME>
<AUTOJOIN>1</AUTOJOIN>
<PARAMETERS>TOOL</PARAMETERS>
<PRIMARYENTITY>1</PRIMARYENTITY>
</QUERY>
</ADDITIONALQUERIES>
<AUTORUN>1</AUTORUN>
<EXTRACTXML>1</EXTRACTXML>
<SITE>LOCATION</SITE>
<DATABASEQUERY>
<QUERY>
<TASKNAME>DATABASEByDateRange</TASKNAME>
<PARAMETERS>PARAMETER NAME</PARAMETERS>
<DATERANGE>¤Last_X_Days¤</DATERANGE>
<ENTITY>Entity
<EXCLUDEINVALID>0</EXCLUDEINVALID>
<EXCLUDENONSTANDARD>0</EXCLUDENONSTANDARD>
<EXCLUDEPRE>1</EXCLUDEPRE>
<INCLUDESUBS>1</INCLUDESUBS>
<MONITORTYPE>ALL</MONITORTYPE>
</ENTITY>
</QUERY>
<TECHNOLOGY>TECHNOLOGY</TECHNOLOGY>
<TOOLSTYLE>DATABASE</TOOLSTYLE>
<WRITEJSL>FILE</WRITEJSL>
</DATABASEQUERY>
</TASK>
]\";
query_str = Eval Insert(query_template, "¤");
show(query_str);
script = PROGRAM:openDATABASEscript(query_str);</PROGRAMINPUT>