using Microsoft.Office.InfoPath; //using mshtml; //using Microsoft.Office.Core; // required for Commandbars. From offics mso.dll using System; //using System.Drawing; using System.IO; using System.Security.Permissions; using System.Text; //using System.Windows.Forms; using System.Xml; using System.Xml.XPath; namespace PAUSE_Observation_Form { public partial class FormCode { // Member variables are not supported in browser-enabled forms. // Instead, write and read these values from the FormState // dictionary using code such as the following: // // private object _memberVariable // { // get // { // return FormState["_memberVariable"]; // } // set // { // FormState["_memberVariable"] = value; // } // } // NOTE: The following procedure is required by Microsoft InfoPath. // It can be modified using Microsoft InfoPath. public void InternalStartup() { ((ButtonEvent)EventManager.ControlEvents["CTRL162_5"]).Clicked += new ClickedEventHandler(CTRL162_5_Clicked); ((ButtonEvent)EventManager.ControlEvents["CTRL163_5"]).Clicked += new ClickedEventHandler(CTRL163_5_Clicked); EventManager.FormEvents.Submit += new SubmitEventHandler(FormEvents_Submit); } public void CTRL162_5_Clicked(object sender, ClickedEventArgs e) { // Write your code here. // Written by Joey kelly, Mid-South Technologies, 6/22/2011 int atrisks = 0; string[] comment = new string[1]; string task; int i; int k; //int m; string spacecolon = ": "; string fieldobserved; string emptystring = ""; //double[,] myDoubles = new double[2, 2]; string[,] observable = new string[15, 4]; /* 1.1 Prejob 1.2 WatchKeeping 1.3 Comms 1.4 LockOut 1.5 Housekeeping 1.6 Securing 1.7 Various 2.1 LineOfFire 2.2 PinchPoint 2.3 EyesOn 2.4 BodyUse 2.5 Ascending 3.1 Tools 4.1 PPE 9.1 Other */ observable[0, 0] = "1.1"; observable[0, 1] = "Prejob"; observable[0, 2] = "Pre Job Preparation"; observable[1, 0] = "1.2"; observable[1, 1] = "WatchKeeping"; observable[1, 2] = "Watch Keeping"; observable[2, 0] = "1.3"; observable[2, 1] = "Comms"; observable[2, 2] = "Communications"; observable[3, 0] = "1.4"; observable[3, 1] = "LockOut"; observable[3, 2] = "Lockout/Confined Space Entry"; observable[4, 0] = "1.5"; observable[4, 1] = "Housekeeping"; observable[4, 2] = "Housekeeping"; observable[5, 0] = "1.6"; observable[5, 1] = "Securing"; observable[5, 2] = "Securing Equipment/Materials"; observable[6, 0] = "1.7"; observable[6, 1] = "Various"; observable[6, 2] = "Various Procedures"; observable[7, 0] = "2.1"; observable[7, 1] = "LineOfFire"; observable[7, 2] = "Line of Fire"; observable[8, 0] = "2.2"; observable[8, 1] = "PinchPoint"; observable[8, 2] = "Pinch Points"; observable[9, 0] = "2.3"; observable[9, 1] = "EyesOn"; observable[9, 2] = "Eyes on Path/Tasks/Hands"; observable[10, 0] = "2.4"; observable[10, 1] = "BodyUse"; observable[10, 2] = "Body Use"; observable[11, 0] = "2.5"; observable[11, 1] = "Ascending"; observable[11, 2] = "Ascending/Descending"; observable[12, 0] = "3.1"; observable[12, 1] = "Tools"; observable[12, 2] = "Tools"; observable[13, 0] = "4.1"; observable[13, 1] = "PPE"; observable[13, 2] = "PPE"; observable[14, 0] = "9.1"; observable[14, 1] = "Other"; observable[14, 2] = "Other"; // Get a reference to the main data source XPathNavigator root = MainDataSource.CreateNavigator(); // string defectnum = root.SelectSingleNode("//my:Defect_No.", NamespaceManager).ToString(); ////Create a Navigator object for the field that you want to set. //XPathNavigator xnmyDate = xnDoc.SelectSingleNode("/my:myFields/my:myDate", this.NamespaceManager); ////Set the value of the myDate field. //xnmyDate.SetValue("2006-10-12"); ////Clean up. //xnDoc = null; //xnmyDate = null; // step trough the Observations form fields for (i=0; i<15; i++) { task = observable[i,1]; // do I put this in the array? fieldobserved = "//my:" + observable[i,1]; observable[i,3] = root.SelectSingleNode(fieldobserved, NamespaceManager).ToString(); // FIXME if (observable[i,3] == "AtRisk") { atrisks++; // count the number of observable behaviours k = i + 1; comment[k] = observable[i,0] + spacecolon + observable[i,2]; } } // assign the comments fields if (atrisks == 0) { // no comments to display } else if (atrisks > 0 && atrisks < 4) { // valid number of AtRisk, display the comments //for (m=1, m++, m == atrisks) { //} // do something-or-other with comment[m] //root.SelectSingleNode("//my:Defect_No.", NamespaceManager).InnerText = "Blah" if (comment[1] != emptystring) { //root.SelectSingleNode("//my:ItemNo1", NamespaceManager).InnerText = comment[1]; //XPathNavigator xnItemNo1 = xnDoc.SelectSingleNode("//my:ItemNo1", NamespaceManager", this.NamespaceManager); //XPathNavigator xnItemNo1 = xnDoc.SelectSingleNode("//my:ItemNo1", NamespaceManager); //xnDoc = null; //xnmyDate = null; XPathNavigator xnItemNo1 = root.SelectSingleNode("//my:ItemNo1", NamespaceManager); xnItemNo1.SetValue(comment[1]); } if (comment[2] != emptystring) { XPathNavigator xnItemNo2 = root.SelectSingleNode("//my:ItemNo2", NamespaceManager); xnItemNo2.SetValue(comment[2]); //root.SelectSingleNode("//my:ItemNo2", NamespaceManager).InnerText = comment[2]; } if (comment[3] != emptystring) { XPathNavigator xnItemNo3 = root.SelectSingleNode("//my:ItemNo3", NamespaceManager); xnItemNo3.SetValue(comment[3]); //root.SelectSingleNode("//my:ItemNo3", NamespaceManager).InnerText = comment[3]; } } else { // we apparently have too many AtRisk observables // MessageBox.Show("You have too many At-Risk behaviours. Please end the PAUSE analysis now." + fle.Message.ToString(), "Exception", MessageBoxButtons.OK); //MessageBox.Show("You have too many At-Risk behaviours. Please end the PAUSE analysis now."); } } public void CTRL163_5_Clicked(object sender, ClickedEventArgs e) { // Write your code here. } public void FormEvents_Submit(object sender, SubmitEventArgs e) { // If the submit operation is successful, set // e.CancelableArgs.Cancel = false; // Write your code here. } } }