This commit is contained in:
36
PROMS/BarakahConvert/ConvertLocalAlarms/App.config
Normal file
36
PROMS/BarakahConvert/ConvertLocalAlarms/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="ConvertLocalAlarms.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>
|
||||
<ConvertLocalAlarms.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>
|
||||
</ConvertLocalAlarms.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
@@ -0,0 +1,143 @@
|
||||
<?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>{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ConvertLocalAlarms</RootNamespace>
|
||||
<AssemblyName>ConvertLocalAlarms</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.CSLA.Library\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">
|
||||
<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="frmConvertLocalAlarms.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmConvertLocalAlarms.Designer.cs">
|
||||
<DependentUpon>frmConvertLocalAlarms.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SaveProcedureLocal.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="frmConvertLocalAlarms.resx">
|
||||
<DependentUpon>frmConvertLocalAlarms.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</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" />
|
||||
</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:ConvertLocalAlarms"
|
||||
"NUMBER_OF_EXCLUDED_FILES" = "0"
|
||||
"ORIGINAL_PROJECT_FILE_PATH" = ""
|
||||
"NUMBER_OF_NESTED_PROJECTS" = "0"
|
||||
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
|
||||
}
|
197
PROMS/BarakahConvert/ConvertLocalAlarms/ConvertTable.cs
Normal file
197
PROMS/BarakahConvert/ConvertLocalAlarms/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 ConvertLocalAlarms
|
||||
{
|
||||
public partial class frmConvertLocalAlarms
|
||||
{
|
||||
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/ConvertLocalAlarms/Program.cs
Normal file
22
PROMS/BarakahConvert/ConvertLocalAlarms/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 ConvertLocalAlarms
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new frmConvertLocalAlarms());
|
||||
}
|
||||
}
|
||||
}
|
@@ -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("ConvertLocalAlarms")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("ConvertLocalAlarms")]
|
||||
[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("4fbb3402-5209-47ff-a6ba-e0da93ef51c4")]
|
||||
|
||||
// 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/ConvertLocalAlarms/Properties/Resources.Designer.cs
generated
Normal file
63
PROMS/BarakahConvert/ConvertLocalAlarms/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 ConvertLocalAlarms.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("ConvertLocalAlarms.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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/ConvertLocalAlarms/Properties/Settings.Designer.cs
generated
Normal file
110
PROMS/BarakahConvert/ConvertLocalAlarms/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 ConvertLocalAlarms.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="ConvertLocalAlarms.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
|
549
PROMS/BarakahConvert/ConvertLocalAlarms/SaveProcedureLocal.cs
Normal file
549
PROMS/BarakahConvert/ConvertLocalAlarms/SaveProcedureLocal.cs
Normal file
@@ -0,0 +1,549 @@
|
||||
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 ConvertLocalAlarms
|
||||
{
|
||||
public partial class frmConvertLocalAlarms : Form
|
||||
{
|
||||
string lastLine = "";
|
||||
//private void SaveProcedure(string text, string procNumber, string procTitle, int serialNo)
|
||||
private void SaveProcedure(string text, string procNumber, string procTitle, DocVersionInfo dvi)
|
||||
{
|
||||
Console.WriteLine("===> ARP: {0}, AppContext: {1}", dvi.MyFolder.Name, procNumber);
|
||||
// Add Procedure Number and Title
|
||||
ItemInfo prev = null;
|
||||
//if (serialNo == 999999)
|
||||
prev = dvi.MyItem == null ? null : dvi.MyItem.LastSibling;
|
||||
//else
|
||||
//{
|
||||
// prev = FindPrevious(dicSerialNo, serialNo);
|
||||
//}
|
||||
using (Procedure prc = Procedure.MakeProcedure(dvi, prev, procNumber, procTitle, 0))
|
||||
{
|
||||
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", 10000))
|
||||
{
|
||||
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;
|
||||
bool lastNoteHadBullet = false;
|
||||
while (qRead.Count > 0 || deQueue != null)
|
||||
{
|
||||
string lineText;
|
||||
tableText = null;
|
||||
if (deQueue != null)
|
||||
{
|
||||
wasFromQueue = true;
|
||||
extra = 1;
|
||||
lineText = deQueue.Dequeue();
|
||||
if (deQueue.Count == 0)
|
||||
deQueue = null;
|
||||
if (lineText=="<NOTE>")
|
||||
{
|
||||
DeQueueType = 20007;
|
||||
}
|
||||
if (lineText=="<CAUTION>")
|
||||
{
|
||||
DeQueueType = 20006;
|
||||
}
|
||||
if (lineText=="<WARNING>")
|
||||
{
|
||||
DeQueueType = 20020;
|
||||
}
|
||||
if (deQueue != null)
|
||||
{
|
||||
if (deQueue.Count > 0)
|
||||
lineText = deQueue.Dequeue();
|
||||
if (deQueue.Count == 0)
|
||||
deQueue = null;
|
||||
}
|
||||
if (lastNoteHadBullet && lineText.Contains("\u2022"))
|
||||
DeQueueType = lastType;
|
||||
}
|
||||
else
|
||||
{
|
||||
wasFromQueue = false;
|
||||
DeQueueType = null;
|
||||
extra = 0;
|
||||
string findend = "";
|
||||
while (Regex.IsMatch(qRead.Peek(), "<(NOTE|CAUTION|WARNING)>(.*)"))
|
||||
{
|
||||
if (enQueue == null) enQueue = new Queue<string>();
|
||||
lineText = qRead.Dequeue();
|
||||
string sType = Regex.Replace(lineText, "^<(NOTE|CAUTION|WARNING)>(.*)$", "$1");
|
||||
lineText = Regex.Replace(lineText, "^<(NOTE|CAUTION|WARNING)>(.*)$", "$2");
|
||||
findend = string.Format("</{0}>", sType);
|
||||
enQueue.Enqueue(string.Format("<{0}>", sType));
|
||||
while (!lineText.Contains(findend))
|
||||
{
|
||||
enQueue.Enqueue(lineText);//.Replace("\u2022","").Trim());
|
||||
lineText = qRead.Dequeue().Trim();
|
||||
}
|
||||
lineText = lineText.Replace(findend, "");
|
||||
enQueue.Enqueue(lineText); //.Replace("\u2022", "").Trim());
|
||||
}
|
||||
lineText = qRead.Dequeue().TrimEnd(" ".ToCharArray());
|
||||
//string append = qRead.Peek();
|
||||
//lineText = qRead.Dequeue().Trim();
|
||||
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.Replace('\xFFFD', '\x2022'), @"^(\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
|
||||
{
|
||||
//Console.WriteLine("Type = 20024, deQueueuType= {0} Level = {1}", DeQueueType, level);
|
||||
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);
|
||||
if (DeQueueType != null)
|
||||
{
|
||||
myFromType = E_FromType.Note;
|
||||
level = 3;
|
||||
if(deQueue!=null)
|
||||
Console.WriteLine("Multiple NoteLines");
|
||||
if (tab == "\u2022")
|
||||
lastNoteHadBullet = true;
|
||||
}
|
||||
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)
|
||||
{ // Make new Step Type Child
|
||||
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) // Make Table FootNote
|
||||
Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step);
|
||||
}
|
||||
isTable = false;
|
||||
lookup.Add(level, myItem);
|
||||
//Console.WriteLine("+++B tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level);
|
||||
//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
|
||||
{ // MakeConfig Next Child
|
||||
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)// Make Table Footnote
|
||||
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());
|
||||
}
|
||||
//public string NextLine
|
||||
//{
|
||||
// get { return _NextLine; }
|
||||
// set { _NextLine = value; }
|
||||
//}
|
||||
private string GetFootNote(MemoryStream ms, Queue<string> qRead)
|
||||
{
|
||||
string sep = "";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
while(qRead.Count > 0)
|
||||
{
|
||||
// Read a line at a time
|
||||
string str = qRead.Peek();
|
||||
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(Regex.IsMatch(str,"[0-9].*") || str.StartsWith("<table>"))
|
||||
return sb.ToString();
|
||||
//append string
|
||||
if (sb.ToString() != "" || str != "")
|
||||
{
|
||||
sep = "\r\n";
|
||||
}
|
||||
sb.Append(sep + qRead.Dequeue());
|
||||
}
|
||||
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);
|
||||
}
|
||||
//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();
|
||||
// while (qRead.Count > 0)
|
||||
// {
|
||||
// // Read a line at a time
|
||||
// string str = qRead.Peek();
|
||||
// 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 (Regex.IsMatch(str, "[0-9].*") || str.StartsWith("<table>"))
|
||||
// return sb.ToString();
|
||||
// //append string
|
||||
// if (sb.ToString() != "" || str != "")
|
||||
// {
|
||||
// sep = "\r\n";
|
||||
// }
|
||||
// sb.Append(sep + qRead.Dequeue());
|
||||
// }
|
||||
// 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);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
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++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
406
PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.Designer.cs
generated
Normal file
406
PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.Designer.cs
generated
Normal file
@@ -0,0 +1,406 @@
|
||||
namespace ConvertLocalAlarms
|
||||
{
|
||||
partial class frmConvertLocalAlarms
|
||||
{
|
||||
/// <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.panel2 = new System.Windows.Forms.Panel();
|
||||
this.btn_All = new System.Windows.Forms.Button();
|
||||
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.label5 = new System.Windows.Forms.Label();
|
||||
this.btn_Run = new System.Windows.Forms.Button();
|
||||
this.btn_Browse = new System.Windows.Forms.Button();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.tbFileName = new System.Windows.Forms.TextBox();
|
||||
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.tbPROMS = new System.Windows.Forms.TextBox();
|
||||
this.tabControl1 = new System.Windows.Forms.TabControl();
|
||||
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.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.tabControl1.SuspendLayout();
|
||||
this.tpStructure.SuspendLayout();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Controls.Add(this.label1);
|
||||
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";
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.Controls.Add(this.btn_All);
|
||||
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.label5);
|
||||
this.panel2.Controls.Add(this.btn_Run);
|
||||
this.panel2.Controls.Add(this.btn_Browse);
|
||||
this.panel2.Controls.Add(this.label6);
|
||||
this.panel2.Controls.Add(this.tbFileName);
|
||||
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;
|
||||
//
|
||||
// btn_All
|
||||
//
|
||||
this.btn_All.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btn_All.Location = new System.Drawing.Point(862, 46);
|
||||
this.btn_All.Name = "btn_All";
|
||||
this.btn_All.Size = new System.Drawing.Size(37, 25);
|
||||
this.btn_All.TabIndex = 12;
|
||||
this.btn_All.Text = "All";
|
||||
this.btn_All.UseVisualStyleBackColor = true;
|
||||
this.btn_All.Click += new System.EventHandler(this.btnAll_Click);
|
||||
//
|
||||
// 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(754, 46);
|
||||
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(190, 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(331, 32);
|
||||
this.cmbDatabase.Name = "cmbDatabase";
|
||||
this.cmbDatabase.Size = new System.Drawing.Size(417, 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(656, 21);
|
||||
this.cmbDocVersion.TabIndex = 6;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(259, 35);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(53, 13);
|
||||
this.label5.TabIndex = 4;
|
||||
this.label5.Text = "Database";
|
||||
//
|
||||
// btn_Run
|
||||
//
|
||||
this.btn_Run.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btn_Run.Location = new System.Drawing.Point(905, 3);
|
||||
this.btn_Run.Name = "btn_Run";
|
||||
this.btn_Run.Size = new System.Drawing.Size(37, 25);
|
||||
this.btn_Run.TabIndex = 3;
|
||||
this.btn_Run.Text = "Run";
|
||||
this.btn_Run.UseVisualStyleBackColor = true;
|
||||
this.btn_Run.Click += new System.EventHandler(this.btnRun_Click);
|
||||
//
|
||||
// btn_Browse
|
||||
//
|
||||
this.btn_Browse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btn_Browse.Location = new System.Drawing.Point(827, 3);
|
||||
this.btn_Browse.Name = "btn_Browse";
|
||||
this.btn_Browse.Size = new System.Drawing.Size(72, 24);
|
||||
this.btn_Browse.TabIndex = 2;
|
||||
this.btn_Browse.Text = "Browse...";
|
||||
this.btn_Browse.UseVisualStyleBackColor = true;
|
||||
this.btn_Browse.Click += new System.EventHandler(this.btnBrowse_Click);
|
||||
//
|
||||
// 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";
|
||||
//
|
||||
// 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(756, 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";
|
||||
this.tbFileName.TextChanged += new System.EventHandler(this.tbFileName_TextChanged);
|
||||
//
|
||||
// ofd
|
||||
//
|
||||
this.ofd.Filter = "Text Files|*.txt";
|
||||
//
|
||||
// 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.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.tbPROMS);
|
||||
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 = "Raw";
|
||||
this.tpXML.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(358, 360);
|
||||
this.tbPROMS.TabIndex = 1;
|
||||
//
|
||||
// tabControl1
|
||||
//
|
||||
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;
|
||||
//
|
||||
// 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.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.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.statusStrip1_ItemClicked);
|
||||
this.statusStrip1.Click += new System.EventHandler(this.tsslStatus_Click);
|
||||
//
|
||||
// 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.Tick += new System.EventHandler(this.tmr_Tick);
|
||||
//
|
||||
// frmConvertLocalAlarms
|
||||
//
|
||||
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 = "frmConvertLocalAlarms";
|
||||
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.tabControl1.ResumeLayout(false);
|
||||
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.Label label1;
|
||||
private System.Windows.Forms.OpenFileDialog ofd;
|
||||
private System.Windows.Forms.SplitContainer sc1;
|
||||
private System.Windows.Forms.StatusStrip statusStrip1;
|
||||
private System.Windows.Forms.ToolStripStatusLabel tsslStatus;
|
||||
private System.Windows.Forms.TabControl tcXML;
|
||||
private System.Windows.Forms.TabPage tpXML;
|
||||
private System.Windows.Forms.TabControl tabControl1;
|
||||
private System.Windows.Forms.TabPage tpStructure;
|
||||
private System.Windows.Forms.TreeView tv;
|
||||
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 label5;
|
||||
private System.Windows.Forms.Button btn_Run;
|
||||
private System.Windows.Forms.Button btn_Browse;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox tbFileName;
|
||||
private System.Windows.Forms.Button btnConvert;
|
||||
private System.Windows.Forms.Button btn_All;
|
||||
private System.Windows.Forms.TabPage tpGrid;
|
||||
private System.Windows.Forms.TextBox tbPROMS;
|
||||
private System.Windows.Forms.Timer tmr;
|
||||
}
|
||||
}
|
||||
|
727
PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.cs
Normal file
727
PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.cs
Normal file
@@ -0,0 +1,727 @@
|
||||
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 log4net;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Controls.Library;
|
||||
using C1.Win.C1FlexGrid;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace ConvertLocalAlarms
|
||||
{
|
||||
public partial class frmConvertLocalAlarms : Form
|
||||
{
|
||||
public frmConvertLocalAlarms()
|
||||
{
|
||||
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;
|
||||
ProcessTxt();
|
||||
}
|
||||
}
|
||||
private void ProcessTxtFile(string fileName)
|
||||
{
|
||||
//FileInfo fi = new FileInfo(fileName);
|
||||
//StreamReader sr = fi.OpenText();
|
||||
//ProcessHeader(sr);
|
||||
//ProcTextAll = tbPROMS.Text = sr.ReadToEnd();
|
||||
//HasSpecialCharacters(ProcTextAll);
|
||||
//sr.Close();
|
||||
//SaveTree(ProcTextAll, ProcNumber, ProcTitle);
|
||||
FileInfo fi = new FileInfo(fileName);
|
||||
FileStream sr = fi.OpenRead();
|
||||
byte[] buffer = new byte[fi.Length];
|
||||
sr.Read(buffer, 0, (int) fi.Length);
|
||||
string str = Encoding.UTF7.GetString(buffer).Replace("\x95", "\u2022");
|
||||
ProcessHeader(str);
|
||||
int headercount = str.IndexOf("Setpoint");
|
||||
headercount = str.IndexOf("\r\n", headercount);
|
||||
ProcTextAll = tbPROMS.Text = str.Substring(headercount + 2);
|
||||
sr.Close();
|
||||
SaveTree(ProcTextAll, ProcNumber, ProcTitle);
|
||||
}
|
||||
Regex regHeader = new Regex("([ A-Z.a-z]+) = '([^']+)'.*", RegexOptions.Compiled);
|
||||
private void ProcessHeader(string str)
|
||||
{
|
||||
ProcNumber="";
|
||||
ProcTitle="";
|
||||
int offset = 0;
|
||||
int linelength = 0;
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
linelength = str.IndexOf("\r\n",offset)-offset;
|
||||
string txt = str.Substring(offset,linelength);
|
||||
offset += linelength + 2;
|
||||
Match m = regHeader.Match(txt);
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
if(m.Groups[1].Value == "Alarm") ProcTitle = m.Groups[2].Value;
|
||||
break;
|
||||
case 2:
|
||||
if(m.Groups[1].Value == "AlarmID") ProcNumber = m.Groups[2].Value;
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
private void ProcessTxt()
|
||||
{
|
||||
ProcessTxtFile(tbFileName.Text);
|
||||
}
|
||||
//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);
|
||||
// //XmlNode xn = xDoc.DocumentElement.LastChild.LastChild.LastChild;
|
||||
// //string html = GetHtml(xn);
|
||||
// //tbXML.Text = html;
|
||||
//}
|
||||
//private static string GetHtml(XmlNode xn)
|
||||
//{
|
||||
// XmlNode pr = xn.PreviousSibling;
|
||||
// XmlAttribute xa;
|
||||
// string html = xn.Attributes["content"].Value;
|
||||
// while (pr != null && pr.Name == "NoteInstruction")
|
||||
// {
|
||||
// html = MergeHTML(pr.Attributes["content"].Value, html);
|
||||
// pr = pr.PreviousSibling;
|
||||
// }
|
||||
// return html;
|
||||
//}
|
||||
|
||||
//private static string MergeHTML(string part1, string part2)
|
||||
//{
|
||||
// part1 = part1.Replace("</body></html","");
|
||||
// part2 = part2.Substring(part2.IndexOf("<p"));
|
||||
// return part1 + part2;
|
||||
//}
|
||||
//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 void XMLChanged(string xml)
|
||||
//{
|
||||
// Application.DoEvents();
|
||||
// xml = "<?xml version='1.0' encoding='UTF-8'?>\n" + xml;
|
||||
// xml = xml.Replace(HtmlPrefix, "");
|
||||
// //xml = xml.Replace("\x09", "[Tab]");
|
||||
// //xml = xml.Replace("text-indent:0px;\">", "text-indent:0px;\">\r\n");
|
||||
// //xml = xml.Replace(" \x09", "\r\n	");
|
||||
// //xml = xml.Replace("\x09", "	");
|
||||
// xml = Regex.Replace(xml, "<br /></span>", "<br /> </span>");
|
||||
// xml = Regex.Replace(xml, "</span><br />", "</span><br /> ");
|
||||
// xml = Regex.Replace(xml, "\\<span [^<>]+\\>", "");
|
||||
// xml = Regex.Replace(xml, "\\</span *\\>", "");
|
||||
// xml = Regex.Replace(xml, "\\</p\\>[ \r\n]+\\<p [^<>]+\\>", "<br />\r\n");
|
||||
// xml = Regex.Replace(xml, "\\<p [^<>]+\\>", "<br />\r\n");
|
||||
// xml = Regex.Replace(xml, @"<br />[ \t\r\n]+\[", @"\line [");
|
||||
// xml = Regex.Replace(xml, "\\</p *\\>", "");
|
||||
// xml = Regex.Replace(xml, @"\]\t{4,5}", "]\r\n");
|
||||
// xml = Regex.Replace(xml, "<br ?/>\t+(?![[\\u2022])", " ");
|
||||
// xml = Regex.Replace(xml, "<br ?/>\t+(?![[\\u2022])", " ");
|
||||
// xml = Regex.Replace(xml, "\t\t+", " ");
|
||||
// xml = Regex.Replace(xml, "<br />", "\r\n");
|
||||
// xml = Regex.Replace(xml, "\r\n +", "\r\n");
|
||||
// xml = Regex.Replace(xml, "(\r\n){2,}", "\r\n");
|
||||
// //aml = Regex.Replace(xml,"
|
||||
// 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);
|
||||
// //FileInfo fi = new FileInfo("C:\\Temp\\Alarm.xml");
|
||||
// //StreamWriter sw = fi.CreateText();
|
||||
// //sw.Write(xml);
|
||||
// //sw.Close();
|
||||
// //XmlDocument xDoc2 = new XmlDocument();
|
||||
// //// Lookfor special characters
|
||||
// ////FindSpecialCharacters(xml);
|
||||
// //xDoc2.Load(fi.FullName);
|
||||
// XmlNode xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[0];
|
||||
// string prcSerialNoFldName = GetProcInfo(xn3, 0, 0, 0);
|
||||
// string prcSerialNoValue = GetProcInfo(xn3, 0, 1, 0);
|
||||
// SerialNo = int.Parse(prcSerialNoValue);
|
||||
// string prcTitleFldName = GetProcInfo(xn3, 1, 0, 0);
|
||||
// string prcTitleValue = GetProcInfo(xn3, 1, 1, 0);
|
||||
// string prcNumberFldName = GetProcInfo(xn3, 2, 0, 0);
|
||||
// string prcNumberValue = GetProcInfo(xn3, 2, 1, 0);
|
||||
// string prcSourceFldName = GetProcInfo(xn3, 3, 0, 0);
|
||||
// string prcSourceValue = GetProcInfo(xn3, 3, 1, 0);
|
||||
// string prcSetpointFldName = GetProcInfo(xn3, 4, 0, 0);
|
||||
// string prcSetpointValue = GetProcInfo(xn3, 4, 1, 0);
|
||||
// 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 = 1; i < xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes.Count; i++)
|
||||
// {
|
||||
// XmlNode xn2 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[i];
|
||||
// sbAllText.Append(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;
|
||||
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;
|
||||
string lastTab = "";
|
||||
Queue<string> enQueue = null;
|
||||
Queue<string> deQueue = null;
|
||||
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 == "NOTE")
|
||||
enQueue = new Queue<string>();
|
||||
if (lineText.StartsWith("<NOTE>"))
|
||||
{
|
||||
enQueue = new Queue<string>();
|
||||
enQueue.Enqueue("NOTE");
|
||||
}
|
||||
lineText = lineText.Replace("<NOTE>", "");
|
||||
}
|
||||
// Strip XML Tags
|
||||
lineText = Regex.Replace(lineText, "<[^<>]+>", "");
|
||||
if (lineText.Replace("\t", "") != "")
|
||||
{
|
||||
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]*|\u2022)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline);
|
||||
string tab = m.Groups[2].Value;
|
||||
int indent = m.Groups[1].Value.Length;
|
||||
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 = 1 + tab.Length - tab.Replace(".","").Length;
|
||||
if (deQueue == null && enQueue != null)
|
||||
{
|
||||
deQueue = enQueue;
|
||||
enQueue = null;
|
||||
}
|
||||
}
|
||||
else if (tab == "") // Paragraph
|
||||
{
|
||||
if (Regex.IsMatch(lineText, "(NOTE|NOTES|CAUTION|CAUTIONS)")) extra = 0;
|
||||
level = lastLevel + 1;
|
||||
}
|
||||
else if (tab == "\u2022")//bullet
|
||||
level = indent + 2;
|
||||
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 (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);
|
||||
}
|
||||
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)
|
||||
//{
|
||||
// return xn3.ChildNodes[p1].ChildNodes[p2].ChildNodes[p3].Value.Trim("\r\n ".ToCharArray());
|
||||
//}
|
||||
//private bool _UpdateHTML = true;
|
||||
//public bool UpdateHTML
|
||||
//{
|
||||
// get { return _UpdateHTML; }
|
||||
// set { _UpdateHTML = value; }
|
||||
//}
|
||||
private string IndentifySpecialCharacters(string txt)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
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)
|
||||
{
|
||||
ProcessTxt();
|
||||
}
|
||||
//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 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 void tmr_Tick(object sender, EventArgs e)
|
||||
{
|
||||
tmr.Enabled = false;
|
||||
// If timer on the its ready to proccess
|
||||
int idnew = 0;
|
||||
string str = AutoFolder;
|
||||
if (str != null && str.Length > 5)
|
||||
{
|
||||
|
||||
DirectoryInfo di = new DirectoryInfo(str);
|
||||
DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
|
||||
VEPROMS.CSLA.Library.FolderInfo grandParent = dvi.ActiveParent.ActiveParent as FolderInfo;
|
||||
using (VEPROMS.CSLA.Library.Folder flder = MakeFolder(str, grandParent))
|
||||
{
|
||||
ROFstInfo fst = dvi.DocVersionAssociations[0].MyROFst;
|
||||
flder.ManualOrder = 0;
|
||||
double myOrder = GetMyOrder(grandParent.SortedChildFolders, str); 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;
|
||||
}
|
||||
}
|
||||
|
||||
ProcessFolder(di, DocVersionInfo.Get(idnew));
|
||||
}
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private static Folder MakeFolder(string str, VEPROMS.CSLA.Library.FolderInfo grandParent)
|
||||
{
|
||||
int num = 0;
|
||||
foreach(FolderInfo chld in grandParent.ChildFolders)
|
||||
{
|
||||
if(chld.Name.StartsWith(str))
|
||||
{
|
||||
if(chld.Name.StartsWith(str + "."))
|
||||
{
|
||||
string str2=chld.Name.Substring(str.Length+1);
|
||||
num = Math.Max(int.Parse(str2)+1,num);
|
||||
}
|
||||
else num=1;
|
||||
}
|
||||
}
|
||||
return Folder.MakeFolder(grandParent.Get(), null, str+(num==0?"":"." + num.ToString()), str, str.Substring(12, 2), null, 1, null);
|
||||
}
|
||||
|
||||
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 void frmConvertAlarms_Load(object sender, EventArgs e)
|
||||
{
|
||||
_MyFlexGrid = new VlnFlexGrid();
|
||||
LoadSettings();
|
||||
SetEventHandlers();
|
||||
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)
|
||||
{
|
||||
}
|
||||
|
||||
//private void rtbXML_SelectionChanged(object sender, EventArgs e)
|
||||
//{
|
||||
//}
|
||||
//private void tbXML_TextChanged(object sender, EventArgs e)
|
||||
//{
|
||||
// if (UpdateHTML)
|
||||
// {
|
||||
// htmlChanged(tbXML.Text);
|
||||
// XMLChanged(tbXML.Text);
|
||||
// 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)
|
||||
{
|
||||
DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
|
||||
try
|
||||
{
|
||||
SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("Error: {0}.{1} {2} {3}",dvi.MyFolder.Name,ProcNumber, ex.GetType().Name, ex.Message);
|
||||
}
|
||||
}
|
||||
//SortedDictionary<int, ItemInfo> dicSerialNo;
|
||||
private void btnAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
//dicSerialNo = new SortedDictionary<int, ItemInfo>();
|
||||
FileInfo fi = new FileInfo(tbFileName.Text);
|
||||
DirectoryInfo di = fi.Directory;
|
||||
// Loop through list
|
||||
DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
|
||||
ProcessFolder(di,dvi);
|
||||
}
|
||||
|
||||
private void ProcessFolder(DirectoryInfo di, DocVersionInfo dvi)
|
||||
{
|
||||
runOne = false;
|
||||
// Get List of files
|
||||
//DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
|
||||
foreach (FileInfo f in di.GetFiles("*.txt"))
|
||||
{
|
||||
if (f.Name.StartsWith("AlarmData") == false && f.Name.Length > 14)
|
||||
{
|
||||
tsslStatus.Text = f.Name;
|
||||
Application.DoEvents();
|
||||
// Process each file
|
||||
try
|
||||
{
|
||||
ProcessTxtFile(f.FullName);
|
||||
// Convert each file
|
||||
//SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, SerialNo);
|
||||
SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("Error: {0}.{1} {2} {3}", di.Name, f.Name, ex.GetType().Name, ex.Message);
|
||||
}
|
||||
|
||||
//SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi);
|
||||
}
|
||||
}
|
||||
runOne = true;
|
||||
}
|
||||
|
||||
private void statusStrip1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tbPROMS.SelectedText != "")
|
||||
{
|
||||
tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbPROMS.SelectedText));
|
||||
Clipboard.Clear();
|
||||
Clipboard.SetText(IndentifySpecialCharacters(tbPROMS.SelectedText));
|
||||
}
|
||||
}
|
||||
|
||||
private void statusStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
|
||||
{
|
||||
if (tbPROMS.SelectedText != "")
|
||||
{
|
||||
tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbPROMS.SelectedText));
|
||||
Clipboard.Clear();
|
||||
Clipboard.SetText(IndentifySpecialCharacters(tbPROMS.SelectedText));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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