S
Savage
Ok i have found the code i need but i am pretty useless at writing code so
could some cahnge the code to what i need if i give the four fields that i
need the code to work for.
The for node names will be "Description" "Vendor No" "Name" "Group"
The code is:
function MyQuery::OnClick(eventObj)
{
// Get the default SQL command for the form.
var strOrigSQLCommand = XDocument.QueryAdapter.Command;
// Get the query node that you want to modify.
var querySuppliers = XDocument.DOM.selectSingleNode(
"/dfs:myFields/dfs:queryFields/q:Suppliers");
// Obtain the text that was entered for the wildcard character search, and
then clear
// the current query parameter so that InfoPath will leave the current
query parameter blank.
var strTitle = querySuppliers.selectSingleNode("@ContactTitle").text;
querySuppliers.selectSingleNode("@ContactTitle").text = "";
// Ask InfoPath to construct an SQL command that is based on all other
field values.
var strMySQLCommand =
XDocument.QueryAdapter.BuildSQLFromXMLNodes(querySuppliers);
// Save each of the other query items, and then clear the other query
items before the next query.
var strSupplierID = querySuppliers.selectSingleNode("@SupplierID").text;
querySuppliers.selectSingleNode("@SupplierID").text = "";
var strContactName = querySuppliers.selectSingleNode("@ContactName").text;
querySuppliers.selectSingleNode("@ContactName").text = "";
var strPhone = querySuppliers.selectSingleNode("@Phone").text;
querySuppliers.selectSingleNode("@Phone").text = "";
// Add ContactTitle to the query so
// that ContactTitle can support wildcard characters.
if (strTitle != "")
{
if (strMySQLCommand != "")
strMySQLCommand = strMySQLCommand + " AND ";
strMySQLCommand = strMySQLCommand +
"([Suppliers].[ContactTitle] LIKE \"" + strTitle + "\")";
}
// Construct the full query string.
var strSQLQuery = strOrigSQLCommand;
if (strMySQLCommand != "")
strSQLQuery = strSQLQuery + " WHERE " + strMySQLCommand;
// This is the query.
//XDocument.UI.Alert(strSQLQuery);
// Run the query.
XDocument.QueryAdapter.Command = strSQLQuery;
XDocument.Query();
// Restore all the user entries to the Query fields so that the user
entries will
// be available if you want to modify and to rerun the query.
querySuppliers.selectSingleNode("@SupplierID").text = strSupplierID;
querySuppliers.selectSingleNode("@ContactName").text = strContactName;
querySuppliers.selectSingleNode("@ContactTitle").text = strTitle;
querySuppliers.selectSingleNode("@Phone").text = strPhone;
// Restore the default table command (for the next time).
XDocument.QueryAdapter.Command = strOrigSQLCommand;
// Switch to data entry view to see results.
XDocument.View.SwitchView("Data Entry");
I will be very grateful if some could do it for me
could some cahnge the code to what i need if i give the four fields that i
need the code to work for.
The for node names will be "Description" "Vendor No" "Name" "Group"
The code is:
function MyQuery::OnClick(eventObj)
{
// Get the default SQL command for the form.
var strOrigSQLCommand = XDocument.QueryAdapter.Command;
// Get the query node that you want to modify.
var querySuppliers = XDocument.DOM.selectSingleNode(
"/dfs:myFields/dfs:queryFields/q:Suppliers");
// Obtain the text that was entered for the wildcard character search, and
then clear
// the current query parameter so that InfoPath will leave the current
query parameter blank.
var strTitle = querySuppliers.selectSingleNode("@ContactTitle").text;
querySuppliers.selectSingleNode("@ContactTitle").text = "";
// Ask InfoPath to construct an SQL command that is based on all other
field values.
var strMySQLCommand =
XDocument.QueryAdapter.BuildSQLFromXMLNodes(querySuppliers);
// Save each of the other query items, and then clear the other query
items before the next query.
var strSupplierID = querySuppliers.selectSingleNode("@SupplierID").text;
querySuppliers.selectSingleNode("@SupplierID").text = "";
var strContactName = querySuppliers.selectSingleNode("@ContactName").text;
querySuppliers.selectSingleNode("@ContactName").text = "";
var strPhone = querySuppliers.selectSingleNode("@Phone").text;
querySuppliers.selectSingleNode("@Phone").text = "";
// Add ContactTitle to the query so
// that ContactTitle can support wildcard characters.
if (strTitle != "")
{
if (strMySQLCommand != "")
strMySQLCommand = strMySQLCommand + " AND ";
strMySQLCommand = strMySQLCommand +
"([Suppliers].[ContactTitle] LIKE \"" + strTitle + "\")";
}
// Construct the full query string.
var strSQLQuery = strOrigSQLCommand;
if (strMySQLCommand != "")
strSQLQuery = strSQLQuery + " WHERE " + strMySQLCommand;
// This is the query.
//XDocument.UI.Alert(strSQLQuery);
// Run the query.
XDocument.QueryAdapter.Command = strSQLQuery;
XDocument.Query();
// Restore all the user entries to the Query fields so that the user
entries will
// be available if you want to modify and to rerun the query.
querySuppliers.selectSingleNode("@SupplierID").text = strSupplierID;
querySuppliers.selectSingleNode("@ContactName").text = strContactName;
querySuppliers.selectSingleNode("@ContactTitle").text = strTitle;
querySuppliers.selectSingleNode("@Phone").text = strPhone;
// Restore the default table command (for the next time).
XDocument.QueryAdapter.Command = strOrigSQLCommand;
// Switch to data entry view to see results.
XDocument.View.SwitchView("Data Entry");
I will be very grateful if some could do it for me