<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sharepoint on csegura</title><link>https://blog.romheat.net/tags/sharepoint/</link><description>Recent content in Sharepoint on csegura</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 22 Apr 2009 00:00:00 +0200</lastBuildDate><atom:link href="https://blog.romheat.net/tags/sharepoint/index.xml" rel="self" type="application/rss+xml"/><item><title>YACAMLQT (Yet another CAML query tool) Redux (2)</title><link>https://blog.romheat.net/posts/2009/09_04_22_yacamltool_2/</link><pubDate>Wed, 22 Apr 2009 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2009/09_04_22_yacamltool_2/</guid><description>&lt;p>Habíamos visto la parte relacionada con el Lexer el analizador morfológico. Como es obvio detrás debe haber un analizador sintáctico y semántico el &lt;a href="https://web.archive.org/web/20130904001414/http://en.wikipedia.org/wiki/Parsing" target="_blank">Parser&lt;/a>.&lt;/p>
&lt;p>El analizador sintáctico y semántico (&lt;strong>NParser&lt;/strong>) se ha implementado siguiendo el patrón interpeter, (&lt;em>seguramente sea uno de los que menos se ven&lt;/em>), el objetivo es obtener los distintos Tokens desde el Scanner y montar un árbol sintáctico (&lt;a href="https://web.archive.org/web/20130904001414/http://en.wikipedia.org/wiki/Abstract_syntax_tree" target="_blank">AST&lt;/a>) este árbol contiene Nodos (&lt;strong>ASTNodeBase&lt;/strong>) y estos nodos representan de manera abstracta y simplificada la estructura sintáctica de la consulta en SQL.&lt;/p></description></item><item><title>YACAMLQT (Yet another CAML query tool) Redux (2)</title><link>https://blog.romheat.net/posts/2009/09_04_23_yacamltool_3/</link><pubDate>Wed, 22 Apr 2009 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2009/09_04_23_yacamltool_3/</guid><description>&lt;p>Bueno, esta es la última entrega a partir de hoy el proyecto se encuentra en CodePlex (yacamlqt.codeplex.com).&lt;/p>
&lt;p>En esta última parte solo unas pequeñas notas para el usuario final.&lt;/p>
&lt;p>Bien, para usar YACAMLQT, dentro de tus proyectos, solo hay que referenciar la dll (IdeSeg.SharePoint.Caml.QueryParser.dll) y el uso sería el siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-csharp" data-lang="csharp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">try&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">var&lt;/span> parser = &lt;span style="color:#66d9ef">new&lt;/span> NParser(textTSql, &lt;span style="color:#66d9ef">new&lt;/span> ASTNodeCAMLFactory());
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">var&lt;/span> generator = &lt;span style="color:#66d9ef">new&lt;/span> CodeGenerator(parser.Parse());
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> generator.Generate();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> _formatTools.FormatXml(generator.Code);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">catch&lt;/span> (ParserException ex)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> _view.Status = ex.Message;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">catch&lt;/span> (ScannerException ex)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> _view.Status = ex.Message;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Instanciamos el Parser (NParser), le pasamos la consulta en TSQL (textSql) y la factoría correspondiente a lo que queremos generar, por el momento solo está disponible la de CAML, en breve completaré la de CAML.Net; Por último inyectamos el Parser en el Generador de código, llamamos al método Generate y recogemos la consulta en CAML en generator.Code.&lt;/p></description></item><item><title>YACAMLQT (Yet another CAML query tool) Redux (1)</title><link>https://blog.romheat.net/posts/2009/09_04_21_yacamltool/</link><pubDate>Tue, 21 Apr 2009 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2009/09_04_21_yacamltool/</guid><description>&lt;p>Hace un mes, John Holliday, me pidió a ver si podíamos integrar su CAML.net con mi YACAMLQT, a la vez que ampliar mi herramienta para soportar otro tipo de consultas como adds y updates.&lt;/p>
&lt;p>YACAMLQT, es una utilidad que convierte una sentencia SQL en CAML, el lenguaje de consulta de Sharepoint. (Véase YACAMLQT, YACAMLQT2 y YACAMLQT-CAML.Net)&lt;/p>
&lt;p>Estos días entre rato bueno y rato malo, he reescrito totalmente el código de YACAMLQT, para hacerlo más sencillo (por supuesto usando TDD), en principio el objetivo ha sido emular el antiguo YACAMLQT, pero dotándolo de un diseño más sencillo y ampliable.&lt;/p></description></item><item><title>SPSRollUp details view</title><link>https://blog.romheat.net/posts/2009/09_03_15_spsrollup_details_view/</link><pubDate>Sun, 15 Mar 2009 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2009/09_03_15_spsrollup_details_view/</guid><description>&lt;p>This is a sample XSLT to show a details data view, you can connect a XSLT grid template to this view to show list details. Also you can configure the buttons to take another actions. (In this sample we are using the extended list data to get the actions urls)&lt;/p>
&lt;p>The details view show as this:&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSRollUpDetailsView.gif" alt="">&lt;/p>
&lt;p>The XSLT is divided in three sections, the toolbar, the buttons and the rows.&lt;/p></description></item><item><title>SPSRollUp Change Grid Pager</title><link>https://blog.romheat.net/posts/2009/09_03_12_spsrollup_change_grid_pager/</link><pubDate>Thu, 12 Mar 2009 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2009/09_03_12_spsrollup_change_grid_pager/</guid><description>&lt;p>This is a small xslt snippet to change the pager style, that looks as below. This pager has buttons for first and last page, for previous and next pages and you can establish the desired number of page buttons.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSRollUpPagerStyle.gif" alt="">&lt;/p>
&lt;p>The pager template is divided in small templates for each button, also added a variable to calc the last page. You can change the PageSize and the MaxPageLinks xslt variables.&lt;/p></description></item><item><title>SPSRollUp Chart Task Report</title><link>https://blog.romheat.net/posts/2008/08_12_16_spsrollupchart_task_report/</link><pubDate>Tue, 16 Dec 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_12_16_spsrollupchart_task_report/</guid><description>&lt;p>Using the previous sample, you can connect the crawled lists with a &lt;strong>SPSRollUpChart&lt;/strong> to show a resume graph with the status of all tasks.&lt;/p>
&lt;p>Our goal is show a chart with the status of all tasks in a specified task list. First create a SPSRollUp to select the lists as &lt;a href="https://web.archive.org/web/20130904001354/http://www.spsprofessional.com/post/SPSRollUp-Select-Distinct-Crawled-Lists.aspx" target="_blank">&lt;strong>this&lt;/strong>&lt;/a>&lt;/p>
&lt;p>Add a &lt;strong>SPSRollUpChart&lt;/strong> webpart an fill the properties with the same lists and in the fields property write “Status”, because we want get the status of the tasks.&lt;/p></description></item><item><title>SPSRollUp Select Distinct Crawled Lists</title><link>https://blog.romheat.net/posts/2008/08_12_15_spsrollup_select_distinct_crawled_lists/</link><pubDate>Mon, 15 Dec 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_12_15_spsrollup_select_distinct_crawled_lists/</guid><description>&lt;p>This is a small sample to show all crawled lists, only the lists names without any other data.&lt;/p>
&lt;p>Suppose that you want get all lists crawled under a specific site, send the list to another SPSRollUp webpart to show the lists items.&lt;/p>
&lt;p>In this example we will use any site and we wish get all tasks related lists.&lt;/p>
&lt;p>In the SPSRollUp properties, type &amp;ldquo;Tasks&amp;rdquo; in the lists properties and put &amp;ldquo;Title&amp;rdquo; in the fields property (we are not going to use the &amp;ldquo;Title&amp;rdquo; field but we need it, SPSRollUp must have almost one field in order to run the rollup)&lt;/p></description></item><item><title>SPSRollUp Task Diffs</title><link>https://blog.romheat.net/posts/2008/08_12_15_spsrollup_task_diffs/</link><pubDate>Mon, 15 Dec 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_12_15_spsrollup_task_diffs/</guid><description>&lt;p>It’s another SPSRollUp Sample that show data from a tasks list in subsites. This view permits expand and collapse data and show the startdate, the duedate and the days from startdate to duedate.&lt;/p>
&lt;p>In the SPSRollUp Properties, select the necesary tasks lists, use the fields, Title,StartDate,DueDate and select the ‘Use ISO dates’. In the XSL use the code below&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSRollUp_TasksExpandDiff.gif" alt="">&lt;/p>
&lt;p>This example use the DateDiff function from the SPSRollUp Namespace.&lt;/p></description></item><item><title>SPSExplorer 2.5</title><link>https://blog.romheat.net/posts/2008/08_12_10_spsexplorer_2_5/</link><pubDate>Wed, 10 Dec 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_12_10_spsexplorer_2_5/</guid><description>&lt;p>We have finished a maintenance release of SPSExplorer webparts, now SPSDocumentExplorer can be used with SPSCutCopyPaste.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSDocumentExplorerCP_25.gif" alt="">&lt;/p></description></item><item><title>Sharepoint Unit Testing</title><link>https://blog.romheat.net/posts/2008/08_11_03_unit_testing_2/</link><pubDate>Mon, 03 Nov 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_11_03_unit_testing_2/</guid><description>&lt;p>Como sabéis tanto Gustavo como yo llevamos tiempo realizando pruebas sobre lo que programamos en SharePoint, ambos estamos usando TypeMock como framework para
nuestros objetos Mocks que son imprescindibles a la hora de realizar pruebas para SharePoint.&lt;/p>
&lt;p>Durante los últimos meses hemos posteado sobre el tema, hemos iniciado un proyecto en CodePlex con un conjunto de clases envoltorio que pueden ayudarnos a
la hora de realizar las pruebas con TypeMock y que está a un tris de quedarse obsoleto.&lt;/p></description></item><item><title>csegRollUp 3.0</title><link>https://blog.romheat.net/posts/2008/08_09_30_csegrollup_3/</link><pubDate>Tue, 30 Sep 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_09_30_csegrollup_3/</guid><description>&lt;p>We have prepared the new SPSRollUp v3 in few days.&lt;/p>
&lt;ul>
&lt;li>Improved performance&lt;/li>
&lt;li>Now there is not necessary to apply changes twice.&lt;/li>
&lt;li>New Xslt functions. Added FormatIsoDate, LookupValue, LookupId, Replace, RootWebUrl, SourceParam, UrlParam, XmlDecode (more information in SPSNamespace functions)&lt;/li>
&lt;li>New View Lists and View Fields options to show crawled lists and fields.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSRollUp3_ViewOptions.gif" alt="">&lt;/p>
&lt;p>Now there are two options in the configuration properties that will show a popup with the information about collected lists and fields.&lt;/p></description></item><item><title>Unit Testing</title><link>https://blog.romheat.net/posts/2008/08_09_21_unit_testing/</link><pubDate>Sun, 21 Sep 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_09_21_unit_testing/</guid><description>&lt;p>Aquí continúa el drama de Unit Test para SharePoint. Esta vez hemos reunido esfuerzos entre nosotros, Carlos Segura (&lt;a href="http://www.ideseg.com" target="_blank">http://www.ideseg.com&lt;/a> ) y Gustavo Velez (&lt;a href="http://www.gavd.net" target="_blank">http://www.gavd.net&lt;/a> ), para intentar sacar algo en claro. Programadores del mundo de SharePoint, uníos! …&lt;/p>
&lt;p>Unit Test, SharePoint y que es lo importante:&lt;/p>
&lt;p>Testeo Unitario es una técnica de programación que permite asegurar que lo que se ha programado hoy cumple las condiciones exigidas, y que las seguirá cumpliendo en el futuro, cuando se hagan modificaciones en el código fuente. Existe numerosa información al respecto, tanto en libros de texto como en internet, así que no repetiremos las bases de la técnica; en resumen, es deseable que se
cumplan algunas condiciones:&lt;/p></description></item><item><title>SPSRollUp Dropdown Recipe</title><link>https://blog.romheat.net/posts/2008/08_08_23_spsrollup_dropdown_recipe/</link><pubDate>Sat, 23 Aug 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_08_23_spsrollup_dropdown_recipe/</guid><description>&lt;p>In a blank page insert two SPSRollUp webparts.&lt;/p>
&lt;p>Edit the properties in the first webpart and select any list, in the fields property write “Title”&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSRollUp_DropDown1.gif" alt="">&lt;/p>
&lt;p>In the XSL paste the next snippet; This snippet fills a drop down box with the titles of all crawled data&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;utf-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:stylesheet&lt;/span> &lt;span style="color:#a6e22e">version=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;1.0&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:xsl=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&amp;lt;http://www.w3.org/1999/XSL/Transform&amp;gt;&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:sps=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&amp;lt;http://schemas.spsprofessional.com/WebParts/SPSXSLT&amp;gt;&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">exclude-result-prefixes=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;sps&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:output&lt;/span> &lt;span style="color:#a6e22e">method=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;html&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:param&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;CurrentRow&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">match=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;/&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;script&lt;/span> &lt;span style="color:#a6e22e">type=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;text/javascript&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>function combo_onchange(oSelect)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> if(oSelect.selectedIndex != -1)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> var selected = oSelect.options[oSelect.selectedIndex].value;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;sps:EventJS(&amp;#39;Select&amp;#39;,&amp;#39;selected&amp;#39;)&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/script&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Select a value
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;select&lt;/span> &lt;span style="color:#a6e22e">id=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;a1&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;combo&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">onchange=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;javascript:combo_onchange(this);&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">class=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;ms-input&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;option&lt;/span> &lt;span style="color:#a6e22e">value=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:for-each&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Rows/Row&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:sort&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Title&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:element&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;option&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:attribute&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;value&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;_RowNumber&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:attribute&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:if&lt;/span> &lt;span style="color:#a6e22e">test=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;_RowNumber=$CurrentRow&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:attribute&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;selected&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:if&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Title&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:element&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:for-each&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/select&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:template&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When a value is selected the JavaScript embedded in the XSL “combo_onchange” send the selected value using the row provider interface.&lt;/p></description></item><item><title>SPSCopyMove WebPart</title><link>https://blog.romheat.net/posts/2008/08_07_28_spscopymove_webpart/</link><pubDate>Mon, 28 Jul 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_07_28_spscopymove_webpart/</guid><description>&lt;p>This are the preliminary screenshots of SPSListCopyMove WebPart, this webpart permits move and copy list items in a SharePoint List. In the webpart properties you only need specify the list and the view that you want show in the webpart.&lt;/p>
&lt;p>You can view a navigation tree, to navigate to any list folder quickly, and the list view that you has selected in the properties.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSListCopyPaste_Beta1.gif" alt="">&lt;/p>
&lt;p>In the context menu of the items that are showed in the view there are two new options, one to copy the item to another folder in the same list and another to move the item.&lt;/p></description></item><item><title>SPSRollUp 2.0 Beta</title><link>https://blog.romheat.net/posts/2008/08_07_03_spsrollup_2_0_beta/</link><pubDate>Thu, 03 Jul 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_07_03_spsrollup_2_0_beta/</guid><description>&lt;p>We are developing an application for a customer using SPSRollUp (Beta 2), our customer want a site with some features that seem like BaseCamp site, BaseCamp is a well know Project Management web application.&lt;/p>
&lt;p>Using SPSRollUp our customer can aggregate data from sub-projects and show all tasks status in an only view. But he want a special view that he likes specially, this view show pending tasks whit delayed days and coming tasks with the remaining days.&lt;/p></description></item><item><title>SQL Maintenance - Sharepoint</title><link>https://blog.romheat.net/posts/2008/08_07_03_sql_maintenance/</link><pubDate>Thu, 03 Jul 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_07_03_sql_maintenance/</guid><description>&lt;p>Hace algún tiempo comente un plan de mantenimiento para las bases de datos de SharePoint 2003, básicamente para SharePoint 2007 los pasos son los mismos, solo que las bases de datos a tener en cuenta son otras.&lt;/p>
&lt;p>Tanto en MOSS como en WSS encontraremos las siguientes bases de datos:&lt;/p>
&lt;p>WSS_Content_GUID&lt;/p>
&lt;p>Esta base de datos contiene los datos de una aplicación web y las colecciones de sitios de dicha aplicación web. Todos los datos de las listas y los documentos de los sitios son almacenados en esta base de datos, en función del movimiento de esta deberemos de tener un plan de mantenimiento para la misma. Importante.&lt;/p></description></item><item><title>SPSRollUp showing flags</title><link>https://blog.romheat.net/posts/2008/08_06_13_spsrollup_showing_flags/</link><pubDate>Fri, 13 Jun 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_06_13_spsrollup_showing_flags/</guid><description>&lt;p>You can replace texts with custom images using the XSL. First you need load the desired images in the /_layouts/images of your server, after load you can use this images from XSL. Here is a little sample where the status of the tasks are replaced with flag images.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSRollUp_PendingTasksImages.gif" alt="">&lt;/p>
&lt;p>The XSL is the same used in the Task Status example, where we are add a &lt;a href="xsl:choose">xsl:choose&lt;/a> in order to select the image:&lt;/p></description></item><item><title>SPSRollUp showing pending tasks</title><link>https://blog.romheat.net/posts/2008/08_06_12_spsrollup_showing_pending_tasks/</link><pubDate>Thu, 12 Jun 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_06_12_spsrollup_showing_pending_tasks/</guid><description>&lt;p>This is only a sample to show how we can use SPSRollUp to show the pending tasks from a list.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSRollUp_PendingTasks.gif" alt="">&lt;/p>
&lt;p>Select a Task list in the SPSRollUp properties, and select fields Title,DueDate and Status, check the include list data to get the url where you can edit the task item.&lt;/p>
&lt;p>Below there are some CAML queries that you can use to filter the results and show only the pending tasks or the tasks for the current logged user.&lt;/p></description></item><item><title>SPSRollUpCalendar</title><link>https://blog.romheat.net/posts/2008/08_06_08.csegrollup_calendar/</link><pubDate>Sun, 08 Jun 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_06_08.csegrollup_calendar/</guid><description>&lt;p>(Beta Documentation)&lt;/p>
&lt;p>Included in version 2 of SPSRollUp there is a new webpart to roll up data and show it using the SharePoint calendar view.&lt;/p>
&lt;p>SPSRollUpCalendar has a similar operation to the SPSRollUp and SPSRollUpChart, and this means that it tracks sites and lists collecting information, the collected data is transformed using XSLT to generate XML as SPSRollUpChart does. The result XML is a description of the events to show in a calendar view.&lt;/p></description></item><item><title>csegRollup Show Picture Libraries</title><link>https://blog.romheat.net/posts/2008/08_06_04_csegrollup_show_picture_libraries/</link><pubDate>Wed, 04 Jun 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_06_04_csegrollup_show_picture_libraries/</guid><description>&lt;p>With SPSRollUp you can also aggregate content from Picture Libraries, this is a little sample that shows you how to do it.&lt;/p>
&lt;p>Select the desired lists that you want to aggregate and add the fields in the fields list, the most important field here is the EncodedAbsThumbnailUrl, this field contains the Url where the thumbnail image is stored. Other fields that we are using in the example are Title, Description and Keywords.&lt;/p></description></item><item><title>csegRollUp show recent modified files</title><link>https://blog.romheat.net/posts/2008/08_06_03_csegrollup_show_recent_files/</link><pubDate>Tue, 03 Jun 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_06_03_csegrollup_show_recent_files/</guid><description>&lt;p>A common recurrence task in SharePoint is to locate the last modified files. SPSRollUp can help to you in this task.&lt;/p>
&lt;p>You can use SPSRollUp to retrieve items from a document library as it is shown in the image.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSRollUpRecentModifiedFiles.gif" alt="">&lt;/p>
&lt;p>You are supposed to select in the lists the document libraries in which you want crawl the results, and, in the fields you must select:&lt;/p>
&lt;p>&lt;strong>FileRef&lt;/strong>: That is the file name with full path.
&lt;strong>LinkFileName&lt;/strong>: That is the file name, without path.
&lt;strong>EncodedAbsUrl&lt;/strong>: That is the full path of the file, without file name.
&lt;strong>Modified&lt;/strong>: The date and time when the document was modified.
&lt;strong>Created&lt;/strong>: The date and time when the document was created.&lt;/p></description></item><item><title>csegRollup hide expired items</title><link>https://blog.romheat.net/posts/2008/08_05_31_spsrollup_hide_expired_items/</link><pubDate>Sat, 31 May 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_05_31_spsrollup_hide_expired_items/</guid><description>&lt;p>You can add a simple CAML query in order to hide the expired elements.&lt;/p>
&lt;p>Use:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;Where&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Geq&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;FieldRef&lt;/span> &lt;span style="color:#a6e22e">Name=&lt;/span>&lt;span style="color:#e6db74">”Expires”&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Value&lt;/span> &lt;span style="color:#a6e22e">Type=&lt;/span>&lt;span style="color:#e6db74">”DateTime”&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Today&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/Value&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/Geq&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/Where&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This query show only items which Expiration date is greater or equal than today date.&lt;/p>
&lt;p>If you want use also the hour, you can use&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;Where&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Geq&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;FieldRef&lt;/span> &lt;span style="color:#a6e22e">Name=&lt;/span>&lt;span style="color:#e6db74">”Expires”&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Value&lt;/span> &lt;span style="color:#a6e22e">Type=&lt;/span>&lt;span style="color:#e6db74">”DateTime”&lt;/span> &lt;span style="color:#a6e22e">IncludeTimeValue=&lt;/span>&lt;span style="color:#e6db74">”TRUE”&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Today&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/Value&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/Geq&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/Where&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>csegRollUp DropDownList</title><link>https://blog.romheat.net/posts/2008/08_05_29_spsrollup_dropdownlist/</link><pubDate>Thu, 29 May 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_05_29_spsrollup_dropdownlist/</guid><description>&lt;p>In this sample we load a DropDown list with values from a list and we will use the selected value to filter another SPSRollUp.&lt;/p>
&lt;p>Select a List and a Site from which we load data, and fill the SPSRollUp properties.&lt;/p>
&lt;p>Use the next XSL to render the DropDown list, (we are using the field Title in the example)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;utf-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:stylesheet&lt;/span> &lt;span style="color:#a6e22e">version=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;1.0&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:xsl=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://www.w3.org/1999/XSL/Transform&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:sps=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://schemas.spsprofessional.com/WebParts/SPSXSLT&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">exclude-result-prefixes=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;sps&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:output&lt;/span> &lt;span style="color:#a6e22e">method=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;html&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:param&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;CurrentRow&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">match=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;/&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">&amp;lt;![CDATA[
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> &amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> function combo_onchange(oSelect)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> {
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> if(oSelect.selectedIndex != -1)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> {
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> var selected = oSelect.options[oSelect.selectedIndex].value;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> ]]&amp;gt;&lt;/span>&lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;sps:EventJS(&amp;#39;Select&amp;#39;,&amp;#39;selected&amp;#39;)&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>&lt;span style="color:#75715e">&amp;lt;![CDATA[
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> &amp;lt;/script&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> ]]&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Select a value
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;select&lt;/span> &lt;span style="color:#a6e22e">id=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;a1&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;combo&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">onchange=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;javascript:combo_onchange(this);&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">class=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;ms-input&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;option&lt;/span> &lt;span style="color:#a6e22e">value=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:for-each&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Rows/Row&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:sort&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Title&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:element&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;option&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:attribute&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;value&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;_RowNumber&amp;#34;&lt;/span>&lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:attribute&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:if&lt;/span> &lt;span style="color:#a6e22e">test=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;_RowNumber=$CurrentRow&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:attribute&lt;/span> &lt;span style="color:#a6e22e">name =&lt;/span>&lt;span style="color:#e6db74">&amp;#34;selected&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:if&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Title&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:element&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:for-each&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/select&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:template&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This XSL render the DropDown list, generating an option for each row returned in XML. When you select an option the javascript onchange event, send all row values using the provider interface.&lt;/p></description></item><item><title>Rollup a sorted table</title><link>https://blog.romheat.net/posts/2008/08_05_28_rollup_sorted_table/</link><pubDate>Wed, 28 May 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_05_28_rollup_sorted_table/</guid><description>&lt;p>This is a small trick to show the entries classic list in months and years that can be found in blogs.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SPSRollUp_Tip1.gif" alt="">&lt;/p>
&lt;p>To produce a data input such as this one we must count the number of entries occurred in a given month and year.&lt;/p>
&lt;p>This is a complex result from the point of view of an XSLT transformation, but here we will see how we can use JavaScript alongside with our transformation to produce the necessary results.&lt;/p></description></item><item><title>Action Database Connected Chart</title><link>https://blog.romheat.net/posts/2008/08_05_19_actiondatabase_connected_chart/</link><pubDate>Mon, 19 May 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_05_19_actiondatabase_connected_chart/</guid><description>&lt;p>An ActionGrid connected to an ActionViewChart to show in graph form all products and your quantity ordered by a customer&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/ActionViewChartAlpha3.gif" alt="">&lt;/p>
&lt;p>ActionViewChart XML Configuration&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;utf-16&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;SPSActionViewConfig&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;DataBase&lt;/span> &lt;span style="color:#a6e22e">ConnectionString=&lt;/span>&lt;span style="color:#e6db74">&amp;#34; ... &amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Query&lt;/span> &lt;span style="color:#a6e22e">SelectCommand=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;SELECT SUM([Order Details].Quantity) AS Quantity, 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> Products.ProductName
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> FROM [Order Details] 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> INNER JOIN Orders 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> ON [Order Details].OrderID = Orders.OrderID 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> INNER JOIN Products 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> ON [Order Details].ProductID = Products.ProductID
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> WHERE Orders.CustomerID=@CustomerID 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> GROUP BY Products.ProductName&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Filter&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Param&lt;/span> &lt;span style="color:#a6e22e">Name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;CustomerID&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">Type=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;NChar&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">Default=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/Filter&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/SPSActionViewConfig&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>ActionViewChart XSLT&lt;/p></description></item><item><title>Action Web Parts</title><link>https://blog.romheat.net/posts/2008/08_05_18_action_web_parts/</link><pubDate>Sun, 18 May 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_05_18_action_web_parts/</guid><description>&lt;p>First images of ActionView and ActionViewChart webparts.&lt;/p>
&lt;p>With the ActionView web part you can get data from your SQL Server Data Base and render the data using XSLT.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/ActionViewAlpha.gif" alt="">&lt;/p>
&lt;p>ActionViewChart web part permits show the data using graphs.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/ActionViewChartAlpha.gif" alt="">&lt;/p>
&lt;p>Both web parts are in a new package called ActionPack, that would be released at the end of June.&lt;/p></description></item><item><title>ActionView Chart</title><link>https://blog.romheat.net/posts/2008/08_05_18_action_view_chart/</link><pubDate>Sun, 18 May 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_05_18_action_view_chart/</guid><description>&lt;ul>
&lt;li>XML Configuration&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;utf-16&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;SPSActionViewConfig&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;DataBase&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">ConnectionString=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Data Source=W2K3;Initial Catalog=Northwind; ..&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Query&lt;/span> &lt;span style="color:#a6e22e">SelectCommand=&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;SELECT CategoryID, CategoryName, SUM(ProductSales) AS Total
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> FROM [Sales by Category]
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> GROUP BY CategoryName, CategoryID&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/SPSActionViewConfig&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>XSLT&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;utf-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:stylesheet&lt;/span> &lt;span style="color:#a6e22e">version=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;1.0&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:xsl=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://www.w3.org/1999/XSL/Transform&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:msxsl=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;urn:schemas-microsoft-com:xslt&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:sps=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://schemas.spsprofessional.com/WebParts/SPSXSLT&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">exclude-result-prefixes=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;msxsl sps&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:output&lt;/span> &lt;span style="color:#a6e22e">method=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;xml&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">indent=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;yes&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">match=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;@* | node()&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">&amp;lt;!-- Graph --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;graph&lt;/span> &lt;span style="color:#a6e22e">caption=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Title&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xAxisName=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Products&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">yAxisName=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Sales&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">decimalPrecision=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;0&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">formatNumberScale=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;0&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:apply-templates&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/graph&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:template&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">&amp;lt;!-- Each row --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">match=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Row&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">&amp;lt;!-- Put here your fields --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;set&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;{CategoryName}&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">value=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;{Total}&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">color=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;{sps:GetFcColor()}&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:template&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/ActionViewChartAlpha2.gif" alt="">&lt;/p></description></item><item><title>Cut Copy Paste Beta</title><link>https://blog.romheat.net/posts/2008/08_04_21_cut_copy_paste_beta/</link><pubDate>Mon, 21 Apr 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_04_21_cut_copy_paste_beta/</guid><description>&lt;p>We are finishing the Cut/Copy/Paste version 2 with full version support.&lt;/p>
&lt;p>Copy all versions, and maintain published versions.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CCP2_Publish1.gif" alt="">&lt;/p>
&lt;p>Also now copied files are not overwritten by default, and if a file exist a new one is created, adding a number of copy in the name.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CCP2_Publish2.gif" alt="">&lt;/p>
&lt;p>You can download it from Downloads section. If you are interested in a beta license key, please contact with support&lt;/p></description></item><item><title>Cut, Copy, Paste WebPart</title><link>https://blog.romheat.net/posts/2008/08_04_06_cut_copy_paste/</link><pubDate>Sun, 06 Apr 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_04_06_cut_copy_paste/</guid><description>&lt;p>We are working on a WebPart that will allow you to Cut, Copy, and Paste items from one list to another. This is a very useful tool for SharePoint users.&lt;/p>
&lt;p>The WebPart is still in development, but we will keep you updated on its progress. Stay tuned for more information!&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CutCopyPaste_Video_2.gif" alt="">&lt;/p></description></item><item><title>Filter Toolbar</title><link>https://blog.romheat.net/posts/2008/08_04_05_filter_toolbar/</link><pubDate>Sat, 05 Apr 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_04_05_filter_toolbar/</guid><description>&lt;p>Filter ToolBar&lt;/p>
&lt;p>A customizable toolbar that you can configurate for TextBoxes, DropDown Lists, and DateTime Pickeres to send data to other WebParts&lt;/p>
&lt;p>&lt;img src="images/Sharepoint/FilterToolbar_WebPart.gif" alt="">&lt;/p>
&lt;p>Include Generator&lt;/p>
&lt;p>&lt;img src="images/Sharepoint/FilterToolbar_Generator.gif" alt="">&lt;/p></description></item><item><title>Action Database Ajax Picker</title><link>https://blog.romheat.net/posts/2008/08_03_05_actiondtabase_ajax_picker/</link><pubDate>Wed, 05 Mar 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_03_05_actiondtabase_ajax_picker/</guid><description>&lt;p>Some demos of the Action Database Ajax Picker:&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/ADPiPickerVideo.gif" alt="">&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/Generator1.gif" alt="">&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/Generator2.gif" alt="">&lt;/p></description></item><item><title>NTML y Kerberos</title><link>https://blog.romheat.net/posts/2008/08_02_21_ntml_kerberos/</link><pubDate>Thu, 21 Feb 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_02_21_ntml_kerberos/</guid><description>&lt;p>En todas las instalaciones hay un punto crítico, esa pregunta que no tenemos muy clara y que en ocasiones va acompañada de un texto recomendando una de las opciones, por si no sabemos muy bien qué es lo que estamos haciendo. MOSS no es una excepción.&lt;/p>
&lt;p>La pregunta en cuestión llega cuando tenemos que decidir sobre la seguridad, la instalación de MOSS nos da a elegir entre sí usaremos NTLM ó Kerberos.&lt;/p></description></item><item><title>Action Database</title><link>https://blog.romheat.net/posts/2008/08_02_05_action_database/</link><pubDate>Tue, 05 Feb 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_02_05_action_database/</guid><description>&lt;p>Dear customer: We are finishing our new products. If you want to be a beta tester, send us an E-mail .&lt;/p>
&lt;p>A TRUE SQL Write-Back engine for SharePoint WSS &amp;amp; MOSS&lt;/p>
&lt;p>DEMO VIDEO – Full Database Editor (3:30 minutes)&lt;/p>
&lt;p>SPSProfessional is creating a set of webparts to connect quickly and effortlessly with your Back-End DataBase, as alternative to Business Data Catalog.&lt;/p>
&lt;p>ActionDatabaseGrid
The ActionDatabaseGrid WebPart displays data from a DataBase: with a simple ‘select command’, the configuration of columns, headers and formats as presented on screen&lt;/p></description></item><item><title>Action Database Video</title><link>https://blog.romheat.net/posts/2008/08_02_05_action_database_video/</link><pubDate>Tue, 05 Feb 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_02_05_action_database_video/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/3sn8vO3GhNA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video">&lt;/iframe>
 &lt;/div></description></item><item><title>Cut, Copy, Paste in Document Libraries</title><link>https://blog.romheat.net/posts/2008/08_01_23_cut_copy_paste_doclibs/</link><pubDate>Wed, 23 Jan 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_01_23_cut_copy_paste_doclibs/</guid><description>&lt;p>From WSS2 I was looking for a solution to do the Document Libraries a bit more Explorer like, time ago I wrote some WebParts to try solve the problem.&lt;/p>
&lt;p>• &lt;a href="https://web.archive.org/web/20130623130533/http://www.ideseg.com/SharePointMakingDocumentLibrariesABitMoreExplorerlike.aspx" target="_blank">csegDocLibTools&lt;/a>&lt;/p>
&lt;p>After the migration to MOSS 2007 the first thing that my users asked for was where is the copy and paste feature??  And where is the explorer like functionality??  Is it a new version of SharePoint?&lt;/p>
&lt;p>What happened here… When the users have a characteristic that they are using continually it’s important that they have it in a new version otherwise the IT people are all incompetent. Yes, it’s normal. (I don´t speak here about the new office 2007 Ribbon bar, only to remember&lt;br>
that my users still hate me, as if it were my fault) &lt;/p></description></item><item><title>BDC Killer WebParts</title><link>https://blog.romheat.net/posts/2008/08_01_14_bdc_killer_webparts/</link><pubDate>Mon, 14 Jan 2008 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2008/08_01_14_bdc_killer_webparts/</guid><description>&lt;p>Data integration from an outside source into SharePoint, was one of the most wished characteristics that the SharePoint 2003 users were waiting for.&lt;/p>
&lt;p>When Microsoft announced the &lt;strong>Business Data Catalog&lt;/strong>, in Microsoft Office SharePoint 2007 we all were expecting the possibility of modifying our data, but it never happened, and by the moment the BDC remains as read-only.&lt;/p>
&lt;p>On the other hand, the complexity of defining the BDC interface has always been an important barrier, so that a certain number of applications have arose to help us to define these interfaces.&lt;/p></description></item><item><title>Unit Testing 3</title><link>https://blog.romheat.net/posts/2007/07_12_12_unit_testing_3/</link><pubDate>Wed, 12 Dec 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_12_12_unit_testing_3/</guid><description>&lt;p>Alguien me ha recordado que empecé a escribir sobre el tema de las pruebas unitarias y finalmente no termine… o por lo menos no conté algunas de las prácticas que uso… cierto.&lt;/p>
&lt;p>&lt;strong>&lt;a href="https://web.archive.org/web/20130623113708/http://www.ideseg.com/SharePointPruebasUnitarias1.aspx" target="_blank">Parte 1&lt;/a>&lt;/strong> – &lt;strong>&lt;a href="https://web.archive.org/web/20130623113708/http://www.ideseg.com/SharePointPruebasUnitarias2.aspx" target="_blank">Parte 2&lt;/a>&lt;/strong>&lt;/p>
&lt;p>Básicamente la técnica que uso habitualmente consiste en aprovisionar un sitio de forma automática. Y ¿Cómo se aprovisiona un sitio automáticamente?, pues de la manera más sencilla posible. Usando Plantillas.&lt;/p>
&lt;p>&lt;strong>Provisión – Escenario de Pruebas&lt;/strong>&lt;/p></description></item><item><title>CEUS3</title><link>https://blog.romheat.net/posts/2007/07_10_25_ceus3/</link><pubDate>Thu, 25 Oct 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_10_25_ceus3/</guid><description>&lt;p>El martes 23 de Octubre, se celebra en &lt;strong>Madrid&lt;/strong> la &lt;strong>tercera conferencia de usuarios de SharePoint&lt;/strong>.&lt;/p>
&lt;p>Si queréis asistir, debéis registraros con anterioridad, es imprescindible.&lt;/p>
&lt;p>Por la mañana habrá diversas ponencias comentando casos prácticos de implantación y por la tarde &lt;strong>&lt;em>sesiones técnicas&lt;/em>&lt;/strong>. La agenda completa se puede consultar en este &lt;a href="https://web.archive.org/web/20130623135522/http://www.microsoft.com/spain/office/ceus/agenda/default.mspx" target="_blank">&lt;strong>ENLACE&lt;/strong>&lt;/a>.&lt;/p>
&lt;p>10:00  Bienvenida y Situación General de SharePoint&lt;br>
10:20  Experiencia Criteria Caixa Corp&lt;br>
10:50  Experiencia Ancert – Agencia Notarial de Certificación&lt;br>
11:20  Experiencia Ministerio de la Presidencia&lt;br>
11:50  Descanso y café&lt;br>
12:20  Experiencia Caja Mediterráneo&lt;br>
12:50  Microsoft Office Sharepoint en Intenet – Web 2.0 – Silver Light&lt;br>
13:20  Búsqueda Empresarial – Search&lt;br>
13:40  Futuro de SharePoint&lt;br>
14:00  Almuerzo&lt;/p></description></item><item><title>Yet Another Caml Query Tool 2</title><link>https://blog.romheat.net/posts/2007/07_06_23_yacaml_qt_2/</link><pubDate>Sat, 23 Jun 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_06_23_yacaml_qt_2/</guid><description>&lt;p>Continuing with the YACAMLQT, I have finished the first version. Now the “toy” tool supports, “group by” and “order by”, and some expression errors are now fixed. In order to not increase the complexity of the lexer part, the clause “group by” must be write like “groupby” and the “order by” clause as “orderby”.&lt;/p>
&lt;p>To support this new clauses the first expression must begin with a “where” clause. The syntax is:&lt;/p></description></item><item><title>Yet Another Caml Query Tool</title><link>https://blog.romheat.net/posts/2007/07_06_19_yacaml_qt/</link><pubDate>Tue, 19 Jun 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_06_19_yacaml_qt/</guid><description>&lt;p>Some time ago, I thought write a small tool in order to do &lt;strong>CAML&lt;/strong> queries in plain text, as in SQL “&lt;em>&lt;strong>where&lt;/strong>&lt;/em>” clause. I have the idea forgotten, I missed myself in the daily work. Yesterday doing a little modification in a program I remembered this, of course while I was writting a complex &lt;strong>CAML&lt;/strong> query.&lt;/p>
&lt;p>I named it “Yet Another CAML Query Tool” aka (&lt;strong>YACAML-QT&lt;/strong>).&lt;/p>
&lt;p>By moment it’s a little toy, you can write your queries as in a “&lt;strong>&lt;em>where&lt;/em>&lt;/strong>” clause, using the same syntax that you’d write in a SQL Sentence. It’s is more easy!!!&lt;/p></description></item><item><title>Wiki Disection 2</title><link>https://blog.romheat.net/posts/2007/07_06_04_wiki_disection_2/</link><pubDate>Mon, 04 Jun 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_06_04_wiki_disection_2/</guid><description>&lt;p>Continuando con el Wiki, hemos visto como esta construido básicamente y donde oculta el secreto de las páginas que se generan, ahora bien&lt;/p>
&lt;p>&lt;strong>¿Podemos cambiar el diseño?&lt;/strong>&lt;/p>
&lt;p>Una vez que hemos visto como esta construido, podemos de tratar de realizar una solución que implemente un comportamiento similar. Para ello deberemos hacer algunas cosas, como crear nuestra propia página de de entrada, y configurar una lista (biblioteca de documentos) para que realice el mismo comportamiento que el Wiki, eso es que llame a nuestra página personalizada para crear nuevas páginas.&lt;/p></description></item><item><title>Wiki Disection 3</title><link>https://blog.romheat.net/posts/2007/07_06_04_wiki_disection_3/</link><pubDate>Mon, 04 Jun 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_06_04_wiki_disection_3/</guid><description>&lt;p>En esta parte veremos cómo trabaja el campo especial &lt;strong>WikiField&lt;/strong>, antes de nada recordaros un webpart, que escribí el año pasado y pasó sin pena ni gloria, pero resolvía el problema de los Wikis en WSS2.&lt;/p>
&lt;p>&lt;a href="https://web.archive.org/web/20130623174220/http://www.ideseg.com/CategoryView,category,csegMiniWiki.aspx" target="_blank">csegMiniWiki&lt;/a>&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegMiniWiki_1.gif" alt="">&lt;/p>
&lt;p>Bueno, resulta que el &lt;strong>WikiField&lt;/strong> realiza (CASI) las mismas tareas que hacía yo en el webpart que es traducir las etiquetas marcadas entre corchetes por los vínculos correspondientes.&lt;/p>
&lt;p>&lt;strong>El problema de las búsquedas&lt;/strong>&lt;/p></description></item><item><title>Wiki Disection 4</title><link>https://blog.romheat.net/posts/2007/07_06_04_wiki_disection_4/</link><pubDate>Mon, 04 Jun 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_06_04_wiki_disection_4/</guid><description>&lt;p>En está última parte de &lt;strong>Destripando el Wiki&lt;/strong>, veremos como crear un campo personalizado para cambiar el comportamiento por defecto del &lt;strong>SPFieldMultiLineText&lt;/strong> el usado por &lt;strong>WikiField,&lt;/strong> de modo que podremos cambiar el comportamiento a la hora de visualizar los enlaces a entradas que no están definidas para que estas sean redirigidas a nuestra página &lt;strong>CustomCreatePage.aspx&lt;/strong>.&lt;/p>
&lt;p>Como comentaba en anteriores posts, hemos visto que el wiki es una biblioteca de documentos que almacena páginas basadas en un tipo de contenido llamado Página Wiki que hereda de documento. Cuando se crea una nueva página la plantilla llamada &lt;strong>wkpstd.aspx&lt;/strong> se copia en la biblioteca de documentos. Vimos que podemos crear nuestra propia página &lt;strong>CreateCustomPage.aspx,&lt;/strong> para recrear el mismo comportamiento, utilizando nuestras propias plantillas y que esto funcionaba correctamente. Pero el problema llega cuando el campo &lt;strong>WikiField&lt;/strong> se renderiza, ya que mantiene un enlace a &lt;strong>CreateWebPage.aspx&lt;/strong>.&lt;/p></description></item><item><title>Wiki Disection</title><link>https://blog.romheat.net/posts/2007/07_05_30_wiki_disection/</link><pubDate>Wed, 30 May 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_05_30_wiki_disection/</guid><description>&lt;p>Mucha gente me ha preguntado sobre la posibilidad de realizar cambios en el diseño del Wiki de SharePoint. (¿Será porque en una de mis demos enseño un Fantástico Wiki?), bueno, la respuesta es… que no se puede cambiar grrrr y explicaré  porque no.&lt;/p>
&lt;p>**¿Cómo está construido el Wiki de SharePoint?&lt;br>
**&lt;br>
El wiki de sharepoint, es una biblioteca de documentos que maneja un tipo de contenido oculto WikiDocument.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/sp1wiki_1.gif" alt="">&lt;/p>
&lt;p>La definición XML&lt;/p></description></item><item><title>Sharepoint 2007 Event</title><link>https://blog.romheat.net/posts/2007/07_04_11_sharepoint_event/</link><pubDate>Wed, 11 Apr 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_04_11_sharepoint_event/</guid><description>&lt;p>El próximo Jueves día 19 de Abril, tendremos un nuevo evento de NavarraDotNet en el Centro de Excelencia de Software (Pol. Industrial Mocholí, Plaza CEIN).&lt;/p>
&lt;p>Será una sesión de introducción a Microsoft Office Sharepoint Server 2007, así que no habrá muchos tecnicismos ni trukis, eso lo dejamos para más adelante.&lt;/p>
&lt;p>El link del registro …&lt;/p>
&lt;p>Información en NavarraDotNet&lt;/p>
&lt;p>Y como no el cartel del evento, del cual soy el autor ya que los colegas que se encargan de estos menesteres estaban de vacaciones así que me anime y este es el resultado (espero comentarios, buenos y malos :- )&lt;/p></description></item><item><title>Old asp (no net) web content work</title><link>https://blog.romheat.net/posts/2007/07_03_28_asp_webcontent/</link><pubDate>Wed, 28 Mar 2007 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2007/07_03_28_asp_webcontent/</guid><description>&lt;p>Ayer trabajando en una presentación sobre gestión del conocimiento, para una charla que daré en breve, baje al trastero a por unos apuntes antiguos, y entre la documentación que buscaba, encontré algunos diagramas que había realizado para un proyecto durante un máster en el 2002. Era un sistema de gestión de contenidos realizado en ASP (no .net) muy divertido.&lt;/p>
&lt;p>Hoy he recordado que incluso este dominio, &lt;a href="https://www.ideseg.com" target="_blank">www.ideseg.com&lt;/a>, lo cogí pensando en albergar dicho proyecto. Como pasa el tiempo.&lt;/p></description></item><item><title>Sharepoint Dev Tip</title><link>https://blog.romheat.net/posts/2007/07_03_08_dev_tip/</link><pubDate>Thu, 08 Mar 2007 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2007/07_03_08_dev_tip/</guid><description>&lt;p>Some days ago &lt;a href="https://web.archive.org/web/20130623110633/http://weblogs.asp.net/erobillard/default.aspx" target="_blank">Eli Robillard&lt;/a> wrote a fantastic post about &lt;a href="https://web.archive.org/web/20130623110633/http://weblogs.asp.net/erobillard/archive/2007/02/23/build-a-sharepoint-development-machine.aspx" target="_blank">how to build a sharepoint development machine&lt;/a> it’s very similar to which I use, but in a last step, I would add a tool to maintain remote sessions. A tool as Secure Shell (ssh) or Remote Shell, I use &lt;strong>&lt;a href="https://web.archive.org/web/20130623110633/http://www.microsoft.com/technet/interopmigration/unix/sfu/sfu35rsh.mspx" target="_blank">rsh&lt;/a>&lt;/strong>, because it’s easy for deployment and free, this comes with the &lt;a href="https://web.archive.org/web/20130623110633/http://www.microsoft.com/downloads/details.aspx?familyid=896C9688-601B-44F1-81A4-02878FF11778&amp;amp;displaylang=en" target="_blank">Windows Services for Unix 3.5&lt;/a>.&lt;/p>
&lt;p>Using it I can install and uninstall solutions, features and webparts from my visual studio, external tools menu. Also you can add this to the post generation commands in order to deploy and get data from application pool prior to debug. (rsh machine iisapp)&lt;/p></description></item><item><title>Tree Explorer WebPart</title><link>https://blog.romheat.net/posts/2007/07_03_07_treeexplorer/</link><pubDate>Wed, 07 Mar 2007 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2007/07_03_07_treeexplorer/</guid><description>&lt;p>Este es un pequeño webpart, a su vez un clásico pero muy útil webpart, que nos permitirá recorrer la estructura de carpetas de una biblioteca de documentos. Por supuesto es para WSS3 y MOSS 2007&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/TreeExplorer_v1.gif" alt="">&lt;/p>
&lt;p>¿Por cierto alguien se ha fijado en este botón que ha desaparecido en WSS3 ?&lt;/p>
&lt;p>WSS2&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/ListView_wss2_up.gif" alt="">&lt;/p>
&lt;p>WSS3&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/ListView_wss3_noup2.gif" alt="">&lt;/p>
&lt;p>La verdad es que aún siendo un simple history.back() era un botón muy útil.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/save_16.gif" alt=""> &lt;a href="https://web.archive.org/web/20130623110633/http://oldblog.ideseg.com/content//IdeSeg.SharePoint.WebParts.TreeExplorer.zip" target="_blank">IdeSeg.SharePoint.WebParts.TreeExplorer.zip (9,19 KB)&lt;/a>&lt;/p></description></item><item><title>View Folders in document libraries</title><link>https://blog.romheat.net/posts/2007/07_03_06_view_folders/</link><pubDate>Tue, 06 Mar 2007 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2007/07_03_06_view_folders/</guid><description>&lt;p>Si recordáis en WSS2 teníamos una opción para ver las carpetas de una biblioteca de imágenes, que por alguna misteriosa razón, no se encontraba disponible en las bibliotecas de documentos.&lt;/p>
&lt;p>En su día, con un simple truco, podíamos tener esta opción en las bibliotecas de documentos. (&lt;a href="https://web.archive.org/web/20130623110633/http://www.ideseg.com/SharePointViewAllFoldersInDocumentLibraries.aspx" target="_blank">http://www.ideseg.com/SharePointViewAllFoldersInDocumentLibraries.aspx&lt;/a>) he recordado esto esta mañana cuando me he dado cuenta de que esta opción ya no está disponible ni en las bibliotecas de imágenes ni en las bibliotecas de documentos.&lt;/p></description></item><item><title>MVP Renewal</title><link>https://blog.romheat.net/posts/2007/07_01_01_mvp_renewal/</link><pubDate>Mon, 01 Jan 2007 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2007/07_01_01_mvp_renewal/</guid><description>&lt;p>Well, today the first day of 2007,I Want to thank all the people who read this blog for this stats. Also today I received my MVP award renewal.&lt;br>
Gracias a todos los que me leéis, seguiré dando la lata &lt;img src="https://blog.romheat.net/images/Sharepoint/icon_smile.gif" alt=":-)">&lt;/p>
&lt;p>También mis felicitaciones para &lt;a href="https://web.archive.org/web/20130623124824/http://geeks.ms/blogs/mjimenez/archive/2007/01/01/comenzando-un-nuevo-a-o-con-una-renovaci-n-de-mvp.aspx" target="_blank">Miguel Jimenez&lt;/a>, &lt;a href="https://web.archive.org/web/20130623124824/http://geeks.ms/blogs/rcorral/archive/2007/01/01/reconocido-com-mvp-un-a-o-m-s.aspx" target="_blank">Rodrigo Corral&lt;/a>, &lt;a href="https://web.archive.org/web/20130623124824/http://geeks.ms/blogs/marco/archive/2007/01/02/empezando-el-a-o-como-mvp.aspx" target="_blank">Marco Amoedo&lt;/a>, &lt;a href="https://web.archive.org/web/20130623124824/http://geeks.ms/blogs/haarongonzalez/archive/2007/01/01/mvp-2007.aspx" target="_blank">Haaron Gonzalez&lt;/a>&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/Stats06_2.gif" alt="">&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/Stats06_3.gif" alt="">&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/Stats06_1.gif" alt="">&lt;/p></description></item><item><title>conv.u</title><link>https://blog.romheat.net/posts/2006/06_12_31_conv_u/</link><pubDate>Sun, 31 Dec 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_12_31_conv_u/</guid><description>&lt;p>Este será casi con seguridad mi último post del 2006, pero eso no lo puedo asegurar ya que cuando me pica la curiosidad, siento esa irresistible necesidad de saciarla. Y eso es lo que me ha ocurrido esta mañana. Como había comentado antes no había usado punteros en c# y este hecho me ha picado, de modo que he tratado ver como son manejados por el CLR.&lt;/p>
&lt;p>Bien, todo era normal hasta que he visto este código IL en donde no entendía el misterioso conv.u, el código que estaba usando es el siguiente:&lt;/p></description></item><item><title>Workflows SPDesigner 2</title><link>https://blog.romheat.net/posts/2006/06_12_08_workflows_spdesigner_2/</link><pubDate>Sat, 09 Dec 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_12_08_workflows_spdesigner_2/</guid><description>&lt;p>Para añadir una nueva actividad a nuestro SPD, lo primero que debemos hacer es comenzar un proyecto de Workflow, en concreto un Workflow Activity Library (Biblioteca de actividades para el flujo de trabajo).&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/SWA_%5B1%5D.gif" alt="">&lt;/p>
&lt;p>A partir de ese punto crearíamos nuestra actividad, para este ejemplo voy a crear una actividad que consiste en enviar un texto al visor de eventos.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-csharp" data-lang="csharp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">partial&lt;/span> &lt;span style="color:#66d9ef">class&lt;/span> &lt;span style="color:#a6e22e">LogEventViewer&lt;/span> : Activity
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">static&lt;/span> DependencyProperty TextLogProperty =
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> DependencyProperty.Register(&lt;span style="color:#960050;background-color:#1e0010">“&lt;/span>TextLog&lt;span style="color:#960050;background-color:#1e0010">”&lt;/span>, &lt;span style="color:#66d9ef">typeof&lt;/span>(&lt;span style="color:#66d9ef">string&lt;/span>), &lt;span style="color:#66d9ef">typeof&lt;/span>(LogEventViewer));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">public&lt;/span> LogEventViewer()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> InitializeComponent();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/// &amp;lt;summary&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/// Valor que figurará en el visor de eventos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/// &amp;lt;/summary&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/// &amp;lt;value&amp;gt;Texto&amp;lt;/value&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e"> [Description(&amp;#34;Texto que saldrá en el visor de eventos&amp;#34;)]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e"> [Category(&amp;#34;User&amp;#34;)]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e"> [Browsable(true)]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e"> [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">string&lt;/span> TextLog
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">get&lt;/span> { &lt;span style="color:#66d9ef">return&lt;/span> (&lt;span style="color:#66d9ef">string&lt;/span>) GetValue(TextLogProperty); }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">set&lt;/span> { SetValue(TextLogProperty, &lt;span style="color:#66d9ef">value&lt;/span>); }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/// &amp;lt;summary&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/// Ejecución de la actividad&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/// &amp;lt;/summary&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/// &amp;lt;param name=”provider”&amp;gt;Contexto de ejecución de la actividad&amp;lt;/param&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">protected&lt;/span> &lt;span style="color:#66d9ef">override&lt;/span> ActivityExecutionStatus Execute(ActivityExecutionContext provider)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> EventLog eventLog = &lt;span style="color:#66d9ef">new&lt;/span> EventLog(&lt;span style="color:#960050;background-color:#1e0010">“&lt;/span>Workflow&lt;span style="color:#960050;background-color:#1e0010">”&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> eventLog.Source = &lt;span style="color:#960050;background-color:#1e0010">“&lt;/span>SharePoint Workflow&lt;span style="color:#960050;background-color:#1e0010">”&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">try&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> eventLog.WriteEntry(TextLog, EventLogEntryType.Information);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">finally&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> eventLog.Dispose();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> ActivityExecutionStatus.Closed;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Lo primero que hacemos es declarar una propiedad dependiente del flujo de trabajo llamada TextLogProperty, a través de la cual pasaremos el texto que deseamos visualizar en el visor de eventos.&lt;/p></description></item><item><title>Workflows SPDesigner 1</title><link>https://blog.romheat.net/posts/2006/06_12_08_workflows_spdesigner_1/</link><pubDate>Fri, 08 Dec 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_12_08_workflows_spdesigner_1/</guid><description>&lt;p>Sin duda una de las mejores cosas de MOSS 2007 es el nuevo SPD, y dentro de este, el diseñador de flujos de trabajo, que nos permite de forma ágil y sencilla diseñar nuestros flujos de trabajo.&lt;/p>
&lt;p>Aunque como he comentado en otras ocasiones, si deseamos realizar flujos de trabajo más complejos, o máquinas de estados debemos usar Visual Studio.&lt;/p>
&lt;p>SPD, solo nos permite realizar workflows secuenciales con las actividades que vienen predeterminadas. Sin embargo existe la posibilidad de ampliar las actividades básicas que nos encontramos dentro de SPD, con lo cual podemos extender la funcionalidad de nuestros workflows sin llegar a realizarlos completamente en Visual Studio.&lt;/p></description></item><item><title>Shared Services</title><link>https://blog.romheat.net/posts/2006/06_11_28_shared_services/</link><pubDate>Tue, 28 Nov 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_11_28_shared_services/</guid><description>&lt;p>Los proveedores de servicios compartidos (SSPs), son una de las nuevas características de MOSS 2007 que reemplaza la infraestructura de Servicios compartidos de Sharepoint 2003. Los SSPs son un conjunto de servicios que pueden ser compartidos en diferentes portales y sitios. Estos servicios son el Catalogo de datos profesionales, los servicios de Excel, las búsquedas, los perfiles de usuarios, las audiencias, y los sitios personales.&lt;/p>
&lt;p>De esta manera en MOSS 2007 podemos crear tantos SSPs como necesitemos en función del contenido que nuestros portales y sitios van a ofrecer a los usuarios, de modo que podríamos tener audiencias distintas en distintos portales, ú ofrecer distintos catálogos de datos empresariales en distintos sitios e incluso indexar fuentes de contenido distintas en cada uno de ellos de manera que los resultados de las búsquedas de cada sitio pueden ser distintas.&lt;/p></description></item><item><title>Navarra.NET</title><link>https://blog.romheat.net/posts/2006/06_11_07_navarradotnet/</link><pubDate>Tue, 07 Nov 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_11_07_navarradotnet/</guid><description>&lt;p>Hace un mes era solo una idea que me propuso Miguel Jimenez, hace tres semanas tuvimos nuestra primera reunión con 20 asistentes de 40 que se habían inscrito, y hoy hemos inaugurado nueva WEB. Desde luego el interés que ha mostrado la gente del grupo es espectacular y espero que esto sea algo más que la euforia de los comienzos.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/navarranet.gif" alt="navarranet">&lt;/p></description></item><item><title>CEUS, TTT, Code Camp</title><link>https://blog.romheat.net/posts/2006/06_10_31_ceus_ttt_code_camp/</link><pubDate>Tue, 31 Oct 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_10_31_ceus_ttt_code_camp/</guid><description>&lt;p>A TOPE, El jueves 26, se celebro la Segunda conferencia de usuarios de SharePoint, en donde intervine durante la mañana (un poco nervioso, como es lógico ya que había 300 personas y no estoy acostumbrado a una audiencia tan numerosa), quiero dar las gracias a Rafael Sanchez, jefe de producto de SharePoint y como no a los fenómenos de preventa, Oscar y Pablo por su ayuda.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CeusFoto.jpg" alt="CEUS">&lt;/p>
&lt;p>Por la tarde di una sesión sobre SharePoint Designer, y como vi que íbamos un poco justos de tiempo me salte la presentación de powerpoint y me fui directo a la demo. Como algunos me habéis preguntado por ella intentaré realizar un webcast para que os lo podáis descargar.&lt;/p></description></item><item><title>Small Calendar Update</title><link>https://blog.romheat.net/posts/2006/06_09_26_csegsmallcalendar_update/</link><pubDate>Tue, 26 Sep 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_09_26_csegsmallcalendar_update/</guid><description>&lt;p>Do you remember?, SharePoint 2003 continues alive. This night I updated my csegSmallCalendar webpart with some new features. Now I’m designing a web site to host the NavarraDotNet.com user group and I have needed for this new features.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/smallcalendar2b.gif" alt="">
&lt;img src="https://blog.romheat.net/images/Sharepoint/smallcalendar2a.gif" alt="">&lt;/p>
&lt;p>AdjustCurrentMonth
Now you can adjust the month that the calendar is showing, If we are in September, and you adjust the calendar with a -1 value you can view August month, same with a 1 value you can view the current month +1. Now you can display more than one month adding new webparts.&lt;/p></description></item><item><title>MOSS 2007 WebParts 4</title><link>https://blog.romheat.net/posts/2006/06_08_26_moss2007_webparts_4/</link><pubDate>Sat, 26 Aug 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_08_26_moss2007_webparts_4/</guid><description>&lt;p>Otra de las mejoras importantes al usar las WebParts de ASP.Net 2.0 es la comunicación entre webparts, ya que ahora pasa a ser un proceso mucho menos tedioso que con las webparts de WSS2.&lt;/p>
&lt;p>¿Qué necesitamos?&lt;/p>
&lt;p>Lo primero que necesitamos es ver que información es la que queremos intercambiar entre las dos webparts, con las webparts de ASP Net 2.0 no tenemos las limitaciones que teníamos antes con la obligación de seleccionar uno de los interfaces que WSS2 nos proponía. Ahora disponemos de libertad para intercambiar información.&lt;/p></description></item><item><title>MOSS 2007 WebParts 3</title><link>https://blog.romheat.net/posts/2006/06_08_25_moss2007_webparts_3/</link><pubDate>Fri, 25 Aug 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_08_25_moss2007_webparts_3/</guid><description>&lt;p>Siguiendo con lo expuesto anteriormente, lo primero es revisar el formato en que se exportan las webparts basadas en Asp.Net 2.0. Una vez exportado nuestro webpart lo primero que vemos es que la extensión a cambiado, de .dwp (las webparts de WSS2) a .webpart&lt;/p>
&lt;p>También podemos observar que el espacio de nombres corresponde con la v3 &lt;!-- raw HTML omitted -->, esto solo ocurre con las webparts nativas ya que por compatibilidad las webparts que usen la api Microsoft.SharePoint.WebPart, mantendrán el formato .dwp&lt;/p></description></item><item><title>MOSS 2007 WebParts 2</title><link>https://blog.romheat.net/posts/2006/06_08_24_moss2007_webparts_2/</link><pubDate>Thu, 24 Aug 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_08_24_moss2007_webparts_2/</guid><description>&lt;p>Continuando con el post anterior, usando las características de las WebParts de ASP Net 2.0, podemos añadir propiedades a nuestras webparts para que se muestren en el area de edición.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-csharp" data-lang="csharp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">using&lt;/span> System.Web.UI;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">using&lt;/span> System.Web.UI.WebControls.WebParts;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">namespace&lt;/span> MiWebPart
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">class&lt;/span> &lt;span style="color:#a6e22e">MiPrimerWebPart&lt;/span> : WebPart
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> &lt;span style="color:#66d9ef">bool&lt;/span> bMensajeVisible = &lt;span style="color:#66d9ef">true&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e"> [Personalizable(PersonalizationScope.Shared),
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e"> WebBrowsable,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e"> WebDisplayName(&amp;#34;Ver 2º Mensaje&amp;#34;),
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e"> WebDescription(&amp;#34;Activar desactivar el 2º mensaje&amp;#34;)]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">bool&lt;/span> MensajeVisible
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">get&lt;/span> { &lt;span style="color:#66d9ef">return&lt;/span> bMensajeVisible; }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">set&lt;/span> { bMensajeVisible = &lt;span style="color:#66d9ef">value&lt;/span>; }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">protected&lt;/span> &lt;span style="color:#66d9ef">override&lt;/span> &lt;span style="color:#66d9ef">void&lt;/span> RenderContents(HtmlTextWriter writer)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> writer.Write(&lt;span style="color:#960050;background-color:#1e0010">“&lt;/span>Hola Mundillo!!&lt;span style="color:#960050;background-color:#1e0010">”&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (bMensajeVisible)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> writer.Write(&lt;span style="color:#960050;background-color:#1e0010">“&lt;/span>&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Hola Mundillo!! Otra vez&amp;lt;/b&amp;gt;&lt;span style="color:#960050;background-color:#1e0010">”&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">base&lt;/span>.RenderContents(writer);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para ello basta con decorar las propiedades con los atributos necesarios. En este caso el atributo Personalizable indica que el valor de la propiedad se guardará cuando este se modifique, para que una propiedad pueda marcarse con el atributo Personalizable debe cumplir lo siguiente:&lt;/p></description></item><item><title>MOSS 2007 WebParts 1</title><link>https://blog.romheat.net/posts/2006/06_08_23_moss2007_webparts_1/</link><pubDate>Wed, 23 Aug 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_08_23_moss2007_webparts_1/</guid><description>&lt;p>Como ya sabéis Windows SharePoints Services 3.0 está construido sobre ASP.Net 2.0, esto nos brinda la posibilidad de crear webparts que podríamos llamar nativas de ASP.Net 2.0 dentro de WSS3, estas webparts nativas vendrían derivados de System.Web.UI.WebControls.WebParts.WebPart.&lt;/p>
&lt;p>Para mantener la compatibilidad (como prometieron) con desarrollos anteriores y para no perder la funcionalidad de ASP.Net 2.0 la antigua API Microsoft.SharePoint.WebPartPages.WebPart que hemos venido usando con WSS2 deriva ahora de System.Web.UI.WebControls.WebParts.WebPart.&lt;/p>
&lt;p>De manera que ahora disponemos de dos alternativas a la hora de desarrollar para WSS3 siempre moviéndonos en ASP.Net 2.0.&lt;/p></description></item><item><title>csegInfoPath providers</title><link>https://blog.romheat.net/posts/2006/06_05_09_cseginfopath_providers/</link><pubDate>Tue, 09 May 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_05_09_cseginfopath_providers/</guid><description>&lt;p>You can use now the row provider to select the infopath form (rememeber that the view need contains the ID field).
The problems rendering fields with special characters is now solved.
Also I added a cell consumer interface to get the ID from other webpart as csegRollUp&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegInfoPathViewerF2.gif" alt="">&lt;/p>
&lt;p>In the properties you need add the XSL (see previous version) and the name of the form library.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegInfoPathViewerF1.gif" alt="">&lt;/p>
&lt;p>If you can´t display the infopath form, check if you can get the XML from the server using the form Url. Some users are using a WSS environment where they don´t use DNS to resolve the url where WSS is located, they are using an entry in the hosts file. In this case the server can´t resolve the Url where the form is located. To solve this issue you can add the host name in the hosts file of your server.&lt;/p></description></item><item><title>csegRollUp 3.5</title><link>https://blog.romheat.net/posts/2006/06_05_04_csegrollup_35/</link><pubDate>Thu, 04 May 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_05_04_csegrollup_35/</guid><description>&lt;p>Important NOTE: Only works in WSS2 and SPS2003&lt;/p>
&lt;p>Finally is here, many thanks to the people who have tested this version.&lt;/p>
&lt;p>From the forums:&lt;/p>
&lt;p>&amp;ldquo;I had rolled back to 3.1a with 22 individual imported spreadsheet lists rolling up to 22 individual web part pages; with 3 additional web part pages rolling up some specified fields from all 22 lists.&amp;rdquo;&lt;/p>
&lt;p>ALL 25 Rollups where present, accounted for and functioning as expected under 3.5 FINAL’s smooth control. Very, Very Smooth Transition&lt;/p></description></item><item><title>csegSmallCalendar IFilterProvider</title><link>https://blog.romheat.net/posts/2006/06_05_02_csegsmallcalendar_ifilterprovider/</link><pubDate>Tue, 02 May 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_05_02_csegsmallcalendar_ifilterprovider/</guid><description>&lt;p>Well, so many people ask to me because csegSmallCalendar has not a filter interface to use with any list. And the answer is, I forget it. Now the webpart has a FilterProvider interface to filter any list. Also you can display a “clear filter” button to clear the filter on list. As always some screenshots…&lt;/p>
&lt;p>&lt;img src="images/Sharepoint/csegSmallCalendar11a.gif" alt="">
&lt;img src="images/Sharepoint/csegSmallCalendar11b.gif" alt="">
&lt;img src="images/Sharepoint/csegSmallCalendar11c.gif" alt="">&lt;/p>
&lt;p>csegSmallCalendar1.zip (17,18 KB)&lt;/p></description></item><item><title>ajax searches</title><link>https://blog.romheat.net/posts/2006/06_04_28_ajax_searches/</link><pubDate>Fri, 28 Apr 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_04_28_ajax_searches/</guid><description>&lt;p>This is other sample of how I am using Ajax in my SharePoint environment (see Using Ajax to query Exchange Server Part 1 and Part 2) , now I’m using it to improve my searches in SPS.&lt;/p>
&lt;p>&lt;img src="images/Sharepoint/ajax_search.gif" alt="">&lt;/p>
&lt;p>First I have added a new page to make the searches, this new page runs under SPS context and it is stored under Layouts directory. This is very basic search page that look at the &amp;ldquo;DAV:displayname&amp;rdquo; field to locate files that contains a keyword in the name. This page use a query string to get the keyword and the results are written in HTML. (You can use other queries here).&lt;/p></description></item><item><title>csegSmallCalendar</title><link>https://blog.romheat.net/posts/2006/06_04_25_csegsmallcalendar/</link><pubDate>Tue, 25 Apr 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_04_25_csegsmallcalendar/</guid><description>&lt;p>I continue working in my csegSharePoint library. Meanwhile I’m doing some test with this, as this webpart that is a small calendar that show a date field from a list, and it allows select the dates witth entries, and provide a cell value with the date. You can select the List and the Field and the styles to draw the calendar.&lt;/p>
&lt;p>Also you can use this with csegRollUp to filter by dates, using [CellProvider] in queries.&lt;/p></description></item><item><title>csegNavigator</title><link>https://blog.romheat.net/posts/2006/06_04_24_csegnavigator/</link><pubDate>Mon, 24 Apr 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_04_24_csegnavigator/</guid><description>&lt;p>Estos días continuo terminando cosas, la biblioteca csegSharePoint, y el csegRollUp 3.5 (que me esta dando algún que otro problemilla). La cosa es que eh empezado a recodificar algunos de los webparts que tenía para que usen la nueva biblioteca csegSharePoint en la que estoy trabajando. Por el momento he pasado este par de webparts que me son bastante útiles.&lt;/p>
&lt;p>csegSubWebs (WSS) y csegSubAreas (SPS), son dos webparts que muestran un árbol con las subwebs y con las subareas.&lt;/p></description></item><item><title>Generic XSLT Table</title><link>https://blog.romheat.net/posts/2006/06_04_19_generic_xslt_table/</link><pubDate>Wed, 19 Apr 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_04_19_generic_xslt_table/</guid><description>&lt;p>This is a small xml stylesheet to render a generic table with the data collected from csegRollUp, and it’s ideal for debug purposes.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;utf-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:stylesheet&lt;/span> &lt;span style="color:#a6e22e">version=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;1.0&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:xsl=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://www.w3.org/1999/XSL/Transform&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">match=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Rows&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:call-template&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Tabla&amp;#34;&lt;/span>&lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:template&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">&amp;lt;!– Tabla –&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Tabla&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;table&lt;/span> &lt;span style="color:#a6e22e">width=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;100%&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">cellpading=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;1&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tbody&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:call-template&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Cabeceras&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:for-each&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">’Row’&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tr&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:for-each&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;.//*&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;td&lt;/span> &lt;span style="color:#a6e22e">class=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;ms-vb2&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;.&amp;#34;&lt;/span>&lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/td&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:for-each&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tr&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:for-each&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tbody&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/table&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:template&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">&amp;lt;!– Cabeceras de la tabla –&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Cabeceras&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tr&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:for-each&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Row[1]/*&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;th&lt;/span> &lt;span style="color:#a6e22e">nowrap=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">class=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;ms-vh2&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;name()&amp;#34;&lt;/span>&lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/th&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:for-each &amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tr&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:template&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="images/Sharepoint/GenericTable.gif" alt="">&lt;/p></description></item><item><title>Cseg InfoPath Viewer</title><link>https://blog.romheat.net/posts/2006/06_04_07_cseginfopathviewer/</link><pubDate>Fri, 07 Apr 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_04_07_cseginfopathviewer/</guid><description>&lt;p>Finally I have a first version (0.99) of my InfoPath viewer, first I want give thanks to my friend Gustavo, for testing the preliminary version and to make as always good suggestions.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;p>&lt;code>stsadm -o addwppack -filename csegInfopathWebPart.cab -globalinstall (use -force if you have installed the preliminary version)&lt;/code>&lt;/p>
&lt;p>Use&lt;/p>
&lt;p>a) Create a view in your Form Library webpart containing the identifier of the list (the ID field).
b) Create a new webpart page, and insert the FormLibrary webpart and csegInfoPath webpart.
c) In the FormLibrary webpart select the view that contains the ID field, you need this view to connect with csegRollUp.
d) In the FormLibrary webpart menu select, “Conections” -&amp;gt; “Send row to” -&amp;gt; “csegInfoPathViewer” when prompt for field use the ID field.
e) Now fill the csegInfoPathViewer properties, you need specify the form library list name in the “List Name” field and put the XSL in the field XSL. (You can extract it from the infopath solution file, rename it as a .cab file and extract the xsl, then copy the content into the xsl property)
f) Now select an item and you can view the form in the csegInfoPathViewer.&lt;/p></description></item><item><title>Multiple Providers</title><link>https://blog.romheat.net/posts/2006/06_04_05_multiple_providers/</link><pubDate>Wed, 05 Apr 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_04_05_multiple_providers/</guid><description>&lt;p>El otro día comentaba el problema que había tenido con los interfaces de conexión de los webparts. Tenía un webpart consumidor conectado con dos proveedores, la primera vez que uno de los webparts proveía un valor este era aceptado por el consumidor, pero desde el momento en que el consumidor aceptaba un valor desde el segundo webpart, ya nunca más volvía a aceptar valores del primero. Evidentemente el comportamiento cambiaba si se invertía el orden de conexión. Tras dedicarle un buen rato y reproducir el problema en su esencia usando tres webparts, caí en la cuenta de que un valor null o vació también es transmitido …. de modo que ese era el problema. Así que a revisar los PartComunicationMain()&lt;/p></description></item><item><title>Excel Series</title><link>https://blog.romheat.net/posts/2006/06_03_27_excel_series/</link><pubDate>Mon, 27 Mar 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_03_27_excel_series/</guid><description>&lt;p>No se si lo he comentado alguna vez, pero en el trabajo suelo usar mucho Excel para hacer una gran variedad de cosas, en general mucho de lo que tiene que ver con el área económico financiera (lo terminamos haciendo en Excel).&lt;/p>
&lt;p>Muchas de nuestras hojas de cálculo, son planes financieros, estudios de viabilidad, análisis etc. Básicamente estas hojas planifican cobros y pagos ó gastos e ingresos, la cuestión es la planificación, en Excel podemos planificar todo aquello que queramos, es sencillo podemos establecer una fila para cada previsión a realizar y en cada columna podemos poner un periodo (ene, feb, mar…), por último en cada celda (previsión / periodo) el importe de dicha previsión.&lt;/p></description></item><item><title>MVPOpenDay</title><link>https://blog.romheat.net/posts/2006/06_03_27_mvp_openday/</link><pubDate>Mon, 27 Mar 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_03_27_mvp_openday/</guid><description>&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/openday-1.jpg" alt="MVPOpenDay">
&lt;img src="https://blog.romheat.net/images/Sharepoint/openday-2.jpg" alt="MVPOpenDay">
&lt;img src="https://blog.romheat.net/images/Sharepoint/openday-4.jpg" alt="MVPOpenDay">
&lt;img src="https://blog.romheat.net/images/Sharepoint/openday-6.jpg" alt="MVPOpenDay">&lt;/p></description></item><item><title>Send Email Toolbar</title><link>https://blog.romheat.net/posts/2006/06_03_06_send_email_toolbar/</link><pubDate>Mon, 06 Mar 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_03_06_send_email_toolbar/</guid><description>&lt;p>Hace ya algún tiempo Mark Bower, explicaba como personalizar el menú de opciones con un bonito ejemplo para enviar el enlace de un documento por correo electrónico. Este fin de semana he tratado de mejorarlo, ya que enviar un enlace está muy bien cuando se envían correos a personas de la misma empresa, evitando duplicar información. Sin embargo si queremos enviar dicho documento a una persona del exterior, tenemos que salvar primero el documento en el escritorio para después adjuntarlo a un mensaje.&lt;/p></description></item><item><title>csEG Library</title><link>https://blog.romheat.net/posts/2006/06_03_01_cseglibrary/</link><pubDate>Wed, 01 Mar 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_03_01_cseglibrary/</guid><description>&lt;p>Estos días he estado trabajando en una nueva biblioteca de clases para SharePoint, bueno, en parte nueva y en parte adaptando a mis necesidades algunas de las clases del SDK, (¡Que grande es la POO!). Aquí como siempre existirán discrepancias en cuanto al diseño, allí donde se reúnan programadores siempre habrá más puristas y otros más prácticos. Yo me decanto por los segundos. Con esto no quiero decir que estropee la magia de una clase introduciendo metodusHorribilis, pero sí que soy partidario de subclasear aquello que dispone de una interfaz poco agradable, creando una fachada más práctica y coherente con la aplicación que se está desarrollando, de este modo más adelante podremos intercambiar el subsistema haciendo unos pequeños cambios en nuestra subclase sin retocar nada más.&lt;/p></description></item><item><title>Remote WebParts Install</title><link>https://blog.romheat.net/posts/2006/06_02_23_remote_webparts_install/</link><pubDate>Thu, 23 Feb 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_02_23_remote_webparts_install/</guid><description>&lt;p>El otro día chateando con Gustavo sobre su post (Un VisualStudio 2005 señor? No gracias, déme un 2003, por favor) hablamos sobre la instalación de los webparts en las maquinas de pruebas. Yo le comente que lo que hacía era copiar el archivo CAB en la máquina remota y ejecutar el stsadm y el RecycleAppPool usando un enlace de terminal server. (archivo .rdp), esto lo tengo en un batch, y necesito un archivo RDP para cada webpart (ya que el nombre del archivo CAB va dentro del RDP). Luego en el Visual Studio tengo un enlace en las herramientas externas que lanza los comandos.&lt;/p></description></item><item><title>Connecting WebParts</title><link>https://blog.romheat.net/posts/2006/06_02_18_connecting_webparts/</link><pubDate>Sat, 18 Feb 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_02_18_connecting_webparts/</guid><description>&lt;p>He estado pensando en las nuevas características que tendrá la versión 3.5 del csegRollUp (como siempre, si alguien tiene sugerencias que las diga) por el momento dejo unas pequeñas pistas aquí. He estado trabajando con unas bibliotecas de documentos que contiene un meta dato llamado estado, la idea era mostrar los últimos archivos modificados por cada usuario dentro de un estado en particular, bien para esto basta con hacer una vista de la biblioteca de documentos y mostrar la vista organizada en categorías (cada estado una categoría). Esto esta muy bien pero en ocasiones el diseño ha de ser más funcional y esto es lo que ha salido usando el csegRollUp.
El primer csegRollUp va a mostrar un menú con los distintos estados, seleccionando uno de los estados se mostrarán en un segundo csegRollUp los documentos que tienen dicho estado.&lt;/p></description></item><item><title>VS Template WebPart</title><link>https://blog.romheat.net/posts/2006/06_02_13_vs_template_webpart/</link><pubDate>Mon, 13 Feb 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_02_13_vs_template_webpart/</guid><description>&lt;p>Days ago I wrote about how to use msbee to do webparts with Visual Studio 2005, now the toolkit guys have a beta version, I have spent the weekend doing some tests with this beta release and now I’m doing my webparts using Visual Studio 2005. In the beginning I was using the external tools menu to launch the msbuild process with apropiate targets, and later launching other tool with the sign assembly process, finally I have modified the .csproj file because at the moment for SharePoint 2003 I only need use the Net 1.1 framework. Also I added at the Postbuild event the sign assembly process.&lt;/p></description></item><item><title>SQL Maintenance</title><link>https://blog.romheat.net/posts/2006/06_02_07_sql_maintenance/</link><pubDate>Tue, 07 Feb 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_02_07_sql_maintenance/</guid><description>&lt;p>Hoy tocaba mantenimiento del Servidor SQL, revisión de espacio, compactación de bases de datos etc… (cosas del primer martes de cada mes) en fin una vez más nuestro portal crece desmesuradamente sobre todo el log de transacciones (como ocurre con todas las bbdd que se usan) así que como hoy no tenia nada más interesante que contar aquí quedan algunas de las tsqls que forman parte del pan de mantenimiento (yo prefiero hacerlo a mano, usando un PA en vez de usar el asistente programado, manias)&lt;/p></description></item><item><title>ideseg stats</title><link>https://blog.romheat.net/posts/2006/06_02_01_ideseg_stats/</link><pubDate>Wed, 01 Feb 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_02_01_ideseg_stats/</guid><description>&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/stats-junary-2006-1.gif" alt="ideseg stats">
&lt;img src="https://blog.romheat.net/images/Sharepoint/stats-junary-2006-2.gif" alt="ideseg stats">
&lt;img src="https://blog.romheat.net/images/Sharepoint/stats-junary-2006-3.gif" alt="ideseg stats">&lt;/p></description></item><item><title>Querying an exchange server 2</title><link>https://blog.romheat.net/posts/2006/06_01_26_ajax_exchange/</link><pubDate>Fri, 27 Jan 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_01_26_ajax_exchange/</guid><description>&lt;p>Part 2&lt;/p>
&lt;p>Changing the dav web query, you can get more data (see urn:content-classes:message and Default Exchange Store Namespaces for other namespaces) now to complete the sample the new query is&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-sql" data-lang="sql">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">SELECT&lt;/span> &lt;span style="color:#e6db74">&amp;#34;urn:schemas:httpmail:datereceived&amp;#34;&lt;/span>, 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;DAV:href&amp;#34;&lt;/span>, 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;urn:schemas:httpmail:sendername&amp;#34;&lt;/span>, 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;urn:schemas:httpmail:subject&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">FROM&lt;/span> &lt;span style="color:#66d9ef">scope&lt;/span>(&lt;span style="color:#e6db74">&amp;#39;shallow traversal of &amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">WHERE&lt;/span> &lt;span style="color:#e6db74">&amp;#34;DAV:ishidden&amp;#34;&lt;/span>&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">False&lt;/span> &lt;span style="color:#66d9ef">AND&lt;/span> &lt;span style="color:#e6db74">&amp;#34;DAV:isfolder&amp;#34;&lt;/span>&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">False&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>And to watch the xml results obtained by the query we can modify the checkState function.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-javascript" data-lang="javascript">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">function&lt;/span> &lt;span style="color:#a6e22e">checkState&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (&lt;span style="color:#a6e22e">xmlHttpReq&lt;/span>.&lt;span style="color:#a6e22e">readyState&lt;/span> &lt;span style="color:#f92672">==&lt;/span> &lt;span style="color:#ae81ff">4&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">divOutput&lt;/span>.&lt;span style="color:#a6e22e">innerText&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#a6e22e">xmlHttpReq&lt;/span>.&lt;span style="color:#a6e22e">ResponseXML&lt;/span>.&lt;span style="color:#a6e22e">xml&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Better than parse DOM to get the results I prefer use XSL, now I can copy the XML results in my favorite XSLT editor and map the data. After I can add the xsl to the page and transform the xml usig it. The final result is as shown in the image.&lt;/p></description></item><item><title>View all folders in Document Libraries</title><link>https://blog.romheat.net/posts/2006/06_01_30_view_all_folders/</link><pubDate>Fri, 27 Jan 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_01_30_view_all_folders/</guid><description>&lt;p>Some time ago I write a post with a little trick to add this “missed” option [&amp;ldquo;View all folders&amp;rdquo; in Document Libraries]. Now I have needed it in all my documents libraries and the best option is as always modify the list schema file.&lt;/p>
&lt;p>Each list definition contains a schema.xml that defines the views, forms, toolbar, and special fields in a list definition. In my production server I have modified the DOCLIB template in “web server extensions\60\TEMPLATE\3082\STS\LISTS\DOCLIB”&lt;/p></description></item><item><title>Querying an exchange server</title><link>https://blog.romheat.net/posts/2006/06_01_27_ajax_exchange_2/</link><pubDate>Thu, 26 Jan 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_01_27_ajax_exchange_2/</guid><description>&lt;p>We can use asynchronous data retrieval, inside of a WebContent webpart, this is a little sample of how to do it.&lt;/p>
&lt;p>Part 1&lt;/p>
&lt;p>Querying an exchange server and retry results inside of sharepoint webpart, this first sample use the Search web dav method using XMLHTTP request (Exchange Store WebDAV Protocol), query the last five elements from user inbox and gets the date received, the sender name and the subject.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-sql" data-lang="sql">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">SELECT&lt;/span> &lt;span style="color:#e6db74">&amp;#34;urn:schemas:httpmail:datereceived&amp;#34;&lt;/span>, 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;urn:schemas:httpmail:sendername&amp;#34;&lt;/span>, 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;urn:schemas:httpmail:subject&amp;#34;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">FROM&lt;/span> &lt;span style="color:#66d9ef">scope&lt;/span>(&lt;span style="color:#960050;background-color:#1e0010">‘&lt;/span>shallow traversal &lt;span style="color:#66d9ef">of&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">‘&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">WHERE&lt;/span> &lt;span style="color:#e6db74">&amp;#34;DAV:ishidden&amp;#34;&lt;/span>&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">False&lt;/span> &lt;span style="color:#66d9ef">AND&lt;/span> &lt;span style="color:#e6db74">&amp;#34;DAV:isfolder&amp;#34;&lt;/span>&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">False&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/webcontent-exchange-query.gif" alt="">&lt;/p></description></item><item><title>csegRollUp v3.1a</title><link>https://blog.romheat.net/posts/2006/06_01_24_csegrollup_v3_1a/</link><pubDate>Tue, 24 Jan 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_01_24_csegrollup_v3_1a/</guid><description>&lt;p>csegRollUp 3.1a&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegRollUp-v31a.gif" alt="csegRollUp">&lt;/p>
&lt;h2 id="fixes">Fixes&lt;/h2>
&lt;p>– Queries with fields that contains spaces
– Variables in caml queries
– Other minor bugs&lt;/p>
&lt;h2 id="improvements-awaited---">Improvements (awaited :-) )&lt;/h2>
&lt;p>Now there is a new property “From top level” where you can specify the starting point from which the csegrollup would gather the information, this url can be a site or a portal area. The format is an Url format (http://sever/sites/site or http://server/area), Now you can use csegRollUp in an area and rollup content from sites in other areas or others urls, also you can use csegRollUp in a site/subsite and agregate content from a top site.&lt;/p></description></item><item><title>XMLA BI</title><link>https://blog.romheat.net/posts/2006/06_01_21_xmla_bi/</link><pubDate>Sat, 21 Jan 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_01_21_xmla_bi/</guid><description>&lt;p>DIA 1&lt;/p>
&lt;p>Estos días he estado probando algunas cosas con SharePoint, empecé instalando la versión inglesa del Business Scorecard Manager 2005 ya que no aguantaba más de esperar a la versión en castellano (las ayudas por lo menos están pero el programa no), después de instalar los requisitos necesarios en mi maquina de pruebas…&lt;/p>
&lt;p>Probé a instalar el producto … que fallaba estrepitosamente al crear la base de datos :-( probé después con un SQL Server 2000 y me seguía ocurriendo lo mismo, comprobé todos los permisos en uno y otro sitio y tras una hora conseguí que me creará la base de datos. Lo que hice fue instalarla directamente sobre el servidor SQL, instalando las opciones personalizadas diciéndole que no a todo excepto a la base de datos. Bien, ya tenía la BBDD instalada, ahora me quedaba instalar las webparts en el servidor (el resto de componentes de la instalación), no hubo suerte, tras indicar al programa de instalación dónde se encuentra en servidor SQL y el nombre de la BBDD me da un error tal que:&lt;/p></description></item><item><title>Using MSBee</title><link>https://blog.romheat.net/posts/2006/06_01_13_using_msbee/</link><pubDate>Fri, 13 Jan 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_01_13_using_msbee/</guid><description>&lt;p>First I want to give thanks to Josh Ledgard to allow to me test the first CTP of MSBee. With MSBee you can build .NET 1.1 projects using Visual Studio 2005. MSBee is designed to use MSBuild and use a property to set the target framework. MSBee map assembly references from .NET 2.0 assemblies to their .NET 1.1 equivalents.&lt;/p>
&lt;p>Installation and usage&lt;/p>
&lt;p>This first release install unzipping four files in the MSBuild directory. These files contans the NET 1.1 target files and the small msbee.dll. After install you only need open a Visual Studio 2003 project with Visual Studio 2005, locate the project file (.csproj) and insert a line under&lt;/p></description></item><item><title>csegDocLibTools</title><link>https://blog.romheat.net/posts/2006/06_01_10_csegdoclibtools/</link><pubDate>Tue, 10 Jan 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_01_10_csegdoclibtools/</guid><description>&lt;p>I have a stopped project that I want release in the nexts weeks, it’s called csegDocLibTools, this is a webpart to show a explorer like interface in document libraries and adds cut and paste features.&lt;/p>
&lt;ul>
&lt;li>SharePoint – Making document libraries a bit more explorer-like&lt;/li>
&lt;li>SharePoint – Making document libraries a bit more explorer-like – csegDocLibTools&lt;/li>
&lt;/ul>
&lt;p>Now here is the beta release, any feedback get will be great.&lt;/p>
&lt;p>csegDocLibToolsWebPart.zip (26,51 KB)&lt;/p></description></item><item><title>Modify title</title><link>https://blog.romheat.net/posts/2006/06_01_10_mod_title/</link><pubDate>Tue, 10 Jan 2006 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2006/06_01_10_mod_title/</guid><description>&lt;p>Lo primero advierto que esta practica no esta del todo recomendada. Pero seguro que en más de una ocasión os habéis encontrado con el problema que supone tener el campo Título pre-configurado por SharePoint, (por lo menos deja cambiarle el nombre) pero no deja de ser una limitación en muchos casos que el tipo predeterminado sea un campo alfanumérico de 255 caracteres.&lt;/p>
&lt;p>La definición en CAML del campo Título es la siguiente:&lt;/p></description></item><item><title>Sharepoint Access Data</title><link>https://blog.romheat.net/posts/2005/05_12_28_sharepoint_access_data/</link><pubDate>Wed, 28 Dec 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_12_28_sharepoint_access_data/</guid><description>&lt;p>Continuando con el trabajo que estaba realizando en Access necesitaba poder acceder a las listas de SharePoint e ir agregando el contenido a una tabla de SQL Server.&lt;/p>
&lt;p>Como comentaba en el post anterior, por el momento estaba manteniendo una lista de sitios en una tabla de Access, recorriendo dicha tabla cargaba las listas en el SQL Server. Ahora necesito recabar información de los sub-sitios que se encuentran por debajo, con lo cual necesito recuperar las direcciones de dichos sitios para poder cargar los datos en el SQL Server.&lt;/p></description></item><item><title>Sharepoint with Access</title><link>https://blog.romheat.net/posts/2005/05_12_28_access/</link><pubDate>Wed, 28 Dec 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_12_28_access/</guid><description>&lt;p>Estos días he necesitado pasar datos de mi servidor SQL a SharePoint y viceversa, después de realizar algunas pruebas y mientras no tenga el SQL 2005 (el cual permite mediante los servicios de transformación de datos DTS atacar servicios web).&lt;/p>
&lt;p>Con mi SQL 2000 he tratado de hacer un pequeño truco que en otras ocasiones había dado buen resultado, el truco consiste en vincular las tablas a través de Access e incluir dicho archivo en un DTS para pasar los datos, esto no funciona con las tablas vinculadas a SharePoint.&lt;/p></description></item><item><title>CAML XML Editor v1</title><link>https://blog.romheat.net/posts/2005/05_12_18_camleditor_v1/</link><pubDate>Sun, 18 Dec 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_12_18_camleditor_v1/</guid><description>&lt;p>Days ago I showed my last toy project called CAML Editor, this first sketch was only a test application. Now I have the pleasure to announce that the first version is here to stay ;-) .&lt;/p>
&lt;p>• New tabbed interface
• Code completion and folding support in text editor
• CAML code generator completely rewritten
• Many Bugs fixed
• New Validation error interface inside of the editor&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CAMLEditor-v1-Editor.gif" alt="">
&lt;img src="https://blog.romheat.net/images/Sharepoint/CAMLEditor-v1-Generator.gif" alt="">
&lt;img src="https://blog.romheat.net/images/Sharepoint/CAMLEditor-v1-Preview.gif" alt="">&lt;/p>
&lt;p>You can download it here… CAMLEditor v1.0.zip (246,46 KB)&lt;/p></description></item><item><title>Menus de contexto personalizados</title><link>https://blog.romheat.net/posts/2005/05_12_12_context_menus/</link><pubDate>Mon, 12 Dec 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_12_12_context_menus/</guid><description>&lt;p>Hoy modificando un site (en el que tenía colocada la vista con las plantillas múltiples) he pensado en añadir un pequeño menú para modificar directamente las plantillas de la biblioteca de documentos en vez de crear un nuevo documento usando la plantilla. Finalmente lo he implementado usando el editor de de HTML e introduciendo un menú contextual en cada elemento para poder modificar cada plantilla.&lt;/p>
&lt;p>Como estos días alguien me había comentado que tenia problemas al usar el ctx.HttpRoot, pongo el código de ejemplo aquí sobre como montar el ContextInfo para los menús.&lt;/p></description></item><item><title>CAML XML Editor</title><link>https://blog.romheat.net/posts/2005/05_12_06_caml_xml_editor/</link><pubDate>Tue, 06 Dec 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_12_06_caml_xml_editor/</guid><description>&lt;p>My last project has changed of name, I believe that CAML XML EDITOR will be called.&lt;/p>
&lt;p>Join to workspaces.gotdotnet.com/CAMLEditor&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CAML-Editor-v0-1.gif" alt="camlxmleditor.gif">&lt;/p>
&lt;p>At the moment he is a simple XML editor that allows simultaneously to publish the code by fragments (use the context menu in editor) that can are validated themselves. Also has a HTML preview to show the HTML code generated.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CAML-Editor-v0-2.gif" alt="camlxmleditor.gif">&lt;/p>
&lt;p>And a little CAML generator, you can select any CAML then you has the correct XML, if you select a reference in the XML you can expand it using the context menu.&lt;/p></description></item><item><title>Caml Editor</title><link>https://blog.romheat.net/posts/2005/05_12_01_caml_editor/</link><pubDate>Thu, 01 Dec 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_12_01_caml_editor/</guid><description>&lt;p>Para la mayoría de los que trabajamos con SharePoint, el personalizar listas, sitios o áreas usando CAML, seré suave, es un INFIERNO, pero para bien o para mal vamos a tener que convivir con el.&lt;/p>
&lt;p>No quiero entrar en detalles acerca de lo bueno o malo, de lo dificultoso o no que pueda llegar a ser, por que como ya he dicho antes hay que convivir con el. Así que he pensado en ser más tolerante y tratar de solucionar los problemas en la medida de lo posible.&lt;/p></description></item><item><title>XSL Namespaces</title><link>https://blog.romheat.net/posts/2005/05_11_29_xsl_namespaces/</link><pubDate>Tue, 29 Nov 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_11_29_xsl_namespaces/</guid><description>&lt;p>With csegRollUp v3 you can use both namespaces in the xml stylesheet.&lt;/p>
&lt;p>This example use msxsl namespace with a c# script function to transform a date in a month name:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:stylesheet&lt;/span> &lt;span style="color:#a6e22e">xmlns:xsl=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://www.w3.org/1999/XSL/Transform&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">version=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;1.0&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:msxsl=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;urn:schemas-microsoft-com:xslt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:utils=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;urn:script-items&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;msxsl:script&lt;/span> &lt;span style="color:#a6e22e">language=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;C#&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">implements-prefix=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;utils&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">&amp;lt;![CDATA[
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> public string GetMonth(string sDate)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> { 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> if (sDate.Length &amp;gt; 0)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> {
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> string[] monthNames = {null , &amp;#34;January&amp;#34; , &amp;#34;February&amp;#34; , &amp;#34;March&amp;#34; , &amp;#34;April&amp;#34;, &amp;#34;May&amp;#34;,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> &amp;#34;June&amp;#34;, &amp;#34;July&amp;#34;, &amp;#34;August&amp;#34;, &amp;#34;September&amp;#34;, &amp;#34;October&amp;#34;,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> &amp;#34;November&amp;#34;, &amp;#34;December&amp;#34;};
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> DateTime d = DateTime.Parse(sDate);
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> return monthNames[d.Month];
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> else 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> return &amp;#34;(Empty)&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> ]]&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/msxsl:script&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:output&lt;/span> &lt;span style="color:#a6e22e">method=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;html&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">encoding=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;utf-8&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">match=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;/Rows/Row&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;li/&amp;gt;&amp;lt;b&amp;gt;&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Title&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&amp;lt;/b&amp;gt;&lt;/span> – &lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;utils:GetMonth(Fecha)&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&amp;lt;br/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/xsl:template&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Link with more info XSLT Stylesheet Scripting using &lt;a href="msxsl:script">msxsl:script&lt;/a>&lt;/p></description></item><item><title>Multiple Templates</title><link>https://blog.romheat.net/posts/2005/05_11_24_multiple_templates/</link><pubDate>Thu, 24 Nov 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_11_24_multiple_templates/</guid><description>&lt;p>I have a site with some document libraries to store documentation based in multiple templates, to save each template in the correct folder, I have created a custom list thats contains the name of the template, the template and the folder where documents created with this tempalte must be stored.&lt;/p>
&lt;p>Name – text – Template name&lt;/p>
&lt;p>Template – hyperlink – The link to the template file&lt;/p>
&lt;p>Folder – text – Folder where the document must be stored (site based path)&lt;/p></description></item><item><title>csegRollUp v3 out</title><link>https://blog.romheat.net/posts/2005/05_11_21_csegrollup_v3/</link><pubDate>Mon, 21 Nov 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_11_21_csegrollup_v3/</guid><description>&lt;p>Finally csegRollUp v3 is here, first I want to give to thanks to all beta testers and and special thanks to Florian Rossmark and Dor Rotman.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegRollUp-v3-properties.gif" alt="">&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Lists – As in previous versions, List of comma delimited values that signify the sites and lists
Format: /site/subsite:ListName, /site/subsite/subsite:ListName&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Fields – As in previous versions, List of comma delimited values with the field names
Format: Title,Text,Comment,User&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Include List Data (new) – If enabled the result xml data contains special fields&lt;/p></description></item><item><title>csegRollUp v3 rc1</title><link>https://blog.romheat.net/posts/2005/05_11_12_csegrollup_v3_rc1/</link><pubDate>Sat, 12 Nov 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_11_12_csegrollup_v3_rc1/</guid><description>&lt;p>I am finishing csegRollUp v3, at the moment some examples….&lt;/p>
&lt;p>1.- Using csegRollUp cell consumer interface.&lt;/p>
&lt;p>Show all documents inside of a document library where Title contains data provider from other webpart.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegRollUp-v3rc1-consumer.gif" alt="">&lt;/p>
&lt;p>Lists: Shared Documents
Fields: ID, LinkFilename,EncodedAbsUrl,Modified,DocIcon,FileRef,Author,Title&lt;/p>
&lt;p>CAML query&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;Where&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Contains&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;FieldRef&lt;/span> &lt;span style="color:#a6e22e">Name=&lt;/span>&lt;span style="color:#e6db74">&amp;#39;Title&amp;#39;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Value&lt;/span> &lt;span style="color:#a6e22e">Type=&lt;/span>&lt;span style="color:#e6db74">&amp;#39;Text&amp;#39;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>[CellProvider]&lt;span style="color:#f92672">&amp;lt;/Value&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/Contains&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/Where&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Recursive: enabled&lt;/p>
&lt;p>XSLT&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#39;1.0&amp;#39; encoding=&amp;#39;utf-8&amp;#39;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:stylesheet&lt;/span> &lt;span style="color:#a6e22e">version=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;1.0&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">xmlns:xsl=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://www.w3.org/1999/XSL/Transform&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:output&lt;/span> &lt;span style="color:#a6e22e">method=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;html&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">match=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;/&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;table&lt;/span> &lt;span style="color:#a6e22e">class=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;ms-summarycustombody&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tbody&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:for-each&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Rows/Row&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:sort&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Modified&amp;#34;&lt;/span> &lt;span style="color:#a6e22e">order=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;descending&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tr&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;td&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;img&lt;/span> &lt;span style="color:#a6e22e">src=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;/_layouts/images/ic{DocIcon}.gif&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/td&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;td&lt;/span> &lt;span style="color:#a6e22e">width=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;75%&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;a&lt;/span> &lt;span style="color:#a6e22e">href=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;{EncodedAbsUrl}&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;LinkFilename&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/a&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/td&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tr&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:for-each&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tbody&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/table&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:template&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>2.- Using csegRollUp cell provider interface&lt;/p></description></item><item><title>Bloqueando campos</title><link>https://blog.romheat.net/posts/2005/05_11_10_bloqueando_campos/</link><pubDate>Thu, 10 Nov 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_11_10_bloqueando_campos/</guid><description>&lt;p>Hace unos días necesitaba bloquear un campo en una lista de sharepoint, esto se puede hacer modificando las páginas newform.aspx y editform.aspx y añadiendo un pequeño script.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-html" data-lang="html">&lt;span style="display:flex;">&lt;span>&amp;lt;&lt;span style="color:#f92672">script&lt;/span> &lt;span style="color:#a6e22e">defer&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">// tomar el campo y bloquearlo
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span> &lt;span style="color:#66d9ef">var&lt;/span> &lt;span style="color:#a6e22e">fld_anotacion&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#a6e22e">frm&lt;/span>.&lt;span style="color:#a6e22e">FieldPost&lt;/span>(&lt;span style="color:#a6e22e">frm&lt;/span>.&lt;span style="color:#a6e22e">FindField&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Anotaci_x00f3_n&amp;#34;&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">fld_anotacion&lt;/span>.&lt;span style="color:#a6e22e">readOnly&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">true&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">// poner el foco en el campo descripcion
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span> &lt;span style="color:#a6e22e">frm&lt;/span>.&lt;span style="color:#a6e22e">FindField&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Descripci_x00f3_n&amp;#34;&lt;/span>).&lt;span style="color:#a6e22e">FieldFocus&lt;/span>();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/&lt;span style="color:#f92672">script&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En este caso en concreto, el campo bloqueado se rellena desde un nuevo formulario (una copia de editform.aspx que he modificado para albergar una nueva zona de webparts y dentro de esta he añadido un data viewer webpart) este formulario se utiliza para rellenar el campo que con los formularios iniciales se encuentra bloqueado.&lt;/p></description></item><item><title>Google Sharepoint</title><link>https://blog.romheat.net/posts/2005/05_11_07_google_sharepoint/</link><pubDate>Mon, 07 Nov 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_11_07_google_sharepoint/</guid><description>&lt;p>Al igual que otros usuarios de SharePoint, en su día me encontré con la limitación que tienen las búsquedas de SharePoint. Por ello desarrolle el csegSearchWebPart, añadiendo funcionalidad extra a las búsquedas del portal.&lt;/p>
&lt;p>Como referencia tome Google, ya que es considerado &amp;ldquo;el mejor buscador del mundo&amp;rdquo;.&lt;/p>
&lt;p>Estos días he pensando en ello, y he llegado algunas conclusiones interesantes.&lt;/p>
&lt;p>Goggle tiene tres grandes rasgos que otros buscadores no tienen:&lt;/p>
&lt;ul>
&lt;li>Cantidad de documentos indexados. (8.000 millones)&lt;/li>
&lt;li>Flexibilidad en las búsquedas.&lt;/li>
&lt;li>Motor de indexación / búsqueda distribuido.&lt;/li>
&lt;/ul>
&lt;p>Y un gran característica que lo diferencia de los demás buscadores&lt;/p></description></item><item><title>SPQuery and Recurrence</title><link>https://blog.romheat.net/posts/2005/05_11_02_spquery_recurrence/</link><pubDate>Wed, 02 Nov 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_11_02_spquery_recurrence/</guid><description>&lt;p>This last long weekend I’m playing with spqery to show recurrent events from one of my lists after spent too many hours and the only think I have got are frustrations.&lt;/p>
&lt;p>The query.ViewAttributes, with RecurrenceRowset=’TRUE’ or with ModerationType=’Moderator’ modifiers are ignored totally.&lt;/p>
&lt;p>My sample query for recurrence without results : (RecurrenceRowset=’TRUE’)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;Where&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;DateRangesOverlap&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;FieldRef&lt;/span> &lt;span style="color:#a6e22e">Name=&lt;/span>&lt;span style="color:#e6db74">”EventDate”&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;FieldRef&lt;/span> &lt;span style="color:#a6e22e">Name=&lt;/span>&lt;span style="color:#e6db74">”EndDate”&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;FieldRef&lt;/span> &lt;span style="color:#a6e22e">Name=&lt;/span>&lt;span style="color:#e6db74">”RecurrenceID”&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Value&lt;/span> &lt;span style="color:#a6e22e">Type=&lt;/span>&lt;span style="color:#e6db74">”DateTime”&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Now&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/Value&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/DateRangesOverlap&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/Where&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>``
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Today trying get the pending documents: (ModerationType=’Moderator’)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>```xml	
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;Where&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Eq&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;FieldRef&lt;/span> &lt;span style="color:#a6e22e">Name=&lt;/span>&lt;span style="color:#e6db74">”_ModerationStatus”&lt;/span> &lt;span style="color:#f92672">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;Value&lt;/span> &lt;span style="color:#a6e22e">Type=&lt;/span>&lt;span style="color:#e6db74">”Integer”&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>0&lt;span style="color:#f92672">&amp;lt;/Value&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/Eq&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/Where&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>After read the wsssdk, there is only a example with “ModerationType” is in “SPModerationInformation” class&lt;/p></description></item><item><title>csegRollUp v3</title><link>https://blog.romheat.net/posts/2005/05_10_27_csegrollup_v3/</link><pubDate>Thu, 27 Oct 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_10_27_csegrollup_v3/</guid><description>&lt;h2 id="csegrollup-v3">csegRollUp v3&lt;/h2>
&lt;ul>
&lt;li>Include List Data flag, if you enable the checkbox the xml data will include the underscore data&lt;/li>
&lt;/ul>
&lt;p>(_ListTitle, _ListUrl, _SiteTitle, _SiteUrl, _ItemId, _ItemUrl, _ItemEdit)&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Queries&lt;/p>
&lt;ul>
&lt;li>CAML Query you can use a caml query to search on each list.&lt;/li>
&lt;li>RowLimit – maximun number of rows to return&lt;/li>
&lt;li>Recursive - the query recursive be made (great for Document Libraries)&lt;/li>
&lt;li>DebugQuery – show the xml from the query&lt;/li>
&lt;/ul>
&lt;p>Special values that you can use on queries:&lt;/p></description></item><item><title>csegSearch Install</title><link>https://blog.romheat.net/posts/2005/05_10_20_csegserach_install/</link><pubDate>Thu, 20 Oct 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_10_20_csegserach_install/</guid><description>&lt;p>1.- Load your search.aspx with http://server/search.aspx&amp;amp;Mode=Edit?PageView=Shared&lt;/p>
&lt;p>2.- Enter in design mode using “Modify Shared Page” menu&lt;/p>
&lt;p>3.- Select the csegSearch Webpart and put it on page&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegSearchInstall-1.gif" alt="">&lt;/p>
&lt;p>4.- Go to the original “Search Results” webpart and modify properties, at the end there is a property called ResultListID, it has a list name, remember the name.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegSearchInstall-2.gif" alt="">&lt;/p>
&lt;p>5.- Now delete the original “Search Results”&lt;/p>
&lt;p>6.- Edit the csegSearch properties and locate the ResultListID, write the same name that the old webpart.&lt;/p></description></item><item><title>csegMiniWiki 2</title><link>https://blog.romheat.net/posts/2005/05_10_11_csegminiwiki_2/</link><pubDate>Tue, 11 Oct 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_10_11_csegminiwiki_2/</guid><description>&lt;p>Jugando con mi nuevo webpart csegMiniWiki, he caído en la cuenta que en la lista de contenido hay ciertos campos ocultos (los que tienen todas las listas) de modo que he cogido mi webpart csegScriptWebPart para examinar la lista y ….&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegMiniWiki_content_entry.gif" alt="">&lt;/p>
&lt;p>Como es lógico están todos los campos ocultos, bien ahora cómo csegMiniWiki puede reemplazar el nombre de un campo por su contenido he probado a ver que pasa y ….&lt;/p></description></item><item><title>csegScript 2</title><link>https://blog.romheat.net/posts/2005/05_09_05_csegscript_2/</link><pubDate>Mon, 05 Sep 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_09_05_csegscript_2/</guid><description>&lt;p>This weekend I have finished the first version of csegScript, now are two webparts in the package, the first webpart is the 0.99 version with some improvements in the code, the operation basically is the same one. (See previous post)&lt;/p>
&lt;p>The second new webpart uses a list to store the scripts, and has three slots to pass parameters to the webpart. (Thanks to Stramit by your idea)&lt;/p>
&lt;p>The list fields are:&lt;/p></description></item><item><title>csegDocLib</title><link>https://blog.romheat.net/posts/2005/05_08_10_csegdoclib/</link><pubDate>Wed, 10 Aug 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_08_10_csegdoclib/</guid><description>&lt;h2 id="introducing-csegdoclibtools">Introducing csegDocLibTools&lt;/h2>
&lt;p>The past week, looking how to show the missing folder view in document libraries, I had a good idea about how to improve my documents libraries, in this moment I had a clear idea over three things:&lt;/p>
&lt;p>&lt;strong>First&lt;/strong> I needed Copy and Paste documents in the library, because this is an essential feature to organize the library. There is a good solution to do from Syntergy, they have a cut and pase webpart.&lt;/p></description></item><item><title>csegDocLib 2</title><link>https://blog.romheat.net/posts/2005/05_08_10_csegdoclib2/</link><pubDate>Wed, 10 Aug 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_08_10_csegdoclib2/</guid><description>&lt;h2 id="csegdoclibtools-properties">csegDocLibTools properties&lt;/h2>
&lt;p>Well, there is a preliminary version available, I’m testing it in my production machine and the result at the moment its perfect.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegDocLibTools-Beta-screen.gif" alt="">&lt;/p>
&lt;p>The properties are separated in two groups, the first group, contains the document library on which it works and the webpart if this is attached to one.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegDocLibTools-Beta-Prop1.gif" alt="">
&lt;img src="https://blog.romheat.net/images/Sharepoint/csegDocLibTools-Beta-Prop2.gif" alt="">&lt;/p>
&lt;p>The second group contains the webpart options. The four new options in the context menu, (Copy, Paste, Explore from here and Explore from root). There is also an option to show the files inside of the folder when the tree view is showed and an option to enable and disable the top menu.&lt;/p></description></item><item><title>View all folders in Document Libraries</title><link>https://blog.romheat.net/posts/2005/05_08_03_view_all_folders_in_libs/</link><pubDate>Wed, 03 Aug 2005 22:54:52 +0000</pubDate><guid>https://blog.romheat.net/posts/2005/05_08_03_view_all_folders_in_libs/</guid><description>&lt;p>There are things that I do not understand (too many) of SharePoint, today I have paid attention in the actions menu in image libraries, there is an action called “View all Folders” that not exist in document libraries, trying to solve this problem, I have had the idea to how to do a pretty webpart to &lt;strong>Copy and Paste&lt;/strong> documents in documents libraries (this is in mind).&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/ImgLibActions.gif" alt="">        
&lt;img src="https://blog.romheat.net/images/Sharepoint/DocLibActions.gif" alt="">&lt;/p>
&lt;p>But, first les us solve the problem of view all folders in document libraries. I have spent an interesting short time  while seeing as the pages generated by sharepoint work, and there is an stupid trick to solve the problem.  It is enough with adding a link with javascript.&lt;/p></description></item><item><title>csegRollUp to support pages</title><link>https://blog.romheat.net/posts/2005/05_08_03_csegrollup_pages/</link><pubDate>Wed, 03 Aug 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_08_03_csegrollup_pages/</guid><description>&lt;p>Yesterday looking a XML editor to edit complex xml files that I have in a Project that E&amp;amp;Y did in my company, I downloaded a trial version from  &lt;a href="https://web.archive.org/web/20080613230259/http://www.ideseg.com/ct.ashx?id=d0576f81-0201-43f7-a89b-a56738e28f14&amp;amp;url=http%3a%2f%2fwww.stylusstudio.com%2findex.html" target="_blank">Stylus Studio &lt;strong>XML&lt;/strong> IDE&lt;/a> and I’m really surprised.  We could make a hard work in minutes. (Edit the data in a grid, sort the grid by levels and sublevels  etc&amp;hellip;)&lt;/p>
&lt;p>Normally I dont need tools like this for my diary work but I am considering this for my personal use (home edition is only 49$.)&lt;/p></description></item><item><title>csegSearch update and TIP</title><link>https://blog.romheat.net/posts/2005/05_08_03_csegsearch_update_tip/</link><pubDate>Wed, 03 Aug 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_08_03_csegsearch_update_tip/</guid><description>&lt;p>Some users have reported some small errors with csegSearch, and some doubts,&lt;/p>
&lt;p>- the colorize results only runs in the first set of results (&lt;strong>fixed&lt;/strong>) &lt;br>
- some extended results are in incorrect site (&lt;strong>fixed&lt;/strong>)&lt;/p>
&lt;p>Try this new version (with care this is not the 1.2 final), first uninstall previous version&lt;/p>
&lt;p>&lt;a href="https://web.archive.org/web/20080214110229/http://www.ideseg.com/ct.ashx?id=0ce0b11d-750b-4580-9842-25cd57e07251&amp;amp;url=http%3a%2f%2fwww.ideseg.com%2fcontent%2fbinary%2fcsegSearchWebPart12.zip" target="_blank">csegSearchWebPart12.zip (11,45 KB)&lt;/a>&lt;/p>
&lt;p>&lt;em>stsadm –o deletewppack –name csegSearchWebPart.cab&lt;br>
iisreset&lt;/em>&lt;/p>
&lt;p>&lt;em>Stsadm –a addwppack –filename csegSearchWebPart.cab [-globalinstall –force]&lt;br>
iisreset&lt;/em>&lt;/p>
&lt;p>Plase use the forums to comment bugs and the doubts in &lt;a href="https://web.archive.org/web/20080214110229/http://www.ideseg.com/ct.ashx?id=0ce0b11d-750b-4580-9842-25cd57e07251&amp;amp;url=http%3a%2f%2fforos.ideseg.com" target="_blank">foros.ideseg.com&lt;/a>&lt;/p></description></item><item><title>cssegScriptWebPart</title><link>https://blog.romheat.net/posts/2005/05_08_03_csegscriptwebpart/</link><pubDate>Wed, 03 Aug 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_08_03_csegscriptwebpart/</guid><description>&lt;p>Imagine test your webparts without compile, imagine an VBA for sharepoint, that was what I imagined yesterday and this is here&amp;hellip; I have desire to say Yeahhhhh&lt;/p>
&lt;p>&lt;strong>Screenshoots&lt;/strong> (better an image than thousand words)&lt;/p>
&lt;p>csegScript showing code&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegScript1.gif" alt="">&lt;/p>
&lt;h2 id="properties">Properties&lt;/h2>
&lt;p>&lt;strong>Show Code&lt;/strong> – Show the code with line numbers to identificate errors&lt;br>
&lt;strong>Run Code&lt;/strong> – The code is executed when you applies changes&lt;br>
&lt;strong>Script References&lt;/strong> – Write here the references of the project (.dll files)&lt;/p></description></item><item><title>Load documents in SharePoint pages</title><link>https://blog.romheat.net/posts/2005/05_08_03_load_documents_in_sp_pages/</link><pubDate>Wed, 03 Aug 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_08_03_load_documents_in_sp_pages/</guid><description>&lt;p>SharePoint - Loading html documents inside of sharepoint pages
One of the problems that I have been is when I have html documents in a document library and show this in a webpart page with the webcontent webpart. (I’m using the csegContent webpart that gets a querystring)&lt;/p>
&lt;p>Sharepoint index them and after when you search, the query results show a link to them but when you load the document the context is missing, you have a window with the complete page without menu, quicklaunch etc…&lt;/p></description></item><item><title>Playing with csegScriptWebPart</title><link>https://blog.romheat.net/posts/2005/05_08_03_playing_csegscript/</link><pubDate>Wed, 03 Aug 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_08_03_playing_csegscript/</guid><description>&lt;p>SharePoint - Playing with csegScript
Some users of csegRollUp2 ask to me how to get the complete list of fields for a list, remember that you can use the internal names with csegRollUp. Now you can use csegScript to show all fields and types of any list.&lt;/p>
&lt;p>Change the red code with the name of your list, and put the webpart in the site where the list is stored.&lt;/p>
&lt;p>Begin Script Code&lt;/p></description></item><item><title>csegAlertMan</title><link>https://blog.romheat.net/posts/2005/05_07_26_csegalertman/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_07_26_csegalertman/</guid><description>&lt;p>I am working in three webparts for handling alerts in Sharepoint, as advance here is first of them. &lt;/p>
&lt;p>&lt;strong>csegUserListsAlerts&lt;/strong>&lt;/p>
&lt;p>This webpart shows&lt;/p>
&lt;ol>
&lt;li>A drop-down list with all the lists of the Web site in where it is located. &lt;/li>
&lt;li>The name of the current user&lt;/li>
&lt;li>One lists with all the users of the Web site&lt;/li>
&lt;li>The alerts for the selected list&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/o_csegUserListAlerts.gif" alt="o_csegUserListAlerts.gif">&lt;/p>
&lt;p>You can do:&lt;/p>
&lt;p>Eliminate the selected alert&lt;br>
Eliminate all alerts for the current list&lt;br>
Add alert to selected users (specify type and frecuency)&lt;br>
Add alerts to all users&lt;/p></description></item><item><title>csegRollUp aggregate in calendar view</title><link>https://blog.romheat.net/posts/2005/05_07_26_csegrollup_calendar/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_07_26_csegrollup_calendar/</guid><description>&lt;p>First, thanks to all by the comments about RollUp webpart.&lt;/p>
&lt;p>Now, do you need a Calendar view with your RollUp events, tasks or any list???&lt;/p>
&lt;p>Are you ready?.&lt;/p>
&lt;p>You can use the Sharepoint calendar whith csegRollUp it’s easy and you can view the Month view, weekly view or day view whit your aggregated data.&lt;/p>
&lt;p>Just, a sample of XSL to render.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">&amp;lt;&lt;/span>?xml version=’1.0′ encoding=’utf-8′?\&amp;gt; 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:stylesheet&lt;/span> &lt;span style="color:#a6e22e">version=&lt;/span>&lt;span style="color:#e6db74">“1.0″&lt;/span> &lt;span style="color:#a6e22e">xmlns:xsl=&lt;/span>&lt;span style="color:#e6db74">“http://www.w3.org/1999/XSL/Transform”\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:output&lt;/span> &lt;span style="color:#a6e22e">method=&lt;/span>&lt;span style="color:#e6db74">“html”/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;xsl:template&lt;/span> &lt;span style="color:#a6e22e">match=&lt;/span>&lt;span style="color:#e6db74">“/”\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>       &lt;span style="color:#f92672">&amp;lt;SCRIPT&lt;/span>&lt;span style="color:#960050;background-color:#1e0010">\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>       var dopt = new DateOptions;       
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dopt.chDateSep = “/”;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dopt.chTimeSep = “:”;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dopt.SetTimeFormat(1);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dopt.SetDateOrder(1);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dopt.SetDOW(0);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dopt.webTZOffsetMin = -60;       
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> var cal = new Calendar(null, null, dopt);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> var rgIcons = new Array;    
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> rgIcons\[0\] = “\\u003cIMG border=0 width=16 height=16 title=\\u0022\\u0022 SRC=\\u0022/\_layouts/images/blank.gif\\u0022\\u003e”;    
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> rgIcons\[1\] = “\\u003cIMG alt=\\u0022\\u0022 border=0 width=16 height=16 SRC=\\u0022http://srvsp/\_layouts/images/blank.gif\\u0022″;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;xsl:for-each&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">“Rows/Row”\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>             &lt;span style="color:#f92672">&amp;lt;xsl:variable&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">‘datetime’&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">‘Caduca’&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>             &lt;span style="color:#f92672">&amp;lt;xsl:variable&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">‘year’&lt;/span>  &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">‘substring(&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$datetime,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">7&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">4&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">)’&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>             &lt;span style="color:#f92672">&amp;lt;xsl:variable&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">‘month’&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">‘substring(&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$datetime,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">4&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">2&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">)’&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>             &lt;span style="color:#f92672">&amp;lt;xsl:variable&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">‘day’&lt;/span>   &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">‘substring(&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$datetime,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">1&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">2&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">)’&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>             &lt;span style="color:#f92672">&amp;lt;xsl:variable&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">‘hour’&lt;/span>  &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">‘substring(&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$datetime,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">1&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">1&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">)’&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>             &lt;span style="color:#f92672">&amp;lt;xsl:variable&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">‘minute’&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">‘substring(&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$datetime,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">4&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">2&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">)’&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>             &lt;span style="color:#f92672">&amp;lt;xsl:variable&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">‘second’&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">‘substring(&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$datetime,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">7&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">2&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">)’&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>             &lt;span style="color:#f92672">&amp;lt;xsl:variable&lt;/span> &lt;span style="color:#a6e22e">name=&lt;/span>&lt;span style="color:#e6db74">‘spdate’&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">“concat($year,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">‘-’,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$month,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">‘-’,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$day,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">‘T0′,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$hour,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">‘:’,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$minute,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">‘:’,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">$second,&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">‘Z’&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">)”&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>             cal.AddFullEvent(“&lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">‘$spdate’&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>“, 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ”&lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">‘$spdate’/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>“,                                          
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ”&lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">“Texto”/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>“,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ”&lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">“Título”/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>“,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ”&lt;span style="color:#f92672">&amp;lt;xsl:value-of&lt;/span> &lt;span style="color:#a6e22e">select=&lt;/span>&lt;span style="color:#e6db74">“\_ItemUrl”/\&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>“,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> rgIcons);          
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#960050;background-color:#1e0010">&amp;lt;&lt;/span>/xsl:for-each\&amp;gt; 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>        cal.BuildUI();        
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#960050;background-color:#1e0010">&amp;lt;&lt;/span>/SCRIPT\&amp;gt;     
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#960050;background-color:#1e0010">&amp;lt;&lt;/span>/xsl:template\&amp;gt; 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">&amp;lt;&lt;/span>/xsl:stylesheet\&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="result-screenshots">Result Screenshots&lt;/h2>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/o_csegRollUp-cal1.gif" alt=""> &lt;/p></description></item><item><title>csegRollUp expand collapse</title><link>https://blog.romheat.net/posts/2005/05_07_26_csegrollup_expand_collapse/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_07_26_csegrollup_expand_collapse/</guid><description>&lt;p>Some people ask me about samples of transformations, XSL to use with the csegRollUp webpart. First of all, I adopted XSL because it is the best way to customize any webpart.&lt;/p>
&lt;p>I’m using mainly XMLSpy in work, but those days in my laptop I’m using too a freeware application to edit XSL called &amp;ldquo;cooktop&amp;rdquo; written by Victor Pavlov, it is a xsl, xpath and dtd editor, you can use the XML debug output from csegRollUp and test your XSL.&lt;/p></description></item><item><title>csegRollUp webpart</title><link>https://blog.romheat.net/posts/2005/05_07_26_csegrollupwebpart/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_07_26_csegrollupwebpart/</guid><description>&lt;p>This is my new webpart, that I have worked in order to solve a common problem. The Rollup for Sharepoint lists.&lt;/p>
&lt;p>With this webpart you can rollup any list in any site, you can get data from different lists (Tasks, Announcements, your customs lists)&lt;/p>
&lt;p>The Webpart check the security so that if a user does not have access to a site or a list these data will not appear.&lt;/p>
&lt;p>Webpart gathers data from the specified lists and join it in a common xml that later will render it using xsl.&lt;/p></description></item><item><title>csegRollUp webpart v2</title><link>https://blog.romheat.net/posts/2005/05_07_26_csegrollupwebpart_v2/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_07_26_csegrollupwebpart_v2/</guid><description>&lt;p>First, once again many thanks to all you for your kind commentaries about csegRollUp.&lt;/p>
&lt;p>Sorry for being so late but I have had a lot of work last days, and nights are so short…&lt;/p>
&lt;h2 id="fixes">Fixes&lt;/h2>
&lt;p>For users with problems in sites with ports diferents to 80, I must say that all tests of this new version have been done with a server installed in the port 1000 and all them have run correctly.&lt;/p></description></item><item><title>csegSearch 1.1</title><link>https://blog.romheat.net/posts/2005/05_07_26_csegsearch_1_1/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_07_26_csegsearch_1_1/</guid><description>&lt;p>Buff, finally csegSearch 1.1&lt;/p>
&lt;p>Thanks to Henrik, Raphael, André, Klaus and Mario for your comments.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/csegSearchResults.gif" alt="">&lt;/p>
&lt;h2 id="fixedimprovements">Fixed/Improvements&lt;/h2>
&lt;ul>
&lt;li>Add support to display custom attributes in results view.&lt;/li>
&lt;li>Fix the query string parameters&lt;/li>
&lt;li>Fix empty Hilight color&lt;/li>
&lt;li>Hilight keywords in document title and author&lt;/li>
&lt;li>Parser optimization and autofix &lt;/li>
&lt;/ul>
&lt;h2 id="operation">Operation&lt;/h2>
&lt;p>Webpart will transform the keywords into sharepoint joining  the words with the nexus AND as in google.  Internally csegSearch uses a parser engine that tries to correct the syntax of queries.&lt;/p></description></item><item><title>csegSearchWebPart</title><link>https://blog.romheat.net/posts/2005/05_07_26_csegsearchwebpart/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_07_26_csegsearchwebpart/</guid><description>&lt;h1 id="csegsearch--adds-google-type-searches-to-your-sharepoint-site--boolean-searches">csegSearch – Adds google type searches to your Sharepoint site – boolean searches&lt;/h1>
&lt;p>This webpart allows to make searches &lt;strong>GOOGLE&lt;/strong>  type in sharepoint.&lt;/p>
&lt;p>In the first place I would like to thank  Mattiew Cosier since to a large extent I have been inspired by his work. And Gustavo to test the webpart in your systems.&lt;/p>
&lt;p>This webpart is a subclass of the webpart included in sharepoint called SearchResults. Baically, csegSearch   transforms the keywords and  gives them the correct syntax to be used with the predicate CONTAINS of the Sharepoint searches..&lt;/p></description></item><item><title>Loading pages in an iframe</title><link>https://blog.romheat.net/posts/2005/05_07_26_loading_in_iframe/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_07_26_loading_in_iframe/</guid><description>&lt;p>Uno de los problemas con los que me he encontrado cuando se cargan documentos html en una biblioteca de documentos es que cuando Sharepoint indexa el contenido de dichos documentos, al cárgalos  se pierde toda la estética del portal, esto también ocurre cuando abrimos los documentos desde una biblioteca de documentos.&lt;/p>
&lt;p>&lt;img src="https://web.archive.org/web/20080216182515im_/http://www.ideseg.com/content/binary/r_SharepointIFrameContent.jpg" alt="">&lt;/p>
&lt;p>Por lo general estos documentos los cargamos dentro de un webpart de contenido para que el usuario pueda navegar por estas páginas de manera que lo ideal sería que el documento se visualizará en el site del cual proviene.&lt;/p></description></item><item><title>Sharepoint – csegWebContent webpart</title><link>https://blog.romheat.net/posts/2005/05_05_26_csegwebcontent_webpart/</link><pubDate>Thu, 26 May 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_05_26_csegwebcontent_webpart/</guid><description>&lt;p>This weekend I have been working in some improvements of the page viewer webpart and this is the result&lt;/p>
&lt;p>&lt;strong>New features&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Control height of webpart&lt;/li>
&lt;li>ICellConsummer Interface (to get an URL from another webpart)&lt;/li>
&lt;li>AutoLoad if main page pass an URL in Load param&lt;/li>
&lt;/ul>
&lt;h2 id="control-height">Control height.&lt;/h2>
&lt;p>This webpart use all client height area by default less  115 pixels used by site header. You can adjust this in the cssWebContent properties.&lt;/p></description></item><item><title>Talking SOAP Sharepoint</title><link>https://blog.romheat.net/posts/2005/05_05_10_talking_soap_sharepoint/</link><pubDate>Tue, 10 May 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_05_10_talking_soap_sharepoint/</guid><description>&lt;p>Outlook integration with Sharepoint, is not bad, but it could be better. Sharepoint Event and Contact lists has a decent integration in Sharepoint, but when I create a new customized list, I don´t have any link to Outlook.&lt;/p>
&lt;p>Thinking about this, I need to be able to pass data of my customized forms in outlook to sharepoint and viceversa.&lt;/p>
&lt;p>Working arround the problem, I have created a Outlook form with such fields that one of my sharepoint list, now the problem is how to send this form data from Outlook to Sharepoint. After creating the form the only thing that it knew clearly it was that it had to use the Web services of sharepoint to send the data.&lt;/p></description></item><item><title>csegPSSearch webpart</title><link>https://blog.romheat.net/posts/2005/05_05_09_csegpssearch_webpart/</link><pubDate>Mon, 09 May 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_05_09_csegpssearch_webpart/</guid><description>&lt;h2 id="sharepoint--csegpssearch-webpart">Sharepoint – csegPSSearch webpart&lt;/h2>
&lt;p>csegPSSearch is a webpart to include custom web sharepoint queries in your portal in a easy way. First, you need to be familiarized with the PSSearch syntax (&lt;a href="https://web.archive.org/web/20160423181639/http://www.microsoft.com/downloads/details.aspx?FamilyID=D6A10783-A4E4-4463-8444-F88BE48760B3&amp;amp;displaylang=en" target="_blank">Sharepoint query syntax&lt;/a>)&lt;/p>
&lt;h2 id="properties">properties&lt;/h2>
&lt;ul>
&lt;li>&lt;em>PSSearch Query&lt;/em>: Your custom query.&lt;/li>
&lt;li>&lt;em>XSL&lt;/em>: The xsl to render the results.&lt;/li>
&lt;li>&lt;em>MaxRows:&lt;/em> Maximun number of rows to return by the query.&lt;/li>
&lt;li>&lt;em>DebugXML&lt;/em>: If checked show the xml results.&lt;/li>
&lt;li>&lt;em>DebugQuery:&lt;/em> Show the query.&lt;/li>
&lt;/ul>
&lt;p>The query has an special value %TEXT% that it can be replaced if the webpart is connected to another webpart with a cell provider interface. Included with this webpart there is a simple webpart with a input box provider interface called csegInputBoxProvider. You can connect both webparts to make your custom queries.&lt;/p></description></item><item><title>SharePoint on PocketPC</title><link>https://blog.romheat.net/posts/2005/05_04_27_sharepoint_pocketpc/</link><pubDate>Wed, 27 Apr 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_04_27_sharepoint_pocketpc/</guid><description>&lt;h2 id="sharepoint--pocketpc-sharepoint-list-explorer">Sharepoint – PocketPc sharepoint list Explorer&lt;/h2>
&lt;p>I am doing a Pocket PC application to show in the today screen the list content of some lists of my sharepoint server and update it each x minuts.&lt;/p>
&lt;p>Before beginning the development I have made a small example that is interesting similarity to me to place here with the source code since it can be interesant for other developers.&lt;/p>
&lt;p>This simple application, needs the user credentials and the direction of the web service to use, shows all lists available and later it shows the content of the list selected in a datagrid.&lt;/p></description></item></channel></rss>