This commit is contained in:
36
PROMS/BarakahConvert/ConvertAlarms/App.config
Normal file
36
PROMS/BarakahConvert/ConvertAlarms/App.config
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="ConvertAlarms.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
|
||||
</startup>
|
||||
<userSettings>
|
||||
<ConvertAlarms.Properties.Settings>
|
||||
<setting name="Size" serializeAs="String">
|
||||
<value>1000, 600</value>
|
||||
</setting>
|
||||
<setting name="Location" serializeAs="String">
|
||||
<value>0, 0</value>
|
||||
</setting>
|
||||
<setting name="FileName" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="Split1" serializeAs="String">
|
||||
<value>250</value>
|
||||
</setting>
|
||||
<setting name="SqlServer" serializeAs="String">
|
||||
<value>.\Sql2008Express</value>
|
||||
</setting>
|
||||
<setting name="Database" serializeAs="String">
|
||||
<value>VEPROMS_Barakah</value>
|
||||
</setting>
|
||||
<setting name="ProcedureSet" serializeAs="String">
|
||||
<value>0</value>
|
||||
</setting>
|
||||
</ConvertAlarms.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
145
PROMS/BarakahConvert/ConvertAlarms/ConvertAlarms.csproj
Normal file
145
PROMS/BarakahConvert/ConvertAlarms/ConvertAlarms.csproj
Normal file
@@ -0,0 +1,145 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ConvertAlarms</RootNamespace>
|
||||
<AssemblyName>ConvertAlarms</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
|
||||
<Reference Include="Csla">
|
||||
<HintPath>..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DevComponents.DotNetBar2, Version=12.5.0.2, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\Program Files\DotNetBar for Windows Forms\DevComponents.DotNetBar2.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="log4net">
|
||||
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS User Interface\bin\Debug\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Design" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="VEPROMS.CSLA.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Volian.Base.Library">
|
||||
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Volian.Controls.Library">
|
||||
<HintPath>..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ConvertTable.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmConvertAlarms.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmConvertAlarms.Designer.cs">
|
||||
<DependentUpon>frmConvertAlarms.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SaveProcedure.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="frmConvertAlarms.resx">
|
||||
<DependentUpon>frmConvertAlarms.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
@@ -0,0 +1,10 @@
|
||||
""
|
||||
{
|
||||
"FILE_VERSION" = "9237"
|
||||
"ENLISTMENT_CHOICE" = "NEVER"
|
||||
"PROJECT_FILE_RELATIVE_PATH" = "relative:ConvertAlarms"
|
||||
"NUMBER_OF_EXCLUDED_FILES" = "0"
|
||||
"ORIGINAL_PROJECT_FILE_PATH" = ""
|
||||
"NUMBER_OF_NESTED_PROJECTS" = "0"
|
||||
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
|
||||
}
|
197
PROMS/BarakahConvert/ConvertAlarms/ConvertTable.cs
Normal file
197
PROMS/BarakahConvert/ConvertAlarms/ConvertTable.cs
Normal file
@@ -0,0 +1,197 @@
|
||||
using C1.Win.C1FlexGrid;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Controls.Library;
|
||||
|
||||
namespace ConvertAlarms
|
||||
{
|
||||
public partial class frmConvertAlarms
|
||||
{
|
||||
private static string GetTableText()
|
||||
{
|
||||
return _MyFlexGrid.GetSearchableText();
|
||||
}
|
||||
private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level)
|
||||
{
|
||||
XmlNode xn2 = xn.SelectSingleNode("tr/td/table");
|
||||
if (xn2 != null) xn = xn2;
|
||||
VlnFlexGrid fg = _MyFlexGrid;
|
||||
fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point);
|
||||
fg.Clear();
|
||||
fg.Rows.Count = 1;
|
||||
fg.Cols.Count = 1;
|
||||
int rows = 0;
|
||||
fg.MergedRanges.Clear();
|
||||
foreach (XmlNode xr in xn.ChildNodes)
|
||||
{
|
||||
if (xr.Name == "tr")
|
||||
{
|
||||
++rows;
|
||||
AddTableRow(xr, fg, rows);
|
||||
}
|
||||
}
|
||||
fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count);
|
||||
fg.BringToFront();
|
||||
fg.Invalidate();
|
||||
Application.DoEvents();
|
||||
//ShowColumnWidths(fg);
|
||||
fg.MakeRTFcells(false);
|
||||
//ShowMergedCells(fg);
|
||||
//ShowColumnWidths(fg);
|
||||
//Well, Can I save the table
|
||||
//using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, {TableContent}, 20008, E_FromType.Table))
|
||||
//{
|
||||
// Grid.MakeGrid(step.MyContent, fg.GetXMLData(), "");
|
||||
//}
|
||||
}
|
||||
public static VlnFlexGrid _MyFlexGrid = null;
|
||||
private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows)
|
||||
{
|
||||
if (rows > fg.Rows.Count)
|
||||
fg.Rows.Count = rows;
|
||||
int cols = 0;
|
||||
foreach (XmlNode xc in xr.ChildNodes)
|
||||
{
|
||||
++cols;
|
||||
//if (xc.InnerText.Contains("RC-V200"))
|
||||
// Console.WriteLine(xc.InnerText);
|
||||
//if (xc.InnerText.Contains("RC-V121"))
|
||||
// Console.WriteLine(xc.InnerText);
|
||||
//if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01"))
|
||||
// Console.WriteLine("here");
|
||||
CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1);
|
||||
//Console.WriteLine("Check {0}", cr2);
|
||||
while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1)
|
||||
{
|
||||
cols++;
|
||||
cr2 = GetMyMergedRange(fg, rows - 1, cols - 1);
|
||||
}
|
||||
AddMergedCells(fg, rows, cols, xc);
|
||||
//ShowMergedCells(fg);
|
||||
if (xc.Name == "td")
|
||||
{
|
||||
AddTableColumn(xc, fg, rows, cols);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//private static void ShowColumnWidths(VlnFlexGrid fg)
|
||||
//{
|
||||
// foreach (Column c in fg.Cols)
|
||||
// Console.WriteLine("Width[{0}]={1}", c.Index, c.Width);
|
||||
//}
|
||||
private static void ShowMergedCells(VlnFlexGrid fg)
|
||||
{
|
||||
for (int r = 0; r < fg.Rows.Count; r++)
|
||||
{
|
||||
for (int c = 0; c < fg.Cols.Count; c++)
|
||||
{
|
||||
CellRange cr3 = GetMyMergedRange(fg, r, c);
|
||||
if (fg.MergedRanges.Contains(cr3))
|
||||
Console.WriteLine("cr3 r={0},c={1},rng={2}", r, c, cr3);
|
||||
}
|
||||
}
|
||||
}
|
||||
private static int GetSpan(string span)
|
||||
{
|
||||
int retval = int.Parse("0" + (span ?? ""));
|
||||
if (retval == 0) return 0;
|
||||
return retval - 1;
|
||||
}
|
||||
private static string GetAttribute(XmlNode xc, string attName)
|
||||
{
|
||||
string retval = null;
|
||||
XmlAttribute xa = xc.Attributes[attName];
|
||||
if (xa != null)
|
||||
retval = xa.Value;
|
||||
return retval;
|
||||
}
|
||||
private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc)
|
||||
{
|
||||
string colspan = GetAttribute(xc, "colspan");
|
||||
string rowspan = GetAttribute(xc, "rowspan");
|
||||
if (colspan != null || rowspan != null)
|
||||
{
|
||||
//AddMergedRanges
|
||||
int r1 = rows;
|
||||
int c1 = cols;
|
||||
int r2 = r1 + GetSpan(rowspan);
|
||||
if (r2 > fg.Rows.Count) fg.Rows.Count = r2;
|
||||
int c2 = c1 + GetSpan(colspan);
|
||||
if (c2 > fg.Cols.Count) fg.Cols.Count = c2;
|
||||
CellRange cr = new CellRange();
|
||||
cr.r1 = r1 - 1;
|
||||
cr.r2 = r2 - 1;
|
||||
cr.c1 = c1 - 1;
|
||||
cr.c2 = c2 - 1;
|
||||
fg.MergedRanges.Add(cr);
|
||||
//Console.WriteLine("Merged {0}", cr);
|
||||
}
|
||||
}
|
||||
|
||||
private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c)
|
||||
{
|
||||
foreach (CellRange cr in fg.MergedRanges)
|
||||
{
|
||||
if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c)
|
||||
return cr;
|
||||
}
|
||||
return fg.GetMergedRange(r, c);
|
||||
}
|
||||
private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled);
|
||||
private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols)
|
||||
{
|
||||
//Console.WriteLine("Rows {0}, Cols {1}", rows, cols);
|
||||
if (cols > fg.Cols.Count)
|
||||
fg.Cols.Count = cols;
|
||||
string width = GetAttribute(xc, "width");
|
||||
if (width != null && width != "" && regNumber.IsMatch(width))
|
||||
{
|
||||
if (width.EndsWith("%"))
|
||||
fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100);
|
||||
else
|
||||
{
|
||||
int w = int.Parse(width)*96/72;
|
||||
//Console.WriteLine("w[{0}]={1}", cols - 1, w);
|
||||
fg.Cols[cols - 1].Width = w;
|
||||
}
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
string prefix = "";
|
||||
foreach (XmlNode xn in xc.ChildNodes)
|
||||
{
|
||||
if (xn.Name == "p")
|
||||
{
|
||||
sb.Append(prefix + xn.InnerText);
|
||||
}
|
||||
if (xn.Name == "ul")
|
||||
{
|
||||
foreach (XmlNode xn2 in xn.ChildNodes)
|
||||
{
|
||||
if (xn2.Name == "li")
|
||||
{
|
||||
sb.Append(prefix + "*" + xn.InnerText);
|
||||
}
|
||||
if (xn2.Name == "p")
|
||||
{
|
||||
sb.Append(prefix + xn.InnerText);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (width != null && width != "" && !regNumber.IsMatch(width))
|
||||
{
|
||||
Console.WriteLine("width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml);
|
||||
}
|
||||
fg[rows - 1, cols - 1] = sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
22
PROMS/BarakahConvert/ConvertAlarms/Program.cs
Normal file
22
PROMS/BarakahConvert/ConvertAlarms/Program.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ConvertAlarms
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new frmConvertAlarms());
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("ConvertAlarms")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("ConvertAlarms")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("80225e3c-f32e-41b5-8b31-b8301eea4831")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
63
PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.Designer.cs
generated
Normal file
63
PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ConvertAlarms.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ConvertAlarms.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
117
PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.resx
Normal file
117
PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.resx
Normal file
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
110
PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.Designer.cs
generated
Normal file
110
PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,110 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ConvertAlarms.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("1000, 600")]
|
||||
public global::System.Drawing.Size Size {
|
||||
get {
|
||||
return ((global::System.Drawing.Size)(this["Size"]));
|
||||
}
|
||||
set {
|
||||
this["Size"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
|
||||
public global::System.Drawing.Point Location {
|
||||
get {
|
||||
return ((global::System.Drawing.Point)(this["Location"]));
|
||||
}
|
||||
set {
|
||||
this["Location"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string FileName {
|
||||
get {
|
||||
return ((string)(this["FileName"]));
|
||||
}
|
||||
set {
|
||||
this["FileName"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("250")]
|
||||
public int Split1 {
|
||||
get {
|
||||
return ((int)(this["Split1"]));
|
||||
}
|
||||
set {
|
||||
this["Split1"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute(".\\Sql2008Express")]
|
||||
public string SqlServer {
|
||||
get {
|
||||
return ((string)(this["SqlServer"]));
|
||||
}
|
||||
set {
|
||||
this["SqlServer"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("VEPROMS_Barakah")]
|
||||
public string Database {
|
||||
get {
|
||||
return ((string)(this["Database"]));
|
||||
}
|
||||
set {
|
||||
this["Database"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||
public int ProcedureSet {
|
||||
get {
|
||||
return ((int)(this["ProcedureSet"]));
|
||||
}
|
||||
set {
|
||||
this["ProcedureSet"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="ConvertAlarms.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Size" Type="System.Drawing.Size" Scope="User">
|
||||
<Value Profile="(Default)">1000, 600</Value>
|
||||
</Setting>
|
||||
<Setting Name="Location" Type="System.Drawing.Point" Scope="User">
|
||||
<Value Profile="(Default)">0, 0</Value>
|
||||
</Setting>
|
||||
<Setting Name="FileName" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="Split1" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">250</Value>
|
||||
</Setting>
|
||||
<Setting Name="SqlServer" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">.\Sql2008Express</Value>
|
||||
</Setting>
|
||||
<Setting Name="Database" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">VEPROMS_Barakah</Value>
|
||||
</Setting>
|
||||
<Setting Name="ProcedureSet" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">0</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
@@ -0,0 +1 @@
|
||||
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da
|
517
PROMS/BarakahConvert/ConvertAlarms/SaveProcedure.cs
Normal file
517
PROMS/BarakahConvert/ConvertAlarms/SaveProcedure.cs
Normal file
@@ -0,0 +1,517 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
using System.Text.RegularExpressions;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using log4net;
|
||||
using Volian.Controls.Library;
|
||||
using C1.Win.C1FlexGrid;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace ConvertAlarms
|
||||
{
|
||||
public partial class frmConvertAlarms : Form
|
||||
{
|
||||
//private void SaveProcedure(string text, string procNumber, string procTitle, int serialNo)
|
||||
private static DocVersionInfo DVI;
|
||||
private void SaveProcedure(string text, string procNumber, string procTitle, string fileName)
|
||||
{
|
||||
MatchCollection mc = Regex.Matches(text, "pNote");
|
||||
if (mc.Count > 1) Console.WriteLine("-------> {0} Notes", mc.Count);
|
||||
// Add Procedure Number and Title
|
||||
ItemInfo prev = null;
|
||||
//if (serialNo == 999999)
|
||||
prev = DVI.MyItem == null ? null : DVI.MyItem.LastSibling; //FindLocation(DVI.MyItem,procNumber);
|
||||
//else
|
||||
//{
|
||||
// prev = FindPrevious(dicSerialNo, serialNo);
|
||||
//}
|
||||
using (Procedure prc = Procedure.MakeProcedure(DVI, prev, procNumber, procTitle, 0))
|
||||
{
|
||||
MyLookUp = DVI.DocVersionAssociations[0].MyROFst.GetROFSTLookup(DVI);
|
||||
if (MyLookUp.GetROIDByAccPagID("ALR-" + procNumber, "SP", "IG") == null)
|
||||
{
|
||||
prc.MyContent.Config = MakeConfig("<config><PSI ALMSERIALNUMBER=\"{0}\" ALM=\"{1}\" ALMID=\"{2}\" ALMSOURCE=\"{3}\" ALMSETPOINT=\"{4}\" KEPCOPROCNUM=\"{5}\" KEPCOPROCTITLE1=\"{6}\" /></config>",
|
||||
prcSerialNoValue, prcTitleValue, prcNumberValue, prcSourceValue, prcSetpointValue, FullName.Substring(0, 13), FullName.Substring(14));
|
||||
Annotation.MakeAnnotation(prc, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Missing Referenced Object " + procNumber , null);
|
||||
}
|
||||
else
|
||||
prc.MyContent.Config = MakeConfig("<config><PSI KEPCOPROCNUM=\"{0}\" KEPCOPROCTITLE1=\"{1}\" /></config>",
|
||||
FullName.Substring(0, 13), FullName.Substring(14));
|
||||
prc.MyContent.Config = prc.MyContent.Config.Replace("<config><",string.Format("<config><Procedure Rev=\"{0}\"/><",RevisionNumber));
|
||||
Annotation.MakeAnnotation(prc, AnnotationType.GetByNameOrCreate("Conversion Info"), null, GetAnnotationText(fileName), null);
|
||||
|
||||
ProcedureInfo prci = ProcedureInfo.Get(prc.ItemID);
|
||||
// dicSerialNo.Add(serialNo, prci);
|
||||
// Console.WriteLine("{0},{1}", serialNo, prci.ShortPath);
|
||||
// Add Section
|
||||
using (Section sec = Section.MakeSection(prci, null, null, "Procedure Content", 10006))
|
||||
{
|
||||
sec.SectionConfig.Section_ColumnMode = SectionConfig.SectionColumnMode.One;
|
||||
sec.SectionConfig.Section_Pagination = SectionConfig.SectionPagination.Separate;
|
||||
sec.Save();
|
||||
SectionInfo seci = SectionInfo.Get(sec.ItemID);
|
||||
// TODO: Add High Level Steps
|
||||
// TODO: Add Substeps
|
||||
MemoryStream ms = GetMemoryStream(text);
|
||||
Queue<string> qread = new Queue<string>();
|
||||
using (StreamReader sr = new StreamReader(ms))
|
||||
fillQueue(qread, sr);
|
||||
|
||||
Dictionary<int, ItemInfo> lookup = new Dictionary<int, ItemInfo>();
|
||||
lookup.Add(0, prci);
|
||||
lookup.Add(1, seci);
|
||||
int level = 2;
|
||||
int type = 20001;
|
||||
int lastLevel = 2;
|
||||
int lastType = 0;
|
||||
int lastIndent = 0;
|
||||
int extra = 0;
|
||||
string lastTab = "";
|
||||
int? DeQueueType = null;
|
||||
E_FromType myFromType = E_FromType.Step;
|
||||
Queue<string> enQueue = null;
|
||||
Queue<string> deQueue = null;
|
||||
int deQueueLevel = 0;
|
||||
int deQueueLevelLast = 0;
|
||||
bool wasFromQueue;
|
||||
bool firstQueue = false;
|
||||
ItemInfo deQueueItem = null;
|
||||
bool saveDeQueueInfo = false;
|
||||
bool isTable = false;
|
||||
bool lastWasTable = false;
|
||||
string tableText = null;
|
||||
string tab = "";
|
||||
bool strangeBullet = false;
|
||||
while (qread.Count > 0 || deQueue != null)
|
||||
{
|
||||
string lineText;
|
||||
tableText = null;
|
||||
if (deQueue != null)
|
||||
{
|
||||
wasFromQueue = true;
|
||||
extra = 1;
|
||||
lineText = deQueue.Dequeue().Trim();
|
||||
if (deQueue.Count == 0)
|
||||
deQueue = null;
|
||||
if (Regex.IsMatch(lineText, "(NOTE|CAUTION|WARNING)"))
|
||||
{
|
||||
Console.WriteLine("Level {0} Type = {1}", deQueueLevel, DeQueueType);
|
||||
switch (lineText)
|
||||
{
|
||||
case "<NOTE>":
|
||||
DeQueueType = 20007;
|
||||
break;
|
||||
case "<CAUTION>":
|
||||
DeQueueType = 20006;
|
||||
break;
|
||||
case "<WARNING>":
|
||||
DeQueueType = 20020;
|
||||
break;
|
||||
}
|
||||
firstQueue = true;
|
||||
lineText = "\t" + deQueue.Dequeue();
|
||||
while (deQueue.Count > 0 && deQueue.Peek().ToString().Trim().StartsWith("\u2022") == false && !Regex.IsMatch(deQueue.Peek(), "<(NOTE|CAUTION|WARNING)>"))
|
||||
lineText += " " + deQueue.Dequeue();
|
||||
myFromType = E_FromType.Note;
|
||||
}
|
||||
if (deQueue.Count == 0)
|
||||
{
|
||||
deQueue = null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wasFromQueue = false;
|
||||
DeQueueType = null;
|
||||
extra = 0;
|
||||
//if (NextLine != null)
|
||||
//{
|
||||
// lineText = NextLine;
|
||||
// NextLine = null;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
lineText = qread.Dequeue().TrimEnd(" ".ToCharArray());
|
||||
while (lineText.Trim() == "<pNOTE>" || lineText.Trim() == "<pCAUTION>" || lineText.Trim() == "<pWARNING>")
|
||||
{
|
||||
if (enQueue == null) enQueue = new Queue<string>();
|
||||
lineText = qread.Dequeue().Trim();
|
||||
//Console.WriteLine("======> {0},Count Before = {1} ", lineText.Trim(), enQueue.Count());
|
||||
while (lineText != "</pNOTE>" && lineText != "</pCAUTION>" && lineText != "</pWARNING>")
|
||||
{
|
||||
enQueue.Enqueue(lineText.Trim());
|
||||
lineText = qread.Dequeue().Trim();
|
||||
}
|
||||
lineText = qread.Dequeue().Trim();
|
||||
//Console.WriteLine("======> {0},Count After = {1} ", lineText.Trim(), enQueue.Count());
|
||||
}
|
||||
if (lineText == ">") lineText = lineText.Replace(">", "");
|
||||
else lineText = lineText.Replace("<", "<").Replace(">", ">");
|
||||
//}
|
||||
HasSpecialCharacters(lineText);
|
||||
if (lineText.StartsWith("<table>"))
|
||||
{
|
||||
while (!lineText.Contains("</table>"))
|
||||
{
|
||||
lineText += " " + qread.Dequeue();
|
||||
lineText = Regex.Replace(lineText, "</table>.*", "</table>");
|
||||
}
|
||||
XmlDocument xd = new XmlDocument();
|
||||
xd.LoadXml(lineText);
|
||||
LoadTable2(xd.DocumentElement, null, 0);
|
||||
|
||||
isTable = true;
|
||||
if (!lastWasTable) level = lastLevel + 1;
|
||||
else level = lastLevel;
|
||||
type = 20008;
|
||||
tableText = GetTableText();
|
||||
//StringBuilder sbxml= new StringBuilder();
|
||||
//using(StringWriter sw = new StringWriter(sbxml))
|
||||
// _MyFlexGrid.WriteXml(sw);
|
||||
//using(StringReader sr= new StringReader(sbxml.ToString()))
|
||||
// _MyFlexGrid.ReadXml(sr);
|
||||
//Application.DoEvents();
|
||||
}
|
||||
else lineText = Regex.Replace(lineText, "<[^<>]+>", "");
|
||||
}
|
||||
if (lineText.Replace("\t", "").Replace(" ", "") != "")
|
||||
{
|
||||
lastLine = lineText;
|
||||
Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|[A-Z]\.|\u2022|)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline);
|
||||
if (m.Groups[4].Value != "")
|
||||
{
|
||||
tab = m.Groups[2].Value;
|
||||
int indent = m.Groups[1].Value.Length;
|
||||
if (isTable)
|
||||
{
|
||||
// do nothing
|
||||
if (lastWasTable)
|
||||
level = lastLevel;
|
||||
else
|
||||
level = 1 + lastLevel;
|
||||
type = 20008;
|
||||
myFromType = E_FromType.Table;
|
||||
}
|
||||
else if (indent == 0 && tab.EndsWith(".0")) // High Level Step
|
||||
{
|
||||
level = 2;
|
||||
type = 20002;
|
||||
}
|
||||
else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*")) // Sub-Substep
|
||||
{
|
||||
level = 4;
|
||||
type = 20001;
|
||||
}
|
||||
else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*")) // Substep
|
||||
{
|
||||
level = 3;
|
||||
type = 20001;
|
||||
}
|
||||
else if (Regex.IsMatch(tab, "[A-Z]\\.")) // Sub-Substep
|
||||
{
|
||||
level = 5;
|
||||
type = 20001;
|
||||
}
|
||||
else if (tab == "") // Paragraph
|
||||
{
|
||||
level = lastLevel + 1;
|
||||
type = 20024;
|
||||
}
|
||||
else if (tab == "\u2022")//bullet
|
||||
{
|
||||
if (firstQueue)
|
||||
level = lastLevel + 1;
|
||||
else if (lastTab == "\u2022")
|
||||
level = lastLevel;
|
||||
else
|
||||
if (lastType == 20007 && lastTab == "")
|
||||
level = lastLevel + 1;
|
||||
else
|
||||
{
|
||||
level = indent + 3;
|
||||
strangeBullet = true;
|
||||
}
|
||||
type = 20004;
|
||||
if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]"))
|
||||
type = 20011;
|
||||
}
|
||||
else if (tab == "\u25CB")//bullet
|
||||
{
|
||||
level = indent + 4;
|
||||
type = 20004;
|
||||
if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]"))
|
||||
type = 20011;
|
||||
}
|
||||
//while (level < lastLevel)
|
||||
// lookup.Remove(lastLevel--);
|
||||
if (firstQueue && deQueueLevelLast > 0) level = deQueueLevelLast+1;
|
||||
while (level < lookup.Count - 1)
|
||||
lookup.Remove(lookup.Count - 1);
|
||||
lastTab = tab;
|
||||
lastLevel = level;
|
||||
//lastIndent = indent;
|
||||
lastWasTable = isTable;
|
||||
deQueueLevelLast = deQueueLevel;
|
||||
}
|
||||
if (deQueue == null && enQueue != null)
|
||||
{
|
||||
deQueue = enQueue;
|
||||
saveDeQueueInfo = true;
|
||||
enQueue = null;
|
||||
}
|
||||
int newType = DeQueueType ?? (isTable ? 20008 : type);
|
||||
lastType = newType;
|
||||
|
||||
if (enQueue == null)
|
||||
{
|
||||
if (lookup.Count < level)
|
||||
{
|
||||
using (Step stp = (lookup[lookup.Count - 1] as StepInfo).Get())
|
||||
{
|
||||
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, GetAnnotationText2(lineText), null);
|
||||
}
|
||||
}
|
||||
else if (lookup.Count == level)
|
||||
{
|
||||
using (Step stp = Step.MakeStep(lookup[level - 1], null, null, tableText ?? m.Groups[4].Value, newType, myFromType))
|
||||
{
|
||||
if (strangeBullet)
|
||||
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null);
|
||||
ItemInfo myItem = StepInfo.Get(stp.ItemID);
|
||||
if (isTable)
|
||||
{
|
||||
Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), "");
|
||||
String footnote = GetFootNote(ms, qread);
|
||||
if (footnote.Length > 0)
|
||||
Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step);
|
||||
}
|
||||
isTable = false;
|
||||
//Console.WriteLine("+++B tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level);
|
||||
lookup.Add(level, myItem);
|
||||
//Console.WriteLine("+++A tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level);
|
||||
if (saveDeQueueInfo)
|
||||
{
|
||||
deQueueLevel = level;
|
||||
deQueueItem = lookup[level];
|
||||
saveDeQueueInfo = false;
|
||||
}
|
||||
if (firstQueue) firstQueue = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int previousType = ((int)lookup[level].MyContent.Type);
|
||||
if (firstQueue && DeQueueType != null)
|
||||
{
|
||||
previousType = (int) DeQueueType;
|
||||
level = deQueueLevel + 1;
|
||||
}
|
||||
using (Step stp = Step.MakeStep(lookup[level - 1], lookup[level], null, tableText ?? m.Groups[4].Value, previousType, myFromType))
|
||||
{
|
||||
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, string.Format("Type Change {0} to {1}", newType, ((int)lookup[level].MyContent.Type)), null);
|
||||
if (strangeBullet)
|
||||
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null);
|
||||
strangeBullet = false;
|
||||
ItemInfo myItem = StepInfo.Get(stp.ItemID);
|
||||
if (isTable)
|
||||
{
|
||||
Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), "");
|
||||
String footnote = GetFootNote(ms, qread);
|
||||
if (footnote.Length > 0)
|
||||
Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step);
|
||||
}
|
||||
isTable = false;
|
||||
//Console.WriteLine(">>> tab = {0}, Lookup.Count = {1}, Level = {2}", tab, lookup.Count, level);
|
||||
lookup[level] = myItem;
|
||||
if (saveDeQueueInfo)
|
||||
{
|
||||
deQueueLevel = level;
|
||||
deQueueItem = lookup[level];
|
||||
saveDeQueueInfo = false;
|
||||
}
|
||||
if (firstQueue) firstQueue = false;
|
||||
}
|
||||
}
|
||||
myFromType = E_FromType.Step;
|
||||
if (deQueue == null && deQueueItem != null)
|
||||
{
|
||||
level = deQueueLevel;
|
||||
while (level < lookup.Count)
|
||||
lookup.Remove(lookup.Count - 1);
|
||||
lookup[level] = deQueueItem;
|
||||
deQueueItem = null;
|
||||
DeQueueType = null;
|
||||
}
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// enQueue.Enqueue(lineText);
|
||||
//}
|
||||
DeQueueType = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (runOne) MessageBox.Show("Done", "Converted");
|
||||
}
|
||||
private ItemInfo FindLocation(ItemInfo myItem, string procNumber)
|
||||
{
|
||||
while (myItem != null)
|
||||
{
|
||||
if (myItem.DisplayNumber.CompareTo(procNumber) >= 0)
|
||||
return myItem.MyPrevious;
|
||||
myItem = myItem.NextItem;
|
||||
}
|
||||
return myItem;
|
||||
}
|
||||
private string MakeConfig(string fmt, params string [] args)
|
||||
{
|
||||
string [] atts = new string[args.Length];
|
||||
args.CopyTo(atts,0);
|
||||
for(int i=0; i<atts.Length; i++)
|
||||
atts[i] = atts[i].Replace("&","&").Replace("<","<").Replace(">",">");
|
||||
return string.Format(fmt, atts);
|
||||
}
|
||||
|
||||
private void fillQueue(Queue<string> qread, StreamReader sr)
|
||||
{
|
||||
while(sr.Peek() > 0)
|
||||
qread.Enqueue(sr.ReadLine());
|
||||
}
|
||||
//private string _NextLine;
|
||||
|
||||
//public string NextLine
|
||||
//{
|
||||
// get { return _NextLine; }
|
||||
// set { _NextLine = value; }
|
||||
//}
|
||||
private string GetFootNote(MemoryStream ms, Queue<string> qRead)
|
||||
{
|
||||
string sep = "";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int lineCount = 0;
|
||||
string lookingFor = null;
|
||||
while(qRead.Count > 0)
|
||||
{
|
||||
// Read a line at a time
|
||||
string str = qRead.Peek();
|
||||
if(lineCount == 0 && str.StartsWith("<p>"))
|
||||
{
|
||||
lookingFor = "</p>";
|
||||
str = str.Replace("<p>", "");
|
||||
}
|
||||
lineCount++;
|
||||
str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace(">", "");
|
||||
str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?");
|
||||
//str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?");
|
||||
// If Text begins with number then
|
||||
if (lookingFor != null)
|
||||
{
|
||||
if (str.Contains(lookingFor))
|
||||
{
|
||||
sb.Append(sep + str.Replace(lookingFor, ""));
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
else if (Regex.IsMatch(str, "[0-9].*") || str.StartsWith("<table>"))
|
||||
return sb.ToString();
|
||||
//append string
|
||||
if (sb.ToString() != "" && str != "")
|
||||
sep = "\r\n";
|
||||
sb.Append(sep + str);
|
||||
qRead.Dequeue();// Remove current line from queue
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
private void ProcessChars(string str)
|
||||
{
|
||||
foreach (char c in str)
|
||||
{
|
||||
if (c < 0x20 || c > 0x7F)
|
||||
Console.WriteLine("{0:X4}", (int)c);
|
||||
}
|
||||
}
|
||||
public void ResetSpecial()
|
||||
{
|
||||
FoundSpecial = new List<char>();
|
||||
}
|
||||
List<char> FoundSpecial = new List<char>();
|
||||
private void HasSpecialCharacters(string lineText)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (char c in lineText)
|
||||
{
|
||||
if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c))
|
||||
{
|
||||
Console.WriteLine("*** Special Character {0:X4}", (int)c);
|
||||
FoundSpecial.Add(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static string GetAnnotationText(string fileName)
|
||||
{
|
||||
return string.Format("FileName:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}" ,
|
||||
fileName,ShortName,FullName,ApSystem,PNSNo ,RelatedFunction);
|
||||
}
|
||||
private static string GetAnnotationText2(string lineText)
|
||||
{
|
||||
//return string.Format("LineText:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}",
|
||||
// lineText, ShortName, FullName, apSystem, PNSNo, RelatedFunction);
|
||||
return string.Format("LineText:{0}",
|
||||
lineText);
|
||||
}
|
||||
}
|
||||
public class StepLookup : SortedDictionary<string, StepInfo>
|
||||
{
|
||||
public StepInfo this[int i]
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.ContainsKey(i.ToString())) return base[i.ToString()];
|
||||
return null;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (i > this.Count)
|
||||
throw new Exception("Gap in Stack");
|
||||
if (value == null)
|
||||
throw new Exception("Null StepInfo");
|
||||
//if (value.MyHLS.Ordinal==5 && (value.IsNote || value.IsCaution ))
|
||||
// Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,5,"=====> Adding Caution or Note on Step 5 {0}",value);
|
||||
if (this.ContainsKey(i.ToString()))
|
||||
{
|
||||
base[i.ToString()] = value;
|
||||
while (this.ContainsKey((i + 1).ToString()))
|
||||
base.Remove((base.Count - 1).ToString());
|
||||
}
|
||||
else base.Add(i.ToString(), value);
|
||||
//ListMySteps("Set ", this);
|
||||
}
|
||||
}
|
||||
public void AddOne(StepInfo previousStep)
|
||||
{
|
||||
this[this.Count] = previousStep;
|
||||
}
|
||||
private static void ListMySteps(string str, StepLookup mySteps)
|
||||
{
|
||||
int i = 0;
|
||||
foreach (string key in mySteps.Keys)
|
||||
{
|
||||
if (key != i.ToString())
|
||||
Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].DisplayText);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
499
PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.Designer.cs
generated
Normal file
499
PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.Designer.cs
generated
Normal file
@@ -0,0 +1,499 @@
|
||||
namespace ConvertAlarms
|
||||
{
|
||||
partial class frmConvertAlarms
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (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()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tbFileName = new System.Windows.Forms.TextBox();
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.btnRun = new System.Windows.Forms.Button();
|
||||
this.btnBrowse = new System.Windows.Forms.Button();
|
||||
this.btnAll = new System.Windows.Forms.Button();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.btnConvert = new System.Windows.Forms.Button();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.tbServer = new System.Windows.Forms.TextBox();
|
||||
this.cmbDatabase = new System.Windows.Forms.ComboBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.cmbDocVersion = new System.Windows.Forms.ComboBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.ofd = new System.Windows.Forms.OpenFileDialog();
|
||||
this.sc1 = new System.Windows.Forms.SplitContainer();
|
||||
this.tcXML = new System.Windows.Forms.TabControl();
|
||||
this.tpXML = new System.Windows.Forms.TabPage();
|
||||
this.tbXML = new System.Windows.Forms.TextBox();
|
||||
this.tpColorCoded = new System.Windows.Forms.TabPage();
|
||||
this.rtbXML = new System.Windows.Forms.RichTextBox();
|
||||
this.tabControl1 = new System.Windows.Forms.TabControl();
|
||||
this.tpHTML = new System.Windows.Forms.TabPage();
|
||||
this.wb = new System.Windows.Forms.WebBrowser();
|
||||
this.tpRaw = new System.Windows.Forms.TabPage();
|
||||
this.tbPROMS = new System.Windows.Forms.TextBox();
|
||||
this.tpStructure = new System.Windows.Forms.TabPage();
|
||||
this.tv = new System.Windows.Forms.TreeView();
|
||||
this.tpGrid = new System.Windows.Forms.TabPage();
|
||||
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
||||
this.tspb = new System.Windows.Forms.ToolStripProgressBar();
|
||||
this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.tmr = new System.Windows.Forms.Timer(this.components);
|
||||
this.panel1.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.sc1)).BeginInit();
|
||||
this.sc1.Panel1.SuspendLayout();
|
||||
this.sc1.Panel2.SuspendLayout();
|
||||
this.sc1.SuspendLayout();
|
||||
this.tcXML.SuspendLayout();
|
||||
this.tpXML.SuspendLayout();
|
||||
this.tpColorCoded.SuspendLayout();
|
||||
this.tabControl1.SuspendLayout();
|
||||
this.tpHTML.SuspendLayout();
|
||||
this.tpRaw.SuspendLayout();
|
||||
this.tpStructure.SuspendLayout();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Controls.Add(this.label1);
|
||||
this.panel1.Controls.Add(this.tbFileName);
|
||||
this.panel1.Controls.Add(this.panel2);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(954, 88);
|
||||
this.panel1.TabIndex = 0;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(23, 13);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "File";
|
||||
//
|
||||
// tbFileName
|
||||
//
|
||||
this.tbFileName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tbFileName.Location = new System.Drawing.Point(56, 6);
|
||||
this.tbFileName.Name = "tbFileName";
|
||||
this.tbFileName.Size = new System.Drawing.Size(692, 20);
|
||||
this.tbFileName.TabIndex = 0;
|
||||
this.tbFileName.Text = "H:\\Barakah Alarms\\1N2-OP-ARP-CS-0001_Rev_02_FINAL_Zipped_XML_20190804\\ARP-3442-10" +
|
||||
"01 CS CNMT Spray HDR Block VLV V0001 TRBL.xml";
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.Controls.Add(this.btnRun);
|
||||
this.panel2.Controls.Add(this.btnBrowse);
|
||||
this.panel2.Controls.Add(this.btnAll);
|
||||
this.panel2.Controls.Add(this.label2);
|
||||
this.panel2.Controls.Add(this.btnConvert);
|
||||
this.panel2.Controls.Add(this.label7);
|
||||
this.panel2.Controls.Add(this.tbServer);
|
||||
this.panel2.Controls.Add(this.cmbDatabase);
|
||||
this.panel2.Controls.Add(this.label4);
|
||||
this.panel2.Controls.Add(this.cmbDocVersion);
|
||||
this.panel2.Controls.Add(this.label6);
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panel2.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(954, 88);
|
||||
this.panel2.TabIndex = 9;
|
||||
//
|
||||
// btnRun
|
||||
//
|
||||
this.btnRun.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnRun.Location = new System.Drawing.Point(862, 3);
|
||||
this.btnRun.Name = "btnRun";
|
||||
this.btnRun.Size = new System.Drawing.Size(37, 24);
|
||||
this.btnRun.TabIndex = 13;
|
||||
this.btnRun.Text = "Run";
|
||||
this.btnRun.UseVisualStyleBackColor = true;
|
||||
this.btnRun.Click += new System.EventHandler(this.btnRun_Click);
|
||||
//
|
||||
// btnBrowse
|
||||
//
|
||||
this.btnBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnBrowse.Location = new System.Drawing.Point(758, 3);
|
||||
this.btnBrowse.Name = "btnBrowse";
|
||||
this.btnBrowse.Size = new System.Drawing.Size(72, 24);
|
||||
this.btnBrowse.TabIndex = 2;
|
||||
this.btnBrowse.Text = "Browse...";
|
||||
this.btnBrowse.UseVisualStyleBackColor = true;
|
||||
this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click);
|
||||
//
|
||||
// btnAll
|
||||
//
|
||||
this.btnAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnAll.Location = new System.Drawing.Point(799, 44);
|
||||
this.btnAll.Name = "btnAll";
|
||||
this.btnAll.Size = new System.Drawing.Size(37, 25);
|
||||
this.btnAll.TabIndex = 12;
|
||||
this.btnAll.Text = "All";
|
||||
this.btnAll.UseVisualStyleBackColor = true;
|
||||
this.btnAll.Click += new System.EventHandler(this.btnAll_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(396, 35);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(53, 13);
|
||||
this.label2.TabIndex = 4;
|
||||
this.label2.Text = "Database";
|
||||
//
|
||||
// btnConvert
|
||||
//
|
||||
this.btnConvert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnConvert.Location = new System.Drawing.Point(717, 44);
|
||||
this.btnConvert.Name = "btnConvert";
|
||||
this.btnConvert.Size = new System.Drawing.Size(76, 28);
|
||||
this.btnConvert.TabIndex = 11;
|
||||
this.btnConvert.Text = "Convert";
|
||||
this.btnConvert.UseVisualStyleBackColor = true;
|
||||
this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click);
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Location = new System.Drawing.Point(12, 35);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(38, 13);
|
||||
this.label7.TabIndex = 10;
|
||||
this.label7.Text = "Server";
|
||||
//
|
||||
// tbServer
|
||||
//
|
||||
this.tbServer.Location = new System.Drawing.Point(56, 32);
|
||||
this.tbServer.Name = "tbServer";
|
||||
this.tbServer.Size = new System.Drawing.Size(329, 20);
|
||||
this.tbServer.TabIndex = 9;
|
||||
//
|
||||
// cmbDatabase
|
||||
//
|
||||
this.cmbDatabase.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cmbDatabase.FormattingEnabled = true;
|
||||
this.cmbDatabase.Location = new System.Drawing.Point(455, 32);
|
||||
this.cmbDatabase.Name = "cmbDatabase";
|
||||
this.cmbDatabase.Size = new System.Drawing.Size(256, 21);
|
||||
this.cmbDatabase.TabIndex = 8;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(11, 61);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(75, 13);
|
||||
this.label4.TabIndex = 7;
|
||||
this.label4.Text = "Procedure Set";
|
||||
//
|
||||
// cmbDocVersion
|
||||
//
|
||||
this.cmbDocVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cmbDocVersion.FormattingEnabled = true;
|
||||
this.cmbDocVersion.Location = new System.Drawing.Point(92, 58);
|
||||
this.cmbDocVersion.Name = "cmbDocVersion";
|
||||
this.cmbDocVersion.Size = new System.Drawing.Size(619, 21);
|
||||
this.cmbDocVersion.TabIndex = 6;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(12, 9);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(23, 13);
|
||||
this.label6.TabIndex = 1;
|
||||
this.label6.Text = "File";
|
||||
//
|
||||
// sc1
|
||||
//
|
||||
this.sc1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.sc1.Location = new System.Drawing.Point(0, 88);
|
||||
this.sc1.Name = "sc1";
|
||||
//
|
||||
// sc1.Panel1
|
||||
//
|
||||
this.sc1.Panel1.Controls.Add(this.tcXML);
|
||||
//
|
||||
// sc1.Panel2
|
||||
//
|
||||
this.sc1.Panel2.Controls.Add(this.tabControl1);
|
||||
this.sc1.Size = new System.Drawing.Size(954, 392);
|
||||
this.sc1.SplitterDistance = 372;
|
||||
this.sc1.TabIndex = 1;
|
||||
//
|
||||
// tcXML
|
||||
//
|
||||
this.tcXML.Controls.Add(this.tpXML);
|
||||
this.tcXML.Controls.Add(this.tpColorCoded);
|
||||
this.tcXML.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tcXML.Location = new System.Drawing.Point(0, 0);
|
||||
this.tcXML.Name = "tcXML";
|
||||
this.tcXML.SelectedIndex = 0;
|
||||
this.tcXML.Size = new System.Drawing.Size(372, 392);
|
||||
this.tcXML.TabIndex = 2;
|
||||
//
|
||||
// tpXML
|
||||
//
|
||||
this.tpXML.Controls.Add(this.tbXML);
|
||||
this.tpXML.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpXML.Name = "tpXML";
|
||||
this.tpXML.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpXML.Size = new System.Drawing.Size(364, 366);
|
||||
this.tpXML.TabIndex = 1;
|
||||
this.tpXML.Text = "XML";
|
||||
this.tpXML.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbXML
|
||||
//
|
||||
this.tbXML.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tbXML.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.tbXML.HideSelection = false;
|
||||
this.tbXML.Location = new System.Drawing.Point(3, 3);
|
||||
this.tbXML.Multiline = true;
|
||||
this.tbXML.Name = "tbXML";
|
||||
this.tbXML.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.tbXML.Size = new System.Drawing.Size(358, 360);
|
||||
this.tbXML.TabIndex = 0;
|
||||
this.tbXML.TextChanged += new System.EventHandler(this.tbXML_TextChanged);
|
||||
//
|
||||
// tpColorCoded
|
||||
//
|
||||
this.tpColorCoded.Controls.Add(this.rtbXML);
|
||||
this.tpColorCoded.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpColorCoded.Name = "tpColorCoded";
|
||||
this.tpColorCoded.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpColorCoded.Size = new System.Drawing.Size(364, 366);
|
||||
this.tpColorCoded.TabIndex = 0;
|
||||
this.tpColorCoded.Text = "Color Coded";
|
||||
this.tpColorCoded.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// rtbXML
|
||||
//
|
||||
this.rtbXML.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.rtbXML.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.rtbXML.Location = new System.Drawing.Point(3, 3);
|
||||
this.rtbXML.Name = "rtbXML";
|
||||
this.rtbXML.Size = new System.Drawing.Size(358, 360);
|
||||
this.rtbXML.TabIndex = 1;
|
||||
this.rtbXML.Text = "";
|
||||
this.rtbXML.SelectionChanged += new System.EventHandler(this.rtbXML_SelectionChanged);
|
||||
this.rtbXML.TextChanged += new System.EventHandler(this.rtbXML_TextChanged);
|
||||
//
|
||||
// tabControl1
|
||||
//
|
||||
this.tabControl1.Controls.Add(this.tpHTML);
|
||||
this.tabControl1.Controls.Add(this.tpRaw);
|
||||
this.tabControl1.Controls.Add(this.tpStructure);
|
||||
this.tabControl1.Controls.Add(this.tpGrid);
|
||||
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tabControl1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tabControl1.Name = "tabControl1";
|
||||
this.tabControl1.SelectedIndex = 0;
|
||||
this.tabControl1.Size = new System.Drawing.Size(578, 392);
|
||||
this.tabControl1.TabIndex = 0;
|
||||
//
|
||||
// tpHTML
|
||||
//
|
||||
this.tpHTML.Controls.Add(this.wb);
|
||||
this.tpHTML.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpHTML.Name = "tpHTML";
|
||||
this.tpHTML.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpHTML.Size = new System.Drawing.Size(570, 366);
|
||||
this.tpHTML.TabIndex = 0;
|
||||
this.tpHTML.Text = "HTML";
|
||||
this.tpHTML.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// wb
|
||||
//
|
||||
this.wb.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.wb.Location = new System.Drawing.Point(3, 3);
|
||||
this.wb.MinimumSize = new System.Drawing.Size(20, 20);
|
||||
this.wb.Name = "wb";
|
||||
this.wb.Size = new System.Drawing.Size(564, 360);
|
||||
this.wb.TabIndex = 0;
|
||||
//
|
||||
// tpRaw
|
||||
//
|
||||
this.tpRaw.Controls.Add(this.tbPROMS);
|
||||
this.tpRaw.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpRaw.Name = "tpRaw";
|
||||
this.tpRaw.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpRaw.Size = new System.Drawing.Size(570, 366);
|
||||
this.tpRaw.TabIndex = 1;
|
||||
this.tpRaw.Text = "Raw Text";
|
||||
this.tpRaw.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tbPROMS
|
||||
//
|
||||
this.tbPROMS.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tbPROMS.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.tbPROMS.Location = new System.Drawing.Point(3, 3);
|
||||
this.tbPROMS.Multiline = true;
|
||||
this.tbPROMS.Name = "tbPROMS";
|
||||
this.tbPROMS.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.tbPROMS.Size = new System.Drawing.Size(564, 360);
|
||||
this.tbPROMS.TabIndex = 0;
|
||||
//
|
||||
// tpStructure
|
||||
//
|
||||
this.tpStructure.Controls.Add(this.tv);
|
||||
this.tpStructure.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpStructure.Name = "tpStructure";
|
||||
this.tpStructure.Size = new System.Drawing.Size(570, 366);
|
||||
this.tpStructure.TabIndex = 2;
|
||||
this.tpStructure.Text = "Structure";
|
||||
this.tpStructure.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tv
|
||||
//
|
||||
this.tv.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tv.Location = new System.Drawing.Point(0, 0);
|
||||
this.tv.Name = "tv";
|
||||
this.tv.Size = new System.Drawing.Size(570, 366);
|
||||
this.tv.TabIndex = 0;
|
||||
//
|
||||
// tpGrid
|
||||
//
|
||||
this.tpGrid.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpGrid.Name = "tpGrid";
|
||||
this.tpGrid.Size = new System.Drawing.Size(570, 366);
|
||||
this.tpGrid.TabIndex = 3;
|
||||
this.tpGrid.Text = "Grid";
|
||||
this.tpGrid.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// statusStrip1
|
||||
//
|
||||
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.tspb,
|
||||
this.tsslStatus});
|
||||
this.statusStrip1.Location = new System.Drawing.Point(0, 480);
|
||||
this.statusStrip1.Name = "statusStrip1";
|
||||
this.statusStrip1.Size = new System.Drawing.Size(954, 22);
|
||||
this.statusStrip1.TabIndex = 2;
|
||||
this.statusStrip1.Text = "statusStrip1";
|
||||
this.statusStrip1.Click += new System.EventHandler(this.statusStrip1_Click);
|
||||
//
|
||||
// tspb
|
||||
//
|
||||
this.tspb.Name = "tspb";
|
||||
this.tspb.Size = new System.Drawing.Size(300, 16);
|
||||
this.tspb.Visible = false;
|
||||
//
|
||||
// tsslStatus
|
||||
//
|
||||
this.tsslStatus.Name = "tsslStatus";
|
||||
this.tsslStatus.Size = new System.Drawing.Size(39, 17);
|
||||
this.tsslStatus.Text = "Ready";
|
||||
this.tsslStatus.Click += new System.EventHandler(this.tsslStatus_Click);
|
||||
//
|
||||
// tmr
|
||||
//
|
||||
this.tmr.Interval = 2000;
|
||||
this.tmr.Tick += new System.EventHandler(this.tmr_Tick);
|
||||
//
|
||||
// frmConvertAlarms
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(954, 502);
|
||||
this.Controls.Add(this.sc1);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Controls.Add(this.statusStrip1);
|
||||
this.Name = "frmConvertAlarms";
|
||||
this.Text = "Convert Alarms";
|
||||
this.Load += new System.EventHandler(this.frmConvertAlarms_Load);
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.panel2.PerformLayout();
|
||||
this.sc1.Panel1.ResumeLayout(false);
|
||||
this.sc1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.sc1)).EndInit();
|
||||
this.sc1.ResumeLayout(false);
|
||||
this.tcXML.ResumeLayout(false);
|
||||
this.tpXML.ResumeLayout(false);
|
||||
this.tpXML.PerformLayout();
|
||||
this.tpColorCoded.ResumeLayout(false);
|
||||
this.tabControl1.ResumeLayout(false);
|
||||
this.tpHTML.ResumeLayout(false);
|
||||
this.tpRaw.ResumeLayout(false);
|
||||
this.tpRaw.PerformLayout();
|
||||
this.tpStructure.ResumeLayout(false);
|
||||
this.statusStrip1.ResumeLayout(false);
|
||||
this.statusStrip1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Button btnBrowse;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox tbFileName;
|
||||
private System.Windows.Forms.OpenFileDialog ofd;
|
||||
private System.Windows.Forms.SplitContainer sc1;
|
||||
private System.Windows.Forms.TextBox tbXML;
|
||||
private System.Windows.Forms.WebBrowser wb;
|
||||
private System.Windows.Forms.TextBox tbPROMS;
|
||||
private System.Windows.Forms.StatusStrip statusStrip1;
|
||||
private System.Windows.Forms.ToolStripStatusLabel tsslStatus;
|
||||
private System.Windows.Forms.RichTextBox rtbXML;
|
||||
private System.Windows.Forms.TabControl tcXML;
|
||||
private System.Windows.Forms.TabPage tpXML;
|
||||
private System.Windows.Forms.TabPage tpColorCoded;
|
||||
private System.Windows.Forms.TabControl tabControl1;
|
||||
private System.Windows.Forms.TabPage tpHTML;
|
||||
private System.Windows.Forms.TabPage tpRaw;
|
||||
private System.Windows.Forms.TabPage tpStructure;
|
||||
private System.Windows.Forms.TreeView tv;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.TextBox tbServer;
|
||||
private System.Windows.Forms.ComboBox cmbDatabase;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.ComboBox cmbDocVersion;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.Button btnConvert;
|
||||
private System.Windows.Forms.Button btnAll;
|
||||
private System.Windows.Forms.TabPage tpGrid;
|
||||
private System.Windows.Forms.Button btnRun;
|
||||
private System.Windows.Forms.ToolStripProgressBar tspb;
|
||||
private System.Windows.Forms.Timer tmr;
|
||||
}
|
||||
}
|
||||
|
886
PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.cs
Normal file
886
PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.cs
Normal file
@@ -0,0 +1,886 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
using System.Text.RegularExpressions;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using log4net;
|
||||
using Volian.Controls.Library;
|
||||
using C1.Win.C1FlexGrid;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace ConvertAlarms
|
||||
{
|
||||
public partial class frmConvertAlarms : Form
|
||||
{
|
||||
public frmConvertAlarms()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
private void SetDatabaseConnection()
|
||||
{
|
||||
Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.SelectedText);
|
||||
}
|
||||
private void btnBrowse_Click(object sender, EventArgs e)
|
||||
{
|
||||
FileInfo fi = new FileInfo(tbFileName.Text);
|
||||
ofd.InitialDirectory = fi.DirectoryName;
|
||||
ofd.FileName = fi.Name;
|
||||
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||
{
|
||||
tbFileName.Text = ofd.FileName;
|
||||
ProcessXML();
|
||||
}
|
||||
}
|
||||
private void ProcessXML()
|
||||
{
|
||||
string fileName = tbFileName.Text;
|
||||
ProcessXmlFile(fileName);
|
||||
}
|
||||
private void ProcessXmlFile(string fileName)
|
||||
{
|
||||
UpdateHTML = false;
|
||||
tbXML.Clear();
|
||||
UpdateHTML = true;
|
||||
XmlDocument xDoc = new XmlDocument();
|
||||
xDoc.Load(fileName);
|
||||
XmlElement xe1 = xDoc.DocumentElement;
|
||||
XmlElement xe2 = xe1.ChildNodes[0] as XmlElement;
|
||||
XmlElement xe3 = xe2.ChildNodes[0] as XmlElement;
|
||||
XmlElement xe4 = (xe1.ChildNodes[1] as XmlElement).ChildNodes[0] as XmlElement;
|
||||
RelatedFunction = xe3.Attributes["relatedFunction"].Value;
|
||||
PNSNo = xe3.Attributes["PNSNo"].Value;
|
||||
ShortName = xe3.Attributes["shortName"].Value;
|
||||
FullName = xe3.Attributes["fullName"].Value;
|
||||
RevisionNumber = xe3.Attributes["revisionNumber"].Value;
|
||||
Priority = xe3.Attributes["priority"].Value;
|
||||
Number = xe3.Attributes["number"].Value;
|
||||
Responsibility = xe4.Attributes["implementor"].Value;
|
||||
ApSystem = GetSystem(xe3);
|
||||
XmlNode xn = xDoc.DocumentElement.LastChild.LastChild.LastChild;
|
||||
string html = GetHtml(xn);
|
||||
tbXML.Text = html;
|
||||
}
|
||||
private static string _RelatedFunction;
|
||||
public static string RelatedFunction
|
||||
{
|
||||
get { return _RelatedFunction; }
|
||||
set { _RelatedFunction = value; }
|
||||
}
|
||||
private static string _PNSNo;
|
||||
public static string PNSNo
|
||||
{
|
||||
get { return _PNSNo; }
|
||||
set { _PNSNo = value; }
|
||||
}
|
||||
private static string _fullName;
|
||||
public static string FullName
|
||||
{
|
||||
get { return _fullName; }
|
||||
set { _fullName = value; }
|
||||
}
|
||||
private static string _Number;
|
||||
public static string Number
|
||||
{
|
||||
get { return frmConvertAlarms._Number; }
|
||||
set { frmConvertAlarms._Number = value; }
|
||||
}
|
||||
private static string _RevisionNumber;
|
||||
public static string RevisionNumber
|
||||
{
|
||||
get { return frmConvertAlarms._RevisionNumber; }
|
||||
set { frmConvertAlarms._RevisionNumber = value; }
|
||||
}
|
||||
private static string _Priority;
|
||||
public static string Priority
|
||||
{
|
||||
get { return frmConvertAlarms._Priority; }
|
||||
set { frmConvertAlarms._Priority = value; }
|
||||
}
|
||||
private static string Responsibility;
|
||||
public static string Responsibility1
|
||||
{
|
||||
get { return frmConvertAlarms.Responsibility; }
|
||||
set { frmConvertAlarms.Responsibility = value; }
|
||||
}
|
||||
private static string _shortName;
|
||||
public static string ShortName
|
||||
{
|
||||
get { return _shortName; }
|
||||
set { _shortName = value; }
|
||||
}
|
||||
private static string _system;
|
||||
public static string ApSystem
|
||||
{
|
||||
get { return _system; }
|
||||
set { _system = value; }
|
||||
}
|
||||
private static string _MyFileName;
|
||||
|
||||
public static string MyFileName
|
||||
{
|
||||
get { return frmConvertAlarms._MyFileName; }
|
||||
set { frmConvertAlarms._MyFileName = value; }
|
||||
}
|
||||
private static string GetHtml(XmlNode xn)
|
||||
{
|
||||
XmlNode pr = xn.PreviousSibling;
|
||||
int i = 0;
|
||||
string html = xn.Attributes["content"].Value;
|
||||
//Console.WriteLine(@"{0} ""{1}""", i++, html);
|
||||
if (xn != pr)
|
||||
{
|
||||
while (pr != null && pr.Name == "NoteInstruction")
|
||||
{
|
||||
string html2 = pr.Attributes["content"].Value;
|
||||
//Console.WriteLine(@"{0} ""{1}""", i++, html2);
|
||||
html = MergeHTML(html2, html);
|
||||
//Console.WriteLine(@"{0} ""{1}""", -1, html);
|
||||
pr = pr.PreviousSibling;
|
||||
}
|
||||
}
|
||||
return html;
|
||||
}
|
||||
|
||||
private static string MergeHTML(string part1, string part2)
|
||||
{
|
||||
part1 = part1.Replace("</body></html", "");
|
||||
part2 = Regex.Replace(part2, "^.*<body[^<>]*>", "", RegexOptions.Singleline);
|
||||
//part2 = part2.Substring(part2.IndexOf("<p"));
|
||||
return part1 + part2;
|
||||
}
|
||||
private void htmlChanged(string html)
|
||||
{
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(html.Replace("\u2022", "•"));
|
||||
MemoryStream ms = new MemoryStream();
|
||||
ms.Write(bytes, 0, bytes.Length);
|
||||
ms.Position = 0;
|
||||
wb.DocumentStream = ms;
|
||||
}
|
||||
private string _HtmlPrefix = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">";
|
||||
public string HtmlPrefix
|
||||
{
|
||||
get { return _HtmlPrefix; }
|
||||
set { _HtmlPrefix = value; }
|
||||
}
|
||||
private string prcSerialNoFldName;
|
||||
private string prcSerialNoValue;
|
||||
private string prcTitleFldName;
|
||||
private string prcTitleValue;
|
||||
private string prcNumberFldName;
|
||||
private string prcNumberValue;
|
||||
private string prcSourceFldName;
|
||||
private string prcSourceValue;
|
||||
private string prcSetpointFldName;
|
||||
private string prcSetpointValue;
|
||||
|
||||
//private Regex myReg01 = new Regex("<br /></span>", RegexOptions.Compiled);
|
||||
//private Regex myReg02 = new Regex("</span><br />", RegexOptions.Compiled);
|
||||
//private Regex myReg03 = new Regex("<span [^<>]+>", RegexOptions.Compiled);
|
||||
//private Regex myReg04 = new Regex("</span *>", RegexOptions.Compiled);
|
||||
//private Regex myReg05 = new Regex("</p>[ \r\n]+<p [^<>]+>", RegexOptions.Compiled);
|
||||
//private Regex myReg06 = new Regex("<p [^<>]+>", RegexOptions.Compiled);
|
||||
////private Regex myReg07 = new Regex(@"<br /> +(?=\w)", RegexOptions.Compiled);
|
||||
//private Regex myReg08 = new Regex(@"<br />[ \r\n]*\t +", RegexOptions.Compiled);
|
||||
//private Regex myReg09 = new Regex(@"<br />[ \t\r\n]+\[", RegexOptions.Compiled);
|
||||
//private Regex myReg10 = new Regex("</p *>", RegexOptions.Compiled);
|
||||
//private Regex myReg11 = new Regex(@"] *\t{4,10}", RegexOptions.Compiled);
|
||||
//private Regex myReg12 = new Regex("<br ?/>\t+(?=None)", RegexOptions.Compiled);
|
||||
//private Regex myReg13 = new Regex("<br ?/>\t+(?![[\\u2022]|[1-9])", RegexOptions.Compiled);
|
||||
//private Regex myReg14 = new Regex("<br />", RegexOptions.Compiled);
|
||||
//private Regex myReg15 = new Regex("\t\t+", RegexOptions.Compiled);
|
||||
//private Regex myReg16 = new Regex("\r\n +", RegexOptions.Compiled);
|
||||
//private Regex myReg17 = new Regex("(\r\n){2,}", RegexOptions.Compiled);
|
||||
//private Regex myReg18 = new Regex("<table [^<>]+>", RegexOptions.Compiled);
|
||||
////private Regex myReg19 = new Regex("(?<!\\\\line )\r\n\t(?!([[\\u2022]|None|[1-9]))", RegexOptions.Compiled);
|
||||
//private Regex myReg20 = new Regex("(?<!\\\\line )\r\n\t(?!([[\\u2022]|None|[1-9]))", RegexOptions.Compiled);
|
||||
//private Regex myReg21 = new Regex("<table>[^<>]*<tr[^<>]*>[^<>]*<td[^<>]*>[^<>]*<p>(NOTE|CAUTION|WARNING)([^<>]+?)</p>[^<>]*</td>[^<>]*</tr>[^<>]*</table>", RegexOptions.Compiled & RegexOptions.Singleline );
|
||||
//private Regex myReg22 = new Regex("\\.\\.\\.+", RegexOptions.Compiled);
|
||||
private void XMLChanged(string xml)
|
||||
{
|
||||
Application.DoEvents();
|
||||
xml = "<?xml version='1.0' encoding='UTF-8'?>\n" + xml;
|
||||
xml = xml.Replace(HtmlPrefix, "");
|
||||
//xml = myReg01.Replace(xml, "<br /> </span>");
|
||||
//xml = myReg02.Replace(xml, "</span><br /> ");
|
||||
//xml = myReg03.Replace(xml, "");// Remove Style Span start
|
||||
//xml = myReg04.Replace(xml, "");//
|
||||
//xml = myReg05.Replace(xml, "<br />\r\n");
|
||||
//xml = myReg06.Replace(xml, "<br />\r\n<p>");
|
||||
////xml = myReg07.Replace(xml, " ");//New
|
||||
//xml = myReg08.Replace(xml, " ");//New
|
||||
//xml = myReg09.Replace(xml, @"\line [");
|
||||
//xml = myReg10.Replace(xml, "</p>");
|
||||
//xml = myReg11.Replace(xml, "]\r\n");
|
||||
//xml = myReg12.Replace(xml, "\r\n\t");
|
||||
//xml = myReg13.Replace(xml, " ");
|
||||
//xml = myReg14.Replace(xml, "\r\n");
|
||||
//xml = myReg15.Replace(xml, " ");
|
||||
//xml = myReg16.Replace(xml, "\r\n");
|
||||
//xml = myReg17.Replace(xml, "\r\n");
|
||||
//xml = myReg18.Replace(xml, "<table>");
|
||||
////xml = myReg19.Replace(xml, "{SPACE}");
|
||||
//xml = myReg20.Replace(xml, " ");
|
||||
//xml = myReg21.Replace(xml, "<p>\r\n$1$2\r\n</p>");
|
||||
//xml = myReg22.Replace(xml, ""); //Remove multiple periods
|
||||
xml = Regex.Replace(xml, "<br /></span>", "<br /> </span>");
|
||||
xml = Regex.Replace(xml, "</span><br />", "</span><br /> ");
|
||||
xml = Regex.Replace(xml, "<span [^<>]+>", "");// Remove Style Span start
|
||||
xml = Regex.Replace(xml, "</span *>", "");//
|
||||
xml = Regex.Replace(xml, "</p>[ \r\n]+<p [^<>]+>", "<br />\r\n");
|
||||
xml = Regex.Replace(xml, "<p [^<>]+>", "<br />\r\n<p>");
|
||||
// xml = Regex.Replace(xml, @"<br /> +(?=\w)", " ");//New
|
||||
xml = Regex.Replace(xml, @"<br />[ \r\n]*\t (?! +[[\\u2022]| +[1-9]| +[A-Z][.])", " ");//New
|
||||
//xml = Regex.Replace(xml, @"<br />[ \r\n]*\t +", " ");//New
|
||||
xml = Regex.Replace(xml, @"<br />[ \t\r\n]+\[", @"\line [");
|
||||
xml = Regex.Replace(xml, "</p *>", "</p>");
|
||||
xml = Regex.Replace(xml, @"] *\t{4,10}", "]\r\n");
|
||||
xml = Regex.Replace(xml, "<br ?/>\t+(?=None)", "\r\n\t");
|
||||
xml = Regex.Replace(xml, "<br ?/>\t+(?![[\\u2022]|[1-9]|[A-Z]\\.)", " ");
|
||||
xml = Regex.Replace(xml, "<br />", "\r\n");
|
||||
xml = Regex.Replace(xml, "\t\t+", " ");
|
||||
xml = Regex.Replace(xml, "\r\n +", "\r\n");
|
||||
xml = Regex.Replace(xml, "(\r\n){2,}", "\r\n");
|
||||
xml = Regex.Replace(xml, "<table [^<>]+>", "<table>");
|
||||
//xml = Regex.Replace(xml, "(?<!\\\\line )\r\n\t(?!([[\\u2022]|None|[1-9]))", "{SPACE}");
|
||||
xml = Regex.Replace(xml, "(?<!\\\\line )\r\n\t(?!([[\\u2022]|None|[1-9]))", " ");
|
||||
xml = Regex.Replace(xml, "<table>[^<>]*<tr[^<>]*>[^<>]*<td[^<>]*>[^<>]*<p>(NOTE|CAUTION|WARNING)([^<>]+?)</p>[^<>]*</td>[^<>]*</tr>[^<>]*</table>", "<p$1>\r\n$1$2\r\n</p$1>", RegexOptions.Singleline);
|
||||
xml = Regex.Replace(xml, "\\.\\.\\.+", ""); //Remove multiple periods
|
||||
//xml = Regex.Replace(xml,"
|
||||
//xml = xml.Replace(">", "");
|
||||
Application.DoEvents();
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(xml);
|
||||
MemoryStream ms = new MemoryStream();
|
||||
ms.Write(bytes, 0, bytes.Length);
|
||||
ms.Position = 0;
|
||||
XmlDocument xDoc2 = new XmlDocument();
|
||||
xDoc2.Load(ms);
|
||||
int iStart = 1;
|
||||
XmlNode xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[0];
|
||||
if (!xn3.OuterXml.Contains("table"))
|
||||
{
|
||||
iStart = 2;
|
||||
xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[1];
|
||||
}
|
||||
prcSerialNoFldName = GetProcInfo(xn3, 0, 0, 0);
|
||||
prcSerialNoValue = GetProcInfo(xn3, 0, 1, 0);
|
||||
SerialNo = int.Parse(prcSerialNoValue);
|
||||
prcTitleFldName = GetProcInfo(xn3, 1, 0, 0);
|
||||
prcTitleValue = GetProcInfo(xn3, 1, 1, 0);
|
||||
prcNumberFldName = GetProcInfo(xn3, 2, 0, 0);
|
||||
prcNumberValue = GetProcInfo(xn3, 2, 1, 0);
|
||||
prcSourceFldName = GetProcInfo(xn3, 3, 0, 0);
|
||||
prcSourceValue = GetProcInfo(xn3, 3, 1, 0);
|
||||
prcSetpointFldName = GetProcInfo(xn3, 4, 0, 0);
|
||||
prcSetpointValue = GetProcInfo(xn3, 4, 1, 0);
|
||||
Console.WriteLine("\"FromProcedures\"\t\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t\"{4}\"\t\"{5}\"\t\"{6}\"\t\"{7}\"\t\"{8}\"\t\"{9}\"\t\"{10}\"\t\"{11}\"\t\"{12}\"\t\"{13}\"\t\"{14}\""
|
||||
, PNSNo.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, ApSystem.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, FullName.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, ShortName.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, RelatedFunction.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, "Rev" + RevisionNumber.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, Priority.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, Number.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, prcNumberValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, prcSerialNoValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, prcSetpointValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, prcSourceValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, prcTitleValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, Responsibility.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
|
||||
, MyFileName);
|
||||
ProcNumber = prcNumberValue;
|
||||
ProcTitle = prcTitleValue;
|
||||
// Skip First Node
|
||||
UpdateHTML = false;
|
||||
tbPROMS.Clear();
|
||||
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSerialNoFldName, prcSerialNoValue));
|
||||
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcTitleFldName, prcTitleValue));
|
||||
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcNumberFldName, prcNumberValue));
|
||||
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSourceFldName, prcSourceValue));
|
||||
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSetpointFldName, prcSetpointValue));
|
||||
StringBuilder sbAllText = new StringBuilder();
|
||||
for (int i = iStart; i < xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes.Count; i++)
|
||||
{
|
||||
XmlNode xn2 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[i];
|
||||
if (xn2.OuterXml != ">\r\n" && xn2.OuterXml != "<p></p>")
|
||||
{
|
||||
sbAllText.Append("\r\n" + xn2.OuterXml);
|
||||
//Console.WriteLine("--{0}--|{1}|", i, IndentifySpecialCharacters(xn2.OuterXml));
|
||||
}
|
||||
}
|
||||
tbPROMS.AppendText(sbAllText.ToString().Replace(" ", "\xB7"));
|
||||
//SaveTree(sbAllText.ToString(), prcNumberValue, prcTitleValue);
|
||||
ProcTextAll = sbAllText.ToString();
|
||||
UpdateHTML = true;
|
||||
}
|
||||
String ProcTextAll;
|
||||
int SerialNo;
|
||||
String ProcNumber;
|
||||
String ProcTitle;
|
||||
TreeNode lastNode = null;
|
||||
private void SaveTree(string text, string procNumber, string procTitle)
|
||||
{
|
||||
tv.Nodes.Clear();
|
||||
MemoryStream ms = GetMemoryStream(text);
|
||||
using (TextReader tr = new StreamReader(ms))
|
||||
{
|
||||
Dictionary<int, TreeNode> lookup = new Dictionary<int, TreeNode>();
|
||||
lookup.Add(0, tv.Nodes.Add(string.Format("{0} - {1}", procNumber, procTitle)));
|
||||
int level = 0;
|
||||
int lastLevel = 0;
|
||||
int lastIndent = 0;
|
||||
int extra = 0;
|
||||
bool textContinued = false;
|
||||
string lastTab = "";
|
||||
Queue<string> enQueue = null;
|
||||
Queue<string> deQueue = null;
|
||||
bool isTable = false;
|
||||
while (tr.Peek() >= 0 || deQueue != null)
|
||||
{
|
||||
string lineText;
|
||||
if (deQueue != null)
|
||||
{
|
||||
extra = 1;
|
||||
lineText = deQueue.Dequeue();
|
||||
if (deQueue.Count == 0)
|
||||
deQueue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
extra = 0;
|
||||
lineText = tr.ReadLine();
|
||||
if (lineText.StartsWith("<table>"))
|
||||
{
|
||||
while (!lineText.Contains("</table>"))
|
||||
{
|
||||
lineText += " " + tr.ReadLine();
|
||||
lineText = Regex.Replace(lineText, "</table>.*", "</table>");
|
||||
}
|
||||
XmlDocument xd = new XmlDocument();
|
||||
xd.LoadXml(lineText);
|
||||
LoadTable2(xd.DocumentElement, null, 0);
|
||||
isTable = true;
|
||||
//StringBuilder sbxml= new StringBuilder();
|
||||
//using(StringWriter sw = new StringWriter(sbxml))
|
||||
// _MyFlexGrid.WriteXml(sw);
|
||||
//using(StringReader sr= new StringReader(sbxml.ToString()))
|
||||
// _MyFlexGrid.ReadXml(sr);
|
||||
//Application.DoEvents();
|
||||
}
|
||||
else if (lineText == "NOTE" || lineText == "CAUTION" || lineText == "Warning")
|
||||
enQueue = new Queue<string>();
|
||||
}
|
||||
lineText = Regex.Replace(lineText, "<[^<>]+>", "");
|
||||
textContinued = false;
|
||||
if (lineText.Replace("\t", "") != "")
|
||||
{
|
||||
Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|\u2022|\u25CB)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline);
|
||||
string tab = m.Groups[2].Value;
|
||||
int indent = m.Groups[1].Value.Length;
|
||||
//if (lineText.Contains("THEN·GO·TO·1N2-OP-EOP-XX-0002"))
|
||||
// Console.WriteLine("here");
|
||||
if (isTable)
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
if (indent == 0 && tab.EndsWith(".0")) // High Level Step
|
||||
{
|
||||
level = 1;
|
||||
if (deQueue == null && enQueue != null)
|
||||
{
|
||||
deQueue = enQueue;
|
||||
enQueue = null;
|
||||
}
|
||||
}
|
||||
else if (Regex.IsMatch(tab, "[1-9][0-9]*[.0-9]*")) // Substep
|
||||
{
|
||||
level = 2;
|
||||
if (deQueue == null && enQueue != null)
|
||||
{
|
||||
deQueue = enQueue;
|
||||
enQueue = null;
|
||||
}
|
||||
}
|
||||
else if (tab == "") // Paragraph
|
||||
{
|
||||
if (Regex.IsMatch(lineText, "(NOTE|NOTES|CAUTION|CAUTIONS|WARNING|WARNINGS)"))
|
||||
extra = 0;
|
||||
else
|
||||
{
|
||||
lastNode.Text += " " + lineText.TrimStart("\r\n \t".ToCharArray());
|
||||
//Console.WriteLine("maybe continue '{0}'", lineText);
|
||||
textContinued = true;
|
||||
}
|
||||
level = lastLevel + 1;
|
||||
}
|
||||
else if (tab == "\u2022")//bullet
|
||||
level = indent + 2;
|
||||
else if (tab == "\u25CB")//bullet
|
||||
level = indent + 3;
|
||||
if (level < lastLevel)
|
||||
while (level < lastLevel) lookup.Remove(lastLevel--);
|
||||
string txt = string.Format("{0}|{1}||{2}", m.Groups[1].Value, m.Groups[2].Value, m.Groups[4].Value);
|
||||
if (txt == "|||") txt = lineText;
|
||||
if (enQueue == null)
|
||||
{
|
||||
if (!textContinued && !isTable)
|
||||
{
|
||||
if (level > lookup.Count - extra) extra = 0;
|
||||
//if (level + extra - 1 == lookup.Count)
|
||||
// Console.WriteLine("Problems {0}, {1}", procNumber, txt);
|
||||
else if (lookup.Count <= level)
|
||||
lookup.Add(level + extra, lookup[level + extra - 1].Nodes.Add(txt));
|
||||
else
|
||||
lookup[level + extra] = lookup[level + extra - 1].Nodes.Add(txt);
|
||||
lastNode = lookup[level + extra];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
enQueue.Enqueue(lineText);
|
||||
}
|
||||
lastTab = tab;
|
||||
lastLevel = level;
|
||||
lastIndent = indent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private ItemInfo FindPrevious(SortedDictionary<int, ItemInfo> dicSerialNo, int serialNo)
|
||||
{
|
||||
ItemInfo lastItem = null;
|
||||
foreach (int serno in dicSerialNo.Keys)
|
||||
{
|
||||
if (serno > serialNo)
|
||||
return lastItem;
|
||||
lastItem = dicSerialNo[serno];
|
||||
}
|
||||
return lastItem;
|
||||
}
|
||||
private bool runOne = true;
|
||||
private static MemoryStream GetMemoryStream(string text)
|
||||
{
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(text);
|
||||
MemoryStream ms = new MemoryStream(bytes);
|
||||
ms.Position = 0;
|
||||
return ms;
|
||||
}
|
||||
private string GetProcInfo(XmlNode xn3, int p1, int p2, int p3)
|
||||
{
|
||||
if (xn3.OuterXml == "<p></p>") xn3 = xn3.NextSibling;
|
||||
return xn3.ChildNodes[p1].ChildNodes[p2].ChildNodes[p3].ChildNodes[0].Value.Trim("\r\n ".ToCharArray());
|
||||
}
|
||||
private bool _UpdateHTML = true;
|
||||
public bool UpdateHTML
|
||||
{
|
||||
get { return _UpdateHTML; }
|
||||
set { _UpdateHTML = value; }
|
||||
}
|
||||
private string IndentifySpecialCharacters(string xml)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
string txt = Regex.Replace(xml, "<span[^<>]+>", "");
|
||||
foreach (char c in txt)
|
||||
{
|
||||
if (((int)c) < 32 || ((int)c) > 256)
|
||||
sb.Append(string.Format("[x{0:X4}]", (int)c));
|
||||
else
|
||||
sb.Append(c == ' ' ? '\xb7' : c);
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
private void btnRun_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessXML();
|
||||
}
|
||||
Regex regColorCode = new Regex(@"(\<[^<>]+\>)([^<>]*)", RegexOptions.Singleline);
|
||||
Regex regColorCodeText = new Regex("(\t*)([^\t]*)", RegexOptions.Singleline);
|
||||
private void ColorCoded(string str)
|
||||
{
|
||||
rtbXML.Clear();
|
||||
Color fColor = Color.PaleTurquoise;
|
||||
Color fNext = Color.PaleTurquoise;
|
||||
foreach (Match m in regColorCode.Matches(str))
|
||||
{
|
||||
string fmt = m.Groups[1].Value;
|
||||
string txt = m.Groups[2].Value;
|
||||
if (fmt.StartsWith("<table"))
|
||||
fNext = fColor = Color.PaleGreen;
|
||||
else if (fmt == "</table>")
|
||||
fNext = Color.PaleTurquoise;
|
||||
else if (fmt == "<br />")
|
||||
fColor = Color.PeachPuff;
|
||||
else if (fmt == "</p>")
|
||||
fColor = Color.LightPink;
|
||||
AddToXML(fmt, fColor);
|
||||
fColor = fNext;
|
||||
foreach (Match mm in regColorCodeText.Matches(txt))
|
||||
{
|
||||
string tabs = mm.Groups[1].Value;
|
||||
string nontabs = mm.Groups[2].Value;
|
||||
AddToXML(tabs, Color.Khaki);
|
||||
AddToXML(nontabs, Color.Yellow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddToXML(string txt, Color fColor)
|
||||
{
|
||||
if (txt == "") return;
|
||||
rtbXML.SelectionStart = rtbXML.TextLength;
|
||||
rtbXML.SelectionBackColor = fColor;
|
||||
rtbXML.SelectedText = txt;
|
||||
}
|
||||
private void frmConvertAlarms_Load(object sender, EventArgs e)
|
||||
{
|
||||
LoadSettings();
|
||||
SetEventHandlers();
|
||||
_MyFlexGrid = new VlnFlexGrid();
|
||||
tpGrid.Controls.Add(_MyFlexGrid);
|
||||
string str = AutoFolder;
|
||||
if (str != null && str.Length > 5)
|
||||
{
|
||||
tmr.Enabled = true;
|
||||
}
|
||||
}
|
||||
private void SetEventHandlers()
|
||||
{
|
||||
tbFileName.TextChanged += tbFileName_TextChanged;
|
||||
Move += frmConvertAlarms_Move;
|
||||
Resize += frmConvertAlarms_Resize;
|
||||
sc1.SplitterMoved += sc1_SplitterMoved;
|
||||
//sc2.SplitterMoved += sc2_SplitterMoved;
|
||||
tbServer.TextChanged += tbServer_TextChanged;
|
||||
cmbDatabase.TextChanged += cmbDatabase_TextChanged;
|
||||
cmbDatabase.Click += cmbDatabase_Click;
|
||||
cmbDocVersion.TextChanged += cmbDocVersion_TextChanged;
|
||||
//BuildTableCombo();
|
||||
//BuildProcedureSetCombo();
|
||||
}
|
||||
|
||||
void cmbDatabase_Click(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.Database = cmbDatabase.Text;
|
||||
Properties.Settings.Default.Save();
|
||||
BuildProcedureSetCombo();
|
||||
}
|
||||
|
||||
private void BuildProcedureSetCombo()
|
||||
{
|
||||
DocVersionInfoList dvil = DocVersionInfoList.Get();
|
||||
cmbDocVersion.DataSource = dvil;
|
||||
cmbDocVersion.DisplayMember = "SearchDVPath";
|
||||
cmbDocVersion.ValueMember = "VersionId";
|
||||
}
|
||||
|
||||
private void cmbDocVersion_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.ProcedureSet = (int)cmbDocVersion.SelectedValue;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
|
||||
private void cmbDatabase_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.Database = cmbDatabase.Text;
|
||||
Properties.Settings.Default.Save();
|
||||
BuildProcedureSetCombo();
|
||||
}
|
||||
|
||||
private void tbServer_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.SqlServer = tbServer.Text;
|
||||
Properties.Settings.Default.Save();
|
||||
string db = cmbDatabase.Text;
|
||||
try
|
||||
{
|
||||
BuildDatabaseCombo();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
tsslStatus.Text = ex.Message;
|
||||
}
|
||||
}
|
||||
|
||||
private void BuildDatabaseCombo()
|
||||
{
|
||||
string tmp = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, "MASTER");
|
||||
SqlConnection cn = new SqlConnection(tmp);
|
||||
cn.Open();
|
||||
// SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn);
|
||||
//SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn);
|
||||
SqlDataAdapter da = new SqlDataAdapter("select name, 'Approval' functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn);
|
||||
da.SelectCommand.CommandTimeout = 300; // 300 sec timeout
|
||||
DataSet ds = new DataSet();
|
||||
try
|
||||
{
|
||||
da.Fill(ds);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message);
|
||||
throw (new Exception("Cannot Load Data List", ex));
|
||||
}
|
||||
cn.Close();
|
||||
//System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip();
|
||||
//cms.Items.Add("Choose Database");
|
||||
//System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem;
|
||||
//tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink;
|
||||
//tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText);
|
||||
//tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold);
|
||||
foreach (DataRow dr in ds.Tables[0].Rows)
|
||||
{
|
||||
if (dr["functionality"].ToString() == "Approval")
|
||||
cmbDatabase.Items.Add(dr["name"].ToString());
|
||||
}
|
||||
}
|
||||
void frmConvertAlarms_Resize(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.Size = Size;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
void frmConvertAlarms_Move(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.Location = Location;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
void tbFileName_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.FileName = tbFileName.Text;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
private void sc1_SplitterMoved(object sender, SplitterEventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.Split1 = sc1.SplitterDistance;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
private void LoadSettings()
|
||||
{
|
||||
Size = Properties.Settings.Default.Size;
|
||||
Location = Properties.Settings.Default.Location;
|
||||
if (Properties.Settings.Default.FileName != null && Properties.Settings.Default.FileName != "")
|
||||
{
|
||||
FileInfo fi = new FileInfo(Properties.Settings.Default.FileName);
|
||||
tbFileName.Text = fi.FullName;
|
||||
}
|
||||
sc1.SplitterDistance = Properties.Settings.Default.Split1;
|
||||
tbServer.Text = Properties.Settings.Default.SqlServer;
|
||||
cmbDatabase.Text = Properties.Settings.Default.Database;
|
||||
try
|
||||
{
|
||||
BuildDatabaseCombo();
|
||||
Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.Text);
|
||||
BuildProcedureSetCombo();
|
||||
cmbDocVersion.SelectedValue = Properties.Settings.Default.ProcedureSet;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
tsslStatus.Text = ex.Message;
|
||||
}
|
||||
}
|
||||
|
||||
private void tsslStatus_Click(object sender, EventArgs e)
|
||||
{
|
||||
tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbXML.SelectedText));
|
||||
Clipboard.Clear();
|
||||
if (tbXML.SelectedText != "")
|
||||
Clipboard.SetText(IndentifySpecialCharacters(tbXML.SelectedText));
|
||||
}
|
||||
|
||||
private void rtbXML_SelectionChanged(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
private void tbXML_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (UpdateHTML)
|
||||
{
|
||||
if (AutoFolder == null) htmlChanged(tbXML.Text);
|
||||
XMLChanged(tbXML.Text);
|
||||
if (AutoFolder == null) ColorCoded(tbXML.Text);
|
||||
}
|
||||
}
|
||||
private bool _UpdateTbXML = true;
|
||||
|
||||
public bool UpdateTbXML
|
||||
{
|
||||
get { return _UpdateTbXML; }
|
||||
set { _UpdateTbXML = value; }
|
||||
}
|
||||
private void rtbXML_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
//if (UpdateHTML)
|
||||
//{
|
||||
// UpdateHTML = false;
|
||||
// htmlChanged(rtbXML.Text);
|
||||
// XMLChanged(rtbXML.Text);
|
||||
// tbXML.Text = rtbXML.Text;
|
||||
// UpdateHTML = true;
|
||||
//}
|
||||
}
|
||||
private void btnConvert_Click(object sender, EventArgs e)
|
||||
{
|
||||
//SaveProcedure(ProcTextAll, ProcNumber, ProcTitle,999999);
|
||||
DVI = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
|
||||
SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, tbFileName.Text);
|
||||
}
|
||||
string lastLine = "";
|
||||
SortedDictionary<int, ItemInfo> dicSerialNo;
|
||||
int errorCount;
|
||||
private void btnAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
DVI = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
|
||||
string fileName = tbFileName.Text;
|
||||
ConvertFiles(fileName);
|
||||
}
|
||||
|
||||
private void ConvertFiles(string fileName)
|
||||
{
|
||||
Application.DoEvents();
|
||||
DateTime dtStart = DateTime.Now;
|
||||
errorCount = 0;
|
||||
dicSerialNo = new SortedDictionary<int, ItemInfo>();
|
||||
runOne = false;
|
||||
// Get List of files
|
||||
FileInfo fi = new FileInfo(fileName);
|
||||
DirectoryInfo di = fi.Directory;
|
||||
// Loop through list
|
||||
FileInfo[] fs = di.GetFiles("*.xml");
|
||||
tspb.Visible = true;
|
||||
tspb.Value = 0;
|
||||
tspb.Maximum = fs.Length;
|
||||
foreach (FileInfo f in fs)
|
||||
{
|
||||
//ResetSpecial();
|
||||
MyFileName = f.FullName;
|
||||
tspb.Value++;
|
||||
tsslStatus.Text = f.Name;
|
||||
Application.DoEvents();
|
||||
// Process each file
|
||||
try
|
||||
{
|
||||
ProcessXmlFile(f.FullName);
|
||||
// Convert each file
|
||||
//SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, SerialNo);
|
||||
SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, f.Name);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
++errorCount;
|
||||
Console.WriteLine("*** {0} - {1}\r\n*** Procedure {2}\r\n*** Text: {3}\r\n*** File Name:{4} ",
|
||||
ex.GetType().Name, ex.Message, ProcNumber, lastLine, f.Name);
|
||||
//break;
|
||||
}
|
||||
//break; one Procedure per set
|
||||
}
|
||||
runOne = true;
|
||||
tspb.Visible = false;
|
||||
tsslStatus.Text = "Done";
|
||||
//MessageBox.Show(string.Format(
|
||||
// "{0} Errors\r\n{1} Procedures\r\n{2:F} Seconds", errorCount,
|
||||
// fs.Length,
|
||||
// TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalSeconds),
|
||||
// "Done with this set", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
private void statusStrip1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (rtbXML.SelectedText != "")
|
||||
{
|
||||
tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(rtbXML.SelectedText));
|
||||
Clipboard.Clear();
|
||||
Clipboard.SetText(IndentifySpecialCharacters(rtbXML.SelectedText));
|
||||
}
|
||||
}
|
||||
ROFSTLookup MyLookUp;
|
||||
private void tmr_Tick(object sender, EventArgs e)
|
||||
{
|
||||
tmr.Enabled = false;
|
||||
// If timer on the its ready to proccess
|
||||
string str = AutoFolder;
|
||||
if (str != null && str.Length > 5)
|
||||
{
|
||||
DirectoryInfo di = new DirectoryInfo(str);
|
||||
FileInfo fi = di.GetFiles("*.xml")[0];
|
||||
DVI = GetDVI(fi.FullName);
|
||||
ConvertFiles(fi.FullName);
|
||||
}
|
||||
this.Close();
|
||||
}
|
||||
private static string _AutoFolder = null;
|
||||
private static string AutoFolder
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_AutoFolder == null)
|
||||
{
|
||||
_AutoFolder = System.Environment.CommandLine;
|
||||
_AutoFolder = _AutoFolder.Substring(_AutoFolder.IndexOf(@".exe"" ") + 6).Trim(" \t\r\n".ToCharArray());
|
||||
}
|
||||
if (_AutoFolder.Length < 1)
|
||||
return null;
|
||||
return _AutoFolder;
|
||||
}
|
||||
}
|
||||
|
||||
private DocVersionInfo GetDVI(string fileName)
|
||||
{
|
||||
XmlDocument xd = new XmlDocument();
|
||||
xd.Load(fileName);
|
||||
XmlElement xe = xd.DocumentElement;
|
||||
while (xe.Name != "ident")
|
||||
xe = xe.ChildNodes[0] as XmlElement;
|
||||
string DVIFolderName = xe.Attributes["PNSNo"].Value;
|
||||
if (cmbDocVersion.SelectedValue != null)
|
||||
{
|
||||
DocVersionInfo dvi = DocVersionInfo.Get((int)(cmbDocVersion.SelectedValue));
|
||||
int idnew;
|
||||
ROFstInfo fst = dvi.DocVersionAssociations[0].MyROFst;
|
||||
FolderInfo grandParent = dvi.ActiveParent.ActiveParent as FolderInfo;
|
||||
// Create a folder
|
||||
double myOrder = GetMyOrder(grandParent.SortedChildFolders, DVIFolderName);
|
||||
using (Folder flder = Folder.MakeFolder(grandParent.Get(), null, DVIFolderName, fileName, GetSystem(xe), null, myOrder, null))
|
||||
{
|
||||
flder.ManualOrder = 0;
|
||||
flder.ManualOrder = myOrder;
|
||||
//Console.WriteLine("myOrder = {0}, flder = {1}", myOrder, flder.ManualOrder);
|
||||
flder.Save();
|
||||
// create a a DocVersion
|
||||
using (DocVersion dv = DocVersion.MakeDocVersion(flder, "Working Draft", null, null, null, null))
|
||||
{
|
||||
dv.DocVersionAssociations.Add(fst.Get());
|
||||
dv.Save();
|
||||
idnew = dv.VersionID;
|
||||
}
|
||||
}
|
||||
return DocVersionInfo.Get(idnew);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private double GetMyOrder(Csla.SortedBindingList<FolderInfo> myList, string DVIFolderName)
|
||||
{
|
||||
double lastNum = 0;
|
||||
// Console.WriteLine("--->>> FolderName {0} Insert Count {1}",DVIFolderName, myList.Count);
|
||||
foreach (FolderInfo myFolder in myList)
|
||||
{
|
||||
// Console.WriteLine("--->>> FolderName {0} Insert Name {1} Insert Order {2}",DVIFolderName, myFolder.Name, myFolder.ManualOrder);
|
||||
if (myFolder.Name.CompareTo(DVIFolderName) >= 0)
|
||||
return (lastNum + (double) myFolder.ManualOrder) / 2.0;
|
||||
lastNum = myFolder.ManualOrder ?? 1.0;
|
||||
}
|
||||
return lastNum + 1;
|
||||
}
|
||||
private string GetSystem(XmlElement xe)
|
||||
{
|
||||
XmlAttribute xa = xe.Attributes["system"];
|
||||
if (xa is XmlAttribute) return xa.Value;
|
||||
return "N/A";
|
||||
}
|
||||
}
|
||||
}
|
132
PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.resx
Normal file
132
PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.resx
Normal file
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ofd.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>87, 17</value>
|
||||
</metadata>
|
||||
<metadata name="tmr.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>203, 3</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>25</value>
|
||||
</metadata>
|
||||
</root>
|
Reference in New Issue
Block a user