<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1518018179493370580</id><updated>2011-07-28T06:26:28.931-07:00</updated><title type='text'>Adesso Application Development</title><subtitle type='html'>Tips, tricks, and other information about developing applications for Pocket PC and Windows PCs using the Adesso Platform.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-3166169643602575504</id><published>2010-10-25T16:53:00.001-07:00</published><updated>2011-04-04T11:00:18.083-07:00</updated><title type='text'>This Blog Has Moved</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I have moved this blog to our own server, located here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.myadesso.com/blogs/"&gt;http://www.myadesso.com/blogs&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Jim Young&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1518018179493370580-3166169643602575504?l=adessodeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/3166169643602575504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://adessodeveloper.blogspot.com/2010/10/this-blog-has-moved-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/3166169643602575504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/3166169643602575504'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/2010/10/this-blog-has-moved-to.html' title='This Blog Has Moved'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-8508189405758846849</id><published>2010-08-17T04:52:00.001-07:00</published><updated>2010-08-17T13:54:17.731-07:00</updated><title type='text'>How to Create a Crystal Report Plug-in for Adesso</title><content type='html'>&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_editdata.mso" rel="Edit-Time-Data"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:Wingdings;	panose-1:5 0 0 0 0 0 0 0 0 0;	mso-font-charset:2;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:0 268435456 0 0 -2147483648 0;}@font-face	{font-family:Mangal;	panose-1:0 0 4 0 0 0 0 0 0 0;	mso-font-charset:1;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:32768 0 0 0 0 0;}@font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:1;	mso-generic-font-family:roman;	mso-font-format:other;	mso-font-pitch:variable;	mso-font-signature:0 0 0 0 0 0;}@font-face	{font-family:Calibri;	panose-1:2 15 5 2 2 2 4 3 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:-520092929 1073786111 9 0 415 0;}@font-face	{font-family:Verdana;	panose-1:2 11 6 4 3 5 4 4 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:536871559 0 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:0in;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoPapDefault	{mso-style-type:export-only;	margin-bottom:10.0pt;	line-height:115%;}@page WordSection1	{size:8.5in 11.0in;	margin:1.0in 1.0in 1.0in 1.0in;	mso-header-margin:.5in;	mso-footer-margin:.5in;	mso-paper-source:0;}div.WordSection1	{page:WordSection1;} /* List Definitions */ @list l0	{mso-list-id:219176871;	mso-list-type:hybrid;	mso-list-template-ids:-1378848652 67698699 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}@list l0:level1	{mso-level-number-format:bullet;	mso-level-text:;	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:115.0pt;	text-indent:-.25in;	font-family:Wingdings;}@list l1	{mso-list-id:1227033964;	mso-list-type:hybrid;	mso-list-template-ids:575944188 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}@list l1:level1	{mso-level-number-format:bullet;	mso-level-text:;	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:117.0pt;	text-indent:-.25in;	font-family:Symbol;}@list l2	{mso-list-id:1392967950;	mso-list-template-ids:-230292310;}@list l2:level1	{mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:22.5pt;	text-indent:-.25in;}@list l2:level2	{mso-level-legal-format:yes;	mso-level-text:"%1\.%2\.";	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:76.5pt;	text-indent:-.5in;}@list l2:level3	{mso-level-legal-format:yes;	mso-level-text:"%1\.%2\.%3\.";	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:157.9pt;	text-indent:-.75in;}@list l2:level4	{mso-level-legal-format:yes;	mso-level-text:"%1\.%2\.%3\.%4\.";	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:207.6pt;	text-indent:-.75in;}@list l2:level5	{mso-level-legal-format:yes;	mso-level-text:"%1\.%2\.%3\.%4\.%5\.";	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:275.3pt;	text-indent:-1.0in;}@list l2:level6	{mso-level-legal-format:yes;	mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:343.0pt;	text-indent:-1.25in;}@list l2:level7	{mso-level-legal-format:yes;	mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:410.7pt;	text-indent:-1.5in;}@list l2:level8	{mso-level-legal-format:yes;	mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:460.4pt;	text-indent:-1.5in;}@list l2:level9	{mso-level-legal-format:yes;	mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:528.1pt;	text-indent:-1.75in;}@list l3	{mso-list-id:1593931303;	mso-list-type:hybrid;	mso-list-template-ids:435953154 67698699 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}@list l3:level1	{mso-level-number-format:bullet;	mso-level-text:;	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:85.5pt;	text-indent:-.25in;	font-family:Wingdings;}@list l3:level2	{mso-level-number-format:bullet;	mso-level-text:o;	mso-level-tab-stop:none;	mso-level-number-position:left;	margin-left:121.5pt;	text-indent:-.25in;	font-family:"Courier New";}ol	{margin-bottom:0in;}ul	{margin-bottom:0in;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;div align="center" class="MsoNormal" style="line-height: 150%; text-align: center;"&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:Wingdings;	panose-1:5 0 0 0 0 0 0 0 0 0;	mso-font-charset:2;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:0 268435456 0 0 -2147483648 0;}@font-face	{font-family:Mangal;	panose-1:0 0 4 0 0 0 0 0 0 0;	mso-font-charset:1;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:32768 0 0 0 0 0;}@font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:1;	mso-generic-font-family:roman;	mso-font-format:other;	mso-font-pitch:variable;	mso-font-signature:0 0 0 0 0 0;}@font-face	{font-family:Calibri;	panose-1:2 15 5 2 2 2 4 3 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:-520092929 1073786111 9 0 415 0;}@font-face	{font-family:Verdana;	panose-1:2 11 6 4 3 5 4 4 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:536871559 0 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:0in;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoPapDefault	{mso-style-type:export-only;	margin-bottom:10.0pt;	line-height:115%;}@page WordSection1	{size:8.5in 11.0in;	margin:1.0in 1.0in 1.0in 1.0in;	mso-header-margin:.5in;	mso-footer-margin:.5in;	mso-paper-source:0;}div.WordSection1	{page:WordSection1;} /* List Definitions */ @list l0	{mso-list-id:438722262;	mso-list-type:hybrid;	mso-list-template-ids:-1110570448 67698697 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}@list l0:level1	{mso-level-number-format:bullet;	mso-level-text:;	mso-level-tab-stop:none;	mso-level-number-position:left;	text-indent:-.25in;	font-family:Wingdings;}ol	{margin-bottom:0in;}ul	{margin-bottom:0in;}--&gt;&lt;/style&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:Wingdings;	panose-1:5 0 0 0 0 0 0 0 0 0;	mso-font-charset:2;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:0 268435456 0 0 -2147483648 0;}@font-face	{font-family:Mangal;	panose-1:0 0 4 0 0 0 0 0 0 0;	mso-font-charset:1;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:32768 0 0 0 0 0;}@font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:1;	mso-generic-font-family:roman;	mso-font-format:other;	mso-font-pitch:variable;	mso-font-signature:0 0 0 0 0 0;}@font-face	{font-family:Calibri;	panose-1:2 15 5 2 2 2 4 3 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:-520092929 1073786111 9 0 415 0;}@font-face	{font-family:Verdana;	panose-1:2 11 6 4 3 5 4 4 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:536871559 0 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:0in;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoPapDefault	{mso-style-type:export-only;	margin-bottom:10.0pt;	line-height:115%;}@page WordSection1	{size:8.5in 11.0in;	margin:1.0in 1.0in 1.0in 1.0in;	mso-header-margin:.5in;	mso-footer-margin:.5in;	mso-paper-source:0;}div.WordSection1	{page:WordSection1;} /* List Definitions */ @list l0	{mso-list-id:438722262;	mso-list-type:hybrid;	mso-list-template-ids:-1110570448 67698697 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}@list l0:level1	{mso-level-number-format:bullet;	mso-level-text:;	mso-level-tab-stop:none;	mso-level-number-position:left;	text-indent:-.25in;	font-family:Wingdings;}ol	{margin-bottom:0in;}ul	{margin-bottom:0in;}--&gt;&lt;/style&gt;  &lt;/div&gt;&lt;div class="MsoListParagraph" style="line-height: 150%; text-indent: -0.25in;"&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:Wingdings;	panose-1:5 0 0 0 0 0 0 0 0 0;	mso-font-charset:2;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:0 268435456 0 0 -2147483648 0;}@font-face	{font-family:Mangal;	panose-1:0 0 4 0 0 0 0 0 0 0;	mso-font-charset:1;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:32768 0 0 0 0 0;}@font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:1;	mso-generic-font-family:roman;	mso-font-format:other;	mso-font-pitch:variable;	mso-font-signature:0 0 0 0 0 0;}@font-face	{font-family:Calibri;	panose-1:2 15 5 2 2 2 4 3 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:-520092929 1073786111 9 0 415 0;}@font-face	{font-family:Verdana;	panose-1:2 11 6 4 3 5 4 4 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:536871559 0 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:0in;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoPapDefault	{mso-style-type:export-only;	margin-bottom:10.0pt;	line-height:115%;}@page WordSection1	{size:8.5in 11.0in;	margin:1.0in 1.0in 1.0in 1.0in;	mso-header-margin:.5in;	mso-footer-margin:.5in;	mso-paper-source:0;}div.WordSection1	{page:WordSection1;} /* List Definitions */ @list l0	{mso-list-id:1884708854;	mso-list-type:hybrid;	mso-list-template-ids:1146550922 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}@list l0:level1	{mso-level-number-format:bullet;	mso-level-text:;	mso-level-tab-stop:none;	mso-level-number-position:left;	text-indent:-.25in;	font-family:Symbol;}ol	{margin-bottom:0in;}ul	{margin-bottom:0in;}--&gt;&lt;/style&gt;  &lt;/div&gt;&lt;div class="MsoListParagraph" style="line-height: 150%; text-indent: -0.25in;"&gt;&lt;span style="font-family: Symbol; line-height: 150%;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: x-small; line-height: 150%;"&gt;Disclaimer: This blog post was made by Ravindra (Ravi) Dhole, not by me.&amp;nbsp; Ravi has been building Crystal Report and .NET plugins for me since December 2007.&amp;nbsp; He knows this stuff well.&amp;nbsp; In the example below, Ravi explains how to build a Crystal Report plugin that hooks into an Adesso database.&amp;nbsp; The objective of this plugin is to produce a customized printed report that retrieves data stored in a local Adesso database and displays it in specific locations on the report.&amp;nbsp; By duplicating the steps outlined below, you should be able to create your own plugin that essentially harvests data stored in your own Adesso database.&amp;nbsp; Sample code and development guides can be downloaded from the links below.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;span style="font-size: x-small;"&gt;Jim Young&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;span style="font-size: x-small;"&gt;## &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;a href="http://myadesso.com/downloads/PrintWSWTableReport.zip"&gt;Download Sample Code&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;a href="http://myadesso.com/downloads/Adesso_Plug-In_Development_Guide.pdf"&gt;Adesso Plug-in Development Guide&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;a href="http://myadesso.com/downloads/ODBC_Driver.pdf"&gt;Adesso ODBC Driver Guide&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Steps to Create Crystal Report For Adesso&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 67.7pt;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Adesso only support .Net framework 2.0.&amp;nbsp; So we have to design and implement the crystal report using VS2005. Here we are using VS2005 with C#.Net. &amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 76.5pt; text-indent: -0.5in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;1.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Prerequisites&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 115pt; text-indent: -0.25in;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Installed VS2005&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 115pt; text-indent: -0.25in;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Installed Adesso Client&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 115pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 76.5pt; text-indent: -0.5in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;1.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Create Class Library Project &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.5pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Open VS2005&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;Go to File &amp;gt; New Project&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Select Visual C# &amp;gt; Windows&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Create &lt;b&gt;&lt;i&gt;Class Library&lt;/i&gt;&lt;/b&gt; Project. &amp;nbsp;For example. Project Name is &lt;b&gt;&lt;i&gt;PrintWSWTableReport&lt;/i&gt;&lt;/b&gt;. &amp;nbsp;Please refer screen below&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/TGp0a-NJKeI/AAAAAAAAAV0/HNd6-vYnBnk/s1600/CreateProject.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="434" src="http://1.bp.blogspot.com/_44kQ1invdmk/TGp0a-NJKeI/AAAAAAAAAV0/HNd6-vYnBnk/s640/CreateProject.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Screen 1: Create Project&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Once class library project is created then you can find one class1.cs file. Rename this class file equivalent to project name. For example &lt;b&gt;&lt;i&gt;PrintWSWTablePlugin.cs&lt;/i&gt;&lt;/b&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Add the references of three dlls which you can find in your Adesso installer directory&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Path:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp; C:\Program Files\Adesso Systems\Adesso\ &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Dll names are &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 117pt; text-indent: -0.25in;"&gt;&lt;span style="font-family: Symbol; line-height: 150%;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Adesso.Interop.AdessoDataObjectsLib.dll&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 117pt; text-indent: -0.25in;"&gt;&lt;span style="font-family: Symbol; line-height: 150%;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Adesso.Interop.TBSYNCLib.dll&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 117pt; text-indent: -0.25in;"&gt;&lt;span style="font-family: Symbol; line-height: 150%;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;AdessoInterfaces.dll&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/TGp1CstBVCI/AAAAAAAAAV8/61UGPnxXXgI/s1600/addReferances.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="428" src="http://4.bp.blogspot.com/_44kQ1invdmk/TGp1CstBVCI/AAAAAAAAAV8/61UGPnxXXgI/s640/addReferances.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Screen 2: Add Adesso References&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; font-size: 14pt; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Add following reference of Adesso in class file&lt;/span&gt;&lt;span style="font-size: 14pt; line-height: 150%;"&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 1.5in;"&gt;&lt;span style="color: blue; font-size: 14pt; line-height: 150%;"&gt;using&lt;/span&gt;&lt;span style="font-size: 14pt; line-height: 150%;"&gt; Adesso;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Change Namespace from &lt;b&gt;&lt;i&gt;PrintWSWTableReport&lt;/i&gt;&lt;/b&gt; to &lt;b&gt;&lt;i&gt;Adesso.Client&lt;/i&gt;&lt;/b&gt;. This is important step. The plug-in will not work with any other namespace name. Plug-in class file must be present under &lt;b&gt;&lt;i&gt;Adesso.Client&lt;/i&gt;&lt;/b&gt; Namespace.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Implement two interfaces &lt;b&gt;&lt;i&gt;MarshalByRefObject, IExtensionHandler&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; line-height: 150%;"&gt; &lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;within this class with following methods. This is important step in Adesso plug-in development. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 76.3pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;string&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; &lt;span style="color: teal;"&gt;IExtensionHandler&lt;/span&gt;.Handler(&lt;span style="color: blue;"&gt;string&lt;/span&gt; filename)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: maroon;"&gt;"&lt;error&gt;"&lt;/error&gt;&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; &lt;span style="color: teal;"&gt;IExtensionHandler&lt;/span&gt;.GetFieldNames(&lt;span style="color: blue;"&gt;string&lt;/span&gt; filename)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; &lt;span style="color: teal;"&gt;IExtensionHandler&lt;/span&gt;.GetParameterNames(&lt;span style="color: blue;"&gt;string&lt;/span&gt; filename)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0.0001pt 40.3pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; margin-left: 40.3pt; text-indent: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; line-height: 150%;"&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; margin-left: 40.3pt; text-indent: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Refer screen below&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; margin-left: 40.3pt; text-indent: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/TGp1Rb2Q89I/AAAAAAAAAWE/JBXDC-ZxDNg/s1600/EventHandlerMethods.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="435" src="http://2.bp.blogspot.com/_44kQ1invdmk/TGp1Rb2Q89I/AAAAAAAAAWE/JBXDC-ZxDNg/s640/EventHandlerMethods.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Screen 3: Implement Adesso Interface Methods&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 76.5pt; text-indent: -0.5in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;1.3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Design Dataset&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Create two folders in project file. One with &lt;b&gt;&lt;i&gt;DataAccess&lt;/i&gt;&lt;/b&gt; name and another with &lt;b&gt;&lt;i&gt;Reports. &lt;/i&gt;&lt;/b&gt;This is not compulsory to create these folders. It just for sort out the code files. &lt;i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Now next step is to create dataset .xsd file. For this right click on DataAccess folder &lt;b&gt;&lt;i&gt;Add &amp;gt; New Item&lt;/i&gt;&lt;/b&gt; and select Dataset file. Here we will rename this dataset file name as &lt;b&gt;&lt;i&gt;DataSetWSWTable.xsd. &lt;/i&gt;&lt;/b&gt;Add new data table in this xsd file. Name of data table should be same as name of table in Adesso. Also name of columns in data table should be same as names in Adesso table. Refer screen below&lt;i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/TGp1hP5br0I/AAAAAAAAAWM/L5qWuW5zMw4/s1600/DesignDataSet.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="436" src="http://4.bp.blogspot.com/_44kQ1invdmk/TGp1hP5br0I/AAAAAAAAAWM/L5qWuW5zMw4/s640/DesignDataSet.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;Screen 4: Design Dataset&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Once Data set .xsd file is created then next step is to create crystal report. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 76.5pt; text-indent: -0.5in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;1.4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Design Report&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;For crystal report Right Click on Reports folder Add &amp;gt; New Item and select CrystalReport file. We will name this file as &lt;b&gt;&lt;i&gt;CRWSWTableReport.rpt. &lt;/i&gt;&lt;/b&gt;Once you click on OK button then it will add that rpt file under reports folder and prompt for report wizards. Refer screen below&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/TGp1r4N2h3I/AAAAAAAAAWU/lSingn2d75Y/s1600/DesignCrystalReports.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="436" src="http://2.bp.blogspot.com/_44kQ1invdmk/TGp1r4N2h3I/AAAAAAAAAWU/lSingn2d75Y/s640/DesignCrystalReports.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;Screen 5: Add Crystal Report&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/TGp10DP4a2I/AAAAAAAAAWc/AvwwupymOoo/s1600/CrystalReportWizards.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="436" src="http://1.bp.blogspot.com/_44kQ1invdmk/TGp10DP4a2I/AAAAAAAAAWc/AvwwupymOoo/s640/CrystalReportWizards.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Screen 6: Crystal Report Wizards Prompt&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Check Using the Report Wizards and select Standard as report type and click on OK button.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Next step is to set dataset for this crystal report. For this navigate to Project Data &amp;gt; ADO.NET Datasets. You can find dataset this section which we created in Design Dataset section. Here you can add whole dataset or particular table. Here we are adding whole dataset to rpt files. Refer screen below&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/TGp2FBXCgtI/AAAAAAAAAWk/AOJZSgGQatc/s1600/SelectCRDataset.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="440" src="http://3.bp.blogspot.com/_44kQ1invdmk/TGp2FBXCgtI/AAAAAAAAAWk/AOJZSgGQatc/s640/SelectCRDataset.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Screen 7: Select Dataset&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/TGp2SBpFIyI/AAAAAAAAAWs/ouFqnSKYF7Q/s1600/AddDatasetToCR.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="438" src="http://2.bp.blogspot.com/_44kQ1invdmk/TGp2SBpFIyI/AAAAAAAAAWs/ouFqnSKYF7Q/s640/AddDatasetToCR.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;Screen 8: Assign dataset for rpt file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Click on next button. It will display added tables with relationship. May be you can clear this relationship between table if needed. Refer screen below&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/TGp2dFIyAUI/AAAAAAAAAW0/7yrjSu_Ef8Q/s1600/ClearRelationship.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="436" src="http://3.bp.blogspot.com/_44kQ1invdmk/TGp2dFIyAUI/AAAAAAAAAW0/7yrjSu_Ef8Q/s640/ClearRelationship.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;Screen 9: Clear Relationship between Tables&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Click on yes button and finally click on &lt;b&gt;&lt;i&gt;Finished&lt;/i&gt;&lt;/b&gt; button. &amp;nbsp;In Field Explorer, It will display list of added tables.&amp;nbsp; You can just drag and drop the table columns in rpt file and design the report as per your requirement. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;span style="color: red; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Note: How to design the crystal report not covered in this section. This portion is left for developer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="color: red; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Refer screen below&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;span style="color: red;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;span style="color: red;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;span style="color: red;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="color: red; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;span style="color: red; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/TGp2mJd_5CI/AAAAAAAAAW8/_nP-On4nfPk/s1600/DragDropFieldToCR.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="436" src="http://4.bp.blogspot.com/_44kQ1invdmk/TGp2mJd_5CI/AAAAAAAAAW8/_nP-On4nfPk/s640/DragDropFieldToCR.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;Screen 10: Design Crystal Report&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 76.5pt; text-indent: -0.5in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;1.5.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Fill Dataset and Display Crystal Report&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;You can refer &lt;b&gt;&lt;i&gt;ODBC_Driver.pdf &lt;/i&gt;&lt;/b&gt;for more details&lt;b&gt;&lt;i&gt;. &lt;/i&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Once dataset design and report design is done then next step is to fill dataset from Adesso tables. Here we can use Adesso ODBC Driver to connect to local application. Now again back to our Plug-in class file. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;When user clicks on button then it Adesso execute the &lt;b&gt;&lt;i&gt;IExtensionHandler.Handler&lt;/i&gt;&lt;/b&gt; method.&amp;nbsp; It sent the event handler xml file path to this method. Event handler xml always created in temp directory. Refer &lt;b&gt;&lt;i&gt;Adesso_Plug-In_Development_Guide.pdf &lt;/i&gt;&lt;/b&gt;for event handler xml structure.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Event Handler XML Path:&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt; C:\Documents and Settings\[System User]\Local Settings\Temp\&lt;/span&gt; &lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;AdessoEventHandler_&lt;b&gt;4212&lt;/b&gt;.xml. 4212 number is generated based on application. This number is different for different applications. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Adesso Plug-in directory Path:&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt; C:\Documents and Settings\[System User]\Local Settings\Temp\My Adesso Plug-Ins&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Then parse the xml and take application name and password which are needed for connection string.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; line-height: 150%;"&gt;&amp;nbsp;string&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; line-height: 150%;"&gt; applicationName = doc.SelectSingleNode(&lt;span style="color: maroon;"&gt;"//EventHandler/@Name"&lt;/span&gt;).Value;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; line-height: 150%;"&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;string&lt;/span&gt; password = doc.SelectSingleNode(&lt;span style="color: maroon;"&gt;"//EventHandler/@Password"&lt;/span&gt;).Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Here Password is in base64 format. So convert that password from base64 to normal string.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Take out the temp directory path from event handler xml. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Then make connection string and fill dataset using ODBC Driver&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Always return &lt;b&gt;&lt;i&gt;&lt;error&gt;&lt;/error&gt;&lt;/i&gt;&lt;/b&gt; while building the crystal report. It indicates that there is no error plug-in execution &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Class file code is as below. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; System.Collections.Generic;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; System.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; Adesso;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; System.Windows.Forms;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; System.Collections;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; PrintWSWTableReport.DataAccess;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; PrintWSWTableReport.Reports;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; System.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; CrystalDecisions.Shared;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; System.Data.Odbc;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; System.Xml;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; System.IO;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; CrystalDecisions.CrystalReports.Engine;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;namespace&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; Adesso.Client&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: teal;"&gt;PrintWSWTablePlugin&lt;/span&gt; : &lt;span style="color: teal;"&gt;MarshalByRefObject&lt;/span&gt;, &lt;span style="color: teal;"&gt;IExtensionHandler&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: teal;"&gt;String&lt;/span&gt; strConnectionString;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: teal;"&gt;ReportDocument&lt;/span&gt; rpt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;XmlDocument&lt;/span&gt; doc = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;XmlDocument&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;FileStream&lt;/span&gt; fsReadXml = &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Adesso Driver connection string&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;const&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; LOCAL_CONNECTIONSTRING_FORMAT = &lt;span style="color: maroon;"&gt;"DRIVER=AdessoSQL Driver;type=local;file={0};pwd={1}"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: teal;"&gt;DataSetWSWTable&lt;/span&gt; dsWSWTable = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;DataSetWSWTable&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt; IExtensionHandler Members&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;summary&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; This is actual event handler method which is executed when user click on button.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;param name="filename" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;filename&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;returns&gt;&lt;/returns&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;string &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;error&gt;&lt;/error&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; &lt;span style="color: teal;"&gt;IExtensionHandler&lt;/span&gt;.Handler(&lt;span style="color: blue;"&gt;string&lt;/span&gt; filename)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;try&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Read event handler file&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsReadXml = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;FileStream&lt;/span&gt;(filename, &lt;span style="color: teal;"&gt;FileMode&lt;/span&gt;.Open, &lt;span style="color: teal;"&gt;FileAccess&lt;/span&gt;.Read, &lt;span style="color: teal;"&gt;FileShare&lt;/span&gt;.ReadWrite);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;catch&lt;/span&gt; (&lt;span style="color: teal;"&gt;IOException&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: maroon;"&gt;"Could not load xml schema"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc.Load(fsReadXml);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsReadXml.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//take application path and password from event handler xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; applicationName = doc.SelectSingleNode(&lt;span style="color: maroon;"&gt;"//EventHandler/@Name"&lt;/span&gt;).Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; password = doc.SelectSingleNode(&lt;span style="color: maroon;"&gt;"//EventHandler/@Password"&lt;/span&gt;).Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//System.Windows.Forms.MessageBox.Show("Application Name: " + applicationName + " Password: "+password);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Make connection string&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetConnectionParameters(applicationName, password);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// Get the root node of the XmlDocument&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;XmlNode&lt;/span&gt; root = doc.DocumentElement;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//doc.Save("F:\\ConcretePlacement.xml");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// Get thte last child node of the XmlDocument&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;XmlNode&lt;/span&gt; eventNode = root.LastChild;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// Determine the path to where the Plug-In lives so we can get to the dependency files.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;XmlAttributeCollection&lt;/span&gt; attributeCollection = eventNode.Attributes;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;XmlAttribute&lt;/span&gt; attribute = attributeCollection[&lt;span style="color: maroon;"&gt;"Assembly"&lt;/span&gt;];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Take out the temp directory path&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; path = attribute.Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;int&lt;/span&gt; idx = path.LastIndexOf(&lt;span style="color: maroon;"&gt;@"\"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (idx != -1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path = path.Remove(idx + 1, path.Length - (idx + 1));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Take project number from event handler xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; projectNo = GetProjectNo(root);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; pdfPath = path + projectNo + &lt;span style="color: maroon;"&gt;".pdf"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//fill dataset&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FillReportDataset(projectNo);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Assign report parameters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rpt = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;CRWSWTableReport&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rpt.SetDataSource(dsWSWTable);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rpt.PrintOptions.PaperOrientation = &lt;span style="color: teal;"&gt;PaperOrientation&lt;/span&gt;.Landscape;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rpt.PrintOptions.ApplyPageMargins(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;PageMargins&lt;/span&gt;(350, 150, 150, 0));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Export report as PDF on disk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rpt.ExportToDisk(&lt;span style="color: teal;"&gt;ExportFormatType&lt;/span&gt;.PortableDocFormat, path + projectNo + &lt;span style="color: maroon;"&gt;".pdf"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Open PDF in Acrobat reader&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PDFOpenFileDialog(pdfPath);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;catch&lt;/span&gt;(&lt;span style="color: teal;"&gt;Exception&lt;/span&gt; ex)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;MessageBox&lt;/span&gt;.Show(ex.Message.ToString());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//always return &lt;error&gt; while building the crystal report. It indicates that there is no error plug-in execution&lt;o:p&gt;&lt;/o:p&gt;&lt;/error&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: maroon;"&gt;"&lt;error&gt;"&lt;/error&gt;&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;summary&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; This is adesso event handler method. It always return blank value&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;param name="filename" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;filename&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;returns&gt;&lt;/returns&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;string value&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; &lt;span style="color: teal;"&gt;IExtensionHandler&lt;/span&gt;.GetFieldNames(&lt;span style="color: blue;"&gt;string&lt;/span&gt; filename)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;summary&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; This is adesso event handler method. It always return blank value&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;param name="filename" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;filename&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;returns&gt;&lt;/returns&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;string value&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; &lt;span style="color: teal;"&gt;IExtensionHandler&lt;/span&gt;.GetParameterNames(&lt;span style="color: blue;"&gt;string&lt;/span&gt; filename)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;summary&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; This method open the PDF in Acrobat Reader&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;param name="pdfPath" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;pdfPath&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; PDFOpenFileDialog(&lt;span style="color: blue;"&gt;string&lt;/span&gt; pdfPath)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Diagnostics.&lt;span style="color: teal;"&gt;Process&lt;/span&gt;.Start(pdfPath);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;catch&lt;/span&gt; (&lt;span style="color: teal;"&gt;Exception&lt;/span&gt; ex)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;throw&lt;/span&gt; ex;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;summary&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; This method read project number data from event handler xml and return it&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;param name="inputData" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;Root Node&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;returns&gt;&lt;/returns&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;Project Number&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; GetProjectNo(&lt;span style="color: teal;"&gt;XmlNode&lt;/span&gt; inputData)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;String&lt;/span&gt; projectNo = inputData.SelectSingleNode(&lt;span style="color: maroon;"&gt;"//EventHandler//Table[@Name='Project']//Field[@Name='project_no']"&lt;/span&gt;).InnerText;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; projectNo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;summary&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; This method decode the password and make a connection string&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;param name="applicationName" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;applicationName&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;param name="encodedPassword" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;encodedPassword&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; SetConnectionParameters(&lt;span style="color: blue;"&gt;string&lt;/span&gt; applicationName, &lt;span style="color: blue;"&gt;string&lt;/span&gt; encodedPassword)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strConnectionString = &lt;span style="color: teal;"&gt;String&lt;/span&gt;.Format(LOCAL_CONNECTIONSTRING_FORMAT, applicationName, Decode(encodedPassword));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;summary&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; This method converts base64 format string in to normal strign and return it&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;param name="base64EncodedString" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;base64EncodedString&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;returns&gt;&lt;/returns&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;Actual String Value&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Decode(&lt;span style="color: blue;"&gt;string&lt;/span&gt; base64EncodedString)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[] todecode_byte = &lt;span style="color: teal;"&gt;Convert&lt;/span&gt;.FromBase64String(base64EncodedString);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; System.Text.&lt;span style="color: teal;"&gt;Encoding&lt;/span&gt;.Unicode.GetString(todecode_byte);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;catch&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;summary&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; This method fill dataset based on project number&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;param name="projectNo" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;projectNo&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; FillReportDataset(&lt;span style="color: blue;"&gt;string&lt;/span&gt; projectNo)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.Clear();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;OdbcConnection&lt;/span&gt; conn = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;OdbcConnection&lt;/span&gt;(strConnectionString);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Open();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Project Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;OdbcCommand&lt;/span&gt; cmdProject = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;OdbcCommand&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Select * from [Project] where [Project].[project_no]='"&lt;/span&gt; + projectNo + &lt;span style="color: maroon;"&gt;"'"&lt;/span&gt;, conn);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;OdbcDataAdapter&lt;/span&gt; daProject = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;OdbcDataAdapter&lt;/span&gt;(cmdProject);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; daProject.Fill(dsWSWTable, &lt;span style="color: maroon;"&gt;"Project"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.Project.Rows.Count &amp;gt; 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.Project[0].Isaddress_1Null())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.Project[0].address_1 = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.Project[0].Isaddress_2Null())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.Project[0].address_2 = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//WSW Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;OdbcCommand&lt;/span&gt; cmdWSW = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;OdbcCommand&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Select [WSW].*,[Project].[incident_no],[Project].[site_name],[Project].[DENR_incident_mgr] from [WSW],[Project] where [WSW].[project_no]=[Project].[project_no] and [WSW].[project_no] ='"&lt;/span&gt; + projectNo + &lt;span style="color: maroon;"&gt;"'"&lt;/span&gt;, conn);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;OdbcDataAdapter&lt;/span&gt; daWSW = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;OdbcDataAdapter&lt;/span&gt;(cmdWSW);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; daWSW.Fill(dsWSWTable, &lt;span style="color: maroon;"&gt;"WSW"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.WSW.Rows.Count &amp;gt; 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; dsWSWTable.WSW.Rows.Count; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.WSW[i].Isproperty_address_1Null())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.WSW[i].property_address_1 = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.WSW[i].Isproperty_address_2Null())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.WSW[i].property_address_2 = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.WSW[i].IscityNull())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.WSW[i].city = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (!dsWSWTable.WSW[i].IszipNull())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.WSW[i].zip = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.WSW[i].Isowner_address_1Null())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.WSW[i].owner_address_1 = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.WSW[i].Isowner_address_2Null())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.WSW[i].owner_address_2 = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.WSW[i].Isowner_cityNull())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.WSW[i].owner_city = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.WSW[i].Isowner_stateNull())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.WSW[i].owner_state = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dsWSWTable.WSW[i].Isowner_zipNull())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dsWSWTable.WSW[i].owner_zip = &lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;catch&lt;/span&gt; (&lt;span style="color: teal;"&gt;Exception&lt;/span&gt; ex)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;MessageBox&lt;/span&gt;.Show(ex.Message);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 76.5pt; text-indent: -0.5in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;1.6.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Plug-in Creations in Adesso&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;You can refer &lt;b&gt;&lt;i&gt;Adesso_Plug-In_Development_Guide.pdf &lt;/i&gt;&lt;/b&gt;for more details. &lt;b&gt;&lt;i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Once we build the project then you can find class library project dll in bin/debug directory. For Example. &lt;b&gt;&lt;i&gt;PrintWSWTableReport.dll&lt;/i&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Open the Adesso application in Adesso client.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Go to Tools &amp;gt; Application Designer Area&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Go to Plug-in selction. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Click on new button for creations of new plug-in. Enter name of Plug-in click on OK button. Refer screen below&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/TGp24bCazcI/AAAAAAAAAXE/0L_YDIWTPxg/s1600/CreatePlugin.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="434" src="http://4.bp.blogspot.com/_44kQ1invdmk/TGp24bCazcI/AAAAAAAAAXE/0L_YDIWTPxg/s640/CreatePlugin.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;Screen 11: Create New Plug-in&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Once you click on OK button then we have to add more details related to plug-in. If we and to display crystal report on button click then checked checkbox of &lt;b&gt;&lt;i&gt;Button&lt;/i&gt;&lt;/b&gt; under &lt;b&gt;C&lt;i&gt;an be used as:&lt;/i&gt;&lt;/b&gt; section. Then under resources section, for Resource Dropdown, browse for our project dll. For example.&amp;nbsp; &lt;b&gt;&lt;i&gt;PrintWSWTableReport.dll. &lt;/i&gt;&lt;/b&gt;Once this dll is added then it will prompt for Class name selection. Select &lt;b&gt;&lt;i&gt;Adesso.Client.PrintWSWTablePlugin.&lt;/i&gt;&lt;/b&gt; If there any dependencies other than&amp;nbsp; &lt;i&gt;Adesso.Interop.AdessoDataObjectsLib.dll, Adesso.Interop.TBSYNCLib.dll and AdessoInterfaces.dll&lt;/i&gt; these DLL’s then you can add those dependencies from &lt;b&gt;&lt;i&gt;Dependencies&lt;/i&gt;&lt;/b&gt; Section&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Refer screen below&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/TGp2_ZNiDUI/AAAAAAAAAXM/QUwkqS4WRYQ/s1600/Plug-in-SelectDLL.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="436" src="http://4.bp.blogspot.com/_44kQ1invdmk/TGp2_ZNiDUI/AAAAAAAAAXM/QUwkqS4WRYQ/s640/Plug-in-SelectDLL.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;Screen 12: Select Plug-in DLL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Click on OK button to save this plug-in&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Next step is too hooked this plug-in on button. So go to Form section of Application Designer. It is assume that you already design the forms for each table and added &lt;b&gt;&lt;i&gt;Print WSW Table Report&lt;/i&gt;&lt;/b&gt; as button on Project form. Click on button, it will display properties for button where you can specify &lt;b&gt;A&lt;i&gt;ction&lt;/i&gt;&lt;/b&gt; as &lt;b&gt;&lt;i&gt;Run as Plug-in.&lt;/i&gt;&lt;/b&gt; &amp;nbsp;Hooked this plug-in on button from which you want to display crystal report.&amp;nbsp; Here we are applying Plug-in on projects form which will print all associated records from WSW table. Refer screen below &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/TGp3KKTGbYI/AAAAAAAAAXU/_5oK1EsYK7I/s1600/Forms-HookedPlug-inOnButton.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="440" src="http://3.bp.blogspot.com/_44kQ1invdmk/TGp3KKTGbYI/AAAAAAAAAXU/_5oK1EsYK7I/s640/Forms-HookedPlug-inOnButton.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;Screen 13: Hooked Plug-in on button&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Click OK button and save the form&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Now you can run this Plug-in from project form which will display crystal report in crystal report viewer or you can create PDF from RPT.&amp;nbsp; Refer screen below &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/TGp3RVoL-EI/AAAAAAAAAXc/yYKmBBcENco/s1600/Run-Report-ButtonClick.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="442" src="http://1.bp.blogspot.com/_44kQ1invdmk/TGp3RVoL-EI/AAAAAAAAAXc/yYKmBBcENco/s640/Run-Report-ButtonClick.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Screen 14: Run Report &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="line-height: 150%; margin-left: 81pt; text-indent: -4.7pt;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;Ø&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&amp;nbsp;When user click on button then it execute the plug-in and display the report in report viewer or it will create PDF from RPT file. Here we have created the report as PDF. Refer screen below &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/TGp3aXOmwsI/AAAAAAAAAXk/yIEjmQIQMfc/s1600/PrintReport.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="438" src="http://4.bp.blogspot.com/_44kQ1invdmk/TGp3aXOmwsI/AAAAAAAAAXk/yIEjmQIQMfc/s640/PrintReport.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;Screen 15: Printed report in PDF format&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-indent: 0.5in;"&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cravid%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:Wingdings;	panose-1:5 0 0 0 0 0 0 0 0 0;	mso-font-charset:2;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:0 268435456 0 0 -2147483648 0;}@font-face	{font-family:Mangal;	panose-1:0 0 4 0 0 0 0 0 0 0;	mso-font-charset:1;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:32768 0 0 0 0 0;}@font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:1;	mso-generic-font-family:roman;	mso-font-format:other;	mso-font-pitch:variable;	mso-font-signature:0 0 0 0 0 0;}@font-face	{font-family:Calibri;	panose-1:2 15 5 2 2 2 4 3 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:-520092929 1073786111 9 0 415 0;}@font-face	{font-family:Verdana;	panose-1:2 11 6 4 3 5 4 4 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:536871559 0 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:0in;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:0in;	margin-left:.5in;	margin-bottom:.0001pt;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast	{mso-style-priority:34;	mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-type:export-only;	margin-top:0in;	margin-right:0in;	margin-bottom:10.0pt;	margin-left:.5in;	mso-add-space:auto;	line-height:115%;	mso-pagination:widow-orphan;	font-size:11.0pt;	mso-bidi-font-size:10.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:Mangal;	mso-bidi-theme-font:minor-bidi;}.MsoPapDefault	{mso-style-type:export-only;	margin-bottom:10.0pt;	line-height:115%;}@page WordSection1	{size:8.5in 11.0in;	margin:1.0in 1.0in 1.0in 1.0in;	mso-header-margin:.5in;	mso-footer-margin:.5in;	mso-paper-source:0;}div.WordSection1	{page:WordSection1;} /* List Definitions */ @list l0	{mso-list-id:438722262;	mso-list-type:hybrid;	mso-list-template-ids:-1110570448 67698697 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}@list l0:level1	{mso-level-number-format:bullet;	mso-level-text:;	mso-level-tab-stop:none;	mso-level-number-position:left;	text-indent:-.25in;	font-family:Wingdings;}ol	{margin-bottom:0in;}ul	{margin-bottom:0in;}--&gt;&lt;/style&gt;  &lt;/div&gt;&lt;div class="MsoListParagraph" style="line-height: 150%; text-indent: -0.25in;"&gt;&lt;span style="font-family: Wingdings; line-height: 150%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1518018179493370580-8508189405758846849?l=adessodeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/8508189405758846849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://adessodeveloper.blogspot.com/2010/08/create-crystal-report-plug-in-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/8508189405758846849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/8508189405758846849'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/2010/08/create-crystal-report-plug-in-for.html' title='How to Create a Crystal Report Plug-in for Adesso'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_44kQ1invdmk/TGp0a-NJKeI/AAAAAAAAAV0/HNd6-vYnBnk/s72-c/CreateProject.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-4209757792695606300</id><published>2010-05-13T11:43:00.000-07:00</published><updated>2010-05-13T11:43:01.616-07:00</updated><title type='text'>LAST() Function</title><content type='html'>We recently created a new function in Adesso called &lt;b&gt;LAST().&lt;/b&gt;&amp;nbsp; This function, which is available in the expression editor, was created so that values from records in a child table could be extracted with ease in the parent table.&amp;nbsp; This is useful for when you want to compare two or more values in a child  table against each other and/or calculate something between those values (for example, like the difference between the last two temperature readings recorded from the child table).&lt;br /&gt;&lt;br /&gt;The function's syntax is as follows:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&amp;nbsp;LAST(fieldname or O2M.view.fieldname, record number)&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;Where the O2M (one to many) view listed in the function is a view that has at least one sorting order assigned to it.&amp;nbsp; The record number in the function is an integer denoting which record to pull the value from, based on the last record in the child table's view being record number 1, the second to last record being record number 2, and so forth.&lt;br /&gt;&lt;br /&gt;Note the expression in the following screenshot:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S-w4uhsa9XI/AAAAAAAAAU0/Q1ArFoW8kFg/s1600/Clip+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="299" src="http://3.bp.blogspot.com/_44kQ1invdmk/S-w4uhsa9XI/AAAAAAAAAU0/Q1ArFoW8kFg/s640/Clip+1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The expression assigned to the field which I have called LAST1_Temp is:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;LAST([Well Sampling &amp;gt; Purging].Included.Temp_Reading, 1)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Note that I have selected a view called "Included" that I built for the o2m grid that is displayed on the parent form.&amp;nbsp;&amp;nbsp; But the name of this view is something that looks complex..."[Well Sampling &amp;gt; Purging].Included.&amp;nbsp; The reason for this is that a relationship exists between the parent table Well Sampling, and the table Purging.&amp;nbsp; I created a o2m relationship between those tables and named that relationship Well Sampling &amp;gt; Purging.&amp;nbsp; Hence the name of the view.&amp;nbsp; An easy way to populate this is to select the view right from the top left listbox in the expression editor, as illustrated below:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S-w6aPAGTmI/AAAAAAAAAU8/GwZaG1UQCYY/s1600/Clip+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://1.bp.blogspot.com/_44kQ1invdmk/S-w6aPAGTmI/AAAAAAAAAU8/GwZaG1UQCYY/s640/Clip+2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Once I select the proper view, then I simply select the field I want from the field selection listbox just to the right, as illustrated below:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S-w7YhN_v-I/AAAAAAAAAVM/D8HNb7bXROA/s1600/Clip+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://4.bp.blogspot.com/_44kQ1invdmk/S-w7YhN_v-I/AAAAAAAAAVM/D8HNb7bXROA/s640/Clip+3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Please note that what I am doing here is selecting the proper VIEW and then the correct field from the related &lt;b&gt;CHILD&lt;/b&gt; table.&amp;nbsp; In our case here, the child table is called Purging, and the parent table is called Well_Sampling_Events.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Now that I have selected the proper field from the proper view of the related child (many) table, then the last piece of missing information is the record number.&amp;nbsp; In this particular case, I have assigned it as "1".&amp;nbsp; This means that the function, which is loaded into a field that is present in the parent table (the Well_Sampling_Events table) and which I have called LAST1_Temp will pick up the value in the field Temp_Reading from the last record in the Purging table, where the last record is based on a particular sort order which was assigned in the Included view.&amp;nbsp; This sounds like a mouthful, so if you are confused, its understandable.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;So lets look at this another way.&amp;nbsp; Step by step, this is what you would do:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Create a parent table, a child table, and relate the two using a one to many (o2m) relationship. &lt;/li&gt;&lt;li&gt;Create a view for the child, or many, table, and make sure you give it a sort order by using the Sort tab in the view designer.&lt;/li&gt;&lt;li&gt;Assign that view to a grid control on the parent table's form.&lt;/li&gt;&lt;li&gt;Create a new field in the parent table to store the expression and make that field a LOCAL field by checking the "Local" checkbox in the field designer.&lt;/li&gt;&lt;li&gt; Make this new field with data type equal to the child field data type, with expression display control, and assign it the expression as listed above:&amp;nbsp; LAST(fieldname or O2M.view.fieldname, record number)&lt;/li&gt;&lt;/ol&gt;Once you do these things, then you can use that value to calculate something in another field/expression, etc.&amp;nbsp; In our case above, we did this to figure out when groundwater from a monitoring well has stabilized based on temperature readings.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Now, if I want to then store the value of the 2nd to last temperature reading from this table, my expression would look like this: LAST([Well Sampling &amp;gt; Purging].Included.Temp_Reading, 2)&lt;br /&gt;I would assign this expression to a new local field in the parent table, and I would call it something meaningful, like LAST2_Temp.&lt;br /&gt;&lt;br /&gt;Once I have those two fields, then I can calculate the absolute difference between the two temperature readings by creating yet another local field (with the same data type as the others being used in the expressions) in the parent table, where the expression would look like this: ABS(LAST2_Temp - LAST1_Temp), where ABS is the absolute value, meaning that the negative sign is dropped off.&amp;nbsp; What this does, then, is it gives me the numerical change between the last two temperature readings obtained and recorded in the child table, and it does this based on the sort order assigned in the view that I called "Included".&amp;nbsp; Simple as that.&lt;br /&gt;&lt;br /&gt;The following screenshots are of this functionality in runtime mode:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S-xDcL0M5ZI/AAAAAAAAAVU/X6-EKggLexY/s1600/Clip+4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="342" src="http://3.bp.blogspot.com/_44kQ1invdmk/S-xDcL0M5ZI/AAAAAAAAAVU/X6-EKggLexY/s400/Clip+4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Note that on the screenshot above, there's some textual reference that says "Continue purging".&amp;nbsp; This is an expression that displays either "Continue Purging" or "Stabilization Complete", and it displays this dependent upon the difference between certain stabilization criteria, of which temperature is one of them.&amp;nbsp; In our case here, a well is considered "stable" if the change in temperature over the last 3 readings is less than 0.2 degrees Celsius.&amp;nbsp; So what we did was use the LAST() function to capture the values of the last 3 temperature readings, compared them to each other, and if they all fall below +/- 0.2, then the well is considered stabilized based on temperature.&amp;nbsp; I have placed a button that opens a hidden tab on the bottom of the form, so that users can quickly see the calculations.&amp;nbsp; The screenshot below displays this form:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S-xE21yuj8I/AAAAAAAAAVc/nmrGdvvbaf8/s1600/Clip+5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_44kQ1invdmk/S-xE21yuj8I/AAAAAAAAAVc/nmrGdvvbaf8/s400/Clip+5.png" width="267" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt; &amp;nbsp; &lt;/div&gt;&lt;div style="text-align: left;"&gt;Please note that all of this functionality also works on a PDA (although a bit slower than on a Tablet PC).&amp;nbsp; Screenshots of this application running on PPC is displayed below:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S-xGcatlMlI/AAAAAAAAAVk/Ozf4q80oH7o/s1600/Clip+6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_44kQ1invdmk/S-xGcatlMlI/AAAAAAAAAVk/Ozf4q80oH7o/s400/Clip+6.png" width="195" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S-xHxVfDVcI/AAAAAAAAAVs/TkybhTJHexA/s1600/Clip+7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_44kQ1invdmk/S-xHxVfDVcI/AAAAAAAAAVs/TkybhTJHexA/s400/Clip+7.png" width="197" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1518018179493370580-4209757792695606300?l=adessodeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/4209757792695606300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://adessodeveloper.blogspot.com/2010/05/last-function.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/4209757792695606300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/4209757792695606300'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/2010/05/last-function.html' title='LAST() Function'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_44kQ1invdmk/S-w4uhsa9XI/AAAAAAAAAU0/Q1ArFoW8kFg/s72-c/Clip+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-4550594974629896601</id><published>2010-02-19T07:40:00.000-08:00</published><updated>2010-02-19T07:40:19.535-08:00</updated><title type='text'>The Secret Sauce - An Introduction</title><content type='html'>On its own, Adesso Client is a pretty good tool to use to build database applications. &amp;nbsp;Sure, there are other, more powerful tools to build robust applications that run on PCs, but can they run on Pocket PCs and Windows Mobile? &amp;nbsp;And even if they can, can they run in offline mode, using a device's local database to store its data? &amp;nbsp;And even if they can do that, can they sync to an intelligent server that handles all the synchronization between the device database and a centralized database? &amp;nbsp;And even if they can do that, are they easy enough for non-database administrators to use, set up permissions, sync rules, audit trails, user groups, sync type, and conflict resolution? &amp;nbsp;Herein lies the power of Adesso. &amp;nbsp;The Secret Sauce, if you will. &amp;nbsp;Today we are going to taste this sauce, just a small taste. &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;Adesso Server - The Secret Sauce&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;In my opinion, Adesso Server is the easiest, most powerful sync server there is, bar none. &amp;nbsp;Because its easy to use, it makes it that much more powerful. &amp;nbsp;I've used PenDragon, iAnywhere, Visual CE, and Bright Software. &amp;nbsp;And what I mean is that I've actually purchased, installed, and tried building apps using these other products. &amp;nbsp;I also know of people that swore by iAnywhere, SQL Anywhere and Visual CE, until they started using Adesso. &amp;nbsp;Nothing compares to Adesso Server. &amp;nbsp;Its the brains behind the system. &amp;nbsp;Its why people use this stuff. &amp;nbsp;Without it, Adesso is just another database system like all the others out there. &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;The SyncAdmin Web Portal&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;When you first log into the SyncAdmin portal (it's typical URL is http://serveraddress/SyncAdmin/), you will see a page like the following:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S34EgCfsP9I/AAAAAAAAARs/xI2EbVHPDq4/s1600-h/Clip+3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="323" src="http://1.bp.blogspot.com/_44kQ1invdmk/S34EgCfsP9I/AAAAAAAAARs/xI2EbVHPDq4/s400/Clip+3.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The left pane is the main navigation of the site. &amp;nbsp;the screenshot above was taken of our ASP version of Adesso Server. &amp;nbsp;This is the server version that we use to host multiple accounts. &amp;nbsp;If you are hosting your own server, your version of Adesso would be the Enterprise Edition, and would look slightly different than the one illustrated above. &amp;nbsp;We will talk about the Enterprise Edition version later in this blog.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The most important section of the portal is the Managed Accounts section. &amp;nbsp;When you click on it, you will see the following screen displayed.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S34GfD0e-8I/AAAAAAAAAR0/QrAGQaER-zw/s1600-h/Clip+4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://3.bp.blogspot.com/_44kQ1invdmk/S34GfD0e-8I/AAAAAAAAAR0/QrAGQaER-zw/s400/Clip+4.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the left pane you are presented with a list of accounts. &amp;nbsp;In the main pane, those same accounts are displayed with some basic statistics. &amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you click on one of the accounts in the left pane, the screen will refresh, with a list of databases that are associated with that particular account, and some details of that account in the main pane.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S34HVSG570I/AAAAAAAAAR8/bWy6EYewijg/s1600-h/Clip+5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://3.bp.blogspot.com/_44kQ1invdmk/S34HVSG570I/AAAAAAAAAR8/bWy6EYewijg/s400/Clip+5.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Notice that several tabs are now listed in the main pane. &amp;nbsp;The most important tab is the Users tab. &amp;nbsp;From here, you can add users as subscribers of a particular database.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Adding Users To An Account&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S34JQdslymI/AAAAAAAAASE/D5njooGmq4k/s1600-h/Clip+6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://3.bp.blogspot.com/_44kQ1invdmk/S34JQdslymI/AAAAAAAAASE/D5njooGmq4k/s400/Clip+6.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;To add a user, simply click on the Add User link below the menus. &amp;nbsp;To change a particular user's rights, click on the box to the left of the username, then click on the boxes to the right, and click on the Update Permissions button. &amp;nbsp;It's that simple.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Now, please note that there are two levels of users...first you have to add a user to an ACCOUNT. &amp;nbsp;Then that user will be available to be added to an application, but you have to actually add that user to the database application in order for that user to see the app. &amp;nbsp;By default, users added to an account don't have access to any applications in the account until they are actually assigned to that application. &amp;nbsp;This is done in the next step I will show you. &amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Adding Users To An Application&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;To add a user to an application, expand the account name on the left pane (if its not expanded yet). &amp;nbsp;Then click on an application in that list. &amp;nbsp;In the example below, I have clicked on one of our legacy applications, EnvironPro2009. &amp;nbsp;This app is used by our field technicians, geologist, and project managers to collect and manage low-flow groundwater data by our field technicians. &amp;nbsp;This application is also used by other environmental firms for the same purpose.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S34LErKTXOI/AAAAAAAAASM/06znz7tr3y8/s1600-h/Clip+7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://2.bp.blogspot.com/_44kQ1invdmk/S34LErKTXOI/AAAAAAAAASM/06znz7tr3y8/s400/Clip+7.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Notice that the main pane refreshes and you are presented with a new series of menus on the top. &amp;nbsp;From the first tab, the Info tab, you can assign someone who has admin rights to the account as the admin for the application. &amp;nbsp;You can also flag the application to become a template to create other applications, and you can even propagate changes and data from this "parent app" to all the instances you create. &amp;nbsp;More about this awesome feature will be covered in a separate blog post. Very powerful feature that requires its own blog post.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;To add a user to the app, click on the users tab. &amp;nbsp;Your screen will look like the following:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S34MLp5QXSI/AAAAAAAAASU/mobm5oUhI1M/s1600-h/Clip+8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://3.bp.blogspot.com/_44kQ1invdmk/S34MLp5QXSI/AAAAAAAAASU/mobm5oUhI1M/s400/Clip+8.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;If a user has access to the account (as I showed you previously), he will appear on the left window. &amp;nbsp;To add him tot he application, highlight his name and click on the Add button. &amp;nbsp;It's that simple. &amp;nbsp;Once you add a person to an app, you can then control that person's permissions and sync rules from this same area. &amp;nbsp;To do this, simply click on the Permissions tab (its a submenu below the top menus on the main pane).&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;User Permissions&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S34NdM5kh7I/AAAAAAAAASc/V_Uzm68969s/s1600-h/Clip+9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://1.bp.blogspot.com/_44kQ1invdmk/S34NdM5kh7I/AAAAAAAAASc/V_Uzm68969s/s400/Clip+9.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Notice that in the main pane, you are presented with several columns:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Table - the table name in the database&lt;/li&gt;&lt;li&gt;Read - displays list of fields that, if highlighted, the user can read/view&lt;/li&gt;&lt;li&gt;Modify - displays list of fields that, if highlighted, the user can modify values in records created by others&lt;/li&gt;&lt;li&gt;Add - if checked, allows the user to add records to that table&lt;/li&gt;&lt;li&gt;Delete - if checked, allows the user to delete records from that table&lt;/li&gt;&lt;li&gt;Export - if checked, allows the user to export records from that table via the Record&amp;gt;Export menu in Adesso Client&lt;/li&gt;&lt;li&gt;Modify Owned Records - if checked, allows the user to edit his own records after they are created and saved to the local device database&lt;/li&gt;&lt;li&gt;View - displays list of views that, if highlighted, the user will see on his copy of Adesso Client&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In essence, from this screen, you can control EXACTLY what you want your user to see and do, down to the table and field level. &amp;nbsp;you can control- or shift-click to select several fields from the Read, Modify, and View columns. &amp;nbsp;In the Read and Modify columns, there are also "All Fields" and "No Fields" options. &amp;nbsp;When you first add a user to an application, by default it allows a new user to read all the fields in all the tables, and locks out a user from being able to modify values in records created by others. &amp;nbsp;That's what the Modify column is all about...for example, if User X creates a record for Table 1 and syncs, you can control whether or not User Y can edit a specific field in that table created by User X. &amp;nbsp;To give him rights to edit a specific field, simply highlight that field on that table for that user. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want a particular table to be hidden from a user, just click on "No Views" in the Views column for that particular user.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Application Designer (Modify Schema) Permissions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Notice that on the Permissions screen, there's a checkbox for Application Designer permission. &amp;nbsp;If that box is checked for a particular user, then that user will be able to open the Application Designer in Adesso Client and will be able to modify the application schema...tables, fields, views, forms, etc. &amp;nbsp;If the checkbox is unchecked, the Application Designer menu will be grayed out/inactive on his copy of Adesso Client.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;Sync Settings&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The second part of controlling what a user can do and what he can see in a particular application is handled via sync settings. &amp;nbsp;When you click on the Sync Settings link, your screen will look like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S34RR_y9vSI/AAAAAAAAASk/S2nTJxE0fSk/s1600-h/Clip+10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://1.bp.blogspot.com/_44kQ1invdmk/S34RR_y9vSI/AAAAAAAAASk/S2nTJxE0fSk/s400/Clip+10.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;From this screen you can click on a particular user, then a particular table, select a particular type of sync, and even the type of conflict resolution. &amp;nbsp;Depending on the sync type, you can even add sync rules/queries that will control which records are pushed up to the server from the client or vice versa, down to the client from the server. &amp;nbsp;All of this can be done at the table level, meaning you can change any of these parameters for a particular user for a particular table. &amp;nbsp;In other words, you can have a particular type of sync (client to server) for one table, and have a completely different type of sync type (bi-directional) for a different table for the same user. &amp;nbsp;Very simple to use. &amp;nbsp;The sync types are as follows:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;Bi-directional - data gets sent first from the client to the server, then back down to the client from the server&lt;/li&gt;&lt;li&gt;Server-to-Client - Sends records from server to client only&lt;/li&gt;&lt;li&gt;Client-to-Server - Sends records from client to server only. &amp;nbsp;When a user creates records on his device, it stores them locally, and can be viewed in grid view. &amp;nbsp;Once the user syncs, all the records are uploaded to the server and his grid view for that table is cleared out&lt;/li&gt;&lt;li&gt;No Sync - data on table doesn't get synced at all&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Conflict Resolution&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are 4 conflict resolution types available, and a different type can be assigned to different tables.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Ask User - during sync, if a conflict is detected, a window pops open, the server record and the client record are displayed side by side in this window, with the conflict field highlighted in bright green. &amp;nbsp;The window contains controls to tell the server how to handle the conflict: overwrite the server record with the local record, overwrite the local record with the server record, or keep both records. &amp;nbsp;For each conflict, it will display this windows unless the user clicks a box in the window to treat all conflicts in the same manner&lt;/li&gt;&lt;li&gt;Client record overwrites server record&lt;/li&gt;&lt;li&gt;Server record overwrites client record&lt;/li&gt;&lt;li&gt;Keep both records&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Like I said earlier, you can assign a different conflict resolution to different tables for a particular user. &amp;nbsp;By default, when you first add a user to the application, it will assign bi-directional sync settings and "ask user" conflict resolution to each table.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Sync Rules&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sync rules are used to control the data going either up to the server from the client and/or down to the client from the server. &amp;nbsp;Sync rules are typically uses for instances where you want to have bi-directional sync type, but you want to control the records being pushed down to the client for a particular user or user group. &amp;nbsp;When you use Pocket PCs and small Windows Mobile devices, you don't want to clog up the device with thousands or even hundreds of records...if you do, the PPC will either run ridiculously sluggish or won't run at all. &amp;nbsp;Those devices have a limited amount of RAM and aren't meant to handle hundreds of records. &amp;nbsp;That's what the sync rules are for. &amp;nbsp;Another benefit of using a sync rule is that you can use them to push only records to someone that meet a specific criteria, like a project number or company name, for example. &amp;nbsp;This allows you to use a single database and use it for multiple departments, companies, groups, teams, etc, and no one on one team/group/dept/company would see what another group sees...they would only see what is relevant to their own group. &lt;br /&gt;&lt;br /&gt;The screenshot below illustrates a bi-directional sync type with a rule inserted in the server-to-client direction:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S36h4Wj54zI/AAAAAAAAASs/Xpw_bSNJJ2M/s1600-h/Clip+12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="347" src="http://3.bp.blogspot.com/_44kQ1invdmk/S36h4Wj54zI/AAAAAAAAASs/Xpw_bSNJJ2M/s400/Clip+12.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the example above, we are passing records FROM server TO client that meet the following criteria:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;[Project_No] LIKE '05-53014%' OR [Project_No] LIKE '07-71009/2%'&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The syntax above follows certain rules:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Fieldnames are enclosed in brackets ( [ and ] )&lt;/li&gt;&lt;li&gt;LIKE is the same as "contains"&lt;/li&gt;&lt;li&gt;text to search for needs to be enclosed in single quotes ( ' )&lt;/li&gt;&lt;li&gt;the wildcard symbol is the percent sign ( % )&lt;/li&gt;&lt;li&gt;the wildcard symbol can be placed at the beginning of the text or at the end&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Build Sync Rule Helper&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You will also notice that there is a button called "Build Sync Rule". &amp;nbsp;If you click on it, a new window will appear that looks like the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S36jUz_9uVI/AAAAAAAAAS0/7EA7M2nc73s/s1600-h/Clip+13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="243" src="http://1.bp.blogspot.com/_44kQ1invdmk/S36jUz_9uVI/AAAAAAAAAS0/7EA7M2nc73s/s400/Clip+13.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;On the left pane of this new window, all the fields available for this rule will appear. &amp;nbsp;On the right pane, different functions appear. &amp;nbsp;Several controls like AND, OR, NOT, =, &amp;lt;, &amp;gt;, etc appear. &amp;nbsp;Toward the bottom some instructions are displayed. &amp;nbsp;Once you have built your rule, simply click on the "Done" button to push it out to the sync rule direction box.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Advanced Sync Rule Link&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you feel up to it, there's also an advanced sync rule link, that, when clicked, displays a slightly different sync rule box with a help screen to guide you on how to build a proper sync rule. &amp;nbsp;Your screen should look like the following if you click on this advanced sync rule link:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S36kqmqkOBI/AAAAAAAAAS8/vLEGCMT74Ag/s1600-h/Clip+14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://3.bp.blogspot.com/_44kQ1invdmk/S36kqmqkOBI/AAAAAAAAAS8/vLEGCMT74Ag/s400/Clip+14.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;User Groups&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you don't want to mess with assigning permissions and sync rules to every single user individually, you can do this using user groups. &amp;nbsp;Let's say that you have 100 users, and 75 of them are field folks that are only going to enter records, 20 other people manage the data in-house, and 5 others need to access the database schema to make edits to it. &amp;nbsp;Rather than going through each of the 100 users manually, which can take forever), you can set up 3 groups to handle this. &amp;nbsp;What you would do is create a Field Team group, a Data Manager group, and a Database Designer group. &amp;nbsp;To set these groups up, click on the User Groups tab on the top of the main pane.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S36l5abhzeI/AAAAAAAAATE/gHYPopzJT6E/s1600-h/Clip+15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_44kQ1invdmk/S36l5abhzeI/AAAAAAAAATE/gHYPopzJT6E/s400/Clip+15.png" width="390" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;From this screen, you can create, rename, and delete groups. &amp;nbsp;This is pretty much self-explanatory. &amp;nbsp;Nest you will want to push users to specific groups. &amp;nbsp;To do this, click on the "Group Users" link.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S36mSqhYyNI/AAAAAAAAATM/ZuLMtpNo1f0/s1600-h/Clip+16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="357" src="http://3.bp.blogspot.com/_44kQ1invdmk/S36mSqhYyNI/AAAAAAAAATM/ZuLMtpNo1f0/s400/Clip+16.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Simply click on the group from the top scroll window, click on view, then find the users you want to add to the group, and click on the Add button.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;A FEW NOTES ABOUT GROUPS:&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;The groups feature does not currently support cascading groups. &amp;nbsp;What I mean by this is that you can't add a group into another group, and so on. &amp;nbsp;&lt;/li&gt;&lt;li&gt;When you add a user to a group, that user then is assigned the permissions of that group. &amp;nbsp;However, if you then change that particular user's permissions individually through the users tab, then those changes override the group permissions. &amp;nbsp;&lt;/li&gt;&lt;li&gt;If you want to refresh a particular user's permissions because you edited that user's permissions manually from the users tab, remove that user from the group and add him back in.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;The rest of permissions and sync rules for Groups is the same exact process as what I described in Users. &amp;nbsp;So there's no need to explain this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;Send Messages to Users&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The SyncAdmin portal also has a feature to allow you to send messages to the users. &amp;nbsp;Pretty simple feature. &amp;nbsp;Screenshot is displayed below:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S36o6aj46iI/AAAAAAAAATU/VHYVRr-a6w0/s1600-h/Clip+17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S36o6aj46iI/AAAAAAAAATU/VHYVRr-a6w0/s320/Clip+17.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;Sync Activities&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This particular feature allows you to view every single sync activity that has been conducted on the server for a particular application. &amp;nbsp;When you first click on the Sync Activities tab, your screen will refresh and look like the screenshot below:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S36qZQZB_1I/AAAAAAAAATc/nJto1tfo7Ik/s1600-h/Clip+18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S36qZQZB_1I/AAAAAAAAATc/nJto1tfo7Ik/s320/Clip+18.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;From here, you can enter a date range, an optional user credential, an (optional) machine name to search for, and a sync status type (succeeded, currently syncing, aborted, and failed). &amp;nbsp;There are also two other checkboxes to the right:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Show All Sync Details - lists every single sync item. &amp;nbsp;By default, this is not checked.&lt;/li&gt;&lt;li&gt;Show WS Calls - lists web services calls. &amp;nbsp;By default this is not checked.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;If you provide a date range, but and leave the checkboxes unchecked, if there was activity on the server, it would look like the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S36sHHxXruI/AAAAAAAAATk/-zJn9-44ZjI/s1600-h/Clip+19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/_44kQ1invdmk/S36sHHxXruI/AAAAAAAAATk/-zJn9-44ZjI/s400/Clip+19.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you click on an expand button for one of the rows, you will see all the details for that one sync session, similar to the screenshot below:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S36stmuRBHI/AAAAAAAAATs/1ZGAGiRVex4/s1600-h/Clip+20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/_44kQ1invdmk/S36stmuRBHI/AAAAAAAAATs/1ZGAGiRVex4/s400/Clip+20.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If, before you click on the View Report button, you had checked both checkboxes, your screen would look something like this:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S36t2BtG8oI/AAAAAAAAAT0/23C-teZ5Ar0/s1600-h/Clip+21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://3.bp.blogspot.com/_44kQ1invdmk/S36t2BtG8oI/AAAAAAAAAT0/23C-teZ5Ar0/s400/Clip+21.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;Advanced Features&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you click on the Advanced Features tab, you will be presented with the ability to change the sync order of the tables, and also be able to add an audit trail to your application.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Sync Order&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If for some reason, you want to have a specific order of syncing tables, you can do this from this screen.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S36ufrbxBcI/AAAAAAAAAT8/iCVS5XJ8Uk0/s1600-h/Clip+22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S36ufrbxBcI/AAAAAAAAAT8/iCVS5XJ8Uk0/s320/Clip+22.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Audit Trails&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you want to add an audit trail, click on the Audit Trail link. &amp;nbsp;Your screen will refresh and look like the following:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S36uqdT335I/AAAAAAAAAUE/z_6ZstArnH4/s1600-h/Clip+23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="398" src="http://1.bp.blogspot.com/_44kQ1invdmk/S36uqdT335I/AAAAAAAAAUE/z_6ZstArnH4/s400/Clip+23.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;From here, you can create an audit trail for any type of event. &amp;nbsp;Events are defined as the following:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Add Record&lt;/li&gt;&lt;li&gt;Modify Record&lt;/li&gt;&lt;li&gt;Delete Record&lt;/li&gt;&lt;li&gt;Modify Field(s)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;A note on audit trails: if you create an audit trail, please be aware that your database can grow rapidly. &amp;nbsp;This is because a new record will be created in a new table called "Audit" for each event you are auditing. &amp;nbsp;If you decide you want to know when a new record is added, deleted, and modified, up to 3 audit trail records will be created for each record in a particular table. &amp;nbsp;We can discuss this is more detail at a later time. &amp;nbsp;Suffice it to say that you need to be careful when creating audit trails. &amp;nbsp;And you probably only want to record if a record has been edited. &amp;nbsp;you can control delete capability from user permissions, so if deleting records is an issue for your application, simply eliminate this permission type for all users of the app. &amp;nbsp;Simple as that.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We haven't even discussed reporting, subscribed accounts, and server admin. &amp;nbsp;We will discuss those things in a later blog post. &amp;nbsp;Hopefully, if you have actually read this post, you should see how relatively easy it is to manage user permissions and sync rules, and monitor activities occurring on your server. &amp;nbsp;It's really simple. &amp;nbsp;Really. &amp;nbsp;That's the power of the secret sauce. &amp;nbsp;Simplicity that normal humans like me can understand. &amp;nbsp;At least I think I'm a regular normal average Joe...&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1518018179493370580-4550594974629896601?l=adessodeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/4550594974629896601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://adessodeveloper.blogspot.com/2010/02/secret-sauce-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/4550594974629896601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/4550594974629896601'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/2010/02/secret-sauce-introduction.html' title='The Secret Sauce - An Introduction'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_44kQ1invdmk/S34EgCfsP9I/AAAAAAAAARs/xI2EbVHPDq4/s72-c/Clip+3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-5800292422112866210</id><published>2010-02-10T20:13:00.000-08:00</published><updated>2010-02-10T20:21:08.957-08:00</updated><title type='text'>Locking Records Function - How to ensure that records in Adesso are absolutely uneditable</title><content type='html'>&lt;div style="text-align: left;"&gt;One of our clients asked us how we could essentially lock records so that they would be completely uneditable, even by the user that created them as well as the Adesso Administrator (a.k.a. the god-mode dude).&amp;nbsp; While you can control some of these permissions from the SyncAdmin portal, the Adesso Administrator could still technically edit whatever he wants.&amp;nbsp; So we ended up implementing some new code last year into the Adesso source that completely locks entire records from being edited by anyone.&amp;nbsp; The business case for this functionality is to ensure that records that were created by someone are not altered at all at a later date, ensuring the validity of the data stored in that record.&amp;nbsp; This is important in medical records and other highly personal or security-prone data.&lt;/div&gt;&lt;br /&gt;Today, I am going to explain how to create a button that, when clicked, essentially locks out records completely, so that they are absolutely uneditable by anyone.&lt;br /&gt;&lt;br /&gt;Locking a record consists of two components:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;three separate fields, one which stores a yes/no value, and two of which contain expressions&lt;/li&gt;&lt;li&gt;a button control that, when clicked, triggers an alert window prompting you to be sure that you want to proceed, and then, if user clicks ok, executes the expressions in the new fields&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;Step 1 - Create the Fields&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;You will need to create 3 fields in the table where you want to use record locking:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Field Name: “Record is locked” , data type: “Yes/No”, Display: “Checkbox”&lt;/li&gt;&lt;li&gt;Field Name: “Locking expression”, data type: “Yes/No”, Display: “Expression”, LOCAL FIELD checked, Expression text: “LOCKRECORD([Record is locked])” (no quotes)&lt;/li&gt;&lt;li&gt;Field Name: “Lock record button expression”, data type: “Yes/No”, Display: “Expression”, LOCAL FIELD checked, CALCULATE VIA BUTTON ONLY checked, Expression text: “SETFIELD([Record is locked], GETSYSPARAM(11, "Are you sure you want to lock this record? This cannot be undone"))” (no outer quotes, of course)&lt;/li&gt;&lt;/ol&gt;The following screenshots illustrate what these fields look like in the field editor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S3N61FSA5nI/AAAAAAAAAQk/HBahDZtPSQI/s1600-h/Clip+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S3N61FSA5nI/AAAAAAAAAQk/HBahDZtPSQI/s320/Clip+1.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;This is the "record is locked" field.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S3N6-RnTBpI/AAAAAAAAAQs/qxQTuqHskJ4/s1600-h/Clip+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S3N6-RnTBpI/AAAAAAAAAQs/qxQTuqHskJ4/s320/Clip+2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;This is the "locking expression" field.&amp;nbsp; Note that local field checkbox is checked.&amp;nbsp; This means that the value stored in this field won't get synced back the Adesso Server. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S3N7PMiiKVI/AAAAAAAAAQ0/lGtYt1J_jKg/s1600-h/Clip+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S3N7PMiiKVI/AAAAAAAAAQ0/lGtYt1J_jKg/s320/Clip+3.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;This is the "lock record button expression" field.&amp;nbsp; Note that it too is a local field, but also observe that the expression contained in this field is triggered only via a button control (checkbox on bottom right of expression editor). &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;Step 2 - Create the Button on the Form&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Now we simply need to create a button control that triggers the "lock record button expression" field we created in Step 1 above.&amp;nbsp; To do this, open the form for the table where you want to lock a record, add the button to that form, select "calculate expression" from the action menu, and then select the "lock record button expression" field from the dropdown below the action menu.&amp;nbsp; The screenshot below illustrates this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S3N98NEAZSI/AAAAAAAAARE/aPD4KE_f6YI/s1600-h/Clip+5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S3N98NEAZSI/AAAAAAAAARE/aPD4KE_f6YI/s320/Clip+5.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;To add a button, simply click on an empty row and select "button" from the popup menu (its located close to the bottom of the popup menu) &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S3N9VFJ82sI/AAAAAAAAAQ8/I2jcTEruyPk/s1600-h/Clip+4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://2.bp.blogspot.com/_44kQ1invdmk/S3N9VFJ82sI/AAAAAAAAAQ8/I2jcTEruyPk/s400/Clip+4.png" width="400" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;The main point here is to create a button, select the "calculate expression" action, and then select the field you created that stores the SETFIELD and GETSYSPARAM code.&amp;nbsp; We are calling this field the "lock record button expression" field.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S3OAWJVw7eI/AAAAAAAAARU/Td1VBSCeoTc/s1600-h/Clip+8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" src="http://2.bp.blogspot.com/_44kQ1invdmk/S3OAWJVw7eI/AAAAAAAAARU/Td1VBSCeoTc/s400/Clip+8.png" width="400" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;When you click on the 'appearance tab in the button designer, you need to click on the 'Disable on click' checkbox, and then change the colors to something different from the colors when the button is active. &lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;Test Your Code in Runtime&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Once you have completed Steps 1 and 2, it's time to test your code.&amp;nbsp; If you built this correctly, when you click on the button in runtime, you will get an alert message like the following:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S3N_WHn-T9I/AAAAAAAAARM/cm0L1OPsz3M/s1600-h/Clip+6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_44kQ1invdmk/S3N_WHn-T9I/AAAAAAAAARM/cm0L1OPsz3M/s400/Clip+6.png" width="347" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;When the user clicks on the button, the GETSYSPARAM (11) alert message pops up, displaying the alert message text that you entered.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S3OAv7Yv3nI/AAAAAAAAARc/ydyy-yJ4o7E/s1600-h/Clip+7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S3OAv7Yv3nI/AAAAAAAAARc/ydyy-yJ4o7E/s320/Clip+7.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Notice that after the user clicks on the 'Yes' button on the alert message, the 'finalize record' button greys out.&amp;nbsp; This is because we set the button to be disabled upon click and to change to default colors for background and text.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Once the user clicks clicks 'yes' on the alert message, and then on the OK button of the form, then the record will lock and will become completely uneditable.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: red;"&gt;VERY IMPORTANT NOTES&lt;/b&gt;:&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;ol style="color: red;"&gt;&lt;li&gt;&lt;b&gt;Validation controls are triggered upon clicking on the OK button on the form.&amp;nbsp; What this means is that if the user clicks on the 'yes' button on the alert message box, and then on the ok form button, and some validations are not met, the validation controls will appear as a popup, preventing the record from actually being saved to the database.&amp;nbsp; If this happens, then the record will NOT become uneditable.&amp;nbsp; Rather, it will revert back to the state of the record before clicking on the 'finalize record' button.&amp;nbsp; What this means is that all validation rules will need to be met before the record can be saved to the database and thus become locked.&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&amp;nbsp;Records can still be deleted if user credentials on the Adesso Server SyncAdmin allow delete permissions.&amp;nbsp; If you want to ensure that nothing ever gets edited or deleted, use the locking record function described in this blog AND make sure that no one has delete permissions on SyncAdmin.&amp;nbsp; The following screenshot illustrates where to find this delete permission on SyncAdmin:&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S3ODbDkEpAI/AAAAAAAAARk/EVhovNOzOU8/s1600-h/Clip+9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="372" src="http://2.bp.blogspot.com/_44kQ1invdmk/S3ODbDkEpAI/AAAAAAAAARk/EVhovNOzOU8/s640/Clip+9.jpg" width="640" /&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Notice that there is a delete column with checkboxes unchecked in this example.&amp;nbsp; If the checkbox is UNCHECKED, then the users in that group cannot delete records from that table.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1518018179493370580-5800292422112866210?l=adessodeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/5800292422112866210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://adessodeveloper.blogspot.com/2010/02/locking-records-function-how-to-ensure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/5800292422112866210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/5800292422112866210'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/2010/02/locking-records-function-how-to-ensure.html' title='Locking Records Function - How to ensure that records in Adesso are absolutely uneditable'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_44kQ1invdmk/S3N61FSA5nI/AAAAAAAAAQk/HBahDZtPSQI/s72-c/Clip+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-7964677534110801410</id><published>2010-02-07T05:04:00.000-08:00</published><updated>2010-02-07T05:20:26.425-08:00</updated><title type='text'>Views - It's All About the View</title><content type='html'>Today I am going to talk about Adesso Views...how to build 'em, how to manage 'em, how to add filters to 'em, etc etc.&amp;nbsp; What are Views for?&amp;nbsp; A View is the very first thing you see when you open an Adesso application.&amp;nbsp; think of Excel...what you see when you open an Excel spreadsheet is a series of workbooks listed on the bottom of the spreadsheet, and when you click on a worksheet, what you see is usually a huge grid of columns and rows.&amp;nbsp; That's essentially what an Adesso View is...a listing page that displays all or some of the records in a particular table.&amp;nbsp; With Views, you can narrow your listing to a subset of all the records, you can sort by clicking on the column headers, you can expand and shrink the column headers, you can group subsets of records that share common values for certain fields, you can even display a few basic math functions (minimum, maximum, average, and sum).&amp;nbsp; Bottom line: Views are very versatile in Adesso, and you can have as many as you want.&lt;br /&gt;&lt;br /&gt;For teaching this topic of Views, I am going to use an application we built for the US Army Corps of Engineers as a demonstration on how our software could be utilized to conduct power assessments using Adesso.&amp;nbsp; This database was built to showcase how Adesso could be used to replace paper forms with a digital system capable of capturing kilowatt, voltage, and other data for life sustaining facilities so that the Army 249th Battalion, whose mission is emergency generators, could supply the proper emergency generators to facilities if a natural or man-made disaster occurred.&amp;nbsp; Its a bit more complex than just going to Home Depot to pick up any 'ol generator and getting UPS to deliver it!&amp;nbsp; Anyway, lets get started on Views. &lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue; text-align: center;"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Adesso Views Designer&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;The Views designer in Adesso is used to create grid views that look sort of like what an Excel spreadsheet looks like: a bunch of columns and rows of data.&amp;nbsp; An Adesso view behaves like Excel in many instances, but Adesso is a database engine, not a spreadsheet, so it can do a lot of things that Excel can't do, but it also can't do a lot of things that Excel can do (like complex mathematical calculations, cut and pasting from cell to cell, etc).&amp;nbsp; The views designer screen is illustrated below:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S23oRjFbI4I/AAAAAAAAAMk/cZauePuaQw0/s1600-h/Clip+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S23oRjFbI4I/AAAAAAAAAMk/cZauePuaQw0/s320/Clip+2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Whenever you create a new view, it will appear in the right pane in the image above.&amp;nbsp; If you want to sort the list, click on either the Name or Data Source header and it will sort the list by that column.&amp;nbsp; To create a new view, click on the 'New' button on the bottom of the Views designer window.&amp;nbsp; Once you do that, a new window will appear on your computer that will look like the following:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S23hAWIXziI/AAAAAAAAAMU/g_YHV50wWxo/s1600-h/Clip+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S23hAWIXziI/AAAAAAAAAMU/g_YHV50wWxo/s320/Clip+1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You will be prompted to give your view a name.&amp;nbsp; What should you call your view?&amp;nbsp; Whatever you want.&amp;nbsp; I tend to name my views by the name of the main sorting function in that particular view.&amp;nbsp; In other words, if I create a view and set it so that that particular view, when first &lt;span style="font-size: small;"&gt;opened&lt;/span&gt;, sorts by column X, then I would name that view "by Column X".&amp;nbsp; By doing it this way, my users already know by just looking at the view that the records in that view will be sorted by Column X.&amp;nbsp; Easy as pie to understand. &amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The only other option in the screen above is the data source you will use for your view.&amp;nbsp; Data source is just another big term for table.&amp;nbsp; When you click on the data source dropdown menu, all the tables you have created in your application will be available as a data source.&amp;nbsp; Simply pick one from the dropdown, name your view, and click on ok.&amp;nbsp; (You can change the view name later, so don't get paranoid about getting the name just right).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Once you select a data source and a name, and click on the ok button, you will see the following window:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S23oXqinztI/AAAAAAAAAMs/yj2UUQwT3ZA/s1600-h/Clip+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S23oXqinztI/AAAAAAAAAMs/yj2UUQwT3ZA/s320/Clip+3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Notice that there are several tabs across the top of the window.&amp;nbsp; When you first create or open a view, the first tab to be displayed is the Columns tab.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue; text-align: center;"&gt;&lt;b&gt;Columns Tab &lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;The columns tab (shown above) displays 2 separate panes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The left pane lists all the fields available to you to insert into the view.&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;li&gt;The right pane lists all the fields currently in the view.&lt;/li&gt;&lt;/ul&gt;To move fields from the left pane (the available fields) to the right pane, simply click on the Add arrow or All arrow buttons in the middle.&amp;nbsp; If you made a mistake and want to get rid of a field in the view, click on the Del arrow button.&lt;br /&gt;&lt;br /&gt;Now notice that there's a dropdown menu on the bottom left of the screen.&amp;nbsp; That particular dropdown menu will list tables that are available to the view because a relationship has been established between the table being used as a data source for the current view and the table in the dropdown list.&amp;nbsp; If you click on the dropdown, it will look something like this:&lt;br /&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;/del&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S23pPWAtnSI/AAAAAAAAAM0/z4e1Fsl1V3Q/s1600-h/Clip+4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S23pPWAtnSI/AAAAAAAAAM0/z4e1Fsl1V3Q/s320/Clip+4.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;If you select a different table from this dropdown, the list of fields in the left pane will change to display the fields that are inside that particular table. &amp;nbsp; Notice that in the next screenshot, I have selected the Facility table, and also notice that the left pane contains a totally different set of fields.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S23p0kfo3yI/AAAAAAAAAM8/-ltcKXn0NFc/s1600-h/Clip+5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S23p0kfo3yI/AAAAAAAAAM8/-ltcKXn0NFc/s320/Clip+5.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice that the left pane now displays fields but now each fieldname also is followed by a the relationship name inside parentheses.&amp;nbsp; For example, the field mission_no is represented by mission_no(Facility(Assessment-Facility)).&amp;nbsp; The reason it is listed this way is to give you a visual cue that that particular field is not a field that is contained inside the data source table that you are using for this particular view.&amp;nbsp; Rather, it is a field that can be made available to the view because of an established relationship between the data source table and the table that that particular field belongs to.&amp;nbsp; Simple as that. &amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;Now that you understand how to place fields in a view, lets go ahead and do that now.&amp;nbsp; I have labeled this view "by State".&amp;nbsp; What I mean by this is that in this view, I want to sort the records by US State.&amp;nbsp; That means that at a minimum I should place the field 'state' in the view.&amp;nbsp; Ok, I added a few fields to the right pane.&amp;nbsp; Screenshot is displayed below:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S23tbHW6gWI/AAAAAAAAANE/KS1UGda1qDo/s1600-h/Clip+6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S23tbHW6gWI/AAAAAAAAANE/KS1UGda1qDo/s320/Clip+6.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Notice that in the right pane, there are some arrow buttons on the bottom.&amp;nbsp; These arrows are used to push fields up or down.&amp;nbsp; The double arrows push a record all the way to the top or all the way to the bottom.&amp;nbsp; To move a field, click on it once and then on the arrow.&amp;nbsp; Pretty basic.&lt;br /&gt;&lt;br /&gt;In an Adesso view, as in Excel, fields are displayed in columns from left to right.&amp;nbsp; In the view designer, the topmost column will display as the leftmost column in runtime mode, and the bottommost column will display as the rightmost column in runtime. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Min, Max, Average, and SUM Functions&lt;/b&gt;&lt;br /&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt; Did you notice another small dropdown menu to the right of the arrows?&amp;nbsp; That dropdown gives you the ability to run basic calculations on one or more numeric fields.&amp;nbsp; &lt;b&gt;NOTE: this will only work for integer and float data types.&lt;/b&gt;&amp;nbsp; The available functions are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;MIN (this will provide the minimum value for the selected field(s) in the entire recordset displayed, including group headers)&lt;/li&gt;&lt;li&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;MAX (this will provide the maximum value for the selected field(s) in the entire recordset displayed, including group headers)&amp;nbsp;&lt;/li&gt;&lt;li&gt;AVG (this will provide the average value for the selected field(s) in the entire recordset displayed, including group headers)&amp;nbsp;&lt;/li&gt;&lt;li&gt;SUM (this will provide the sum total in the entire recordset displayed for the selected field(s), including group headers)&lt;/li&gt;&lt;/ul&gt;To run more than one of the functions on a given field, click on the dropdown more than once while highlighting the field you want to perform the function on, and continue selecting the functions you want to run.&amp;nbsp; The field displayed in the right pane will refresh and display, in parentheses, what functions will be calculated for it in that view.&lt;br /&gt;&lt;br /&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S24rSUFUbPI/AAAAAAAAAO8/mEihJq6PykM/s1600-h/Clip+18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S24rSUFUbPI/AAAAAAAAAO8/mEihJq6PykM/s320/Clip+18.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Ok, so in this particular view, I want to know the total kilowatts needed by State.&amp;nbsp; How do I do that?&amp;nbsp; First step is to highlight the kw field and select SUM from the bottom dropdown menu.&amp;nbsp; Your screen should look like the following screenshot:&lt;br /&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;br /&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;br /&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;/del&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S23wMTWXDPI/AAAAAAAAANM/PbMk1ctc55M/s1600-h/Clip+7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="373" src="http://4.bp.blogspot.com/_44kQ1invdmk/S23wMTWXDPI/AAAAAAAAANM/PbMk1ctc55M/s320/Clip+7.png" width="400" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/del&gt;&lt;/div&gt;&lt;br /&gt;Notice that the field kw is now displayed as kw(SUM).&amp;nbsp; This denotes that this field will be summed, with the total sum displayed at the bottom of each grouping and the bottom of the entire recordset.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;br /&gt;But wait!&amp;nbsp; Do you really want to have the City and State all the way to the right hand side of the grid in runtime?&amp;nbsp; Probably not, especially if we are going to sort the view by State.&amp;nbsp; So let's move the city and state fields toward the top of the right pane, just below mission_no.&amp;nbsp; Now our screen looks like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S24VydHLdZI/AAAAAAAAANU/qWukU5Z4b84/s1600-h/Clip+8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S24VydHLdZI/AAAAAAAAANU/qWukU5Z4b84/s320/Clip+8.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="color: blue; text-align: center;"&gt;&lt;b&gt;Headers Tab&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;Ok, now we know what we want to display, in what order, and that we want to total the number of kilowatts.&amp;nbsp; Now let's label the headers for each column.&amp;nbsp; Just to be clear, a header is simply the label above the column of data.&amp;nbsp; By default, the headers for views will use the default label stored from the field designer.&amp;nbsp; When you first started building your application, you probably built your tables first, and when you did, each field that you created had a 'default label', where you could assign something other than the fieldname as the default label.&amp;nbsp; The screenshot below illustrates what this looks like from the label designer:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S24XFD5bgXI/AAAAAAAAANc/ZeiQ5q8V4Dg/s1600-h/Clip+9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S24XFD5bgXI/AAAAAAAAANc/ZeiQ5q8V4Dg/s320/Clip+9.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/del&gt;&lt;/div&gt;&lt;br /&gt;Ok, now back to&amp;nbsp; the Headers tab.&amp;nbsp; When you click on the Headers tab, your screen will look like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S24XkQbZEVI/AAAAAAAAANk/AGKNJ14wcUY/s1600-h/Clip+10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S24XkQbZEVI/AAAAAAAAANk/AGKNJ14wcUY/s320/Clip+10.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/del&gt;&lt;/div&gt;&lt;br /&gt;The column header column (on the far left) is essentially the label that will be used to display the name of the column in runtime mode.&amp;nbsp; The fieldname is just that...the field that will be used for populating the column.&amp;nbsp; The miniview column width displays the number of pixels wide that the column will default to when you create a miniview (which is different from a regular view...more about this when we talk about Forms).&amp;nbsp; By default, the number of pixels is 80.&amp;nbsp; The alignment column determines whether the values in that column will be left justified, center justified, or right justified.&amp;nbsp; By default, text and date fields are left justified, numeric fields are right justified, and yes/no fields are centered.&amp;nbsp; However, you can simply click on the alignment column for a specific field and change the alignment by selecting a value (Right, Left, Center) from the dropdown.&amp;nbsp; When you click it, it will look like the following screen:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S24rr5uqNUI/AAAAAAAAAPE/LNwI_3aEW3M/s1600-h/Clip+11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S24rr5uqNUI/AAAAAAAAAPE/LNwI_3aEW3M/s320/Clip+11.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;If you want to change the name stored in the column header, just click on the one you want to change, and change it.&amp;nbsp; Self explanatory.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="color: blue; text-align: center;"&gt;&lt;b&gt;Sort Tab&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;The Sort tab is one of the more powerful pieces of the View designer.&amp;nbsp; From here, you will be able to assign a way to sort and group your records.&amp;nbsp; When you click on this tab, your screen will look the following:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S24agrXzPJI/AAAAAAAAAN8/qfyAC0uL8P8/s1600-h/Clip+12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S24agrXzPJI/AAAAAAAAAN8/qfyAC0uL8P8/s320/Clip+12.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/del&gt;&lt;/div&gt;Notice that you can have up to 6 different levels of sorting, the first level being at the top of the window.&amp;nbsp; To explain how this works, imagine having a bunch of records that contain the same value for state, and fewer records that contain the same value for city.&amp;nbsp; For example, lets say you have 100 records, and 50 of them have a value of South Carolina in the state field.&amp;nbsp; Out of those 50, 25 have a value of Charleston in the city field, and 10 have a value of Hilton Head in the city field, and so on.&amp;nbsp; If you sort first by state in ascending order and group the records, and the second sort is set to city in ascending order and group those records too, what you will see in runtime is a header for South Carolina, with all 50 records in there but with two more headers: Charleston and Hilton Head.&amp;nbsp; Under the Charleston header, 25 records will be displayed, while under the Hilton Head header 10 records will display.&lt;br /&gt;&lt;br /&gt;I have decided that for this view, I want to do what I said above, but also add one more level of sort, by facility name.&amp;nbsp; My screen looks likes this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S24el2ciJJI/AAAAAAAAAOU/tWZvLRiKb9Q/s1600-h/Clip+13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S24el2ciJJI/AAAAAAAAAOU/tWZvLRiKb9Q/s320/Clip+13.png" /&gt;&lt;/a&gt;&lt;/del&gt;&lt;/div&gt;&lt;br /&gt;In runtime, my screen will look like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S24sTysLrtI/AAAAAAAAAPM/c-w9cih8hnY/s1600-h/Clip+14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="434" src="http://3.bp.blogspot.com/_44kQ1invdmk/S24sTysLrtI/AAAAAAAAAPM/c-w9cih8hnY/s640/Clip+14.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Notice that because I told the view to group first by State, and THEN by city, you have a series of collapsible/cascading headers, each one expandable/collapsible by clicking on the + or - sign to the left of its name.&amp;nbsp; You can also expand or collapse headers all at once at different levels by clicking on the expand or collapse icons in the icon toolbar.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;br /&gt;Finally, you should also notice that KW is now totaled at the bottom of each group, at each group level (denoted as TOT on the far left of each total row).&amp;nbsp; That's because we assigned the SUM function to that field earlier in this tutorial.&lt;br /&gt;&lt;br /&gt;Let's get back to the Sort tab.&amp;nbsp; Notice that at the bottom of the sort tab, there is an Appearance section that lets you default the view (if you are using groups in the view) to either display all the records or not display them, and to either display the record count in the header or not display the record count.&amp;nbsp; The way this works is that if you tell it to display the group expanded, then when the user, in runtime, clicks open the view, by default the records will be completely collapsed, and the user will need to pop the headers open using the icons or by manually clicking on each header.&amp;nbsp; Let me show you what this looks like in runtime:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S24gTGB7XLI/AAAAAAAAAOk/VkvZO-bRbjA/s1600-h/Clip+15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="456" src="http://4.bp.blogspot.com/_44kQ1invdmk/S24gTGB7XLI/AAAAAAAAAOk/VkvZO-bRbjA/s640/Clip+15.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you click on the expand icon once, your screen will refresh and look like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S24ssyN7zWI/AAAAAAAAAPU/wt6bS0SqqIY/s1600-h/Clip+16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="458" src="http://3.bp.blogspot.com/_44kQ1invdmk/S24ssyN7zWI/AAAAAAAAAPU/wt6bS0SqqIY/s640/Clip+16.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Finally, notice that there is a number in parentheses to the right of each header.&amp;nbsp; This is the record count.&amp;nbsp; If you want to hide this record count, all you need to do is click on the checkbox called "Hide record count in group headers".&amp;nbsp; This checkbox is listed at the bottom of the sort tab (screenshot is displayed below):&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S24hO_5MOMI/AAAAAAAAAO0/qPIPnMQ_EWk/s1600-h/Clip+17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S24hO_5MOMI/AAAAAAAAAO0/qPIPnMQ_EWk/s320/Clip+17.png" /&gt;&lt;/a&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;Print Tab &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;Unfortunately, there's not much in the print tab to work with.&amp;nbsp; This part of Adesso is admittedly weak, and we need to improve this.&amp;nbsp; Plans are to build a much-improved print feature in the next major release, Adesso v5 (we are currently on v4.1.3).&amp;nbsp; But for now, it's merely a way to create simple print output formats for record listings.&amp;nbsp; Printing detail forms is not supported currently...only grid view/record listings.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue; text-align: center;"&gt;&lt;b&gt;Events&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;There are two event types in an Adesso View:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a new record&lt;/li&gt;&lt;li&gt;Open an existing record&lt;/li&gt;&lt;/ol&gt;&amp;nbsp;The purpose of events is to allow the application designer to control the behavior of data entry and data record detail display associated with a view.&amp;nbsp; In other words, when a user wants to look at an existing record, he double-clicks on the record in the view.&amp;nbsp; When a user wants to enter a new record, he clicks on the "new Record" menu.&amp;nbsp; What happens next is controlled by these so-called "events".&lt;br /&gt;&lt;br /&gt;When you click on the Events tab, you will see the following screen:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S24zYKFQiVI/AAAAAAAAAPc/sb_dD9p9k8w/s1600-h/Clip+19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S24zYKFQiVI/AAAAAAAAAPc/sb_dD9p9k8w/s320/Clip+19.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;Notice that there are two main functions on this screen: 1) New Record; and 2) Open Record.&amp;nbsp; you will also notice that for each of these event types, there are two separate options: 1) Navigate to form; and 2) Call Plug-In.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;By default, when you create a view, it will automatically use the default form for both types of events.&amp;nbsp; However, if you create multiple forms for a particular table, you can select a specific form from the dropdown menu for either event or both events.&amp;nbsp; Let's say you want to hide some fields if a user is going to open an existing record, but you want the user to see a completely different form with more fields in it if he is creating a new record. You can select a particular form for new record events and a completely different form for opening records.&amp;nbsp;&amp;nbsp; To select from a listing of available forms, simply click on the dropdown box.&amp;nbsp; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S26vfi1H7II/AAAAAAAAAPk/Fqr8Dh2g408/s1600-h/Clip+20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S26vfi1H7II/AAAAAAAAAPk/Fqr8Dh2g408/s320/Clip+20.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you only have one form, the dropdown will only contain that one form plus a conditional statement.&amp;nbsp; If there are more forms available for that table, they will all show up there, plus the conditional statement. &amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Let me show you what the dropdown menu looks like when you have created more than one form for a table.&amp;nbsp; In this new example app, we have built several forms for the same table.&amp;nbsp; Notice that they all appear in the dropdown, in addition to that conditional statement:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S26xWw4xAAI/AAAAAAAAAPs/MBpen6kDLu8/s1600-h/Clip+21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S26xWw4xAAI/AAAAAAAAAPs/MBpen6kDLu8/s320/Clip+21.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To select a form, simply select it from the dropdown. &lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Conditional Form Selection&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You can use the conditional statement to select one form or another based upon an expression, or condition in the record.&amp;nbsp; We will use the application in the example above.&amp;nbsp; When I click on conditional, the expression editor will appear, like the screenshot below:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S26yB0-Nv6I/AAAAAAAAAP0/vAuxURodz-g/s1600-h/Clip+22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S26yB0-Nv6I/AAAAAAAAAP0/vAuxURodz-g/s320/Clip+22.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You can create extremely complicated expressions, but its not too difficult and shouldn't scare you.&amp;nbsp; The complicated expression that I am using for this particular conditional statement is a series of nested IF statements.&amp;nbsp; The entire expressions is listed below:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;IF(LEFT(Inspection_ID, 3) = "C01", GUIDOF([Forms!DiscrepancyCIP1]), IF(LEFT(Inspection_ID, 3) = "C02", GUIDOF([Forms!DiscrepancyCIP2]), IF(LEFT(Inspection_ID, 3) = "C03", GUIDOF([Forms!DiscrepancyCIP3]), IF(LEFT(Inspection_ID, 3) = "C04", GUIDOF([Forms!DiscrepancyCIP4]), IF(LEFT(Inspection_ID, 3) = "C05", GUIDOF([Forms!DiscrepancyCIP5]), IF(LEFT(Inspection_ID, 3) = "C06", GUIDOF([Forms!DiscrepancyCIP6]), IF(LEFT(Inspection_ID, 3) = "C07", GUIDOF([Forms!DiscrepancyCIP7]), IF(LEFT(Inspection_ID, 3) = "C08", GUIDOF([Forms!DiscrepancyCIP8]), IF(LEFT(Inspection_ID, 3) = "C09", GUIDOF([Forms!DiscrepancyCIP9]), IF(LEFT(Inspection_ID, 3) = "C10", GUIDOF([Forms!DiscrepancyCIP10]), IF(LEFT(Inspection_ID, 3) = "C11", GUIDOF([Forms!DiscrepancyCIP11]), IF(LEFT(Inspection_ID, 3) = "C12", GUIDOF([Forms!DiscrepancyCIP12]), IF(LEFT(Inspection_ID, 3) = "C13", GUIDOF([Forms!DiscrepancyCIP13]), "")))))))))))))&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice the pattern here:&amp;nbsp; IF the first 3 characters in the field Inspection_id = "something of importance", then use the form labeled "DiscrepancyCIP1", ELSE, IF the first 3 characters in the field .... and so on and so on.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The syntax for forms is GUIDOF([Forms!FormName])&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To simplify things, think of it this way:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;IF(field_x) = "value you are looking for", GUIDOF([Forms!FormX]), GUIDOF([Forms!FormY]))&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So, if field_x contains a specific value you are looking for, use FormX to display to the user when he creates a new record from that particular view, otherwise, use FormY to display.&amp;nbsp; Make sure your brackets and parentheses are correct.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I hope this makes sense.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Run Plug-In Event from a View&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You can also run a plug-in event from a View.&amp;nbsp; That's what the checkbox is there for in the Events tab.&amp;nbsp; This feature is usually used to call an input form created in .NET, where you can build it to look however you want it to look like with no restrictions whatsoever imposed on you.&amp;nbsp; Let me show you one of those:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S260rJ1Y_MI/AAAAAAAAAP8/jXqjDt-GMr8/s1600-h/Clip+23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S260rJ1Y_MI/AAAAAAAAAP8/jXqjDt-GMr8/s320/Clip+23.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice that in this example view, instead of selecting a particular view created in Adesso, we are selecting a plug-in labeled PickupForm for both types of events.&amp;nbsp; Discussion of plug-ins is beyond the scope of this particular blog post (I will talk more about plug-ins in a separate blog post).&amp;nbsp; Although we are triggering the plug-in by itself, notice that you can trigger the plug-in AND select an Adesso form at the same time.&amp;nbsp; In our particular case, we only want to pop open our own customized form.&amp;nbsp; In runtime, when the user creates a new record from this view, it will run the plug-in, and this particular plug-in opens an input form of our own, as illustrated below:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S261vkNKftI/AAAAAAAAAQE/A4Z2JNvyjro/s1600-h/Clip+24.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S261vkNKftI/AAAAAAAAAQE/A4Z2JNvyjro/s320/Clip+24.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;What we wanted to do was create a form with 2 giant buttons only (along with a big cancel button).&amp;nbsp; While you could do this in an Adesso form, there are some functions running in the background when the user clicks on either button that cannot be done in a native Adesso form.&amp;nbsp; So we chose to build a plug-in in .NET to create a very specific form.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;NOTE: if you use your own forms via the plug-in architecture, you need to know that you will need to create your own validation controls in .NET.&amp;nbsp; In a native Adesso form, you can create validation controls pretty easily, but they won't be available for custom forms...you will have to do this manually.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: center;"&gt;&lt;b&gt;Appearance Tab&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The appearance tab allows you to select a theme for the coloring of the rows, headers, fonts, etc.&amp;nbsp; Themes have their own designer from the main Application Designer screen.&amp;nbsp; Build a theme from there, and it will be made available in the dropdown menu from the themes tab.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S263GrK9UxI/AAAAAAAAAQM/1OPBt3ulc60/s1600-h/Clip+25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S263GrK9UxI/AAAAAAAAAQM/1OPBt3ulc60/s320/Clip+25.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S263ShJ_kDI/AAAAAAAAAQU/r-WiraS_mPQ/s1600-h/Clip+26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S263ShJ_kDI/AAAAAAAAAQU/r-WiraS_mPQ/s320/Clip+26.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: center;"&gt;&lt;b&gt;Other Tab&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The most important part of the Other tab is the ability to assign filters to the view.&amp;nbsp; A filter can be created from the Filters Designer screen that is available at the main page of the Application Designer (see screenshot above).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;When you first click on the Other Tab, it will look like this:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S264B01WUXI/AAAAAAAAAQc/4wXRF9c9hD8/s1600-h/Clip+27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S264B01WUXI/AAAAAAAAAQc/4wXRF9c9hD8/s320/Clip+27.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Filters&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;When you create a filter, it will be available from both the required and default filter dropdown menus.&amp;nbsp; You have to build the filters first before seeing them in the dropdown.&amp;nbsp; Once you build them, you can then select them.&amp;nbsp; We will discuss filters in detail on a separate blog post.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice that in the filters section of this tab, there is a required view filter and a default view filter.&amp;nbsp; A required filter is just that: the view will ALWAYS use that filter, and won't let the user de-select the filter.&amp;nbsp; The default filter means that the view, when first opened by the user, will use that particular filter as a default, but the user can take the filter off or change it to a different one. &amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The freeze first XX columns is similar to Excel's freeze vertical pane feature.&amp;nbsp; You could freeze the first column, and when you scroll to the right, that column will always appear in the list.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The display XX lines per row defaults to a value of 1 but can be changed here.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The do not include this view in the list view checkbox, if checked, means that users in runtime won't even know that that view even exists.&amp;nbsp; You may want to build invisible views that you use for 02m controls within forms, and for import and export templates that you don't want your users to see in runtime.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Disable statistics means that no record counts will be displayed in headers, etc&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Automatically recalculate expressions on open means that when a user pops open a record, all the expressions in that table will recalc.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;del &amp;nbsp;="" 5-year="" button="" can="" common="" figure="" i="" in="" middle.&amp;nbsp;="" my="" old="" out.="" sense="" stuff.&amp;nbsp;="" that="" the="" think="" very=""&gt;&lt;br /&gt;&lt;/del&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1518018179493370580-7964677534110801410?l=adessodeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/7964677534110801410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://adessodeveloper.blogspot.com/2010/02/views-its-all-about-view.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/7964677534110801410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/7964677534110801410'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/2010/02/views-its-all-about-view.html' title='Views - It&apos;s All About the View'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_44kQ1invdmk/S23oRjFbI4I/AAAAAAAAAMk/cZauePuaQw0/s72-c/Clip+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-580397594178056375</id><published>2010-01-28T08:16:00.000-08:00</published><updated>2010-01-28T08:23:00.839-08:00</updated><title type='text'>Buttons Part II - A Closer Look at Button Actions</title><content type='html'>Today I watched a live feed from Engadget (http://engadget.com) and saw the unveiling of the Apple iPad.&amp;nbsp; Man, I want one of those.&amp;nbsp; That thing is awesome.&amp;nbsp; Makes my Kindle look like a piece of crap.&amp;nbsp; Heck, it makes Windows and Windows Mobile look like crap.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;I want our software to run on the iPad.&amp;nbsp; Fortunately, we own the source code for Adesso, and we have a few crack programmers who could probably make it happen.&amp;nbsp; All in time.&amp;nbsp; Maybe by the end of this year, maybe.&amp;nbsp; Ok, enough said about that.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;On my last post, I talked about how to design buttons in Adesso.&amp;nbsp; Today we are going to look at a few of the more complex types of buttons, with the principal point of showing you real-life buttons, what they look like in runtime, and what they do.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Run Plugin Action&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;A few notes about plugins:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;in order to run a Crystal Report plugin, you will need to have installed the Crystal Report runtime engine (its free and provided by SAP) on your PC. If you need it, email me and I can get it for you&lt;br /&gt;&lt;/li&gt;&lt;li&gt;in order to run a plugin that generates an Excel or Word document, you will need to have MS Office installed on your PC&lt;/li&gt;&lt;li&gt;in order to run a plugin that generates and displays a PDF document, you will need to have installed Adobe Acrobat (Reader, Standard Edition, or Professional)&lt;/li&gt;&lt;li&gt;Crystal Report windows lock Adesso until you exit the Crystal Report window, meaning you need to exit out of the Crystal Report window before you can do anything else in Adesso&lt;/li&gt;&lt;li&gt;External type plugins discussed here do not work on PocketPCs or Windows Mobile devices&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The screenshot below illustrates 3 buttons that are used to generate a document in 3 different ways:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Print TA - generate document and display it in a Crystal Report form&lt;/li&gt;&lt;li&gt;Generate TA PDF - generate the document and display it in Adobe Acrobat&lt;/li&gt;&lt;li&gt;Email TA to DENR Mgr - generate the document and send it as a link embedded in an email to the intended recipient&lt;/li&gt;&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S2DpSBse3NI/AAAAAAAAAI8/0K6QqyfyZd8/s1600-h/Clip+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_44kQ1invdmk/S2DpSBse3NI/AAAAAAAAAI8/0K6QqyfyZd8/s400/Clip+1.png" width="207" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Print TA (Crystal Report Format)&lt;/b&gt; &lt;br /&gt;This button is used to create a specific document and display it in a Crystal Report window.&amp;nbsp; When you click on the button, the form that displays will look like the following:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S2DqlgBDStI/AAAAAAAAAJE/adYXobI5uBA/s1600-h/Clip+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S2DqlgBDStI/AAAAAAAAAJE/adYXobI5uBA/s320/Clip+2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;On the upper left corner there are a few icons.&amp;nbsp; The leftmost icon is an export menu, which, when you click on it, displays a dropdown menu that allows you to select a format to export to.&amp;nbsp; Choices include Crystal Report (.rpt), Word (.doc), Excel (.xls), .rtf, and xml.&lt;br /&gt;&lt;br /&gt;NOTES:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;in order for this menu to work, you need to have MS Office installed on your PC.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Crystal Report will lock Adesso until you close the window.&amp;nbsp; This means that you will not be able to go back to Adesso while this window is displayed. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Generate TA PDF (Adobe Acrobat Format)&lt;/b&gt;&lt;br /&gt;This button is used to basically display the same thing as a Crystal Report, but instead of using the Crystal Report window, which has export features, but which also locks down Adesso, it instead creates a PDF and pops it open in Adobe Acrobat (Adobe Reader works fine too, which is free).&amp;nbsp; Because it is opened in a separate application (Adobe Acrobat), you can continue working in Adesso independent of the Acrobat window.&amp;nbsp; However, you will not be able to export directly to Excel or Word, for example, since you will be inside the Acrobat application instead of Crystal Report.&lt;br /&gt;&lt;br /&gt;When you click on the button, your screen will look like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S2Du-4NJkgI/AAAAAAAAAJM/bcQTivbmSY0/s1600-h/Clip+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="340" src="http://3.bp.blogspot.com/_44kQ1invdmk/S2Du-4NJkgI/AAAAAAAAAJM/bcQTivbmSY0/s400/Clip+3.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Email TA to DENR Mgr (Generates an Email)&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This plugin is a bit more complex.&amp;nbsp; When a user clicks on the button, the plugin will first pop a window open and request the username, it will then create a new record in a child table called TA_Status and will populate the status field with a value of "TA Submitted" and the status_date field with a value of NOW().&amp;nbsp; A server-side script running every hour (via Windows Task Manager) will then detect the new status record and assign a value of TRUE to the TA_submitted (boolean field) field in the parent table.&amp;nbsp; Once this is done, another script running every 2 hours will detect this value and a Null value in the TA_emailed field for the same record, and it will then fire off an email to the recipient, which in the case of this system, is the email address in the DENR table which is related to the TA table via the DENR_Incident_Manager field.&amp;nbsp; The email contains dynamic subject line and some dynamic text in the body of the email, all coming from values stored in the TA and related Project and DENR table records.&amp;nbsp; A link is provided in the email body that, when clicked, navigates the DENR Manager who clicks on it to a website login page.&amp;nbsp; Upon login, the exact same form that you see above pops open, but this time in an editable web browser window.&amp;nbsp; Almost all items in the browser window are editable, and edits made in this window, once saved, get pushed back to Adesso.&amp;nbsp; A screenshot of the web browser TA edit screen is presented below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S2Dy7Dl6HiI/AAAAAAAAAJU/qfQkyYZ-4aI/s1600-h/Clip+4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_44kQ1invdmk/S2Dy7Dl6HiI/AAAAAAAAAJU/qfQkyYZ-4aI/s400/Clip+4.png" width="302" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;What is Under the Hood to Make This Work?&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Let's take a look at how these plugins triggered from buttons actually work.&amp;nbsp; First step is to pop open the Application Designer, go to the Forms Design section, and find the TA form.&amp;nbsp; Screenshot is displayed below:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S2D1UxfXOLI/AAAAAAAAAJc/2j6io6dNi7I/s1600-h/Clip+5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S2D1UxfXOLI/AAAAAAAAAJc/2j6io6dNi7I/s320/Clip+5.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;When I click on the Print TA button, the button designer appears, as illustrated below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S2D1uR23cMI/AAAAAAAAAJk/1EdwGPPQGeo/s1600-h/Clip+6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="292" src="http://3.bp.blogspot.com/_44kQ1invdmk/S2D1uR23cMI/AAAAAAAAAJk/1EdwGPPQGeo/s400/Clip+6.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The core of the functionality produced by the button is the Run Plug-in action.&amp;nbsp; Notice that when you select "Run Plug-in"action from the action dropdown, the dropdown menu below will populate with the plugins stored in the plugin designer section of the application&amp;nbsp; Notice that the plugin being called by this button is labeled "PrintTAFormReport".&amp;nbsp; Now we know that we need to look for this plugin in the Plugin designer section of the Application Designer.&amp;nbsp; So the next step is to close the button designer and the form, and click on Plugins from the left pane of the Application Designer.&amp;nbsp; When you do this, you will see all the plugins that have been created for this particular application.&amp;nbsp; One of them is called PrintTAFormReport.&amp;nbsp; Double-click on this plugin to take a look at it.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S2D3TeVfzbI/AAAAAAAAAJs/HtYNP_ddrrw/s1600-h/Clip+7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S2D3TeVfzbI/AAAAAAAAAJs/HtYNP_ddrrw/s320/Clip+7.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S2D3k7DXR_I/AAAAAAAAAJ0/X3JaKw7b3zs/s1600-h/Clip+8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S2D3k7DXR_I/AAAAAAAAAJ0/X3JaKw7b3zs/s320/Clip+8.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The main piece here is that this particular plugin is calling a resource called NCSLTAForm.dll and allowing buttons, expressions, and events to trigger the use of that DLL.&amp;nbsp; In a nutshell, you need to design the DLLs outside of Adesso and import them into Adesso.&amp;nbsp; In its current state, Adesso DLLs should be created in Visual Studio 2005, and they need to target/be compiled for .NET 2.0 Framework.&amp;nbsp; We will be updating Adesso to .NET 3.5 sometime this year.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To import your DLL into Adesso, you need to navigate to the Resources section of the Application Designer and click on the New button on the bottom.&amp;nbsp; Your screen should look like the following.&amp;nbsp; Notice that the DLL called NCSLTAForm.dll is in there.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S2D5hvW5KvI/AAAAAAAAAJ8/ZMYqtRf9fuc/s1600-h/Clip+9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S2D5hvW5KvI/AAAAAAAAAJ8/ZMYqtRf9fuc/s320/Clip+9.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Both of the other 2 plugins (Generate TA PDF and Email TA to DENR Mgr) operate under the same concept:&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Create a form or .NET executable in something else like Visual Studio 2005&lt;/li&gt;&lt;li&gt;Generate the DLL from your external application and import it into the Resources section of the Application Designer&lt;/li&gt;&lt;li&gt;Create a plugin from the Plug-ins section of the Application Designer&lt;/li&gt;&lt;li&gt;Select the appropriate resource for your plugin, and give it rights to be used by buttons, expressions, and/or events as appropriate&lt;/li&gt;&lt;li&gt;Add a button to your form, select "Run Plugin" action and then find your plugin in the plugins dropdown menu.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;&lt;span style="color: blue; font-size: large;"&gt;&lt;b&gt;Read GPS&lt;/b&gt;&lt;b&gt; Action&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;span style="font-size: small;"&gt;This action is a much simpler one to create...no DLLs or external applications to worry about...you can do this right from within Adesso in a matter of a few minutes.&amp;nbsp; The basic principal behind creating code that can read a GPS device is as follows:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Create your GPS fields in your tables first.&amp;nbsp; They must be of float data type and of display type GPS.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Add your fields to a form&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Add a button on the form and assign it an action of Read GPS&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Make sure that the correct port is assigned in the Preferences menu in Adesso Client runtime mode&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;The following screenshot illustrates what the form would generally look like:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S2D8__zuqKI/AAAAAAAAAKE/mHmZAGJ1LUo/s1600-h/Clip+10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="348" src="http://4.bp.blogspot.com/_44kQ1invdmk/S2D8__zuqKI/AAAAAAAAAKE/mHmZAGJ1LUo/s400/Clip+10.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt; In the form above, I created a big red rectangular button that has a label on it "Update Lat/Long from GPS".&amp;nbsp; Below the button I have two fields that would populate with values read from the GPS device.&amp;nbsp; The last piece in this puzzle is that your device needs to be connected to a GPS device.&amp;nbsp; Many PPCs come with integrated GPS devices built-in.&amp;nbsp; And some use compact flash slots or SD cards for the GPS.&amp;nbsp; regardless of the type of GPS device, you need to assign a port number in the preferences section of Adesso Client (Tools&amp;gt;Preferences menu).&amp;nbsp; A screenshot of this is displayed below:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S2D_QbWLYKI/AAAAAAAAAKM/DeR1sx7FtyE/s1600-h/Clip+11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S2D_QbWLYKI/AAAAAAAAAKM/DeR1sx7FtyE/s320/Clip+11.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Field types that you create to assign latitude, longitude, and altitude should be float type.&amp;nbsp; The field designer is illustrated below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S2EACX5z5WI/AAAAAAAAAKU/uatdjPszRCw/s1600-h/Clip+12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S2EACX5z5WI/AAAAAAAAAKU/uatdjPszRCw/s320/Clip+12.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The dropdown menu in the GPS Control has several options which you can select to read from your GPS device.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S2EAb0TI8AI/AAAAAAAAAKc/bnWCs-Fi9y4/s1600-h/Clip+13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S2EAb0TI8AI/AAAAAAAAAKc/bnWCs-Fi9y4/s320/Clip+13.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Finally, to create a button that can be used to read the GPS device, simply add a button to the form where your GPS fields are, and select "Read GPS" from the action dropdown.&amp;nbsp; Your button designer should look like the following:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S2EBHhQ3SsI/AAAAAAAAAKk/mjTikfClBaw/s1600-h/Clip+14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S2EBHhQ3SsI/AAAAAAAAAKk/mjTikfClBaw/s320/Clip+14.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: blue; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;New One-To-Many Record&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;This action type is very popular and powerful.&amp;nbsp; You can use it to create child records from a parent table.&amp;nbsp; When you do this, the fields in the child table that are connected to the parent table through the 02m (one-to-many) relationship automatically pre-populate with those values.&amp;nbsp; This makes it nice because the child record will retain the relationship to the parent record as long as there is uniqueness within the relationship.&amp;nbsp; An example of this type of button is illustrated below:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S2ECk0zu8QI/AAAAAAAAAKs/7quDhS-No8U/s1600-h/Clip+15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S2ECk0zu8QI/AAAAAAAAAKs/7quDhS-No8U/s320/Clip+15.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Typically, this type of button control is used on the same tab as an 02m grid that is used to display the child records that are related to the parent record displayed on the form.&amp;nbsp; In the example above, the 02m grid is displayed above the large button labeled "New Line Item".&amp;nbsp; In the Application Designer, the form looks like this:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S2EDi2VvYWI/AAAAAAAAAK0/x2b-jRxA1Sg/s1600-h/Clip+16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S2EDi2VvYWI/AAAAAAAAAK0/x2b-jRxA1Sg/s320/Clip+16.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The button control is very simple.&amp;nbsp; It is displayed below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S2ED32COvzI/AAAAAAAAAK8/agnBfTfVXSY/s1600-h/Clip+17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="330" src="http://1.bp.blogspot.com/_44kQ1invdmk/S2ED32COvzI/AAAAAAAAAK8/agnBfTfVXSY/s400/Clip+17.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To trigger this type of button action, all you need to do is select "New One-to-Many Record" from the Action dropdown menu, and then select the correct relationship from the Parameter dropdown menu.&amp;nbsp; Of note here is that the relationship that you select must be on the same tab on the form.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;New One-To-Many Record Using Tags&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: left;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;A second way to create child records from a parent record using a button control is to select an action type called New One-to-Many Record Using Tags.&amp;nbsp; This action type is useful when you have more than one form for a table.&amp;nbsp; It is basically used to navigate the user to the correct input form for a table that has several forms.&amp;nbsp; In runtime, the button looks exactly the same as any other button.&amp;nbsp; But in the Application Designer, you have to do a few things to get this action right.&amp;nbsp; A screenshot of the an example form is illustrated below:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S2Gj-xDoisI/AAAAAAAAALE/byKOG_sLdPE/s1600-h/Clip+18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S2Gj-xDoisI/AAAAAAAAALE/byKOG_sLdPE/s320/Clip+18.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;In this particular form, there is a 02m (one to many) grid above the button.&amp;nbsp; That particular 02m table has several forms associated with it, so in order to open the correct form, we can use tags.&amp;nbsp; If you double-click on the 02m grid, you will see the following 02m designer screen:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S2GkrIDiAVI/AAAAAAAAALM/g7pFP9wEvtw/s1600-h/Clip+19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S2GkrIDiAVI/AAAAAAAAALM/g7pFP9wEvtw/s320/Clip+19.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Two important things to notice about this screen:&amp;nbsp; the Tag number (top part of the form control properties window), and the Display View dropdown menu.&amp;nbsp; The Display View menu, when clicked, will show you several views available for the 02m, as illustrated below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S2GlMYXZ6jI/AAAAAAAAALU/-y0gZJRbIKs/s1600-h/Clip+20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S2GlMYXZ6jI/AAAAAAAAALU/-y0gZJRbIKs/s320/Clip+20.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Each view listed in that dropdown has different filters and form events assigned to it.&amp;nbsp; Let's take a look at the view that we have selected: IncludedLowFlow:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S2Gl4BUFumI/AAAAAAAAALc/0NGxzxkxndk/s1600-h/Clip+21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S2Gl4BUFumI/AAAAAAAAALc/0NGxzxkxndk/s320/Clip+21.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice that in the Events tab, you can navigate to a specific form for two different action types: creating a new record, and opening an existing record.&amp;nbsp; For this particular view, we have chosen the GW Sampling - LowFlow form, a very specific form with certain fields and tabs on it. &amp;nbsp; Since this view has a specific form assigned to it for both action types, if the user navigates to this view, then if he opens an existing record or creates a new record from that view, it will open that very specific form.&amp;nbsp; So, long story short, if you want to create a button that will navigate the user to that very specific form, you need to use the button action of New One-to-Many Record Using Tags and assign the correct tag number on the 02m grid that navigates the user to the specific form you want to open.&amp;nbsp; Lets go back and take a look at the 02m grid properties.&amp;nbsp; Notice that the tag ID assigned to it is 1.&amp;nbsp; You can give this tag any number between 0 and 255.&amp;nbsp; Default ID is 0.&amp;nbsp; We have chosen to give it an ID of 1.&amp;nbsp; All you really need to do at this point is make sure that the Tag ID in the parameters box below the button action is the same number as the tag ID in the 02m grid properties.&amp;nbsp; Since we assigned it a value of 1, then the parameters box has a value of 1 in it as well.&amp;nbsp; That's how this works.&amp;nbsp; Once you do that, the correct form will appear when the user clicks on that button to create a new child record.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Calculate Expression Action&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This is one of the more powerful button features in Adesso.&amp;nbsp; With this feature, you can trigger a calculation, an action, etc with the click of the button.&amp;nbsp; You can also disable the button after clicking on it once, thereby giving you additional control on when the button can be clicked.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To use this action, there are several steps.&amp;nbsp; We will peel back, or reverse engineer, how this functionality operates in Adesso.&amp;nbsp; Let's take a look at an example button that uses this feature:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S2GqP740_GI/AAAAAAAAALk/ijood_VHrBU/s1600-h/Clip+22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S2GqP740_GI/AAAAAAAAALk/ijood_VHrBU/s320/Clip+22.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In this example application, we are going to take a closer look at the BP Presented button.&amp;nbsp; It's the one on the top left of the form window.&amp;nbsp; This particular application was built as a demonstration on how Adesso could be used to track the amount of time it takes an airline passenger to go through security at an airport.&amp;nbsp; In the case of the BP Presented button, we want to be able to click the button when the passenger hands his boarding pass (BP) to the TSA employee.&amp;nbsp; In the background, when the button is clicked, several actions are being performed:&amp;nbsp; a time stamp is stored in a field; the button becomes disabled; and the foreground color of the button changes.&amp;nbsp; In this particular example, we are disabling and changing the color of the button programmatically, but it can also be done through the button GUI.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In runtime, if the user clicks on the BP Presented button, it will become disabled and change colors, as depicted in the screenshot below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S2GwtVSijjI/AAAAAAAAALs/ineTVnKzDRY/s1600-h/Clip+23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S2GwtVSijjI/AAAAAAAAALs/ineTVnKzDRY/s320/Clip+23.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Notice that the button now has a white background.&amp;nbsp; Although the user doesn't see it, a timestamp is also created and stored in a separate field.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Let's take a look at what's going on behind the scenes.&amp;nbsp; A screenshot of the main form and button designer is presented below:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S2GzhebvibI/AAAAAAAAAL8/xXFGEKDEMjM/s1600-h/Clip+25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://4.bp.blogspot.com/_44kQ1invdmk/S2GzhebvibI/AAAAAAAAAL8/xXFGEKDEMjM/s400/Clip+25.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ok, notice that the button action is "Calculate Expression", and the Field dropdown menu has a field labeled "B_BP_Pres". &amp;nbsp; Basically, when you select "Calculate Expression" from the action menu, you will then be able to select a specific field from the list of all the fields in the table associated with the form.&amp;nbsp; All you need to do is select the field that contains the expression you want to run, and presto!&amp;nbsp; it's done.&amp;nbsp; Ok, not so fast.&amp;nbsp; Let's take a look at that field that we selected, and see what it says:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S2G1yMVZmNI/AAAAAAAAAME/EHJu7VNAJB4/s1600-h/Clip+26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="218" src="http://1.bp.blogspot.com/_44kQ1invdmk/S2G1yMVZmNI/AAAAAAAAAME/EHJu7VNAJB4/s400/Clip+26.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;A fe things to notice.&amp;nbsp; In the Field properties box (on the left in the screenshot), you will notice two key elements: Is Local is checked, and its an expression display type.&amp;nbsp; Is Local is checked because you don't want to sync the values in this field back to the server...there's no need to do that, this is a local action only, and other users using this field will have different values in that field when they use it, so the chances of creating conflicts during sync increases if this checkbox remains unchecked.&amp;nbsp; Remember that local fields don't pass the values in them back to the server...they are treated as null values.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;When you click on the settings button (next to expression display type), the expression editor appears.&amp;nbsp; A key element here is that "calculate via button only" is checked.&amp;nbsp; What this flag does is disables the expression from running EXCEPT when it is triggered by a button.&amp;nbsp; You don't want to trigger this expression every time the user opens the form...only when the user clicks on the button.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Finally, the expression itself&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;{EXEC("FORM:SetBkgColor", 2, 16777215);EXEC("FORM:Enable", 99, 1);SETFIELD(times_paused, 0);SETFIELD(BP_pres_stamp, NOW());}&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Is a series of functions separated by the semi-colon, and all within curly quote {} brackets.&amp;nbsp; If you want your expression to do several actions, that's the syntax that you need to use.&amp;nbsp; Notice that we are assigning background colors, then disabling the button all programmatically.&amp;nbsp; This can now be done by using the button designer GUI.&amp;nbsp; The last 2 functions in the expression above are assigning values to other fields.&amp;nbsp; This is done by using the SETFIELD function.&amp;nbsp; I am not going to elaborate on functions and how to use them in this blog.&amp;nbsp; We will cover expressions in future blogs....it will probably take 3 or more blogs just to cover expressions and how they are used.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ok, I think I've covered some basic elements of how to use buttons in Adesso.&amp;nbsp; Next time I will review Views, Filters, and Forms, and how you can use them to get to the data you want to see.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1518018179493370580-580397594178056375?l=adessodeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/580397594178056375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://adessodeveloper.blogspot.com/2010/01/buttons-part-ii-closer-look-at-button.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/580397594178056375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/580397594178056375'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/2010/01/buttons-part-ii-closer-look-at-button.html' title='Buttons Part II - A Closer Look at Button Actions'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_44kQ1invdmk/S2DpSBse3NI/AAAAAAAAAI8/0K6QqyfyZd8/s72-c/Clip+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-9048463702447756235</id><published>2010-01-20T19:15:00.000-08:00</published><updated>2010-01-20T19:15:29.680-08:00</updated><title type='text'>Buttons, Buttons, Buttons! - How to Create Buttons on Adesso Forms</title><content type='html'>On my last blog, I wrote about Pesto Garden, Inc., and how to build a bathroom quality control inspection system.&amp;nbsp; I mentioned that I would continue tweaking that app, but I feel like tackling something more interesting today: buttons.&amp;nbsp; Today, I am going to dive into button controls...how to build buttons and assign them actions on an Adesso form.&amp;nbsp; This will be part 1 of 2 (or 3) parts.&amp;nbsp; This first part we will review the button designer and what you can do with it.&amp;nbsp; In part 2 of this blog series, I will show you some real buttons in real applications that I have built, and what actions those buttons perform under the hood. &lt;br /&gt;&lt;div style="background-color: white;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: white; color: black; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Where are button controls found?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="background-color: white;"&gt;To create a button in Adesso, you must first create a form. Once you have built a form from the form &lt;/span&gt;designer, simply click a blank row and select "Button" from the popup list.&amp;nbsp; A screenshot of this is illustrated below.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S1erWXEFGVI/AAAAAAAAAHk/UqDsDiv2ZfI/s1600-h/Clip+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S1erWXEFGVI/AAAAAAAAAHk/UqDsDiv2ZfI/s320/Clip+1.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Once you select "Button" from this popup menu, your screen will look like the following:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S1err4w6GwI/AAAAAAAAAHs/B2Qu9SJMwJA/s1600-h/Clip+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S1err4w6GwI/AAAAAAAAAHs/B2Qu9SJMwJA/s320/Clip+2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;While this window appears simple enough, there are quite a few controls here.&amp;nbsp; Notice that there are two tabs: an 'Action' tab and an 'Appearance' tab.&amp;nbsp; The Action tab is exactly that...specifying the action that a click on this button will perform.&amp;nbsp; The appearance tab specifies what the button will look like.&amp;nbsp; We'll take a look at the action tab first.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Action Tab &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The two main items on this tab are the Type dropdown menu, and the action menu.&amp;nbsp; There's also a field to specify what the label on top of the button should read, and something called a Tag.&amp;nbsp; Lets first look at the Type dropdown.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Type Dropdown&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The Type dropdown menu has three different values in it:&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Standard&lt;/li&gt;&lt;li&gt;Hyperlink&lt;/li&gt;&lt;li&gt;Image&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S1ez1Qf0PFI/AAAAAAAAAH8/xVOUNOIo5Ko/s1600-h/Clip+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S1ez1Qf0PFI/AAAAAAAAAH8/xVOUNOIo5Ko/s320/Clip+3.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;When you first create a button control, it will default to Standard.&amp;nbsp; &lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Standard buttons&lt;/b&gt; are exactly what they sound like...basic buttons with some basic color and appearance settings found on the 'Appearance' tab.&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Hyperlink buttons&lt;/b&gt; are simply links, that when clicked on, navigate to a particular URL or perform some action specified in the Action dropdown.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Image buttons&lt;/b&gt; are button controls where you can specify images for two separate states of the button: when inactive, and when a user clicks, or presses on it.&amp;nbsp; Adesso comes with several button images stored in folders, and you can drop additional images in those folders, or navigate to your hard drive to select a specific image.&amp;nbsp; Images can be anything...rectangles, arrows, icons, etc.&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you select Image from the Type dropdown, two additional parameters will appear in your window, as illustrated below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt; &lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S1e1YMuj09I/AAAAAAAAAIE/t3XEceXQ6Zo/s1600-h/Clip+4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S1e1YMuj09I/AAAAAAAAAIE/t3XEceXQ6Zo/s320/Clip+4.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;The two additional parameters are Regular and Pressed.&amp;nbsp; Regular means what the button looks like in inactive state.&amp;nbsp; Pressed means what the button looks like when a user clicks or taps on it, and remains that way while the button is pressed, then reverts back to Regular once the user releases the button.&amp;nbsp; There is an icon with three dots to the right of each dropdown.&amp;nbsp; If you click on that icon, a navigational window will appear that will allow you to navigate through your hard drive to find and select an image.&amp;nbsp; The dropdown will display recently used images for faster selection.&amp;nbsp;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Standard Image Folders in Adesso&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;When you first install Adesso, two image folders will install on your computer.&amp;nbsp; These are found at the Application level, typically at c://Program Files/Adesso Systems/Adesso/&amp;nbsp; What you will find are two folders, labeled ButtonShapes and ButtonShapesPressed.&amp;nbsp; See screenshot below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S1e3R-ckAiI/AAAAAAAAAIM/cJ6yM8VbiDw/s1600-h/Clip+5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S1e3R-ckAiI/AAAAAAAAAIM/cJ6yM8VbiDw/s320/Clip+5.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you open the ButtonShapes folder and view the items, you will see the following default button images:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S1e4Crh5IqI/AAAAAAAAAIU/eGegf2D5U3M/s1600-h/Clip+6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S1e4Crh5IqI/AAAAAAAAAIU/eGegf2D5U3M/s320/Clip+6.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Now, don't get me wrong here, these are not just ugly images, they are FUGLY with a capital F.&amp;nbsp; However, what you need to understand here is that these are simply basic button images in folders...yes, folders.&amp;nbsp; What this means is that if you have your own graphic-artist quality images that you want to use for buttons, just copy them into these folders, and presto!&amp;nbsp; they will be available for your app right from here.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;The ButtonShapesPressed folder includes very similar images, but with slightly different colors/gradients.&amp;nbsp; By using these in pressed mode state, the user will see a slight change in the button when he clicks on it, giving the illusion of a click action.&amp;nbsp; The screenshot below illustrates what the ButtonShapesPressed folder looks like.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S1e5YhlhVPI/AAAAAAAAAIc/JRJW4RZBy4g/s1600-h/Clip+7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S1e5YhlhVPI/AAAAAAAAAIc/JRJW4RZBy4g/s320/Clip+7.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Action Dropdown&lt;/b&gt;&lt;br /&gt;The action dropdown is what I call the brains of the button controls.&amp;nbsp; It is the part that does all the hard work.&amp;nbsp; The other controls I consider to be window dressing.&amp;nbsp; Let's take a closer look at the action control.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;When you click on the dropdown, you will see a series of actions that you can select.&amp;nbsp; Your popup menu will look like the screenshot below:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S1e6WJmCxTI/AAAAAAAAAIk/3pGnpu6EM7s/s1600-h/Clip+8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_44kQ1invdmk/S1e6WJmCxTI/AAAAAAAAAIk/3pGnpu6EM7s/s400/Clip+8.png" width="360" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;Some of these actions are pretty obvious, so I won't waste my time explaining what Zoom In, or Save Record mean.&amp;nbsp; Ok, just in case, lets go thru some of these.&amp;nbsp; When the user presses the button, the following actions are performed for the following actions listed in the dropdown menu:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Zoom In&lt;/b&gt; - the form zooms in one level from current level&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Zoom Out&lt;/b&gt; - the form zooms out one level from current level&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;New Record&lt;/b&gt; - a new blank record is created for the table associated with the form&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Delete Record&lt;/b&gt; - the current record in the table is deleted&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Print&lt;/b&gt; - invokes the printer to print the form&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Print Preview&lt;/b&gt; - duh&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Help&lt;/b&gt; - opens the help files, same as selecting Help&amp;gt;Adesso Help (F1) from the Adesso menus&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Duplicate Record&lt;/b&gt; - creates an exact copy of the current record.&amp;nbsp; All field values are copied&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Save Record&lt;/b&gt; - saves the current record to the database&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Export Record&lt;/b&gt; - same as selecting Record&amp;gt;Export Record from the Adesso menu&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;E-mail Record&lt;/b&gt; - creates the form in HTML and invokes your email client&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;First Record&lt;/b&gt; - navigates to the first record in the table&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Last Record&lt;/b&gt; - navigates to the last record in the table&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Previous Record&lt;/b&gt; - navigates to the previous record in the table&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Next Record&lt;/b&gt; - navigates to the next record in the table&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Go to Tab&lt;/b&gt; - navigates to a specific tab on the form&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Go to Field&lt;/b&gt; - navigates to a specific field on the form (regardless of what tab the field is on)&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Go to URL&lt;/b&gt; - invokes your default web browser to navigate to a specific website&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: blue;"&gt;Run Plug-in&lt;/b&gt; - this is an important one: invokes a plugin to do something from the plugi-architecture section of Adesso, like print a Crystal Report, for example.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: red;"&gt;Read GPS&lt;/b&gt; - reads the GPS on the device...note: you need to specify the GPS port number in the Adesso Preferences&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Copy Records&lt;/b&gt; - Copies records from the detail table to the parent table.&amp;nbsp; Same as checking the copy records checkbox in a o2o relationship&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Run Script&lt;/b&gt; - in the parameters field below the action, you can specify multiple actions (like Save Record and Zoom In, for example)&amp;nbsp; Syntax of this script should be as follows:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Cancel&lt;/b&gt; - if I need to explain this one, then you shouldn't be building applications&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;New One-to-Many Record&lt;/b&gt; - creates a new many record as long as there is a 02m relationship&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;New One-to-Many Record Using Tags&lt;/b&gt; - same as the action above, but uses the Tag identifier to determine which view and form to use (useful if you have more than one form per table)&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Mark Binary for Download&lt;/b&gt; - marks the current record for download of missing binary files.&amp;nbsp; Because you can define binaries to download on request (instead of always), you can use this action to do this for the current record&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Unmark Binary for Download&lt;/b&gt; - opposite of the action above&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Calculate Expression&lt;/b&gt; - this is an important one.&amp;nbsp; You can create a field, insert an expression into it, and then use this action to run that particular expression.&amp;nbsp; The expression can be anything...a calculation, for example.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I'm not going to show you each and every single action on this list...too much writing.&amp;nbsp; I will show you a few that are more complex than your typical Save Record action, but I will leave this for another section of this blog, or maybe the next blog (depending on the # of bottles of Guinness in the 'fridge).&amp;nbsp; Let's move to the other tab in the button designer.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Appearance&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; Tab&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: small;"&gt;If you select 'Standard' from the Type dropdown in the Action tab, the 'Appearance' tab will look like the following screenshot:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S1fBKVzYOqI/AAAAAAAAAIs/j3WXhAZ2Hzo/s1600-h/Clip+9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S1fBKVzYOqI/AAAAAAAAAIs/j3WXhAZ2Hzo/s320/Clip+9.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: small;"&gt;If you instead select 'Image' from the Type dropdown in the Action tab, the 'Appearance' tab will look like the following screenshot...notice that there are slight differences...The height and width are displayed in pixels.&amp;nbsp; this is set up that way because we are using images instead of the standard rectangle for your button shape.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt; &lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt; &lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S1fC9pQkEYI/AAAAAAAAAI0/vtSykq8P8do/s1600-h/Clip+10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S1fC9pQkEYI/AAAAAAAAAI0/vtSykq8P8do/s320/Clip+10.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;You will also see a preview of your button in the preview area on the bottom of the window.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Disable on Click&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;There's an important feature on this screen...its called Disable on Click. It's usefulness comes into play if you want to do something when a user clicks on the button, but you then want to de-activate the button after it is clicked once.&amp;nbsp; To do this, simply click on the 'Disable on click' checkbox.&amp;nbsp; you can also specify a color for the button and the text after it clicks.&amp;nbsp; &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Shape&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Notice that there is a shape control in the center of the window.&amp;nbsp; If you selected 'Image' from the Type dropdown on the Action tab, then all the shapes from the ButtonPressed folder will appear in this dropdown list, enabling you to quickly change the button image.&amp;nbsp; This is handy if you are unsure of what shape you want to use.&amp;nbsp; The preview screen refreshes once you select something from that dropdown.&amp;nbsp; If you have a lot of button shape images, and you store them in that folder, they will always be available from this dropdown menu.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;/div&gt;On my next blog I will show you some real buttons, what they look like on an Adesso application, and what they actually do.&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;lt;&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1518018179493370580-9048463702447756235?l=adessodeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/9048463702447756235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://adessodeveloper.blogspot.com/2010/01/buttons-buttons-buttons-how-to-create.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/9048463702447756235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/9048463702447756235'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/2010/01/buttons-buttons-buttons-how-to-create.html' title='Buttons, Buttons, Buttons! - How to Create Buttons on Adesso Forms'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_44kQ1invdmk/S1erWXEFGVI/AAAAAAAAAHk/UqDsDiv2ZfI/s72-c/Clip+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-3771613597418981509</id><published>2010-01-11T13:43:00.000-08:00</published><updated>2010-01-11T13:46:12.100-08:00</updated><title type='text'>Building a Mystery Shopper (Bathroom QA) Application</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Pesto Garden, Inc. Bathroom QA Application &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;Ok, lets get started building a fun application.&amp;nbsp; Let's say you were hired by Pesto Garden, one of the many Italian restaurant chains in the US.&amp;nbsp; Your boss, Mr. Pasta Lasagna, just read a news story about how the new White House administration thinks that technology can improve the healthcare industry via e-records and other neato things that high tech gadgets and computers can do.&amp;nbsp; Mr. Lasagna thinks that if it can work in healthcare, why not in restaurants?&amp;nbsp; So he tells you that you need to build a system to collect bathroom cleanliness data electronically so that he can quickly tell which of his restaurants are providing a clean bathroom experience to its customers.&lt;br /&gt;&lt;br /&gt;So your new assignment is to develop a quality control program that helps improve the restaurant's bathrooms.&amp;nbsp; You decide that collecting this information in offline mode is the way to go because not all of Pesto Garden restaurants have internet access.&amp;nbsp; Besides, not having to rely on Pesto Garden's crappy and unreliable internet service, even when it is available, won't slow you down on your job.&lt;br /&gt;&lt;br /&gt;Before you build your application, you first have to think about what sort of data you will be collecting and how to store it.&amp;nbsp; Think of it in terms of one-to-many relationships.&amp;nbsp; Each restaurant is a fixed location.&amp;nbsp; You will store information about each restaurant like its address, city, state, its capacity, when was it opened for the first time, etc.&amp;nbsp; Each restaurant most likely will have more than one bathroom, so you need to create a table to store bathroom information such as the the bathroom number, whether its a men's bathroom, women's bathroom, or unisex bathroom, the number of toilets, number of stalls, urinals, sinks, etc.&amp;nbsp; You then need to assume that your QA program will require that someone from your department will be visiting each restaurant more than once, maybe once every three months.&amp;nbsp; So the inspection information would be stored in a many table and would contain things like the inspection date, the inspector name, what the bathroom conditions were like, etc.&amp;nbsp; Another table you probably want to build would be an Inspector table.&amp;nbsp; Here you would store information about the inspector conducting the inspection...his name, contact info, and so forth.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b style="color: blue;"&gt;STEP 1 - TABLES AND FIELDS&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;So lets launch Adesso and build four tables: 1) Restaurants; 2) Bathrooms; 3) Inspections; and 4) Inspectors.&amp;nbsp; We will build the easiest one first.&amp;nbsp; Restaurants.&amp;nbsp; Once you create your application and the Restaurant table, you will be presented with the following screen, which is where you create fields that become part of that table.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0eh47Gc5NI/AAAAAAAAAB0/Ikgvy3ezbDk/s1600-h/Clip+1+%285%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0eh47Gc5NI/AAAAAAAAAB0/Ikgvy3ezbDk/s320/Clip+1+%285%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I am going to create a bunch of fields that should go in the Restaurant table.&amp;nbsp; Most will be plain text fields, some will be listboxes so that you can enter State in there, and some will be numerical type of fields.&amp;nbsp;&amp;nbsp; A screenshot of the 'state' listbox is presented below.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S0ejKJCkp5I/AAAAAAAAAB8/gwCxsnc6Qq4/s1600-h/Clip+1+%286%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S0ejKJCkp5I/AAAAAAAAAB8/gwCxsnc6Qq4/s640/Clip+1+%286%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;For the 'State' field we are simply adding static text to the listbox for each state in the US.&amp;nbsp; I also added a photo field...to store a photo of the facility itself, maybe the entrance of the restaurant.&amp;nbsp; To create a binary field and assign it a display type of image, see the screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S0eodBvCQFI/AAAAAAAAACE/6w8WNXXp_f4/s1600-h/Clip+1+%287%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S0eodBvCQFI/AAAAAAAAACE/6w8WNXXp_f4/s320/Clip+1+%287%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice that you can set the binary image to download always, on request, on a condition, or not sync at all.&amp;nbsp; These options are there because remember that we are dealing with an offline database system that runs on small devices.&amp;nbsp; You have to be careful when designing your application as to what the target device(s) are going to be.&amp;nbsp; If you choose 'on request', the image will be uploaded to the server once the user syncs, but when someone else syncs to the database, only the header information will download from the server, sort of like email headers.&amp;nbsp; If that particular user wants to download the image, then he will have the option of marking the binary file for download upon next sync.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ok, we have completed building the Restaurant table, your table editor should look like the screen below.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0epiBIXh9I/AAAAAAAAACM/ebvaT0VhQbQ/s1600-h/Clip+1+%288%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0epiBIXh9I/AAAAAAAAACM/ebvaT0VhQbQ/s320/Clip+1+%288%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;OOPS!&amp;nbsp; I just realized that we haven't even discussed the idea behind ensuring a &lt;b&gt;unique identifier&lt;/b&gt; in each table.&amp;nbsp; Notice in the above image, there's a field called restaurant_name.&amp;nbsp; We can assume that this field is the one that would contain a unique value for each restaurant.&amp;nbsp; That means that the user cannot enter "Pesto Garden" into each record.&amp;nbsp; If he does, then how would one know Pesto Garden #10 from Pesto Garden #251 in the database?&amp;nbsp; One way to tackle this is to use a unique names or a unique restaurant ID number that was assigned by Pesto Garden in their accounting system.&amp;nbsp; However, this company is still in the dark ages and doesn't do that, so we have to figure out how to assign a unique value to each record on our own.&amp;nbsp; One way to do this is to create a "restaurant_no" text field and give it an expression of RECORDID().&amp;nbsp; This function uses a hexadecimal function to assign a unique value to the field.&amp;nbsp; Remember that this is an offline system, so there's no way to autoincrement the value without potentially causing conflicts with other users.&amp;nbsp; So let's go ahead and add a new field called restaurant_id_no and give it the RECORDID() function as an expression.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0tM51XQzLI/AAAAAAAAACU/VAsc9AVXA3c/s1600-h/Clip+20.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0tM51XQzLI/AAAAAAAAACU/VAsc9AVXA3c/s320/Clip+20.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0tM99GCsOI/AAAAAAAAACc/dLQERNO8y1o/s1600-h/Clip+21.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0tM99GCsOI/AAAAAAAAACc/dLQERNO8y1o/s320/Clip+21.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0uNDPVhMmI/AAAAAAAAAGM/8qVLkw5emOo/s1600-h/Clip+1+%2845%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0uNDPVhMmI/AAAAAAAAAGM/8qVLkw5emOo/s320/Clip+1+%2845%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Now that we have a unique identifier in this table, we will go ahead and create the bathroom table.&amp;nbsp; I will create fields for bathroom type (mens, womens, or unisex), # of toilets, # of urinals, trash receptacles, etc.&amp;nbsp; Don't forget to also include a unique identifier for this table too.&amp;nbsp; My table looks like this:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0tUfnwpcBI/AAAAAAAAACs/NgU6FPTsakg/s1600-h/Clip+1+%2817%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0tUfnwpcBI/AAAAAAAAACs/NgU6FPTsakg/s320/Clip+1+%2817%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Note that there is a restaurant_id_no field in the related bathroom table.&amp;nbsp; In order to connect the Restaurant table to the Bathroom table, all you need to do is create one single field in the Bathroom table that will act as the "connector" field to connect the two related tables.&amp;nbsp; I usually name the fields exactly the same in all the tables to make it easy to know that it is a "relationship" field.&amp;nbsp; Remember my prfevious blog post when I talked about relationships:&amp;nbsp; always think one to many.&amp;nbsp; In this case, one restaurant can have many bathrooms.&amp;nbsp; More about relationships later in this blog post. &lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Inspection Table &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Our most important table for this application, the inspection table, is next.&amp;nbsp; This is the table that will store inspection information, which would include things like "are the toilets working, is the bathroom a filthy mess, do the stall doors close properly, is there obscene graffiti on the walls, etc.&amp;nbsp; Once built, your inspection table should look something like this:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0tZaxLoUiI/AAAAAAAAAC0/UGjrksjxrYI/s1600-h/Clip+1+%2819%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0tZaxLoUiI/AAAAAAAAAC0/UGjrksjxrYI/s320/Clip+1+%2819%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Inspector Table &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Our final table is the inspector table.&amp;nbsp; I included inspector name, city, state, cell phone, and email address in this table.&amp;nbsp; Once this table is built, I can go back to the Inspection table and use it as a lookup from the inspector field.&amp;nbsp; The lookup screen is accessed by double-clicking on the Inspection.inspector field and then clicking on the Settings button to the right of the display control type.&amp;nbsp; Once there, click on the Query radio button, select the Inspectors table from the lookup table dropdown menu, and then select the field you want to connect to.&amp;nbsp; Your screen will look like this:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0tamdY8JRI/AAAAAAAAAC8/eeAHMj9UVbs/s1600-h/Clip+1+%2820%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0tamdY8JRI/AAAAAAAAAC8/eeAHMj9UVbs/s400/Clip+1+%2820%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice that I have included both a comments and a recommendations field.&amp;nbsp; If you want to include an autowriter widget next to the field on the form, so that the user can simply select commonly-occurring things from a checkbox list, then all you need to do is click on the settings button next to the display type drowdown, select autowriter, and then click on the edit button.&amp;nbsp; Here you will have the ability to enter all the values you want to display from the autowriter widget. &amp;nbsp; See screenshot below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &lt;br /&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S0tbqqqmfmI/AAAAAAAAADE/Jz55R08mMR0/s1600-h/Clip+1+%2821%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S0tbqqqmfmI/AAAAAAAAADE/Jz55R08mMR0/s640/Clip+1+%2821%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;&lt;b style="color: blue;"&gt;STEP 2 - RELATIONSHIPS&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The very next step in building your bathroom QA application is to connect the tables to each other.&amp;nbsp; Remember to ALWAYS think one to many.&amp;nbsp; In our case here, each restaurant can have many bathrooms, and each bathroom can have many inspections.&amp;nbsp; By logical deduction, then each restaurant can also have many inspections.&amp;nbsp; And each inspector can also conduct many inspections.&amp;nbsp; If you understand this one concept, then you have what it takes to build a database application in Adesso.&amp;nbsp;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Building a Relationship Between Restaurant and Bathroom&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;In the Adesso Designer, click on the Relationships icon on the left pane, and then click on the 'New" button on the bottom of the right pane.&amp;nbsp; You will be presented with the following window:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0tdzPghRyI/AAAAAAAAADM/TzQTEw92qys/s1600-h/Clip+1+%2822%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0tdzPghRyI/AAAAAAAAADM/TzQTEw92qys/s320/Clip+1+%2822%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;There are two types of relationships in Adesso: a one-to-many (O2M) and a one-to-one (O2O) relationship.&amp;nbsp; A O2M relationship is exactly what we described above, where, for example, one restaurant can have many bathrooms, and one bathroom can have many inspections.&amp;nbsp; In Adesso, a O2O relationship is exactly the opposite.&amp;nbsp; This concept may be difficult to understand, so &lt;span style="color: red;"&gt;for purposes of building good Adesso applications, all you really need to know about relationships is this: if you build a O2M relationship between two tables in Adesso, you need to build a O2O relationship in the exact opposite direction between those same two tables.&lt;/span&gt;&amp;nbsp; The reason for this is for allowing the many, or child, record to be able to display fields from the parent onto its form and its views.&amp;nbsp; More on this later.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The easiest way to start is to first build a O2M relationship, then build the opposite O2O.&amp;nbsp; Although you can use any naming convention you like, its good practice to follow something like this: Table1 &amp;gt; Table2.&amp;nbsp; That way you know which tables are related, and in which direction.&amp;nbsp; Notice that the icons are slightly different for the two available relationship types.&amp;nbsp; In or case here, name the relationship Restaurant &amp;gt; Bathroom and click ok.&amp;nbsp; Your screen will look like this:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0tgrPJHZOI/AAAAAAAAADU/QxU0SHoZRUI/s1600-h/Clip+1+%2823%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0tgrPJHZOI/AAAAAAAAADU/QxU0SHoZRUI/s320/Clip+1+%2823%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice that there is a Master table and a Detail table.&amp;nbsp; This is the same thing as a one table and a many table.&amp;nbsp; The Master table = the one table, and the Detail table is the many table.&amp;nbsp; this is also referred as a Parent to Child relationship.&amp;nbsp; Parent = Master = One.&amp;nbsp; Child = Detail = many.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Now you can see why it is important to include a field in the many table that is the labeled the same in the one table...it makes it easier to connect them to build the relationship correctly.&amp;nbsp; You will also notice that there are three field dropdowns for each table.&amp;nbsp; This feature allows you to create uniqueness within the many table by narrowing down the list of records in the many table that will match up.&amp;nbsp; The more fields you use, the fewer records will match.&amp;nbsp; However, it is not absolutely necessary to use this if you are creating uniqueness in your application in another way, such as using the RECORDID() function.&amp;nbsp; In such a case, all you need to do is connect the tables by selecting the same field that is present in both tables.&amp;nbsp; &lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Enforce Referential Integrity - Very Powerful, and Very Dangerous&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice that there is a checkbox called "Enforce Referential Integrity".&amp;nbsp; If this checkbox is checked, then this means that essentially you don't want to have any orphan records.&amp;nbsp; Think of it this way: if you delete a record from the one, or parent table, then all the related records from the many, or child, table will be deleted.&amp;nbsp; If you think of this in terms of humans, if you kill off a parent, then the database will kill off all of that parent's children automatically.&amp;nbsp; By default you should NOT have this checkbox checked unless you know what you are doing.&amp;nbsp; The reason for this is that once records are deleted, they are hard to recover, if at all.&amp;nbsp; If you make a mistake, and accidentally delete a parent record, then all the detail records are gone, period.&amp;nbsp; Sayonara.&amp;nbsp; I would prefer to have a bunch of orphan records around and then manually delete them later if they are not needed, than to programmatically have a system that deletes them for me.&amp;nbsp; Err on the side of caution, in my opinion.&amp;nbsp; 'Nuff said about this.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ok, once you create a O2M relationship, you need to create an exact opposite O2O relationship for the same tables.&amp;nbsp; Click on New, type in Bathroom &amp;gt; Restaurant, and click on the One to One icon.&amp;nbsp; Your screen will look like this:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S0tlbPwkORI/AAAAAAAAADc/uZrSNlpk28E/s1600-h/Clip+1+%2824%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S0tlbPwkORI/AAAAAAAAADc/uZrSNlpk28E/s320/Clip+1+%2824%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Note that an O2O relationship contains a display view dropdown.&amp;nbsp; From here you would select the view that you want to display when a user clicks on a related field widget (more on this later).&amp;nbsp; Since we haven't built any views yet, you can leave this dropdown alone and come back to it once you build some views.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Now you will need to build O2M relationships between Restaurant &amp;gt; Inspection; Bathroom &amp;gt; Inspection, and Inspector &amp;gt; Inspection.&amp;nbsp; Then you will need to build O2O relationships in the exact opposite direction for these table pairs.&amp;nbsp; Your Bathroom &amp;gt; Inspection relationship&amp;nbsp; should look something like this:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S0tnHZapmsI/AAAAAAAAADk/qrDQ-AQUHwA/s1600-h/Clip+1+%2825%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S0tnHZapmsI/AAAAAAAAADk/qrDQ-AQUHwA/s320/Clip+1+%2825%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;And your Inspector &amp;gt; Inspection relationship should look something like this:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S0tnciQ8LcI/AAAAAAAAADs/6GKBuhFU7Mg/s1600-h/Clip+1+%2826%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S0tnciQ8LcI/AAAAAAAAADs/6GKBuhFU7Mg/s320/Clip+1+%2826%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Your main relationships designer screen should look like the following:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S0tn56jDCuI/AAAAAAAAAD0/KQFBu3HjQXU/s1600-h/Clip+1+%2827%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S0tn56jDCuI/AAAAAAAAAD0/KQFBu3HjQXU/s320/Clip+1+%2827%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b style="color: blue;"&gt;STEP 3 - FORMS&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Now that you have connected the tables, we need to build forms for each table.&amp;nbsp; In Adesso, you can create an unlimited number of forms per table, and link different forms to different filtered views programmatically by using different events or conditions.&amp;nbsp; This gives you the ability to use the same table to store data, but navigate a user to a completely different form depending on where he is or what he is looking at in the database.&amp;nbsp; Very powerful.&amp;nbsp; For purposes of this simple application, we will focus on building only one form for each table.&amp;nbsp;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;The Form Wizard&lt;/b&gt;&lt;br /&gt;Adesso contains a form wizard that will automatically create an input form for you based on the fields in your table.&amp;nbsp; I encourage you to use it and then change the form manually once it has done its thing.&amp;nbsp; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;To create a form, click on the Forms icon on the left pane of the Application Designer screen, then click on 'New' on the bottom of the right pane.&amp;nbsp; Before entering a name for the form, click on the Data Source dropdown and select a table.&amp;nbsp; In this case, select the Restaurant table.&amp;nbsp; Notice that Adesso will automatically name the form the same as the table name.&amp;nbsp; You can change the name manually, but for now, leave it as is.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0tqB-mSe2I/AAAAAAAAAD8/AEvewEIVPfs/s1600-h/Clip+1+%2828%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0tqB-mSe2I/AAAAAAAAAD8/AEvewEIVPfs/s320/Clip+1+%2828%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Note that there are 3 form types: Data form, Home form, and Startup form.&amp;nbsp; Almost all your forms will be of type Data form.&amp;nbsp; The Home form is a special form that allows you to build dashboard-style screens for both PC and PPC. The Startup form is essentially a simple splash screen that displays at launch only.&amp;nbsp; It is typically used to display author information, version numbers, logos, etc.&amp;nbsp; For our bathroom qa app, we will stick to data forms only.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Once you click ok, the wizard will pop up a window asking if you would like Adesso to create the form based on your field definitions.&amp;nbsp; Click yes.&amp;nbsp; The initial form will look something like this:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0trFBiLpTI/AAAAAAAAAEE/oeuPnSgdTGg/s1600-h/Clip+1+%2829%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0trFBiLpTI/AAAAAAAAAEE/oeuPnSgdTGg/s320/Clip+1+%2829%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;In Adesso, you can place a maximum of two fields on a row.&amp;nbsp; While this is a limitation, keep in mind that the forms need to be readable on PPCs, hence the limitation.&amp;nbsp; Despite this limitation, you can still build very powerful and aesthetically pleasing forms in Adesso that provide a lot of flexibility.&amp;nbsp; I will show you how.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;On the form in the example above, notice that there are labels on the left, and fields on the right.&amp;nbsp; They are separated from each other by a large vertical line.&amp;nbsp; This is a slider.&amp;nbsp; If you move the slider from left to right, you will give the labels more space while shrinking the space available for the fields.&amp;nbsp;&amp;nbsp; These screen constraints are set so that the application designer can effectively build an app that can be viewed on a PPC.&amp;nbsp; If your target devices are PCs (and not PPCs), its ok.&amp;nbsp; Users can stretch the forms however they want in runtime.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;On the top of the form you have two menus: Tools and View.&amp;nbsp; Most functionality is available from the Tools menu: validation conditions, form style, form properties, and tabs.&amp;nbsp; See screenshot below:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0tspNkXMAI/AAAAAAAAAEM/vwdBzt2PwYg/s1600-h/Clip+1+%2830%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0tspNkXMAI/AAAAAAAAAEM/vwdBzt2PwYg/s320/Clip+1+%2830%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The validation conditions menu function allows you to set an unlimited number of validations that are checked when the user tries to save the record.&amp;nbsp; If a condition is not met, a popup is displayed with the error condition that the app designer enters for display.&amp;nbsp; All functions that are available within Adesso are also available in the validation conditions section of the form.&amp;nbsp; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0ttcakQZnI/AAAAAAAAAEU/4gjuEGQFn7g/s1600-h/Clip+1+%2831%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0ttcakQZnI/AAAAAAAAAEU/4gjuEGQFn7g/s400/Clip+1+%2831%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The form style menu allows you to select a predefined style or create your own custom style.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S0tt1LDyy_I/AAAAAAAAAEc/i8Ufb42vwck/s1600-h/Clip+1+%2832%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S0tt1LDyy_I/AAAAAAAAAEc/i8Ufb42vwck/s320/Clip+1+%2832%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The form properties menu allows you to set the default size of the window on a PC, the total height of the form (maximum = 100 rows), select a background image, and basic form background colors.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0tuKWW4_PI/AAAAAAAAAEk/QIW642NT6jM/s1600-h/Clip+1+%2833%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0tuKWW4_PI/AAAAAAAAAEk/QIW642NT6jM/s320/Clip+1+%2833%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The tabs menu is where you create tabs for the form, and in what order they will appear on the form from left to right.&amp;nbsp; You can also hide tabs if you want to force the app user to navigate to tabs using button controls, for example.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0tuksG7zpI/AAAAAAAAAEs/a6UU3APNxng/s1600-h/Clip+1+%2834%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0tuksG7zpI/AAAAAAAAAEs/a6UU3APNxng/s320/Clip+1+%2834%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Form Designer Controls &amp;amp; Tips &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;To drop a field into a row, simply click on a blank row and a popup will appear where you can then select a field from that table or its related one tables, where you have created O2O relationships.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;To move a field from one row to another, click and hold onto the field, drag with your mouse until the field is in the row you want, and let go of your mouse button.&amp;nbsp;&lt;/li&gt;&lt;li&gt;To add a new blank row to a form, right-click where you want to add the row, and a popup menu will appear with Insert Row, Delete Row and Cancel options.&lt;/li&gt;&lt;li&gt;To strip a label from a row, click on the label, and select remove label.&amp;nbsp;&lt;/li&gt;&lt;li&gt;To remove both a field and its label, click on the field, and select remove field.&amp;nbsp; The label will be deleted along with the field.&lt;/li&gt;&lt;li&gt;To add a static label, click on an empty field and select static label from the popup.&amp;nbsp; Then format it using the format tools available from the label designer.&lt;/li&gt;&lt;li&gt;To add a parent field, click on an empty field and select the parent table, then the field in that table.&lt;/li&gt;&lt;li&gt;To add a O2M grid, click on an empty field and select the relationship you want.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;I went ahead and formatted the Restaurant table somewhat.&amp;nbsp; Screenshot is provided below.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0t2uN5JHZI/AAAAAAAAAE0/FyKD8Modg5U/s1600-h/Clip+1+%2836%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0t2uN5JHZI/AAAAAAAAAE0/FyKD8Modg5U/s320/Clip+1+%2836%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;We will go over some of the form items now:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;When you create tabs, a section at the top of the form is then split by a horizontal line.&amp;nbsp; this horizontal line signifies that everything above that line will display on each form, while everything below the line will display only on the respective form.&amp;nbsp; To move the line up and down, simply drag it up or down.&amp;nbsp; Please note that in order to move the line, the form has to be large enough in height (Tools&amp;gt;Format&amp;gt;Form Properties) and/or have enough blank spaces.&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;The header area contains its own vertical slider that acts independently of the vertical slider in the section that is specific to the tab you are editing.&lt;/li&gt;&lt;li&gt;Static text and fields can be formatted to spread across the full row, and can also be changed to be more than one row in height.&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Notice that the photo field is several rows high and covers full row.&lt;/li&gt;&lt;li&gt;you can add buttons to perform specific tasks.&amp;nbsp; Notice the Acquire GPS Reading button.&lt;/li&gt;&lt;li&gt;Fields can be formatted to be in read-only mode, so that a user cannot enter anything in the field.&lt;/li&gt;&lt;li&gt;Tabs can be rearranged to be in a different order from Tools&amp;gt;Format&amp;gt;Tabs menu.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;When you click into a blank field, your screen will look something like this:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0t6v6rskUI/AAAAAAAAAE8/QcJkt8A1p0M/s1600-h/Clip+1+%2837%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0t6v6rskUI/AAAAAAAAAE8/QcJkt8A1p0M/s400/Clip+1+%2837%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you right-click into a blank field, the popup will instead look like this:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0t7kyiOQiI/AAAAAAAAAFM/XrC709NGFII/s1600-h/Clip+2+%282%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0t7kyiOQiI/AAAAAAAAAFM/XrC709NGFII/s320/Clip+2+%282%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;If you select a button control to place in a blank field, the button designer will look like this:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0t8VvsVioI/AAAAAAAAAFU/KQ30Sc0lALw/s1600-h/Clip+1+%2838%29.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0t8VvsVioI/AAAAAAAAAFU/KQ30Sc0lALw/s320/Clip+1+%2838%29.png" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0t8fAS9KiI/AAAAAAAAAFc/Uq5k1RSfVdI/s1600-h/Clip+1+%2839%29.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0t8fAS9KiI/AAAAAAAAAFc/Uq5k1RSfVdI/s320/Clip+1+%2839%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Notice that with buttons, you can do all sorts of stuff.&amp;nbsp; In our case, we want to read the GPS on the PPC, so we select an action of Read GPS.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Now take a look at the second tab I created for the Restaurant form.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0t9wExB6pI/AAAAAAAAAFk/UvFvS5shLTk/s1600-h/Clip+1+%2840%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0t9wExB6pI/AAAAAAAAAFk/UvFvS5shLTk/s320/Clip+1+%2840%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The control I placed below the static text is a O2M control which displays the related many records.&amp;nbsp; To load this control onto the form, simply click into a blank row, and select 'Restaurant &amp;gt; Bathroom' from the popup menu.&amp;nbsp; O2M grid controls are labeled with the same names that you created them in on the Relationships designer.&amp;nbsp; Once you drop a O2M grid control onto the form, you can then click on them to change its design.&amp;nbsp; Screenshot of this is displayed below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S0t-4diba3I/AAAAAAAAAFs/WEZWpvv_91s/s1600-h/Clip+1+%2841%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S0t-4diba3I/AAAAAAAAAFs/WEZWpvv_91s/s320/Clip+1+%2841%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Of key importance is the display view.&amp;nbsp; We haven't created any views yet, but you will want to later go back into this control and select one from the dropdown menu.&amp;nbsp; This allows you to fully control what displays in that grid view from within that form.&amp;nbsp; Very powerful feature.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Once you have created all your forms, you can then proceed to creating your views.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: center;"&gt;&lt;b&gt;STEP 4 - VIEWS&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Building views is relatively straightforward.&amp;nbsp; To get started, click on the views icon on the left pane of the Application Designer.&amp;nbsp; Click on the 'new' button on the bottom of the right pane to create a new view.&amp;nbsp; The following screen will display:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0uBDe1c_WI/AAAAAAAAAF0/LihbN9dFNFE/s1600-h/Clip+1+%2842%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0uBDe1c_WI/AAAAAAAAAF0/LihbN9dFNFE/s320/Clip+1+%2842%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;enter a name and a data source.&amp;nbsp; The data source is simply the table.&amp;nbsp; Same thing.&amp;nbsp; A note on views:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Views are merely sorting and grouping views of the records stored in the table&lt;/li&gt;&lt;li&gt;You can create an infinite number of views and display them in whatever order you want&lt;/li&gt;&lt;li&gt;You can hide views if you don't want them to display on the main Adesso screen&lt;/li&gt;&lt;li&gt;You can add filters to views to display only records that meet specific critiera&lt;/li&gt;&lt;li&gt;You can navigate to specific input forms from a view&lt;/li&gt;&lt;li&gt;Views can take whatever name you assign it...I like to name a view by the sort order...for example, if the view sorts and groups the records by rtheir date, then I would label the view by Date &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;When you create a view, you will be presented with the following screen:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0uCUj9PZOI/AAAAAAAAAF8/fjiL_Q3ytsw/s1600-h/Clip+2+%283%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0uCUj9PZOI/AAAAAAAAAF8/fjiL_Q3ytsw/s400/Clip+2+%283%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I pushed several fields into the right hand side of the screen, then made sure the field labels/headers made sense and were justified correctly.&amp;nbsp; Then I clicked on the sort tab and told it to sort by restaurant_name field.&amp;nbsp; Screenshots of these tabs are listed below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0uM-ttzsQI/AAAAAAAAAGE/yoNXKxyyXqA/s1600-h/Clip+1+%2844%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0uM-ttzsQI/AAAAAAAAAGE/yoNXKxyyXqA/s320/Clip+1+%2844%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0uNDPVhMmI/AAAAAAAAAGM/8qVLkw5emOo/s1600-h/Clip+1+%2845%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0uNDPVhMmI/AAAAAAAAAGM/8qVLkw5emOo/s320/Clip+1+%2845%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S0uNOALCMNI/AAAAAAAAAGU/XRB7du1znHw/s1600-h/Clip+1+%2847%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S0uNOALCMNI/AAAAAAAAAGU/XRB7du1znHw/s320/Clip+1+%2847%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b style="color: blue;"&gt;STEP 5 - TESTING YOUR APPLICATION &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Once you create a few views for each table, you are ready to test your application.&amp;nbsp; The following is a screenshot of the restaurant table and form while entering our first restaurant record:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0uUpXjEoZI/AAAAAAAAAGc/C9zA0q2xEAs/s1600-h/Clip+1+%2848%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0uUpXjEoZI/AAAAAAAAAGc/C9zA0q2xEAs/s400/Clip+1+%2848%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Once we enter a restaurant record, then we can enter a bathroom that is inside the restaurant.&amp;nbsp; To do that, navigate to the bathroom tab on the same form and click on the button. &lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0uWiIGP8AI/AAAAAAAAAGk/u-mdw6Vb5tg/s1600-h/Clip+1+%2849%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0uWiIGP8AI/AAAAAAAAAGk/u-mdw6Vb5tg/s320/Clip+1+%2849%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Bathroom records created from this form will associate with its parent and show up in the O2M grid box in the screenshot above.&amp;nbsp;&amp;nbsp; the following screenshot is the view you will see when entering a new bathroom record.&amp;nbsp; Note that I have used two different types of input widgets for numerical values:&amp;nbsp; a spinner, denoted with two arrows &amp;lt; &amp;gt; .&amp;nbsp; Click on the right arrow to increase the number, and click on the left arrow to decrease the number.&amp;nbsp; The other type of widget available for numbers is a numerical keypad, as illustrated below:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0uXQO4dzdI/AAAAAAAAAGs/BVnXjsOslYE/s1600-h/Clip+2+%284%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0uXQO4dzdI/AAAAAAAAAGs/BVnXjsOslYE/s320/Clip+2+%284%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;After taking the screenshot, I notieced a mistake on the display type for the yes/no fields on this form.&amp;nbsp; I changed the yes/no field sfrom display type of text to checkbox.&amp;nbsp; Screenshot is displayed below: &lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S0uX3MnKP5I/AAAAAAAAAG0/bzXuCjsMRrI/s1600-h/Clip+2+%285%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S0uX3MnKP5I/AAAAAAAAAG0/bzXuCjsMRrI/s320/Clip+2+%285%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Once you enter a record for restaurant and a record for bathroom, you are ready to test the inspection table.&amp;nbsp; To test, click on the Inspections tab and click the button to enter a new inspection record.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S0uYUqJ47II/AAAAAAAAAG8/lyUANJsP5fs/s1600-h/Clip+1+%2850%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S0uYUqJ47II/AAAAAAAAAG8/lyUANJsP5fs/s320/Clip+1+%2850%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You will notice that the Inspector field doesn't have any values in it.&amp;nbsp; This doesn't mean that that field is messed up...it is because we haven't actually created any records for the Inspector table.&amp;nbsp; We can add records for that table later.&amp;nbsp; Now let's click on the Notes tab:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_44kQ1invdmk/S0uY7Bi6kxI/AAAAAAAAAHE/o5shkVGXI2c/s1600-h/Clip+1+%2851%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_44kQ1invdmk/S0uY7Bi6kxI/AAAAAAAAAHE/o5shkVGXI2c/s640/Clip+1+%2851%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Notice that there's an autowriter widget to the right of the comments field.&amp;nbsp; It is populated with the autowriter items we created when designing the Inspection table and fields.&amp;nbsp; you can check boxes off in the autowriter, and then edit them within the comments field later.&amp;nbsp; Fully editable comments.&amp;nbsp; The photo field allows you to select a photo from your hard drive, and it also can drive an integrated camera on a PPC device directly.&amp;nbsp; The sketch field is simply a doodle field.&amp;nbsp; The audiro field allows you to record an audio clip as long as your device has a microphone.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0uZufrUWcI/AAAAAAAAAHM/vgideMHlgeQ/s1600-h/Clip+1+%2852%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0uZufrUWcI/AAAAAAAAAHM/vgideMHlgeQ/s400/Clip+1+%2852%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&lt;a href="http://1.bp.blogspot.com/_44kQ1invdmk/S0uZ6F8bP3I/AAAAAAAAAHU/jWJ31vqzLq8/s1600-h/Clip+1+%2853%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_44kQ1invdmk/S0uZ6F8bP3I/AAAAAAAAAHU/jWJ31vqzLq8/s400/Clip+1+%2853%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/_44kQ1invdmk/S0uaInECBYI/AAAAAAAAAHc/zuWaHJj_904/s1600-h/Clip+1+%2854%29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_44kQ1invdmk/S0uaInECBYI/AAAAAAAAAHc/zuWaHJj_904/s640/Clip+1+%2854%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; color: blue; text-align: center;"&gt;&lt;b&gt;Final Comments&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;While there are clearly some things that need to be fixed up, jazzed up, and tweaked/improved for this application, it is essentially ready to go.&amp;nbsp; Learning Adesso is really easy and straightforward.&amp;nbsp; Next blog will focus on improving this particular application, such as improving some button controls, moving things around, etc.&amp;nbsp; I will also then show you how to upload this application to the Adesso Server and make it available to others for their use.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;jy&gt;&lt;br /&gt;&lt;/jy&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1518018179493370580-3771613597418981509?l=adessodeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adessodeveloper.blogspot.com/feeds/3771613597418981509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://adessodeveloper.blogspot.com/2010/01/building-mystery-shopper-bathroom-qa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/3771613597418981509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1518018179493370580/posts/default/3771613597418981509'/><link rel='alternate' type='text/html' href='http://adessodeveloper.blogspot.com/2010/01/building-mystery-shopper-bathroom-qa.html' title='Building a Mystery Shopper (Bathroom QA) Application'/><author><name>Jim Young @ Terraine</name><uri>http://www.blogger.com/profile/04177125757978869779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_44kQ1invdmk/S0EN2gD2hDI/AAAAAAAAAA0/qcBySBB0gPQ/S220/mugshot20090214.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_44kQ1invdmk/S0eh47Gc5NI/AAAAAAAAAB0/Ikgvy3ezbDk/s72-c/Clip+1+%285%29.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1518018179493370580.post-171842093241833489</id><published>2010-01-03T13:09:00.000-08:00</published><updated>2010-01-03T13:09:08.086-08:00</updated><title type='text'>My Very First Post - Introduction to Adesso Development</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;This is my first weblog post, ever.&amp;nbsp; I am usually a private person who doesn't post much...even on Facebook and LinkedIn, I don't like to post many status updates.&amp;nbsp; So publishing something public is something somewhat uncomfortable for me to do.&amp;nbsp; However frightening it is, its also somewhat exciting to be able to share some Adesso application development tips, tricks, how-to's, and new features.&amp;nbsp; Over the course of 2010 I will post various topics on how to build Adesso applications quickly, how to design forms with button controls to do cool things, and how to basically improve Adesso applications.&amp;nbsp; Hopefully these post will actually be read by some people and through sheer curiosity, those people will try these tips out on their own.&amp;nbsp; Perhaps some people that don't even know what Adesso is might even give it a spin.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Some History&lt;/b&gt;&lt;br /&gt;My name is James (Jim) Young, and I am a Principal and founder of Terraine, Inc, a small environmental firm that was started in September 1991.&amp;nbsp; I have been using Adesso since early 2003 to build small footprint applications that run in offline mode on Pocket PC and PC devices.&amp;nbsp; Initially we purchased a few Adesso licenses to build internal applications&amp;nbsp; that were used to streamline field data collection processes that used to be conducted using clipboards and paper.&amp;nbsp; Over the years, we began using Adesso more and more, until Adesso Systems (former owners of Adesso) asked us if we would be interested in a partnership, wherein we would market the software within our area of expertise (environmental services).&amp;nbsp; We agreed to do as much, and had some limited success.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;In December 2007, Adesso Systems filed for Chapter 7 bankruptcy protection.&amp;nbsp; Their focus changed into developing and marketing an application developed in Adesso called Tubes, which was targeted to the consumer market.&amp;nbsp; Venture capital ran out, and that was that.&amp;nbsp; In May 2008, Terraine, Inc. purchased the intellectual property of Adesso.&amp;nbsp; By August 2008 our build environment was up and running, churning out new versions of Adesso executables.&lt;br /&gt;&lt;br /&gt;It is now January 2010, and we have succeeded in building many applications for various clients in several markets.&amp;nbsp; The source code is continually improving, and features we had never thought about and which were suggested by our clients are slowly being added.&amp;nbsp; We are about to kick off a true web client for our software...code named Project Mermaid.&amp;nbsp; With this new functionality, users of Adesso will be able to build an application in Adesso that works offline on PPC and PC, and out-of-the-box, the entire system will automatically work using a standard web browser in online mode.&amp;nbsp; Validation control, expressions, and forms will have virtually the same look and feel as the Adesso Client experience.&amp;nbsp;&amp;nbsp; We are very excited about this new enhancement to our product.&amp;nbsp; Barring any unforseen problems, expect to see Version 1 of Mermaid sometime in March 2010.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;About Adesso (very brief)&lt;/b&gt;&lt;br /&gt;For those of you not familiar with Adesso, I will provide a very brief explanation in this first post, and this post only.&amp;nbsp; Adesso is a client/server database system that runs on small Windows devices (Windows Mobile) and Windows PCs, Netbooks, and Tablet PCs (Windows XP/Vista/Win7).&amp;nbsp; It consists of the Adesso Client and the Adesso Server.&amp;nbsp; The Client uses the .NET Framework to function and stores the data locally using SQL CE, while the Server requires Microsoft IIS and some flavor of SQL Server (SQL Server Express, Standard, or Enterprise).&amp;nbsp; Basically, the data are stored in SQL Server, and Adesso handles the permissions, sync rules, and conflict resolution through an easy-to-use web interface.&amp;nbsp; When a user clicks the sync button on his device, the local database on the device is compared to the server database.&amp;nbsp; Updates are made according to the latest sync rules and permissions.&amp;nbsp; Everything is controlled in near real-time and over-the-air, including updates to Adesso Client iteself.&amp;nbsp; Once the data are on the server, those data are available to other databases and applications via an ODBC Driver and also via web services.&amp;nbsp; In a nutshell, you can develop an application very quickly (hours and days, not months and years) in Adesso, deploy it to thousands of PPCs, and analyze data via Google Maps, bar charts, graphs, tables, etc in almost real-time once the data are synced from the remote PPCs to the Adesso Server.&amp;nbsp; It is a very cool system.&amp;nbsp; I have played around with other competing products, especially when Adesso Systems went under, but have yet to find a development platform that can beat Adesso in this niche.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Adesso Application Designer - Part 1 (Tables &amp;amp; Fields)&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Ok, now that that is finally done, I can move on to the good stuff...examples of cool things you can do with this stuff.&amp;nbsp; However, in order to show you the cool stuff, you must first have a basic understanding of the Design Environment.&amp;nbsp; For purposes of this Blog, I will assume that most everyone has already downloaded the Adesso Client application and is somewhat familiar with it.&amp;nbsp; If you haven't, go here to download it: http://navfac.net (u: adessouser; p: adesso).&amp;nbsp; It's a free download.&lt;br /&gt;&lt;br /&gt;In this first part of describing the Adesso Application Designer environment, I will first go over the most basic elements of the Designer environment.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;To create an application, go to File&amp;gt;New Application and enter a name and path to store the app.&amp;nbsp; After that, your first screen will look like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_44kQ1invdmk/S0D98mDym0I/AAAAAAAAAAM/oQeGb97SPwQ/s1600-h/Clip+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_44kQ1invdmk/S0D98mDym0I/AAAAAAAAAAM/oQeGb97SPwQ/s320/Clip+1.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;It's an OFFLINE System, So Keep that in Mind &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;As with most standard client/server database development systems, Adesso contains elements to build your tables, fields within your tables, views, forms, and filtersets.&amp;nbsp; What one needs to keep in mind when developing in Ad
