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.
}
}
}