539 lines
68 KiB
HTML
539 lines
68 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<title>Access Bill of Materials Example (C#)</title>
|
|
<meta http-equiv="Content-Language" content="en-us">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
|
<link rel="stylesheet" type="text/css" href="ApiHelp.css">
|
|
<style type="text/css">
|
|
.auto-style2 {
|
|
color: #0000B9;
|
|
}
|
|
.auto-style3 {
|
|
color: maroon;
|
|
}
|
|
</style>
|
|
</head>
|
|
<meta name=MS-HKWD content="C# examples, bill of materials">
|
|
<meta name=MS-HKWD content="C# examples, BOM">
|
|
<meta name=MS-HKWD content="C# examples, files">
|
|
<body>
|
|
<h1><span style="font-weight: normal; font-size: 7.5pt;">SOLIDWORKS PDM Professional API Help</span></h1>
|
|
<h1>Access Bill of Materials Example (C#)</h1>
|
|
<p><a name="top"></a>This example shows how to access the Bill of
|
|
Materials (BOM) of a file in the vault.</p>
|
|
<p><b>NOTE</b>: If using the primary interop assembly
|
|
provided with SOLIDWORKS PDM Professional, see
|
|
<a href="Using_NET_Framework_in_Applications.htm">Using .NET Framework 4.0 in
|
|
Stand-alone Applications</a>.</p>
|
|
<p>
|
|
<img border="0" src="AccessBOM.gif" width="300" height="343"></p>
|
|
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
|
<font color="#008000">
|
|
//----------------------------------------------------------------------------<br>
|
|
// Preconditions:<br>
|
|
// 1. Start Microsoft Visual Studio.<br>
|
|
// a. Click <b>File > New > Project > Visual C# > Windows
|
|
Forms Application</b>.<br>
|
|
// b. Type <b>EdmBOM_CSharp</b> in <b>Name</b>.<br>
|
|
// c. Click <b>Browse</b> and navigate to the folder where to
|
|
create the project.<br>
|
|
// d. Click <b>OK</b>. <br>
|
|
// e. Click S<b>how All Files</b> in the Solution Explorer
|
|
toolbar and expand <br>
|
|
// <b>Form1.cs</b> in the Solution Explorer.<br>
|
|
// f. Replace the code in <b>Form1.cs</b> with
|
|
<a href="#Form1.cs">this code</a>.<br>
|
|
// g. To create the form, replace the code in <b>
|
|
Form1.Designer.cs</b> with <br>
|
|
// <a href="#Form1.Designer.cs">this code</a>.<br>
|
|
// 2. Add <b>EPDM.Interop.epdm.dll</b> as a reference (right-click the project<br>
|
|
// name in the Solution Explorer, click <b>Add Reference</b>,
|
|
click <br>
|
|
// <b>Assemblies > Framework</b> in the left-side panel,
|
|
browse to the top folder <br>
|
|
// of your SOLIDWORKS PDM Professional installation, locate and
|
|
click <br>
|
|
// <b>EPDM.Interop.epdm.dll</b>, click <b>Open</b>, and click <b>
|
|
Add</b>).<br>
|
|
// 4. Right-click <b>EPDM.Interop.epdm</b> in References, click <b>Properties</b>,
|
|
and set <br>
|
|
// <b>Embed Interop Types</b> to <b>False</b> to handle
|
|
methods that pass arrays of <br>
|
|
// structures.<br>
|
|
// 5. Ensure that the vault contains the BOM layout.<br>
|
|
</font>
|
|
<font color="#008000" size="2">// To inspect the
|
|
existing layouts:<br>
|
|
// a. Open the SOLIDWORKS PDM Professional
|
|
Administration tool.<br>
|
|
// b. Log into <i>vault_name</i>.<br>
|
|
// c. Expand <i>vault_name</i><b>
|
|
> Bills of Materials.<br>
|
|
</b>// d. Verify that layout, BOM, exists.<br>
|
|
// 6. Ensure that an assembly and its parts exist in the root folder of the
|
|
<br>
|
|
// vault in default configuration, @.<br>
|
|
// 7. Ensure that one or more named Bills of Materials exist for the assembly. <br>
|
|
// a. Open File Explorer on a <i>vault_name</i> view.<br>
|
|
// b. Click the assembly.<br>
|
|
// c. Click the <b>Bill of Materials</b>
|
|
tab.<br>
|
|
// d. Click <b>BOM</b>.<br>
|
|
// e. If a named Bill of Materials does not exist in the BOM
|
|
list:<br>
|
|
// 1. Click <b>Save > Save As</b> in
|
|
the tab toolbar. <br>
|
|
// 2. In the Save As dialog, click <b>
|
|
Save</b>. </font><font color="#008000"><br>
|
|
// 8. Click <b>Debug > Start Debugging</b> or press F5.<br>
|
|
//<br>
|
|
// Postconditions: <br>
|
|
// 1. Opens the Bill of Materials dialog box.<br>
|
|
// a. Select a <i>vault_name</i> view.<br>
|
|
// b. Click <b>Select file</b>.<br>
|
|
// c. In the Select File dialog:<br>
|
|
// 1. Click the assembly specified in
|
|
Preconditions step 6.<br>
|
|
// 2. Click <b>Open</b>.<br>
|
|
// d. Click <b>Get BOM Info</b>.<br>
|
|
// Displays message boxes containing:<br>
|
|
// * Information about all named BOMs of the
|
|
assembly.<br>
|
|
// * Version information for the named BOMs.<br>
|
|
// * Information about all BOM layouts in
|
|
the vault.<br>
|
|
// * Row and column information about a BOM
|
|
view in the BOM layout <br>
|
|
// for the selected assembly in
|
|
its @ configuration.<br>
|
|
// e. Click <b>OK</b> in each message box.<br>
|
|
//</font><font color="#008000" size="2"> f. Click <b>Save BOM
|
|
to CSV</b>.<br>
|
|
// Saves the BOM to <b>c:\temp\SavedBOM.csv</b>.</font><font color="#008000"><br>
|
|
// 2. Close the Bill of Materials dialog box.<br>
|
|
// </font><font color="#008000" size="2">3. Verify that <b>c:\temp\SavedBOM.csv</b>
|
|
is created.</font><font color="#008000"><br>
|
|
//----------------------------------------------------------------------------</font><br>
|
|
</p>
|
|
<p style="font-family: Courier New; font-size: 13; color: #008000; background: white" class="APICODE">
|
|
<a name="Form1.cs"></a>//Form1.cs</p>
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
|
<span style="color:blue;">using</span> System;<br>
|
|
<span style="color:blue;">using</span> System.Collections;<br>
|
|
<span style="color:blue;">using</span> System.Collections.Generic;<br>
|
|
<span style="color:blue;">using</span> System.Data;<br>
|
|
<span style="color:blue;">using</span> System.Diagnostics;<br>
|
|
<span style="color:blue;">using</span> System.IO;<br>
|
|
<span style="color:blue;">using</span> System.Xml.Serialization;<br>
|
|
<span style="color:blue;">using</span> System.Windows.Forms;<br>
|
|
<span style="color:blue;">using</span> System.ComponentModel;<br>
|
|
<span style="color:blue;">using</span> EPDM.Interop.epdm;<br>
|
|
<br>
|
|
<br>
|
|
<span style="color:blue;">namespace</span> EdmBOM_CSharp<br>
|
|
{<br>
|
|
<span style="color:blue;">public</span> <span style="color:blue;">partial</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">Form1</span> : <span style="color:#2b91af;">Form</span><br>
|
|
{<br>
|
|
<span style="color:blue;">private</span> <span style="color:#2b91af;">IEdmVault5</span> vault1 = <span style="color:blue;">null</span>;<br>
|
|
<span style="color:#2b91af;">IEdmFile7</span> aFile;<br>
|
|
<span style="color:#2b91af;">IEdmBom</span> bom;<br>
|
|
<span style="color:#2b91af;">IEdmBomMgr2</span> bomMgr;<br>
|
|
<span style="color:#2b91af;">IEdmBomView3</span> bomView;<br>
|
|
<br>
|
|
<span style="color:blue;">public</span> Form1()<br>
|
|
{<br>
|
|
InitializeComponent();<br>
|
|
}<br>
|
|
<span style="color:blue;">public</span> <span style="color:blue;">void</span> Form1_Load(System.<span style="color:#2b91af;">Object</span> sender, System.<span style="color:#2b91af;">EventArgs</span> e)<br>
|
|
{<br>
|
|
<span style="color:blue;">try</span><br>
|
|
{<br>
|
|
<span style="color:#2b91af;">IEdmVault5</span> vault1 = <span style="color:blue;">new</span> <span style="color:#2b91af;">EdmVault5</span>();<br>
|
|
<span style="color:#2b91af;">IEdmVault8</span> vault = (<span style="color:#2b91af;">IEdmVault8</span>)vault1;<br>
|
|
<span style="color:#2b91af;">EdmViewInfo</span>[] Views = <span style="color:blue;">null</span>;<br>
|
|
<br>
|
|
vault.<b>GetVaultViews</b>(<span style="color:blue;">out</span> Views, <span style="color:blue;">false</span>);<br>
|
|
VaultsComboBox.Items.Clear();<br>
|
|
<span style="color:blue;">foreach</span> (<span style="color:#2b91af;">EdmViewInfo</span> View <span style="color:blue;">in</span> Views)<br>
|
|
{<br>
|
|
VaultsComboBox.Items.Add(View.<b>mbsVaultName</b>);<br>
|
|
}<br>
|
|
<span style="color:blue;">if</span> (VaultsComboBox.Items.Count > 0)<br>
|
|
{<br>
|
|
VaultsComboBox.Text = (<span style="color:blue;">string</span>)VaultsComboBox.Items[0];<br>
|
|
}<br>
|
|
}<br>
|
|
<span style="color:blue;">catch</span> (System.Runtime.InteropServices.<span style="color:#2b91af;">COMException</span> ex)<br>
|
|
{<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">"HRESULT = 0x"</span> + ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + <span style="color:#a31515;">" "</span> + ex.Message);<br>
|
|
}<br>
|
|
<span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br>
|
|
{<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(ex.Message);<br>
|
|
}<br>
|
|
}<br>
|
|
<br>
|
|
<span style="color:blue;">public</span> <span style="color:blue;">void</span> SelectFiles_Click(System.<span style="color:#2b91af;">Object</span> sender, System.<span style="color:#2b91af;">EventArgs</span> e)<br>
|
|
{<br>
|
|
<span style="color:blue;">try</span><br>
|
|
{<br>
|
|
File1List.Items.Clear();<br>
|
|
<br>
|
|
<span style="color:#2b91af;">IEdmVault7</span> vault2 = <span style="color:blue;">null</span>;<br>
|
|
<span style="color:blue;">if</span> (vault1 == <span style="color:blue;">null</span>)<br>
|
|
{<br>
|
|
vault1 = <span style="color:blue;">new</span> <span style="color:#2b91af;">EdmVault5</span>();<br>
|
|
}<br>
|
|
vault2 = (<span style="color:#2b91af;">IEdmVault7</span>)vault1;<br>
|
|
<br>
|
|
<span style="color:blue;">if</span> (!vault1.<b>IsLoggedIn</b>)<br>
|
|
{<br>
|
|
vault1.<b>LoginAuto</b>(VaultsComboBox.Text, <span style="color:blue;">this</span>.Handle.ToInt32());<br>
|
|
}<br>
|
|
<br>
|
|
<span style="color:green;">//Set the initial directory in the Select File dialog</span><br>
|
|
OpenFileDialog1.InitialDirectory = vault1.<b>RootFolderPath</b>;<br>
|
|
<br>
|
|
<span style="color:green;">//Show the Select File dialog</span><br>
|
|
System.Windows.Forms.<span style="color:#2b91af;">DialogResult</span> DialogResult;<br>
|
|
DialogResult = OpenFileDialog1.ShowDialog();<br>
|
|
<br>
|
|
<span style="color:blue;">if</span> (!(DialogResult == System.Windows.Forms.<span style="color:#2b91af;">DialogResult</span>.OK))<br>
|
|
{<br>
|
|
<span style="color:green;">// do nothing</span><br>
|
|
}<br>
|
|
<span style="color:blue;">else</span><br>
|
|
{<br>
|
|
<span style="color:#2b91af;">IEdmFolder5</span> ppoRetParentFolder;<br>
|
|
<span style="color:blue;">foreach</span> (<span style="color:blue;">string</span> FileName <span style="color:blue;">in</span> OpenFileDialog1.FileNames)<br>
|
|
{<br>
|
|
File1List.Items.Add(FileName);<br>
|
|
aFile = (<span style="color:#2b91af;">IEdmFile7</span>)vault1.<b>GetFileFromPath</b>(FileName, <span style="color:blue;">out</span> ppoRetParentFolder);<br>
|
|
}<br>
|
|
}<br>
|
|
</p>
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
|
GetBOM.Enabled = <span style="color:blue;">true</span>;<br>
|
|
SaveBOM.Enabled = <span class="auto-style2">false</span>;<br>
|
|
<br>
|
|
<br>
|
|
}<br>
|
|
<span style="color:blue;">catch</span> (System.Runtime.InteropServices.<span style="color:#2b91af;">COMException</span> ex)<br>
|
|
{<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">"HRESULT = 0x"</span> + ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + <span style="color:#a31515;">" "</span> + ex.Message);<br>
|
|
}<br>
|
|
<span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br>
|
|
{<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(ex.Message);<br>
|
|
}<br>
|
|
}<br>
|
|
<br>
|
|
<span style="color:blue;">public</span> <span style="color:blue;">void</span> GetBOM_Click(System.<span style="color:#2b91af;">Object</span> sender, System.<span style="color:#2b91af;">EventArgs</span> e)<br>
|
|
{<br>
|
|
<br>
|
|
<span style="color:blue;">try</span><br>
|
|
{<br>
|
|
<span style="color:#2b91af;">IEdmVault11</span> vault2 = <span style="color:blue;">null</span>;<br>
|
|
<span style="color:blue;">if</span> (vault1 == <span style="color:blue;">null</span>)<br>
|
|
{<br>
|
|
vault1 = <span style="color:blue;">new</span> <span style="color:#2b91af;">EdmVault5</span>();<br>
|
|
}<br>
|
|
vault2 = (<span style="color:#2b91af;">IEdmVault11</span>)vault1;<br>
|
|
<span style="color:blue;">if</span> (!vault1.<b>IsLoggedIn</b>)<br>
|
|
{<br>
|
|
vault1.<b>LoginAuto</b>(VaultsComboBox.Text, <span style="color:blue;">this</span>.Handle.ToInt32());<br>
|
|
}<br>
|
|
<br>
|
|
|
|
<span style="color:blue;">if</span> (aFile != <font color="#0000FF">null</font>)
|
|
<br>
|
|
{<br>
|
|
<span style="color:green;">// Get named BOMs and their versions for the selected file</span><br>
|
|
<span style="color:#2b91af;">EdmBomInfo</span>[] derivedBOMs = <span style="color:blue;">null</span>;<br>
|
|
aFile.<b>GetDerivedBOMs</b>(<span style="color:blue;">out</span> derivedBOMs);<br>
|
|
<br>
|
|
<span style="color:blue;">int</span> arrSize = 0;<br>
|
|
<span style="color:#2b91af;">EdmBomVersion</span>[] ppoVersions = <span style="color:blue;">null</span>;<br>
|
|
<span style="color:blue;">int</span> i = 0;<br>
|
|
<span style="color:blue;">int</span> j = 0;<br>
|
|
<span style="color:blue;">int</span> id = 0;<br>
|
|
<span style="color:blue;">string</span> str = <span style="color:#a31515;">""</span>;<br>
|
|
<span style="color:blue;">string</span> verstr = <span style="color:#a31515;">""</span>;<br>
|
|
<span style="color:blue;">int</span> verArrSize = 0;<br>
|
|
arrSize = derivedBOMs.Length;<br> <span style="color:blue;">int</span> userID
|
|
= 0;<br>
|
|
<span class="auto-style2">bool</span> canSeeLayout = false;<br><br>
|
|
userID = vault2.<strong>GetLoggedInWindowsUserID</strong>(vault2.<strong>Name</strong>);<br>
|
|
<br>
|
|
<span style="color:blue;">while</span> (i < arrSize)<br>
|
|
{<br>
|
|
id = derivedBOMs[i].<b>mlBomID</b>;<br>
|
|
bom = (<span style="color:#2b91af;">IEdmBom</span>)vault2.<b>GetObject</b>(<span style="color:#2b91af;">EdmObjectType</span>.EdmObject_BOM, id);<br>
|
|
str = <span style="color:#a31515;">"Named BOM: "</span> + derivedBOMs[i].<b>mbsBomName</b> + "\r\n" + <span style="color:#a31515;">"Type
|
|
of BOM as defined in EdmBomType: " </span>+ derivedBOMs[i].<strong>meType</strong>
|
|
+<span style="color:#a31515;"> "\\n"</span>
|
|
+<span style="color:#a31515;"> "Check-out user: "</span> + bom.<b>CheckOutUserID</b> + "\r\n" + <span style="color:#a31515;">"Current state: "</span> + bom.<b>CurrentState</b>.<b>Name</b> + "\r\n" + <span style="color:#a31515;">"Current version: "</span> + bom.<b>CurrentVersion</b> + "\r\n" + <span style="color:#a31515;">"ID: "</span> + bom.<b>FileID</b> + "\r\n" + <span style="color:#a31515;">"Is checked out: "</span> + bom.<b>IsCheckedOut</b>;<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(str);<br>
|
|
bom.<b>GetVersions</b>(<span style="color:blue;">out</span> ppoVersions);<br>
|
|
verArrSize = ppoVersions.Length;<br>
|
|
<span style="color:blue;">while</span> (j < verArrSize)<br>
|
|
{<br>
|
|
verstr = <span style="color:#a31515;">"BOM version: "</span> + "\r\n" + <span style="color:#a31515;">"Type as defined in EdmBomVersionType: "</span> + ppoVersions[j].<b>meType</b> + "\r\n" + <span style="color:#a31515;">"Version number: "</span> + ppoVersions[j].<b>mlVersion</b> + "\r\n" + <span style="color:#a31515;">"Date: "</span> + ppoVersions[j].<b>moDate</b> + "\r\n" + <span style="color:#a31515;">"Label: "</span> + ppoVersions[j].<b>mbsTag</b> + "\r\n" + <span style="color:#a31515;">"Comment: "</span> + ppoVersions[j].<b>mbsComment</b>;<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(verstr);<br>
|
|
j = j + 1;<br>
|
|
}<br>
|
|
i = i + 1;<br>
|
|
}<br>
|
|
<br>
|
|
<span style="color:green;">// Get a BOM view with the specified layout</span><br>
|
|
bomMgr = (<span style="color:#2b91af;">IEdmBomMgr2</span>)vault2.<b>CreateUtility</b>(<span style="color:#2b91af;">EdmUtility</span>.EdmUtil_BomMgr);<br>
|
|
<span style="color:#2b91af;">EdmBomLayout2</span>[] ppoRetLayouts = <span style="color:blue;">null</span>;<br>
|
|
<span style="color:#2b91af;">EdmBomLayout2</span> ppoRetLayout = <span style="color:blue;">default</span>(<span style="color:#2b91af;">EdmBomLayout2</span>);<br>
|
|
bomMgr.<b>GetBomLayouts2</b>(<span style="color:blue;">out</span> ppoRetLayouts);<br>
|
|
i = 0;<br>
|
|
arrSize = ppoRetLayouts.Length;<br>
|
|
str = <span style="color:#a31515;">""</span>;<br>
|
|
<span style="color:blue;">while</span> (i < arrSize)<br>
|
|
{<br>
|
|
ppoRetLayout = ppoRetLayouts[i];<br>
|
|
<br>
|
|
canSeeLayout = bomMgr.<strong>CanSeeBomLayout</strong>(userID, ppoRetLayout.<strong>mlLayoutID</strong>);<br>
|
|
str = <span style="color:#a31515;">"BOM Layout "</span> + i + <span style="color:#a31515;">": "</span> + ppoRetLayout.<b>mbsLayoutName</b> + "\r\n" + <span style="color:#a31515;">"ID: "</span> + ppoRetLayout.<b>mlLayoutID</b>;<br>
|
|
str = str + <span class="auto-style3">" Logged-in user can see this
|
|
layout? "</span> + canSeeLayout;<br>
|
|
<span style="color:blue;">if</span> (ppoRetLayout.<b>mbsLayoutName</b> == <span style="color:#a31515;">"BOM"</span>)<br>
|
|
{<br>
|
|
bomView = (<span style="color:#2b91af;">IEdmBomView3</span>)aFile.<b>GetComputedBOM</b>(ppoRetLayout.<b>mbsLayoutName</b>, 0, <span style="color:#a31515;">"@"</span>, (<span style="color:blue;">int</span>)<span style="color:#2b91af;">EdmBomFlag</span>.EdmBf_AsBuilt + (<span style="color:blue;">int</span>)<span style="color:#2b91af;">EdmBomFlag</span>.EdmBf_ShowSelected);<br>
|
|
}<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(str);<br>
|
|
i = i + 1;<br>
|
|
}<br>
|
|
<br>
|
|
<span style="color:green;">// Display BOM view
|
|
row and column information</span><br>
|
|
<span style="color:blue;">object</span>[] ppoRows = <span style="color:blue;">null</span>;<br>
|
|
<span style="color:#2b91af;">IEdmBomCell</span> ppoRow = <span style="color:blue;">default</span>(<span style="color:#2b91af;">IEdmBomCell</span>);<br>
|
|
bomView.<b>GetRows</b>(<span style="color:blue;">out</span> ppoRows);<br>
|
|
i = 0;<br>
|
|
arrSize = ppoRows.Length;<br>
|
|
str = <span style="color:#a31515;">""</span>;<br>
|
|
<span style="color:blue;">while</span> (i < arrSize)<br>
|
|
{<br>
|
|
ppoRow = (<span style="color:#2b91af;">IEdmBomCell</span>)ppoRows[i];<br>
|
|
str = <span style="color:#a31515;">"BOM Row "</span> + i + <span style="color:#a31515;">": "</span> + "\r\n" + <span style="color:#a31515;">"Item ID: "</span> + ppoRow.<b>GetItemID</b>() + "\r\n" + <span style="color:#a31515;">"Path name: "</span> + ppoRow.<b>GetPathName</b>() + "\r\n" + <span style="color:#a31515;">"Tree level: "</span> + ppoRow.<b>GetTreeLevel</b>() + "\r\n" + <span style="color:#a31515;">" Is locked? "</span> + ppoRow.<b>IsLocked</b>();<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(str);<br>
|
|
i = i + 1;<br>
|
|
}<br>
|
|
<br>
|
|
<span style="color:#2b91af;">EdmBomColumn</span>[] ppoColumns = <span style="color:blue;">null</span>;<br>
|
|
bomView.<b>GetColumns</b>(<span style="color:blue;">out</span> ppoColumns);<br>
|
|
i = 0;<br>
|
|
arrSize = ppoColumns.Length;<br>
|
|
str = <span style="color:#a31515;">""</span>;<br>
|
|
<span style="color:blue;">while</span> (i < arrSize)<br>
|
|
{<br>
|
|
str = <span style="color:#a31515;">"BOM Column "</span> + i + <span style="color:#a31515;">": "</span> + "\r\n" + <span style="color:#a31515;">"Header: "</span> + ppoColumns[i].<b>mbsCaption</b> + "\r\n" + <span style="color:#a31515;">"Column type as defined in EdmBomColumnType: "</span> + ppoColumns[i].<b>meType</b> + "\r\n" + <span style="color:#a31515;">"ID: "</span> + ppoColumns[i].<b>mlColumnID</b> + "\r\n" + <span style="color:#a31515;">"Flags: "</span> + ppoColumns[i].<b>mlFlags</b> + "\r\n" + <span style="color:#a31515;">"Variable ID: "</span> + ppoColumns[i].<b>mlVariableID</b> + "\r\n" + <span style="color:#a31515;">"Variable type as defined in EdmVariableType: "</span> + ppoColumns[i].<b>mlVariableType</b> + "\r\n" + <span style="color:#a31515;">"Column width: "</span> + ppoColumns[i].<b>mlWidth</b>;<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(str);<br>
|
|
i = i + 1;<br>
|
|
}<br>
|
|
</p>
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
|
SaveBOM.Enabled = <span style="color:blue;">true</span>;<br>
|
|
<br>
|
|
}<br>
|
|
}<br>
|
|
<span style="color:blue;">catch</span> (System.Runtime.InteropServices.<span style="color:#2b91af;">COMException</span> ex)<br>
|
|
{<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">"HRESULT = 0x"</span> + ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + <span style="color:#a31515;">" "</span> + ex.Message);<br>
|
|
}<br>
|
|
<span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br>
|
|
{<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(ex.Message);<br>
|
|
}<br>
|
|
<br>
|
|
}</p>
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
|
<span style="color:blue;"> public</span> <span style="color:blue;">void</span> SaveBOM_Click(System.<span style="color:#2b91af;">Object</span> sender, System.<span style="color:#2b91af;">EventArgs</span> e)<br>
|
|
{<br>
|
|
<br>
|
|
<span style="color:blue;">try</span><br>
|
|
{<br>
|
|
<span style="color:#2b91af;">IEdmVault7</span> vault2 = <span style="color:blue;">null</span>;<br>
|
|
<span style="color:blue;">if</span> (vault1 == <span style="color:blue;">null</span>)<br>
|
|
{<br>
|
|
vault1 = <span style="color:blue;">new</span> <span style="color:#2b91af;">EdmVault5</span>();<br>
|
|
}<br>
|
|
vault2 = (<span style="color:#2b91af;">IEdmVault9</span>)vault1;<br>
|
|
<span style="color:blue;">if</span> (!vault1.<b>IsLoggedIn</b>)<br>
|
|
{<br>
|
|
vault1.<b>LoginAuto</b>(VaultsComboBox.Text, <span style="color:blue;">this</span>.Handle.ToInt32());<br>
|
|
}<br>
|
|
<br>
|
|
<span style="color:blue;">if</span> ((aFile != <span style="color:blue;">null</span>) & (bomView != <span style="color:blue;">null</span>))<br>
|
|
{<br>
|
|
bomView.<b>SaveToCSV</b>(<span style="color:#a31515;">"c:\\temp\\SavedBOM.csv"</span>, <span style="color:blue;">false</span>);<br>
|
|
<br>
|
|
}<br>
|
|
}<br>
|
|
<span style="color:blue;">catch</span> (System.Runtime.InteropServices.<span style="color:#2b91af;">COMException</span> ex)<br>
|
|
{<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">"HRESULT = 0x"</span> + ex.ErrorCode.ToString(<span style="color:#a31515;">"X"</span>) + <span style="color:#a31515;">" "</span> + ex.Message);<br>
|
|
}<br>
|
|
<span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br>
|
|
{<br>
|
|
<span style="color:#2b91af;">MessageBox</span>.Show(ex.Message);<br>
|
|
}<br>
|
|
<br>
|
|
}</p>
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE"><br>
|
|
}<br>
|
|
}</p>
|
|
<p style="font-family: Courier New; color: black; background: white" align="center">
|
|
<a href="#top">Back to top</a></p>
|
|
<p style="font-family: Courier New; font-size: 13; color: #008000; background: white" class="APICODE">
|
|
<a name="Form1.Designer.cs"></a>//Form1.Designer.cs</p>
|
|
<p style="font-family: Courier New; font-size: 13; color: black; background: white" class="APICODE">
|
|
<span style="color:blue;">namespace</span> EdmBOM_CSharp<br>
|
|
{<br>
|
|
<span style="color:blue;">partial</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">Form1</span><br>
|
|
{<br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"><summary></span><br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> Required designer variable.</span><br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"></summary></span><br>
|
|
<span style="color:blue;">private</span> System.ComponentModel.<span style="color:#2b91af;">IContainer</span> components = <span style="color:blue;">null</span>;<br>
|
|
<br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"><summary></span><br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> Clean up any resources being used.</span><br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"></summary></span><br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"><param name="</span>disposing<span style="color:gray;">"></span><span style="color:green;">true if managed resources should be disposed; otherwise, false.</span><span style="color:gray;"></param></span><br>
|
|
<span style="color:blue;">protected</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> Dispose(<span style="color:blue;">bool</span> disposing)<br>
|
|
{<br>
|
|
<span style="color:blue;">if</span> (disposing && (components != <span style="color:blue;">null</span>))<br>
|
|
{<br>
|
|
components.Dispose();<br>
|
|
}<br>
|
|
<span style="color:blue;">base</span>.Dispose(disposing);<br>
|
|
}<br>
|
|
<br>
|
|
<span style="color:blue;">#region</span> Windows Form Designer generated code<br>
|
|
<br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"><summary></span><br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> Required method for Designer support - do not modify</span><br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> the contents of this method with the code editor.</span><br>
|
|
<span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;"></summary></span><br>
|
|
<span style="color:blue;">private</span> <span style="color:blue;">void</span> InitializeComponent()<br>
|
|
{<br>
|
|
<span style="color:blue;">this</span>.VaultsLabel = <span style="color:blue;">new</span> System.Windows.Forms.<span style="color:#2b91af;">Label</span>();<br>
|
|
<span style="color:blue;">this</span>.VaultsComboBox = <span style="color:blue;">new</span> System.Windows.Forms.<span style="color:#2b91af;">ComboBox</span>();<br>
|
|
<span style="color:blue;">this</span>.SelectFiles = <span style="color:blue;">new</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span>();<br>
|
|
<span style="color:blue;">this</span>.File1List = <span style="color:blue;">new</span> System.Windows.Forms.<span style="color:#2b91af;">ListBox</span>();<br>
|
|
<span style="color:blue;">this</span>.GetBOM = <span style="color:blue;">new</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span>();<br>
|
|
<span style="color:blue;">this</span>.OpenFileDialog1 = <span style="color:blue;">new</span> System.Windows.Forms.<span style="color:#2b91af;">OpenFileDialog</span>();<br>
|
|
<span style="color:blue;">this</span>.SaveBOM = <span style="color:blue;">new</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span>();<br>
|
|
<span style="color:blue;">this</span>.SuspendLayout();<br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:green;">// VaultsLabel</span><br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:blue;">this</span>.VaultsLabel.AutoSize = <span style="color:blue;">true</span>;<br>
|
|
<span style="color:blue;">this</span>.VaultsLabel.Location = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Point</span>(36, 24);<br>
|
|
<span style="color:blue;">this</span>.VaultsLabel.Name = <span style="color:#a31515;">"VaultsLabel"</span>;<br>
|
|
<span style="color:blue;">this</span>.VaultsLabel.Size = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(91, 13);<br>
|
|
<span style="color:blue;">this</span>.VaultsLabel.TabIndex = 0;<br>
|
|
<span style="color:blue;">this</span>.VaultsLabel.Text = <span style="color:#a31515;">"Select vault view:"</span>;<br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:green;">// VaultsComboBox</span><br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:blue;">this</span>.VaultsComboBox.FormattingEnabled = <span style="color:blue;">true</span>;<br>
|
|
<span style="color:blue;">this</span>.VaultsComboBox.Location = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Point</span>(39, 40);<br>
|
|
<span style="color:blue;">this</span>.VaultsComboBox.Name = <span style="color:#a31515;">"VaultsComboBox"</span>;<br>
|
|
<span style="color:blue;">this</span>.VaultsComboBox.Size = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(121, 21);<br>
|
|
<span style="color:blue;">this</span>.VaultsComboBox.TabIndex = 1;<br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:green;">// SelectFiles</span><br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:blue;">this</span>.SelectFiles.Location = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Point</span>(39, 85);<br>
|
|
<span style="color:blue;">this</span>.SelectFiles.Name = <span style="color:#a31515;">"SelectFiles"</span>;<br>
|
|
<span style="color:blue;">this</span>.SelectFiles.Size = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(191, 23);<br>
|
|
<span style="color:blue;">this</span>.SelectFiles.TabIndex = 2;<br>
|
|
<span style="color:blue;">this</span>.SelectFiles.Text = <span style="color:#a31515;">"Select file..."</span>;<br>
|
|
<span style="color:blue;">this</span>.SelectFiles.UseVisualStyleBackColor = <span style="color:blue;">true</span>;<br>
|
|
<span style="color:blue;">this</span>.SelectFiles.Click += <span style="color:blue;">new</span> System.<span style="color:#2b91af;">EventHandler</span>(<span style="color:blue;">this</span>.SelectFiles_Click);<br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:green;">// File1List</span><br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:blue;">this</span>.File1List.FormattingEnabled = <span style="color:blue;">true</span>;<br>
|
|
<span style="color:blue;">this</span>.File1List.HorizontalScrollbar = <span style="color:blue;">true</span>;<br>
|
|
<span style="color:blue;">this</span>.File1List.Location = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Point</span>(40, 114);<br>
|
|
<span style="color:blue;">this</span>.File1List.Name = <span style="color:#a31515;">"File1List"</span>;<br>
|
|
<span style="color:blue;">this</span>.File1List.SelectionMode = System.Windows.Forms.<span style="color:#2b91af;">SelectionMode</span>.MultiExtended;<br>
|
|
<span style="color:blue;">this</span>.File1List.Size = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(220, 43);<br>
|
|
<span style="color:blue;">this</span>.File1List.TabIndex = 4;<br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:green;">// GetBOM</span><br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:blue;">this</span>.GetBOM.Location = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Point</span>(40, 183);<br>
|
|
<span style="color:blue;">this</span>.GetBOM.Name = <span style="color:#a31515;">"GetBOM"</span>;<br>
|
|
<span style="color:blue;">this</span>.GetBOM.Size = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(157, 23);<br>
|
|
<span style="color:blue;">this</span>.GetBOM.TabIndex = 6;<br>
|
|
<span style="color:blue;">this</span>.GetBOM.Text = <span style="color:#a31515;">"Get BOM"</span>;<br>
|
|
<span style="color:blue;">this</span>.GetBOM.UseVisualStyleBackColor = <span style="color:blue;">true</span>;<br>
|
|
<span style="color:blue;">this</span>.GetBOM.Enabled = <span style="color:blue;">false</span>;<br>
|
|
<span style="color:blue;">this</span>.GetBOM.Click += <span style="color:blue;">new</span> System.<span style="color:#2b91af;">EventHandler</span>(<span style="color:blue;">this</span>.GetBOM_Click);<br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:green;">// OpenFileDialog1</span><br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:blue;">this</span>.OpenFileDialog1.FileName = <span style="color:#a31515;">"OpenFileDialog1"</span>;<br>
|
|
<span style="color:blue;">this</span>.OpenFileDialog1.Title = <span style="color:#a31515;">"Select File"</span>;<br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:green;">// SaveBOM</span><br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:blue;">this</span>.SaveBOM.Location = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Point</span>(40, 252);<br>
|
|
<span style="color:blue;">this</span>.SaveBOM.Name = <span style="color:#a31515;">"SaveBOM"</span>;<br>
|
|
<span style="color:blue;">this</span>.SaveBOM.Size = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(157, 23);<br>
|
|
<span style="color:blue;">this</span>.SaveBOM.TabIndex = 7;<br>
|
|
<span style="color:blue;">this</span>.SaveBOM.Text = <span style="color:#a31515;">"Save BOM to CSV"</span>;<br>
|
|
<span style="color:blue;">this</span>.SaveBOM.UseVisualStyleBackColor = <span style="color:blue;">true</span>;<br>
|
|
<span style="color:blue;">this</span>.SaveBOM.Enabled = <span style="color:blue;">false</span>;<br>
|
|
<span style="color:blue;">this</span>.SaveBOM.Click += <span style="color:blue;">new</span> System.<span style="color:#2b91af;">EventHandler</span>(<span style="color:blue;">this</span>.SaveBOM_Click);<br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:green;">// Form1</span><br>
|
|
<span style="color:green;">// </span><br>
|
|
<span style="color:blue;">this</span>.AutoScaleDimensions = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">SizeF</span>(6F, 13F);<br>
|
|
<span style="color:blue;">this</span>.AutoScaleMode = System.Windows.Forms.<span style="color:#2b91af;">AutoScaleMode</span>.Font;<br>
|
|
<span style="color:blue;">this</span>.ClientSize = <span style="color:blue;">new</span> System.Drawing.<span style="color:#2b91af;">Size</span>(284, 363);<br>
|
|
<span style="color:blue;">this</span>.Controls.Add(<span style="color:blue;">this</span>.SaveBOM);<br>
|
|
<span style="color:blue;">this</span>.Controls.Add(<span style="color:blue;">this</span>.GetBOM);<br>
|
|
<span style="color:blue;">this</span>.Controls.Add(<span style="color:blue;">this</span>.File1List);<br>
|
|
<span style="color:blue;">this</span>.Controls.Add(<span style="color:blue;">this</span>.SelectFiles);<br>
|
|
<span style="color:blue;">this</span>.Controls.Add(<span style="color:blue;">this</span>.VaultsComboBox);<br>
|
|
<span style="color:blue;">this</span>.Controls.Add(<span style="color:blue;">this</span>.VaultsLabel);<br>
|
|
<span style="color:blue;">this</span>.Name = <span style="color:#a31515;">"Form1"</span>;<br>
|
|
<span style="color:blue;">this</span>.Text = <span style="color:#a31515;">"Bill of Materials"</span>;<br>
|
|
<span style="color:blue;">this</span>.Load += <span style="color:blue;">new</span> System.<span style="color:#2b91af;">EventHandler</span>(<span style="color:blue;">this</span>.Form1_Load);<br>
|
|
<span style="color:blue;">this</span>.ResumeLayout(<span style="color:blue;">false</span>);<br>
|
|
<span style="color:blue;">this</span>.PerformLayout();<br>
|
|
<br>
|
|
}<br>
|
|
<span style="color:blue;">internal</span> System.Windows.Forms.<span style="color:#2b91af;">Label</span> VaultsLabel;<br>
|
|
<span style="color:blue;">internal</span> System.Windows.Forms.<span style="color:#2b91af;">ComboBox</span> VaultsComboBox;<br>
|
|
<span style="color:blue;">internal</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span> SelectFiles;<br>
|
|
<span style="color:blue;">internal</span> System.Windows.Forms.<span style="color:#2b91af;">ListBox</span> File1List;<br>
|
|
<span style="color:blue;">internal</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span> GetBOM;<br>
|
|
<span style="color:blue;">internal</span> System.Windows.Forms.<span style="color:#2b91af;">OpenFileDialog</span> OpenFileDialog1;<br>
|
|
<br>
|
|
<span style="color:blue;">#endregion</span><br>
|
|
<br>
|
|
<span style="color:blue;">private</span> System.Windows.Forms.<span style="color:#2b91af;">Button</span> SaveBOM;<br>
|
|
}<br>
|
|
}<br>
|
|
</p>
|
|
<pre style="font-family: Courier New; font-size: 13; color: black; background: white"> </pre>
|
|
<p style="font-family: Courier New; color: black; background: white" align="center">
|
|
<a href="#top">Back to top</a></p>
|
|
|
|
</body>
|
|
|
|
</html>
|