Set the NumberingSequence to 11 (WithinEachSectionNumber) in the Valve List document style Added a new NumberingSequence 11 – WithinEachSectionNumber which will continue the page numbering across sections that have the same Section Number and are set to print continuous. Added logic to support the WithinEachSectionNumber NumberingSequence type
243 lines
9.5 KiB
C#
243 lines
9.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Xml;
|
|
using System.ComponentModel;
|
|
|
|
namespace VEPROMS.CSLA.Library
|
|
{
|
|
#region ENums
|
|
[Flags]
|
|
public enum E_PurchaseOptions : uint
|
|
{
|
|
ApproveOne = 0x0001,
|
|
AccPagination = 0x0002,
|
|
LibMaint = 0x0004,
|
|
Transfer = 0x0008,
|
|
STrees = 0x0010,
|
|
DateChgSumRpt = 0x0020,
|
|
SetpointUsage = 0x0040,
|
|
Replace = 0x0080,
|
|
FloppyTransfer = 0x0100,
|
|
ApproveGenericBack = 0x0200,
|
|
DistributeApproved = 0x0400,
|
|
OutsideTransitions = 0x0800,
|
|
EnhancedBackgrounds = 0x1000,
|
|
EnhancedDeviations = 0x2000,
|
|
AutoTableOfContents = 0x4000,
|
|
AutoPlacekeeper = 0x8000
|
|
}
|
|
[Flags]
|
|
public enum E_Style : uint
|
|
{
|
|
// Fonts removed, not used here.
|
|
None = 0,
|
|
Underline = 64, Bold = 128, Landscape = 256, Italics = 512, Boxed = 1024, BoxElement = 0x00000800,
|
|
TbCentered = 4096, RtCheckoff = 8192, LtCheckOff = 16384, BigScript = 32768, HlTextHl = 65536,
|
|
RtCheckoffWithAsterisk = 131072, DbUnderline = 262144, ColDots = 524288,
|
|
MmBold = 1048576, RightJustify = 2097152, Subscript = 4194304, Superscript = 8388608,
|
|
PageListItem = 16777216, PrintOnTopOfLine = 33554432, HorzCenter = 67108864,
|
|
CircleString2 = 0x08000000, AlighWithUp1 = 0x10000000, AlignWSecNum = 0x20000000,
|
|
MatchColumnMode = 0x40000000, KeepRNOSubStyle = 0x80000000
|
|
};
|
|
public enum E_ChangeBarMessage : uint
|
|
{
|
|
DateAndUserId = 0,
|
|
RevNumber = 1,
|
|
UserId = 2,
|
|
Nothing = 3
|
|
}
|
|
public enum E_TransUI : uint
|
|
{
|
|
None = 0,
|
|
ProcCur = 0x0001,
|
|
ProcMenu = 0x0002,
|
|
SectCur = 0x0004,
|
|
SectDefault = 0x0008,
|
|
SectMenuAny = 0x0010,
|
|
SectMenuStep = 0x0020,
|
|
StepAllowNone = 0x0040,
|
|
StepFirst = 0x0080,
|
|
StepLast = 0x0100
|
|
}
|
|
public enum E_EMode : uint
|
|
{
|
|
Insert = 0,
|
|
Override = 1
|
|
}
|
|
public enum E_ViewMode : uint
|
|
{
|
|
View = 0,
|
|
Edit = 1
|
|
}
|
|
public enum E_EditPrintMode : uint
|
|
{
|
|
Edit = 0,
|
|
Print = 1
|
|
}
|
|
[Flags]
|
|
public enum E_Justify : uint
|
|
{
|
|
PSCenter = 0, // Page style, center field
|
|
PSLeft = 1, // Page style, left justify
|
|
PSRight = 2, // Page style, right justify
|
|
// *** PS modifiers: ***
|
|
PSBottom = 4, // Page style, always use bottom half line
|
|
PSTop = 8, // Page style, always use top half line
|
|
PSTrue = 16, // page style, don't adjust per CPI* (not needed after 4.0)
|
|
PSNotFirst = 32, // page style, don't put this token on the first page of section
|
|
PSOnlyFirst = 64, // page style, only put this token on the first page of section
|
|
PSRelRow = 128, // place in RelPageList
|
|
PSNoHalfLine = 256, // DontDoHalflines for his paglist row item
|
|
PSNotLast = 0x200, // 512 - use this token on all but the last page of this section
|
|
PSRtfOnly = 0x400, // Only use this token when the driver is rtf
|
|
PSRtfNot = 0x800, // Do NOT use token when driver is rtf
|
|
PSGDIOnly = 0X1000, // Only use this token when the driver is GDI
|
|
PSGDINot = 0x2000, // Do NOT use token when driver is GDI
|
|
PSAdjBngRow = 0x4000 // If the pagelist item exceeds the row it's printed on,
|
|
// then adjust the starting row for the procedure body
|
|
};
|
|
public enum E_NumberingSequence : uint
|
|
{
|
|
NoPageNum = 0,
|
|
WithSteps = 1,
|
|
WithinEachDocStyle = 2,
|
|
WithinEachSection = 3,
|
|
WithinEachDocStyle1 = 4,
|
|
GroupedByPagination = 5,
|
|
GroupedByLevel = 6,
|
|
WithStepsAndSecondaryPageNumber = 7,
|
|
WithStepsAndSecondaryPageNumberGroupedByLevel = 8,
|
|
Like6_ButDoesntNeedSubsection = 9,
|
|
Like6_ButDoesntNeedSubsection1 = 10,
|
|
WithinEachSectionNumber = 11
|
|
};
|
|
public enum E_ContBottomLoc : uint
|
|
{
|
|
EndOfText = 0,
|
|
BtwnTextAndBottom = 1,
|
|
BottomOfPage = 2,
|
|
BelowBottom1 = 3,
|
|
// BottomWithFooter added for BGE for Alarms. This puts continue message on bottom AND if in CONDITION/RESPONSE table, at bottom of both columns.
|
|
BottomWithFooter = 4,
|
|
EndOfText2 = 5,
|
|
BtwnTextAndBottom2 = 6 // Added for BGE, their continue message was a line or so too far down page.1
|
|
};
|
|
[Flags]
|
|
public enum E_DocStructStyle : ulong
|
|
{
|
|
//USEONALLPAGES = 0, // Default
|
|
//USEONFIRSTPAGE = 1, // Use only on the first page
|
|
//USEONALLBUTFIRSTPAGE = 2, // Use on all but the first page
|
|
//USEONLASTPAGE = 4, // NO LOGIC exists for this selection. Use only on the last page
|
|
None = 0,
|
|
UseSectionFoldout = 8, // Attach section foldouts (only active if using SectionLevelFoldouts_ON
|
|
DontCountFoldoutPgs = 16, // Used with the USESECTIONFOLDOUT flag. Keeps foldout pages from
|
|
// being included in the section total page count.
|
|
TableOfContents = 32,
|
|
DontCountInTabOfCont = 64,
|
|
Placekeeper = 128,
|
|
Align1StLevSubWHLS = 0x00000100, // guess?
|
|
DoubleBoxHLS = 0x00000200,
|
|
UseAltCntrline = 0x00000400,
|
|
DontNumberInTOC = 0x00000800, // Don't include page number for this section in the Table of Contents
|
|
UseSpecialFigFrame = 0x00001000, // for use with stp55 and 55a in bge
|
|
HLSUseLetters = 0x00002000, // docstyles with this bit set in the DocStructStyle will
|
|
// default to using letters for HLSteps
|
|
NoSectionInStepContinue = 0x00004000, // don't include the section number in the step continue
|
|
BottomSectionContinue = 0x00008000, // print the continue message if the section continues
|
|
AlwaysDotStep = 0x00010000, // put the period after step number in the continue message
|
|
XBlankW1stLevSub = 0x00020000, // insert an extra blank line before a 1st level substep
|
|
AffectedPages = 0x00040000,
|
|
DSS_TreatAsTrueSectNum = 0x00080000, // in conjunction with tietabtolevel, takes section number
|
|
// from the last space and appends a period
|
|
SampleWatermark = 0x00100000, // Will force "SAMPLE" to be printed across the page
|
|
// on all pages in this section
|
|
DSS_PageBreakHLS = 0x00200000, // Page Breaks on all high level steps
|
|
DSS_NoChkIfContTypeHigh = 0x00400000, // Will suppress the checkoff if type is HIGH and the
|
|
// step is continued on the next page
|
|
DSS_WidthOvrdStdHLS = 0x00800000, // Width Override for Standard HLStep in this section
|
|
DSS_AddDotZeroStdHLS = 0x01000000, // Append .0 to the Standard HLStep for this section
|
|
DSS_SectionCompress = 0x02000000, // Compress all the steps of this section (i.e. use 7 LPI)
|
|
DSS_PrintSectOnFirst = 0x04000000, // Prints section title/number <SECTIONLEVELTITLE> only on the first
|
|
// page of an attachment section, assuming numberingsequence is not 1
|
|
DSS_UnNumLikeRoman = 0x08000000, // the substeps underneath unnumbered HLSteps will have same tabs as romans
|
|
DSS_DontChangeRomanLevel = 0x10000000, // Dont alter the the substep level for roman-numeral-tabbed hlsteps
|
|
DSS_SkipTwoStepLevels = 0x20000000, // Skip two step levels for this doc style
|
|
DSS_SkipOneStepLevel = 0x40000000, // Skip one step level for this doc style
|
|
DSS_SimpleTopSectionContinue = 0x80000000, // Use the Top continue message as the section continue */
|
|
DSS_DontDoCheckOffs = 0x100000000, // format has checkoffs, but don't do for this section
|
|
DSS_PageListSpBckgrnd = 0x200000000, // this background document style has special formatting: margins, title with cont and non underlined header (IP2BCK)
|
|
DSS_PageListAddSectCont = 0x400000000, // for this section, add the top continue message when doing the ATTACHTITLECONT pagelist token (Calvert/Landscape word docs)
|
|
DSS_WordContentLandscaped = 0x800000000, // for this section, the word content is landscaped.
|
|
};
|
|
public enum E_DocStyleUse : uint
|
|
{
|
|
UseOnAllPages = 0, UseOnFirstPage = 1, UseOnAllButFirstPage = 2
|
|
// , UseOnLastPage = 4 This flag does not have supporting code.
|
|
};
|
|
[Flags]
|
|
// acceptence list for adding Tables, Cautions, Notes, Substeps, Next, Previous and RNO
|
|
public enum E_AccStep : uint
|
|
{
|
|
AddingCaution = 1,
|
|
AddingNote = 2,
|
|
AddingRNO = 4,
|
|
AddingSub = 8,
|
|
AddingTable = 16,
|
|
AddingNext = 32,
|
|
AddingPrev = 64
|
|
}
|
|
[Flags]
|
|
public enum E_ReplaceFlags : uint
|
|
{
|
|
// Generally used: HIGH, RNO, CAUTION, NOTE, TABLE, SUBSTEP, ATTACH
|
|
// ANONOP: BKGD, TOC, INSECTITLE, TRAN
|
|
// BGEEOP: BKGD, PLACKEEP, TOC, PARTIALS
|
|
// CAL1 & WCN & WEP (various): STATTREE, HLSSETPNT
|
|
// CAL2 & CPL: SETPOINT
|
|
// HLP: CASEINSENS
|
|
// CPLSSD: DIFFUNIT, TOC, STATTREE, HLSSETPNT
|
|
// CWE: CASEINSENS, DIFFUNIT
|
|
// MYA: CASEINSENSALL
|
|
High = 0x0001, // Do ReplaceWords in HIGH LEVEL STEPS
|
|
RNO = 0x0002, // Do ReplaceWords in RNOS
|
|
Caution = 0x0004, // Do ReplaceWords in CAUTIONS
|
|
Note = 0x0008, // Do ReplaceWords in NOTES
|
|
Table = 0x0010, // Do ReplaceWords in TABLES
|
|
Substep = 0x0020, // Do ReplaceWords in SUBSTEPS
|
|
Attach = 0x0040, // Do ReplaceWords in ATTACHMENTS
|
|
Bkgd = 0x0080, // Do ReplaceWords in BACKGROUNDS
|
|
DiffUnit = 0x0100, // Do ReplaceWords ONLY for different UNIT #
|
|
TOC = 0x0200, // Do in auto table-of-contents
|
|
StatTree = 0x0400,
|
|
HLSSetpnt = 0x0800, // Do ReplaceWords in HighLevelStep SETPoiNTs
|
|
Trans = 0x1000, // Do ReplaceWords in TRANSITIONS
|
|
Setpoint = 0x2000, // Do ReplaceWords in SETPOINTS
|
|
|
|
// Case Sensitivity Flags - default is off (Case Sensitive Replace)
|
|
CaseInsens = 0x0000C000, // Do ReplaceWords for all words thatmatch, regardless of case,
|
|
// and replace with the ReplaceWith string as is
|
|
CaseInsensFirst = 0x4000, // Do ReplaceWords for all words thatexactly match the ReplaceWord,
|
|
// except the case of the first character may be different
|
|
CaseInsensAll = 0x8000, // Do ReplaceWords for all words that match the ReplaceWord, regardless of case
|
|
|
|
Partials = 0x10000, // Do replace even on partial matches
|
|
Plackeep = 0x20000, // Do replace in PlaceKeepers
|
|
InSecTitle = 0x40000,
|
|
BeforeTrans = 0x80000 // Only do replace if the string occurs immediately before a transition.
|
|
}
|
|
public enum E_ArrowKeys : uint
|
|
{
|
|
Up = 1,
|
|
Down = 2,
|
|
Right = 3,
|
|
Left = 4,
|
|
CtrlUp = 5,
|
|
CtrlDown = 6,
|
|
CtrlRight = 7,
|
|
CtrlLeft = 8
|
|
}
|
|
#endregion
|
|
}
|