I have code that loops through a web service to pull information in, and inserts it into a master detail section. I have filters on the master detail section to keep each inserted row organized and unique based upon id's. Here is my code and I was wondering if there was any way I could speed this up. Thanks for your input
function getDefaultFindingsOS(elementID, summary)
{
XDocument.View.DisableAutoUpdate();
var recMasterTableCtrlID = "CTRL388";
var ws = XDocument.GetDOM("GetDefaultFindings");
ws.setProperty("SelectionNamespaces", "xmlns:dfs=\"http://schemas.microsoft.com/office/infopath/2003/dataFormSolution\" xmlns:ns4=\"http://test.com/\"");
var oMasterTable = XDocument.DOM.selectSingleNode("/my:IC3/my:Enc");
var iRow = XDocument.GetNamedNodeProperty(oMasterTable, "CTRL1083", 1);
var curEnc = XDocument.DOM.selectNodes("/my:IC3/my:Enc/my:EncRepeat");
var summaryField = curEnc.item(iRow-1).selectSingleNode(summary);
var Finding = ws.selectNodes("/dfs:myFields/dfs:dataFields/ns4:GetDefaultFindingsResponse/ns4:GetDefaultFindingsResult/ns4:WSDefaultFinding[ns4:ElementID='" + elementID + "'][ns4:Eye='OS']");
var blankSpace = /\s+$/g;
summaryField.text = summaryField.text.replace(blankSpace, "");
if(summaryField.text =="")
{
for(i=0; i<Finding.length; i++)
{
var recMasterTableCtrlID = "CTRL388";
var oMasterTable2 = XDocument.DOM.selectSingleNode("/my:IC3/my:CurrentFindings/my:ElemOS");
var iRow2 = parseInt(XDocument.GetNamedNodeProperty(oMasterTable2, recMasterTableCtrlID, 1));
var curEnc2 = XDocument.DOM.selectNodes("/my:IC3/my:CurrentFindings/my:ElemOS/my:Finds_OS");
curEnc2.item(iRow2-1).selectSingleNode("my:FindConcat_OS/@my:ElementID_OS").text = elementID;
FindingDisplay = Finding.item(i).selectSingleNode("ns4:FindingDisplay").text;
MasterFinding = Finding.item(i).selectSingleNode("ns4:MasterFindingDisplay").text;
MasterID = Finding.item(i).selectSingleNode("ns4:MasterFindingID").text;
curEnc2.item(iRow2-1).selectSingleNode("my:FindConcat_OS/@my:MasterID_OS").text = MasterID;
curEnc2.item(iRow2-1).selectSingleNode("my:FindConcat_OS/@my:Find_OS").text = FindingDisplay;
curEnc2.item(iRow2-1).selectSingleNode("my:FindConcat_OS/@my:FindValue_OS").text = FindingDisplay;
curEnc2.item(iRow2-1).selectSingleNode("my:FindConcat_OS/@my:Master_OS").text = MasterFinding;
curEnc2.item(iRow2-1).selectSingleNode("my:FindConcat_OS/@my:ElementID_OS").text = elementID;
summaryField.text = summaryField.text + ". " + FindingDisplay;
if(FindingDisplay != "")
{
id = "CTRL388";
//Function that inserts a new row into master repeating section
insertFindDataOS(id, "/my:IC3/my:CurrentFindings/my:ElemOS", "my:Finds_OS", "my:FindConcat_OS", "my:Find_OS", "my:FindValue_OS", "my:FindID_OS", "ElementID_OS", "my:Status_OS", "my:Severity_OS", "my:Mod_OS", "my:Master_OS", "my:CatFilter_OS", "my:ICD9Code_OS", "my:MasterIDOS");
}
}
summaryField.text = summaryField.text.replace(". ", "");
summaryField.text = summaryField.text + ". ";
}
XDocument.View.EnableAutoUpdate();
}
function btnExtDefaults::OnClick(eventObj)
{
var ws = XDocument.GetDOM("GetDefaultFindings");
ws.setProperty("SelectionNamespaces", "xmlns:dfs=\"http://schemas.microsoft.com/office/infopath/2003/dataFormSolution\" xmlns:ns4=\"http://test.com/\"");
ws.selectSingleNode("/dfs:myFields/dfs:queryFields/ns4:GetDefaultFindings/ns4:CodeString").text = XDocument.DOM.selectSingleNode("/my:IC3/my:ProblemList/my:eval").text;
ws.selectSingleNode("/dfs:myFields/dfs:queryFields/ns4:GetDefaultFindings/ns4:ClinicalCategory").text = 2;
XDocument.DataObjects("GetDefaultFindings").Query();
var oMasterTable = XDocument.DOM.selectSingleNode("/my:IC3/my:Enc");
var iRow = XDocument.GetNamedNodeProperty(oMasterTable, "CTRL1083", 1);
var curEnc = XDocument.DOM.selectNodes("/my:IC3/my:Enc/my:EncRepeat");
var show = curEnc.item(iRow-1).selectSingleNode("my:ExternalFind/my:ExtLatSet").text;
if(show == "s" || show == "u")
{
getDefaultFindingsOS(8, "my:ExternalFind/my:PupilsOS");
getDefaultFindingsOS(9, "my:ExternalFind/my:MotilityOS");
getDefaultFindingsOS(10, "my:ExternalFind/my:CVFOS");
getDefaultFindingsOS(11, "my:ExternalFind/my:AdnexaOS");
}
XDocument.DOM.selectSingleNode("/my:IC3/my:CurrentFindings/my:SetElementID").text = 0;
}