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();
|
|
}
|
|
}
|
|
}
|