616 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			616 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| /*********************************************************************************************
 | |
|  * Copyright 2005 - Volian Enterprises, Inc. All rights reserved.
 | |
|  * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | |
|  * ------------------------------------------------------------------------------
 | |
|  * $Workfile: ApproveSelDlg.cs $     $Revision: 9 $
 | |
|  * $Author: Jsj $   $Date: 4/16/07 12:05p $
 | |
|  *
 | |
|  * $History: ApproveSelDlg.cs $
 | |
|  * 
 | |
|  * *****************  Version 9  *****************
 | |
|  * User: Jsj          Date: 4/16/07    Time: 12:05p
 | |
|  * Updated in $/LibSource/VEObject
 | |
|  * Clear Button needed to clear flag in Modified Lib Doc List
 | |
|  * 
 | |
|  * *****************  Version 8  *****************
 | |
|  * User: Jsj          Date: 7/21/06    Time: 2:57p
 | |
|  * Updated in $/LibSource/VEObject
 | |
|  * remove duplicates from dependency list
 | |
|  * 
 | |
|  * *****************  Version 7  *****************
 | |
|  * User: Kathy        Date: 6/21/05    Time: 7:25a
 | |
|  * Updated in $/LibSource/VEObject
 | |
|  * cleanup/bug fixes
 | |
|  * 
 | |
|  * *****************  Version 6  *****************
 | |
|  * User: Jsj          Date: 6/02/05    Time: 11:33a
 | |
|  * Updated in $/LibSource/VEObject
 | |
|  * fix for approving with conditional ROs
 | |
|  * 
 | |
|  * *****************  Version 5  *****************
 | |
|  * User: Jsj          Date: 5/17/05    Time: 11:56a
 | |
|  * Updated in $/LibSource/VEObject
 | |
|  * cleanup
 | |
|  * 
 | |
|  * *****************  Version 4  *****************
 | |
|  * User: Kathy        Date: 4/21/05    Time: 10:21a
 | |
|  * Updated in $/LibSource/VEObject
 | |
|  * print all lines for long line in report
 | |
|  * 
 | |
|  * *****************  Version 3  *****************
 | |
|  * User: Kathy        Date: 4/12/05    Time: 1:01p
 | |
|  * Updated in $/LibSource/VEObject
 | |
|  * 
 | |
|  * *****************  Version 2  *****************
 | |
|  * User: Kathy        Date: 3/22/05    Time: 10:02a
 | |
|  * Updated in $/LibSource/VEObject
 | |
|  * log file & edit conflict
 | |
|  * 
 | |
|  * *****************  Version 1  *****************
 | |
|  * User: Kathy        Date: 3/08/05    Time: 1:50p
 | |
|  * Created in $/LibSource/VEObject
 | |
|  * Approval
 | |
|  *********************************************************************************************/
 | |
| using System;
 | |
| using System.Drawing;
 | |
| using System.Drawing.Printing;
 | |
| using System.Collections;
 | |
| using System.Collections.Specialized;
 | |
| using System.ComponentModel;
 | |
| using System.Windows.Forms;
 | |
| using System.IO;
 | |
| using VlnStatus;
 | |
| using Utils;
 | |
| 
 | |
| namespace VEObject
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// Summary description for ApproveSelDlg.
 | |
| 	/// </summary>
 | |
| 	public class ApproveSelDlg : System.Windows.Forms.Form
 | |
| 	{
 | |
| 		private System.Windows.Forms.ListBox listAvail;
 | |
| 		private System.Windows.Forms.ListBox listSelect;
 | |
| 		private System.Windows.Forms.Label lblAvail;
 | |
| 		private System.Windows.Forms.Label lblSelected;
 | |
| 		private System.Windows.Forms.Button btnSelect;
 | |
| 		private System.Windows.Forms.Button btnClear;
 | |
| 		private System.Windows.Forms.Label label1;
 | |
| 		private System.Windows.Forms.Button btnApprove;
 | |
| 		private System.Windows.Forms.Button btnResolve;
 | |
| 		private System.Windows.Forms.Button btnCancel;
 | |
| 		private System.Windows.Forms.Button btnRpt;
 | |
| 		/// <summary>
 | |
| 		/// Required designer variable.
 | |
| 		/// </summary>
 | |
| 		private System.ComponentModel.Container components = null;
 | |
| 
 | |
| 		private VEO_DummySet  CurDSet;
 | |
| 		private ArrayList AppItems;
 | |
| 		private ArrayList ModROs;
 | |
| 		private System.Windows.Forms.ListBox listDepend;
 | |
| 		private ArrayList ModLibDocs;
 | |
| 			  
 | |
| 		public ApproveSelDlg(ArrayList items, VEO_ProcSet curset, ArrayList mros, ArrayList mlibdocs)
 | |
| 		{
 | |
| 			InitializeComponent();
 | |
| 
 | |
| 			// procedures are stored off dummyset, which is children[1] always
 | |
| 			CurDSet = (VEO_DummySet) curset.Children[1];
 | |
| 				
 | |
| 			AppItems = items;
 | |
| 			ModROs = mros;
 | |
| 			ModLibDocs = mlibdocs;
 | |
| 
 | |
| 			SetUpAvailSelectLists();
 | |
| 			VlnStatusMessage StatMsgWin = new VlnStatusMessage("Looking for Dependencies...");
 | |
| 			StatMsgWin.StatusMessage = "Populating Dependency List";
 | |
| 			PopulateDependList();
 | |
| 			PopulateLogFile();
 | |
| 			StatMsgWin.Dispose();			
 | |
| 		}
 | |
| 
 | |
| 		private void SetUpAvailSelectLists()
 | |
| 		{
 | |
| 			// add the list of procs to the selected list and
 | |
| 			// see if there are any more selections made.
 | |
| 			foreach (object obj in AppItems)
 | |
| 			{
 | |
| 				AppIndItem apitm = (AppIndItem) obj;
 | |
| 				string UnitSpecPrcNum = ROFST_FILE.ROProcessTools.UnitSpecific(apitm.Proc._Prcnum,0,0,CurDSet.LargestNumber);
 | |
| 				listSelect.Items.Add(UnitSpecPrcNum);
 | |
| 			}
 | |
| 			int cnt=0;
 | |
| 			while (cnt < CurDSet.Children.Count)
 | |
| 			{
 | |
| 				VEO_Proc prc = (VEO_Proc) CurDSet.Children[cnt];
 | |
| 				string pnum =  ROFST_FILE.ROProcessTools.UnitSpecific(prc._Prcnum,0,0,CurDSet.LargestNumber);
 | |
| 				if (!listSelect.Items.Contains(pnum)) listAvail.Items.Add(pnum);
 | |
| 				cnt++;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		/// <summary>
 | |
| 		/// Clean up any resources being used.
 | |
| 		/// </summary>
 | |
| 		protected override void Dispose( bool disposing )
 | |
| 		{
 | |
| 			if( disposing )
 | |
| 			{
 | |
| 				if(components != null)
 | |
| 				{
 | |
| 					components.Dispose();
 | |
| 				}
 | |
| 			}
 | |
| 			base.Dispose( disposing );
 | |
| 		}
 | |
| 
 | |
| 		#region Windows Form Designer generated code
 | |
| 		/// <summary>
 | |
| 		/// Required method for Designer support - do not modify
 | |
| 		/// the contents of this method with the code editor.
 | |
| 		/// </summary>
 | |
| 		private void InitializeComponent()
 | |
| 		{
 | |
| 			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ApproveSelDlg));
 | |
| 			this.listAvail = new System.Windows.Forms.ListBox();
 | |
| 			this.listSelect = new System.Windows.Forms.ListBox();
 | |
| 			this.lblAvail = new System.Windows.Forms.Label();
 | |
| 			this.lblSelected = new System.Windows.Forms.Label();
 | |
| 			this.btnSelect = new System.Windows.Forms.Button();
 | |
| 			this.btnClear = new System.Windows.Forms.Button();
 | |
| 			this.label1 = new System.Windows.Forms.Label();
 | |
| 			this.btnApprove = new System.Windows.Forms.Button();
 | |
| 			this.btnResolve = new System.Windows.Forms.Button();
 | |
| 			this.btnCancel = new System.Windows.Forms.Button();
 | |
| 			this.btnRpt = new System.Windows.Forms.Button();
 | |
| 			this.listDepend = new System.Windows.Forms.ListBox();
 | |
| 			this.SuspendLayout();
 | |
| 			// 
 | |
| 			// listAvail
 | |
| 			// 
 | |
| 			this.listAvail.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.listAvail.ItemHeight = 20;
 | |
| 			this.listAvail.Location = new System.Drawing.Point(29, 28);
 | |
| 			this.listAvail.Name = "listAvail";
 | |
| 			this.listAvail.Size = new System.Drawing.Size(345, 184);
 | |
| 			this.listAvail.TabIndex = 0;
 | |
| 			// 
 | |
| 			// listSelect
 | |
| 			// 
 | |
| 			this.listSelect.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.listSelect.ItemHeight = 20;
 | |
| 			this.listSelect.Location = new System.Drawing.Point(509, 28);
 | |
| 			this.listSelect.Name = "listSelect";
 | |
| 			this.listSelect.Size = new System.Drawing.Size(355, 184);
 | |
| 			this.listSelect.TabIndex = 1;
 | |
| 			// 
 | |
| 			// lblAvail
 | |
| 			// 
 | |
| 			this.lblAvail.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.lblAvail.Location = new System.Drawing.Point(29, 8);
 | |
| 			this.lblAvail.Name = "lblAvail";
 | |
| 			this.lblAvail.Size = new System.Drawing.Size(221, 16);
 | |
| 			this.lblAvail.TabIndex = 2;
 | |
| 			this.lblAvail.Text = "Available Procedures";
 | |
| 			this.lblAvail.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
 | |
| 			// 
 | |
| 			// lblSelected
 | |
| 			// 
 | |
| 			this.lblSelected.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.lblSelected.Location = new System.Drawing.Point(509, 8);
 | |
| 			this.lblSelected.Name = "lblSelected";
 | |
| 			this.lblSelected.Size = new System.Drawing.Size(249, 16);
 | |
| 			this.lblSelected.TabIndex = 3;
 | |
| 			this.lblSelected.Text = "Selected Procedures";
 | |
| 			this.lblSelected.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
 | |
| 			// 
 | |
| 			// btnSelect
 | |
| 			// 
 | |
| 			this.btnSelect.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.btnSelect.Location = new System.Drawing.Point(384, 32);
 | |
| 			this.btnSelect.Name = "btnSelect";
 | |
| 			this.btnSelect.Size = new System.Drawing.Size(120, 40);
 | |
| 			this.btnSelect.TabIndex = 4;
 | |
| 			this.btnSelect.Text = "Select";
 | |
| 			this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
 | |
| 			// 
 | |
| 			// btnClear
 | |
| 			// 
 | |
| 			this.btnClear.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.btnClear.Location = new System.Drawing.Point(384, 96);
 | |
| 			this.btnClear.Name = "btnClear";
 | |
| 			this.btnClear.Size = new System.Drawing.Size(120, 40);
 | |
| 			this.btnClear.TabIndex = 5;
 | |
| 			this.btnClear.Text = "Clear";
 | |
| 			this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
 | |
| 			// 
 | |
| 			// label1
 | |
| 			// 
 | |
| 			this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.label1.Location = new System.Drawing.Point(29, 216);
 | |
| 			this.label1.Name = "label1";
 | |
| 			this.label1.Size = new System.Drawing.Size(187, 18);
 | |
| 			this.label1.TabIndex = 7;
 | |
| 			this.label1.Text = "Dependencies Report";
 | |
| 			this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
 | |
| 			// 
 | |
| 			// btnApprove
 | |
| 			// 
 | |
| 			this.btnApprove.DialogResult = System.Windows.Forms.DialogResult.OK;
 | |
| 			this.btnApprove.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.btnApprove.Location = new System.Drawing.Point(56, 616);
 | |
| 			this.btnApprove.Name = "btnApprove";
 | |
| 			this.btnApprove.Size = new System.Drawing.Size(216, 32);
 | |
| 			this.btnApprove.TabIndex = 8;
 | |
| 			this.btnApprove.Text = "Continue With Approval";
 | |
| 			// 
 | |
| 			// btnResolve
 | |
| 			// 
 | |
| 			this.btnResolve.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.btnResolve.Location = new System.Drawing.Point(360, 616);
 | |
| 			this.btnResolve.Name = "btnResolve";
 | |
| 			this.btnResolve.Size = new System.Drawing.Size(200, 32);
 | |
| 			this.btnResolve.TabIndex = 9;
 | |
| 			this.btnResolve.Text = "Edit Dependencies";
 | |
| 			this.btnResolve.Click += new System.EventHandler(this.btnResolve_Click);
 | |
| 			// 
 | |
| 			// btnCancel
 | |
| 			// 
 | |
| 			this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
 | |
| 			this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.btnCancel.Location = new System.Drawing.Point(648, 616);
 | |
| 			this.btnCancel.Name = "btnCancel";
 | |
| 			this.btnCancel.Size = new System.Drawing.Size(192, 32);
 | |
| 			this.btnCancel.TabIndex = 10;
 | |
| 			this.btnCancel.Text = "Cancel";
 | |
| 			// 
 | |
| 			// btnRpt
 | |
| 			// 
 | |
| 			this.btnRpt.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.btnRpt.Location = new System.Drawing.Point(384, 160);
 | |
| 			this.btnRpt.Name = "btnRpt";
 | |
| 			this.btnRpt.Size = new System.Drawing.Size(120, 46);
 | |
| 			this.btnRpt.TabIndex = 11;
 | |
| 			this.btnRpt.Text = "Print Report";
 | |
| 			this.btnRpt.Click += new System.EventHandler(this.btnRpt_Click);
 | |
| 			// 
 | |
| 			// listDepend
 | |
| 			// 
 | |
| 			this.listDepend.Font = new System.Drawing.Font("Courier New", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.listDepend.HorizontalScrollbar = true;
 | |
| 			this.listDepend.ItemHeight = 16;
 | |
| 			this.listDepend.Location = new System.Drawing.Point(29, 240);
 | |
| 			this.listDepend.Name = "listDepend";
 | |
| 			this.listDepend.SelectionMode = System.Windows.Forms.SelectionMode.None;
 | |
| 			this.listDepend.Size = new System.Drawing.Size(835, 356);
 | |
| 			this.listDepend.TabIndex = 12;
 | |
| 			// 
 | |
| 			// ApproveSelDlg
 | |
| 			// 
 | |
| 			this.AutoScale = false;
 | |
| 			this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
 | |
| 			this.AutoScroll = true;
 | |
| 			this.ClientSize = new System.Drawing.Size(871, 662);
 | |
| 			this.Controls.Add(this.listDepend);
 | |
| 			this.Controls.Add(this.btnRpt);
 | |
| 			this.Controls.Add(this.btnCancel);
 | |
| 			this.Controls.Add(this.btnResolve);
 | |
| 			this.Controls.Add(this.btnApprove);
 | |
| 			this.Controls.Add(this.label1);
 | |
| 			this.Controls.Add(this.btnClear);
 | |
| 			this.Controls.Add(this.btnSelect);
 | |
| 			this.Controls.Add(this.lblSelected);
 | |
| 			this.Controls.Add(this.lblAvail);
 | |
| 			this.Controls.Add(this.listSelect);
 | |
| 			this.Controls.Add(this.listAvail);
 | |
| 			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
 | |
| 			this.MaximizeBox = false;
 | |
| 			this.MinimizeBox = false;
 | |
| 			this.Name = "ApproveSelDlg";
 | |
| 			this.Text = "Approve Selected Procedures";
 | |
| 			this.ResumeLayout(false);
 | |
| 
 | |
| 		}
 | |
| 		#endregion
 | |
| 
 | |
| 		// if user presses Clear button, clear the selected items list, and
 | |
| 		// reset the available to all in procedure set.
 | |
| 		private void btnClear_Click(object sender, System.EventArgs e)
 | |
| 		{
 | |
| 			// reset both lists and will reset available from procedures in set.
 | |
| 			listSelect.Items.Clear();
 | |
| 			listAvail.Items.Clear();	
 | |
| 			AppItems.Clear();		// no procedures to approve.
 | |
| 			SetUpAvailSelectLists();
 | |
| 			listDepend.Items.Clear();
 | |
| 			// Bug Fix:  B2007-010
 | |
| 			// If you don't clear the DocPages, then if you re-select
 | |
| 			// the same procedure to approve, it will think that
 | |
| 			// the library document check was already done - thus
 | |
| 			// no depenencies the second time around.
 | |
| 			foreach (ModLibDoc ml in ModLibDocs) ml.DocPages = 0;
 | |
| 		}
 | |
| 
 | |
| 		private bool PopulateEditList()
 | |
| 		{
 | |
| 			bool hascon = false;
 | |
| 			if (AppItems.Count<=0) 
 | |
| 			{
 | |
| 				MessageBox.Show("No conflicts exist","Approve Selected");
 | |
| 				return hascon;
 | |
| 			}
 | |
| 			VlnStatusMessage StatMsgWin = new VlnStatusMessage("Conflict Resolution...");
 | |
| 			StatMsgWin.StatusMessage = "Populating Edit List";
 | |
| 			
 | |
| 			// Create the reference file - use apprcon as filename
 | |
| 			// get first item in list & use this as the procedure number.
 | |
| 			AppIndItem apitm = (AppIndItem) AppItems[0];
 | |
| 			string pnum = apitm.Proc._Prcnum;
 | |
| 			RefList rl = new RefList(pnum,"apprcon",CurDSet.usrRunTime);
 | |
| 			rl.Create();
 | |
| 			ArrayList tarry = new ArrayList();
 | |
| 			foreach (object obj in AppItems)
 | |
| 			{
 | |
| 				apitm = (AppIndItem) obj;
 | |
| 				foreach (AppConflict ac in apitm.ConflictList)
 | |
| 				{
 | |
| 					hascon = true;
 | |
| 					string strForEdit;
 | |
| 					strForEdit = ac.GetStrForEdit();
 | |
| 					if (!tarry.Contains(strForEdit))
 | |
| 					{
 | |
| 						rl.WriteRefLine(strForEdit);
 | |
| 						tarry.Add(strForEdit);
 | |
| 					}
 | |
| //					rl.WriteRefLine(ac.GetStrForEdit());
 | |
| 				}
 | |
| 			}
 | |
| 			rl.WriteTotalNumRefs();
 | |
| 			rl.CloseFile();
 | |
| 			StatMsgWin.Dispose();
 | |
| 			if (!hascon)
 | |
| 			{
 | |
| 				MessageBox.Show("No conflicts exist - cannot edit.","Approve Selected");
 | |
| 				apitm = (AppIndItem) AppItems[0];
 | |
| 				// note that if the following is entered as a single string (rather than
 | |
| 				// two strings concatenated) the argument passing changes the string and
 | |
| 				// exeadjust does not work correctly - keep as two separate strings.
 | |
| 				string fl = apitm.Proc.usrRunTime.ExeAdjust("\xE7"  + "apprcon");
 | |
| 				if (File.Exists(fl))File.Delete(fl);
 | |
| 				return false;
 | |
| 			}
 | |
| 			return true;
 | |
| 		}
 | |
| 
 | |
| 		private void PopulateDependList()
 | |
| 		{
 | |
| 			listDepend.Items.Clear();
 | |
| 			bool doblank = false;
 | |
| 			foreach (object obj in AppItems)
 | |
| 			{
 | |
| 				AppIndItem apitm = (AppIndItem) obj;
 | |
| 				if (doblank)		// don't add a blank line the first time.
 | |
| 					listDepend.Items.Add(" ");
 | |
| 				else
 | |
| 					doblank=true;
 | |
| 
 | |
| 				listDepend.Items.Add("Dependencies in : " + ROFST_FILE.ROProcessTools.UnitSpecific(apitm.Proc._Prcnum,0,0,CurDSet.LargestNumber));
 | |
| 				if (apitm.ConflictList.Count==0)
 | |
| 					listDepend.Items.Add("  None");
 | |
| 				else
 | |
| 				{
 | |
| 					foreach (AppConflict ac in apitm.ConflictList)
 | |
| 					{
 | |
| 						StringCollection sc = ac.GetStrForDlg();
 | |
| 						foreach (string tmpstr in sc)
 | |
| 						{
 | |
| 							listDepend.Items.Add(tmpstr);
 | |
| 						}
 | |
| //						listDepend.Items.Add(ac.GetStrForDlg());
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		private void PopulateLogFile()
 | |
| 		{
 | |
| 			using (StreamWriter sw = new StreamWriter("Approval.log", true)) 
 | |
| 			{
 | |
| 				sw.Write("APPROVE SELECTED: Conflicts found on ");
 | |
| 				sw.Write(DateTime.Now);
 | |
| 				sw.WriteLine(" performed by " + DTI.Initials);
 | |
| 				foreach (object obj in AppItems)
 | |
| 				{
 | |
| 					AppIndItem apitm = (AppIndItem) obj;
 | |
| 					sw.WriteLine(" Dependencies in : " + ROFST_FILE.ROProcessTools.UnitSpecific(apitm.Proc._Prcnum,0,0,CurDSet.LargestNumber));
 | |
| 					if (apitm.ConflictList.Count==0)
 | |
| 						sw.WriteLine("  None");
 | |
| 					else
 | |
| 					{
 | |
| 						foreach (AppConflict ac in apitm.ConflictList)
 | |
| 						{
 | |
| 							sw.WriteLine(ac.GetStrForDlg());
 | |
| 						}
 | |
| 					}
 | |
| 					sw.WriteLine(" ");
 | |
| 				}
 | |
| 				sw.WriteLine(" ");
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		private void btnSelect_Click(object sender, System.EventArgs e)
 | |
| 		{
 | |
| 			if (listAvail.SelectedIndex<0)
 | |
| 			{
 | |
| 				MessageBox.Show("You must select an item in the list.");
 | |
| 				return;
 | |
| 			}
 | |
| 			string prc_sel = (string) listAvail.Items[listAvail.SelectedIndex];
 | |
| 			VEO_ProcSet ps = (VEO_ProcSet) CurDSet.parentObj;
 | |
| 			
 | |
| 			// find the proc object & add it to the arraylist of procedures to process. Then
 | |
| 			// do the individual processing on it.
 | |
| 			foreach (Object obj in CurDSet.Children)
 | |
| 			{
 | |
| 				VEO_Proc prc = (VEO_Proc) obj;
 | |
| 				string tst = ROFST_FILE.ROProcessTools.UnitSpecific(prc._Prcnum,0,0,CurDSet.LargestNumber);
 | |
| 				if (tst==prc_sel)
 | |
| 				{
 | |
| 					AppIndItem aii= new AppIndItem(prc);
 | |
| 					AppItems.Add(aii);
 | |
| 					ps.ProcessInd(AppItems, AppItems.Count-1, ModROs, ModLibDocs);
 | |
| 					break;
 | |
| 				}
 | |
| 			}
 | |
| 			int indx=0;
 | |
| 			VlnStatusMessage StatMsgWin = null;
 | |
| 			while (indx>=0)
 | |
| 			{
 | |
| 
 | |
| 				AppIndItem CurItem = (AppIndItem) AppItems[indx];
 | |
| 				if (!CurItem.Checked)
 | |
| 				{
 | |
| 					if (StatMsgWin==null)StatMsgWin = new VlnStatusMessage("Looking for Dependencies...");
 | |
| 					StatMsgWin.StatusMessage = "Checking " + CurItem.Proc._Prcnum;
 | |
| 					ps.ProcessInd(AppItems, indx, ModROs, ModLibDocs);
 | |
| 					CurItem.Checked=true;
 | |
| 				}
 | |
| 				indx = -1;
 | |
| 				for (int i=0;i<AppItems.Count;i++)
 | |
| 				{
 | |
| 					CurItem = (AppIndItem) AppItems[i];
 | |
| 					if (!CurItem.Checked)
 | |
| 					{
 | |
| 						indx=i;
 | |
| 						break;
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 			listSelect.Items.Clear();
 | |
| 			listAvail.Items.Clear();
 | |
| 			SetUpAvailSelectLists();
 | |
| 			if (StatMsgWin!=null)StatMsgWin.Dispose();
 | |
| 			PopulateDependList();
 | |
| 		}
 | |
| 
 | |
| 		private void btnRpt_Click(object sender, System.EventArgs e)
 | |
| 		{
 | |
| 			if (this.AppItems.Count<=0)
 | |
| 			{
 | |
| 				MessageBox.Show("No procedures are selected to approve, no items in conflict report.","Approve Selected");
 | |
| 				return;
 | |
| 			}
 | |
| 			new PrintingConflictReport(listDepend);
 | |
| 		}
 | |
| 
 | |
| 		private void btnResolve_Click(object sender, System.EventArgs e)
 | |
| 		{
 | |
| 			bool haslist = PopulateEditList();
 | |
| 			if (haslist)
 | |
| 			{
 | |
| 				AppIndItem apitm = (AppIndItem) AppItems[0];
 | |
| 				VEO_Proc prc  = apitm.Proc;
 | |
| 				VEO_ProcSet ps = (VEO_ProcSet) CurDSet.parentObj;
 | |
| 				ps.AppSelForEdit = prc;
 | |
| 				prc.ExecVfw("a");
 | |
| 				this.Close();
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	public class PrintingConflictReport
 | |
| 	{
 | |
| 		private System.Windows.Forms.ListBox ListToPrint;
 | |
| 		private Font printFont;
 | |
| 		private int CurLine;
 | |
| 		private int PageCnt;
 | |
| 
 | |
| 		public PrintingConflictReport(System.Windows.Forms.ListBox listDepend)
 | |
| 		{
 | |
| 			CurLine=0;
 | |
| 			PageCnt=0;
 | |
| 			ListToPrint = listDepend;
 | |
| 			Printing();
 | |
| 		}
 | |
| 
 | |
| 		// The PrintPage event is raised for each page to be printed.
 | |
| 		private void pd_PrintPage(object sender, PrintPageEventArgs ev) 
 | |
| 		{
 | |
| 			float linesPerPage = 0;
 | |
| 			float yPos =  0;
 | |
| 			int count = 0;
 | |
| 			PageCnt++;
 | |
| 			float leftMargin = ev.MarginBounds.Left;
 | |
| 			float topMargin = ev.MarginBounds.Top;
 | |
| 			String line=null;
 | |
|             
 | |
| 			// Calculate the number of lines per page.
 | |
| 			linesPerPage = ev.MarginBounds.Height  / 
 | |
| 				printFont.GetHeight(ev.Graphics) ;
 | |
| 
 | |
| 			Font titleFont = new Font("Courier New", 12, FontStyle.Bold);
 | |
| 			line = "Approve Selected Dependency List Report " + DateTime.Now + "     Page " + PageCnt.ToString();
 | |
| 			yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
 | |
| 			
 | |
| 			ev.Graphics.DrawString (line, titleFont, Brushes.Black, 
 | |
| 				leftMargin, yPos, new StringFormat());
 | |
| 			count++;
 | |
| 			line = " ";
 | |
| 			yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
 | |
| 			ev.Graphics.DrawString (line, printFont, Brushes.Black, 
 | |
| 				leftMargin, yPos, new StringFormat());
 | |
| 			count++;
 | |
| 
 | |
| 			// Iterate over the file, printing each line.
 | |
| 			while (count < linesPerPage && CurLine <ListToPrint.Items.Count)
 | |
| 			{
 | |
| 				line = ListToPrint.Items[CurLine].ToString();
 | |
| 				SizeF sz = ev.Graphics.MeasureString(line,printFont);
 | |
| 				while (sz.Width>ev.MarginBounds.Width&&line.Length>85)
 | |
| 				{
 | |
| 					// going backwards from 85 chars, find a space to use as the line
 | |
| 					// breaking point.
 | |
| 					int indx = line.LastIndexOf(" ",84,85);
 | |
| 					string sline = line.Substring(0,indx);
 | |
| 					yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
 | |
| 					ev.Graphics.DrawString (sline, printFont, Brushes.Black,
 | |
| 						leftMargin, yPos, new StringFormat());
 | |
| 					count++;
 | |
| 					line = "  " + line.Substring(indx,line.Length-indx);
 | |
| 				}
 | |
| 				yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
 | |
| 				ev.Graphics.DrawString (line, printFont, Brushes.Black, 
 | |
| 					leftMargin, yPos, new StringFormat());
 | |
| 				count++;
 | |
| 				CurLine++;
 | |
| 			}
 | |
| 
 | |
| 			// If more lines exist, print another page.
 | |
| 			if (CurLine<ListToPrint.Items.Count) 
 | |
| 				ev.HasMorePages = true;
 | |
| 			else 
 | |
| 				ev.HasMorePages = false;
 | |
| 		}
 | |
| 
 | |
| 		// Print the file.
 | |
| 		public void Printing()
 | |
| 		{
 | |
| 			printFont = new Font("Courier New", 10);
 | |
| 
 | |
| 			PrintDocument pd = new PrintDocument(); 
 | |
| 
 | |
| 			// Set the left and right margins to 1/2 inch.
 | |
| 			pd.DefaultPageSettings.Margins.Left = 50;
 | |
| 			pd.DefaultPageSettings.Margins.Right = 50;
 | |
| 			// Set the top and bottom margins to 3/4 & 1 inch.
 | |
| 			pd.DefaultPageSettings.Margins.Top = 75;
 | |
| 			pd.DefaultPageSettings.Margins.Bottom = 100;
 | |
| 
 | |
| 			pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
 | |
| 			// Print the document.
 | |
| 			pd.Print();
 | |
| 		}
 | |
| 	}
 | |
| }
 |