<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://clarionwiki.com.ar/index.php?action=history&amp;feed=atom&amp;title=Recomendaciones</id>
	<title>Recomendaciones - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://clarionwiki.com.ar/index.php?action=history&amp;feed=atom&amp;title=Recomendaciones"/>
	<link rel="alternate" type="text/html" href="https://clarionwiki.com.ar/index.php?title=Recomendaciones&amp;action=history"/>
	<updated>2026-10-08T04:32:08Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://clarionwiki.com.ar/index.php?title=Recomendaciones&amp;diff=84&amp;oldid=prev</id>
		<title>Jorge Brugger: /* Video tutoriales acerca de Clarion */ Videos ya no están disponibles</title>
		<link rel="alternate" type="text/html" href="https://clarionwiki.com.ar/index.php?title=Recomendaciones&amp;diff=84&amp;oldid=prev"/>
		<updated>2015-03-08T20:06:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Video tutoriales acerca de Clarion: &lt;/span&gt; Videos ya no están disponibles&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 20:06 8 mar 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l316&quot;&gt;Línea 316:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 316:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   MSExcel1.ExecFunction(&amp;#039;A1&amp;#039;, &amp;#039;=date(&amp;#039; &amp;amp; year(FechaClarion) &amp;amp; &amp;#039;,&amp;#039; &amp;amp; month(FechaClarion) &amp;amp; &amp;#039;,&amp;#039; &amp;amp; day(FechaClarion) &amp;amp; &amp;#039;)&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   MSExcel1.ExecFunction(&amp;#039;A1&amp;#039;, &amp;#039;=date(&amp;#039; &amp;amp; year(FechaClarion) &amp;amp; &amp;#039;,&amp;#039; &amp;amp; month(FechaClarion) &amp;amp; &amp;#039;,&amp;#039; &amp;amp; day(FechaClarion) &amp;amp; &amp;#039;)&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Video tutoriales acerca de Clarion =&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Serie de videos publicados en YouTube. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Autor: Eberto Barrios Romo&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Efecto &#039;GreenBar&#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http://www.youtube.com/watch?v=QgOylZBHbVs&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Uso de &quot;List Format&quot; en un Browse&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http://www.youtube.com/watch?v=hO2mfSz7VHc&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Imprimiendo el resultado de una consulta&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http://www.youtube.com/watch?v=QgOylZBHbVs&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jorge Brugger</name></author>
	</entry>
	<entry>
		<id>https://clarionwiki.com.ar/index.php?title=Recomendaciones&amp;diff=83&amp;oldid=prev</id>
		<title>Jorge Brugger en 00:36 8 mar 2015</title>
		<link rel="alternate" type="text/html" href="https://clarionwiki.com.ar/index.php?title=Recomendaciones&amp;diff=83&amp;oldid=prev"/>
		<updated>2015-03-08T00:36:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 00:36 8 mar 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot;&gt;Línea 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Para mas detalles, ver .\docs\FAQsTips&amp;amp;Tricks.pdf el tema &amp;quot;How to Use Windows DLLs NOT Created in Clarion&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Para mas detalles, ver .\docs\FAQsTips&amp;amp;Tricks.pdf el tema &amp;quot;How to Use Windows DLLs NOT Created in Clarion&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Si no tiene ese archivo, lo puede bajar desde:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[http://www.evolutionconsulting.com.ar/downloads/documentos/faqs.zip Clarion6 FAQs]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l43&quot;&gt;Línea 43:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Obviamente, hacer un backup primero porque esto es una opración &amp;quot;peligrosa&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Obviamente, hacer un backup primero porque esto es una opración &amp;quot;peligrosa&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;En la sección de [http://www.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;evolutionconsulting.com.ar&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;espanol&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;downloads.html &lt;/del&gt;Downloads] el documento de migración de TPS a SQL se basa en esta técnica para modificar el DCT.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;En la sección de [http://www.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;templatesclarion&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;download&lt;/ins&gt;/ Downloads] el documento de migración de TPS a SQL se basa en esta técnica para modificar el DCT.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jorge Brugger</name></author>
	</entry>
	<entry>
		<id>https://clarionwiki.com.ar/index.php?title=Recomendaciones&amp;diff=12&amp;oldid=prev</id>
		<title>Jorge Brugger: Página creada con «&#039;&#039;&#039;Recomendaciones y Trucos que nos pueden evitar dolores de cabeza&#039;&#039;&#039; = Versión Demo (básica) = Poner este embed global en un par de tablas importantes  Global Embeds   ...»</title>
		<link rel="alternate" type="text/html" href="https://clarionwiki.com.ar/index.php?title=Recomendaciones&amp;diff=12&amp;oldid=prev"/>
		<updated>2012-07-04T17:14:27Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «&amp;#039;&amp;#039;&amp;#039;Recomendaciones y Trucos que nos pueden evitar dolores de cabeza&amp;#039;&amp;#039;&amp;#039; = Versión Demo (básica) = Poner este embed global en un par de tablas importantes  Global Embeds   ...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Recomendaciones y Trucos que nos pueden evitar dolores de cabeza&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
= Versión Demo (básica) =&lt;br /&gt;
Poner este embed global en un par de tablas importantes&lt;br /&gt;
 Global Embeds&lt;br /&gt;
    Abc Objects&lt;br /&gt;
        File Managers&lt;br /&gt;
            File Manager for YourFile&lt;br /&gt;
                Insert - Before Parent Call&lt;br /&gt;
 IF RECORDS(SELF.FILE)&amp;gt; 10&lt;br /&gt;
  MESSAGE(&amp;#039;Demo Version&amp;#039;)&lt;br /&gt;
  RETURN LEVEL:FATAL&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;br /&gt;
&lt;br /&gt;
= Obtener un total general (al final) en un Reporte =&lt;br /&gt;
 Lo mas facil es armar un break group sobre una variable que no cambie nunca,&lt;br /&gt;
 (puede ser cualquier variable global, por ejemplo)&lt;br /&gt;
 Luego pones los totales en un group footer de este break y listo.&lt;br /&gt;
 Como la variable nunca cambia (puede ser una global por ejemplo) solo se&lt;br /&gt;
 imprime el group footer al final del reporte.&lt;br /&gt;
 Tambien podria usarse el Group Header de ese break como &amp;quot;caratula&amp;quot; del reporte&lt;br /&gt;
[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;br /&gt;
&lt;br /&gt;
= Usar DLLs no creadas en Clarion =&lt;br /&gt;
Para Usar DLLs no creadas en Clarion, hay que seguir los siguientes pasos:&lt;br /&gt;
 - Crear los prototipos equivalentes en Clarion&lt;br /&gt;
 para esto hay que averiguar cuales son los prototipos originales (en c, por ej.)&lt;br /&gt;
 y ver la equivalencia de tipos entre Clarion, C y  o C++&lt;br /&gt;
 - Usar el Libmaker para la creacion de una Clarion Library (.LIB File) para la DLL&lt;br /&gt;
 - Incluir el .LIB File al proyecto&lt;br /&gt;
&lt;br /&gt;
Para mas detalles, ver .\docs\FAQsTips&amp;amp;Tricks.pdf el tema &amp;quot;How to Use Windows DLLs NOT Created in Clarion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Si no tiene ese archivo, lo puede bajar desde:&lt;br /&gt;
[http://www.evolutionconsulting.com.ar/downloads/documentos/faqs.zip Clarion6 FAQs]&lt;br /&gt;
&lt;br /&gt;
[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;br /&gt;
&lt;br /&gt;
= Modificar código en múltiples embeds, o varias tablas del DCT =&lt;br /&gt;
Se puede exportar la aplicación o el DCT a Texto (app.TXA) modificar el texto con un buen editor (yo recomiendo el textpad) y luego importar de nuevo.&lt;br /&gt;
&lt;br /&gt;
Obviamente, hacer un backup primero porque esto es una opración &amp;quot;peligrosa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
En la sección de [http://www.evolutionconsulting.com.ar/espanol/downloads.html Downloads] el documento de migración de TPS a SQL se basa en esta técnica para modificar el DCT.&lt;br /&gt;
&lt;br /&gt;
[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;br /&gt;
&lt;br /&gt;
= Deshabilitar el PopUp en un control TEXT =&lt;br /&gt;
Simplemente asignar la Key MouseRight al control TEXT&lt;br /&gt;
&lt;br /&gt;
= Desplegar una opción de menú desde un botón =&lt;br /&gt;
Pónle un hotkey al menu, por ejemplo:&lt;br /&gt;
 Menu Text: &amp;amp;Browse&lt;br /&gt;
Luego en el botón&lt;br /&gt;
 PRESSKEY(AltB)&lt;br /&gt;
&lt;br /&gt;
[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;br /&gt;
&lt;br /&gt;
= Obtener los diferentes elementos del path =&lt;br /&gt;
Global Embeds - Inside Global Map&lt;br /&gt;
 Include(&amp;#039;clib.clw&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
En el embed:&lt;br /&gt;
 X# = FnSplit(LOC:Path,LOC:Drive,LOC:Dir,LOC:File,LOC:Ext)&lt;br /&gt;
 DISPLAY&lt;br /&gt;
&lt;br /&gt;
Las variables locales son todas CSTRING(256)&lt;br /&gt;
Por ejemplo para saber solo el nombre del archivo se usaria LOC:File &amp;amp; LOC:Ext&lt;br /&gt;
&lt;br /&gt;
[mailto:Fernando_Cerini@hotmail.com Fernando Cerini]&lt;br /&gt;
&lt;br /&gt;
= Conversión de Archivos =&lt;br /&gt;
1) Tenés que tener un diccionario aparte, en principio vacio. Yo lo llamo &lt;br /&gt;
conversiones.dct.&lt;br /&gt;
&lt;br /&gt;
2) Abrís ambos DCT. Te parás en la definición que querés convertir y &lt;br /&gt;
apretás &amp;quot;copiar&amp;quot;. Te parás en el conversiones.dct y apretás &amp;quot;pegar&amp;quot;. A &lt;br /&gt;
este archivo pegado lo renombrás con la fecha (por ejemplo, si mi archivo &lt;br /&gt;
a convertir se llama CLIENTES, en conversiones lo pego como CLIENTES_&lt;br /&gt;
050328).&lt;br /&gt;
&lt;br /&gt;
3) Hacés todos los cambios que necesites en la definición de tu archivos &lt;br /&gt;
CLIENTES. Acá ya podés recompilar todo tu sistema.&lt;br /&gt;
&lt;br /&gt;
4) Cerrá tu diccionario, dejá abierto Conversiones.dct. Seleccioná &lt;br /&gt;
&amp;quot;convert&amp;quot; el archivo, te pide el path al archivo y primero te hace un &lt;br /&gt;
&amp;quot;browse&amp;quot; sobre el mismo, de ahí seleccionás el menú &amp;quot;File&amp;quot;, &amp;quot;Convert &lt;br /&gt;
File&amp;quot; y te abre una ventanita.&lt;br /&gt;
&lt;br /&gt;
5) Acá, en target dictionary elegís tu DCT, el que tiene la definición &lt;br /&gt;
ahora modificada (Acordate que estás en el conversiones.dct).&lt;br /&gt;
&lt;br /&gt;
6) En target structure, buscás en tu DCT el nombre del archivo &lt;br /&gt;
convertido.&lt;br /&gt;
&lt;br /&gt;
7) En Generated source, tipeá algo que tenga sentido: yo voy numerando &lt;br /&gt;
mis programas conversores, así que voy poniendo algo como CONV0001, &lt;br /&gt;
CONV0002, etc. Fijate bien el path donde lo metés.&lt;br /&gt;
&lt;br /&gt;
8) Si no salió solo, salí del browser, cerrá todos los DCT.&lt;br /&gt;
&lt;br /&gt;
9) Andá por &amp;quot;File&amp;quot;, &amp;quot;Change directory&amp;quot; y cambiate al directorio donde &lt;br /&gt;
grabaste el fuente del conversor. Yo uso un subdirectorio &amp;quot;pasa&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
10) Andá a &amp;quot;File&amp;quot;, &amp;quot;Open&amp;quot;, elegí &amp;quot;Clarion source&amp;quot;, y abrí el programa &lt;br /&gt;
conversor.&lt;br /&gt;
&lt;br /&gt;
11) Andá a &amp;quot;Project&amp;quot;, &amp;quot;Set&amp;quot; y seleccioná el archivo de proyecto que tiene &lt;br /&gt;
el mismo nombre que el fuente del conversor.&lt;br /&gt;
&lt;br /&gt;
12) Editale lo que quieras al programa conversor. Acá por ejemplo a veces &lt;br /&gt;
cambio el directorio de salida, o ajusto la ventana de display, le pongo &lt;br /&gt;
mensajes o hago cualquier asignación que sea necesaria.&lt;br /&gt;
&lt;br /&gt;
13) Compilá, correlo y listo. Te queda un ejecutable autónomo que podés &lt;br /&gt;
correr en el cliente llamándolo a mano, desde un instalador o desde tu &lt;br /&gt;
propia aplicación.&lt;br /&gt;
&lt;br /&gt;
14) Ventaja adicional: Si tu cliente guarda backups de los archivos, y &lt;br /&gt;
por la circunstancia que sea tiene que reprocesar información de un &lt;br /&gt;
archivo viejo, se pueden correr todos los programas de conversión que &lt;br /&gt;
corresponden a ese archivo, en secuencia, para llevar su formato al &lt;br /&gt;
actual.&lt;br /&gt;
&lt;br /&gt;
15) Otra ventaja: este método sirve para cualquier base ISAM, para SQL &lt;br /&gt;
hay que hacer algunos pasos más pero básicamente se puede hacer lo mismo.&lt;br /&gt;
&lt;br /&gt;
Finalmente, te digo que esto lleva muchísimo más tiempo explicarlo y &lt;br /&gt;
aprenderlo que hacerlo. Cuando te digo que todo esto lleva 1 minuto, es &lt;br /&gt;
en serio, es lo que lleva cuando ya sabés cómo hacerlo de memoria.&lt;br /&gt;
&lt;br /&gt;
Una acotación, con este método te van quedando en el conversiones.dct &lt;br /&gt;
todas las definiciones históricas de tus archivos, algo que puede llegar &lt;br /&gt;
a ser muy últil, mientras que en tu dct de &amp;quot;trabajo&amp;quot; sólo está la &lt;br /&gt;
definición &amp;quot;actual&amp;quot; y no hay nada que haga ruido.&lt;br /&gt;
&lt;br /&gt;
Saludos,&lt;br /&gt;
Jorge A. Lavera&lt;br /&gt;
&lt;br /&gt;
= Encriptación de TPS =&lt;br /&gt;
Sobre el Owner Name y su seguridad o capacidad de encriptación&lt;br /&gt;
depende mas que nada del  planeamiento que a la herramienta en sí&lt;br /&gt;
misma&lt;br /&gt;
&lt;br /&gt;
Caso 1 :  Owner Name : &amp;quot; Tu palabra clave &amp;quot;&lt;br /&gt;
&lt;br /&gt;
Este caso es el mas vulnerable de todos no se demora mas de &lt;br /&gt;
una hora en buscarlo y encontrarlo a simple vista , con la tecnología &lt;br /&gt;
adecuada son solo minutos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Caso 2 :  Owner Name : &amp;quot; ©}êô?Ñé? &amp;quot; ( Carcateres ALT + xxxx)&lt;br /&gt;
&lt;br /&gt;
Este caso ya comienza a complicar el nivel de búsqueda dentro &lt;br /&gt;
del exe porque no se encuentra relación y lleva a la confusión con &lt;br /&gt;
los otros caracteres dentro del exe y todos los hexadecimales, pero es &lt;br /&gt;
vulnerable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Caso 3 :  Owner Name : &amp;quot; VGLO:xxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Aca el valor del Owler Name está dentro de una variable &lt;br /&gt;
global, esa variable global  puede traer la informacion desde otro lado , &lt;br /&gt;
archivo , otra variable,etc. Este método es el mas complicado de todos para aquel que &lt;br /&gt;
quiera romper el TPS.&lt;br /&gt;
&lt;br /&gt;
Para mi el mejor caso de seguridad en TPS&amp;#039;s es el 3, por el nivel de &lt;br /&gt;
dificultad que presenta y ante un intento de vulnerabilidad por fuerza bruta siempre devuelve un &lt;br /&gt;
valor 0.&lt;br /&gt;
Es muy importante tener bien documentado lo realizado utilizando el caso 3 &lt;br /&gt;
porque de perder la información, el diseño, etc. el mismo desarrollador puede quedar &lt;br /&gt;
preso y victima de su propia seguridad&lt;br /&gt;
&lt;br /&gt;
Estos son lo niveles que se pueden manejar desde el IDE de desarrollo de &lt;br /&gt;
Clarion, pero tambien se le pueden agregar elementos externos.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo utilizando el  Caso 3 + algún compactador de exes ( ASPACK ) &lt;br /&gt;
realmente se hace casi imposible encontrar las cabeceras de definición de las tablas , &lt;br /&gt;
etc.etc. .&lt;br /&gt;
&lt;br /&gt;
Remarco de lo CASI , porque se puede vulnerar, pero ahi ya comienzan a medir &lt;br /&gt;
otros parámetros como ser el costo/beneficio de invertirle horas y horas o días y &lt;br /&gt;
días  a ese intento de poder vulnerar el archivo , etc, etc, etc. el cual también está &lt;br /&gt;
relacionado al hardware y su capacidad de procesamiento , etc.&lt;br /&gt;
&lt;br /&gt;
Espero que les sirva.&lt;br /&gt;
&lt;br /&gt;
Ing. Fabian Coria&lt;br /&gt;
&lt;br /&gt;
Consultor Seguridad Informatica, Capital Soft&lt;br /&gt;
&lt;br /&gt;
= Diferir la carga de un browse ABC =&lt;br /&gt;
&lt;br /&gt;
Los browse ABC se cargan automáticamente al abrir la ventana. Pero muchas veces se desea controlar el momento de la carga porque se utilizan filtros que deben ser ingresados por el usuario (por ejemplo, un rango de fechas).  Es un tema particularmente importante cuando se trata de browses “file loaded”, o cuando se trabaja sobre MySQL (al utilizar este motor todos los browse son “file loaded”).&lt;br /&gt;
&lt;br /&gt;
Para diferir la carga de un browse ABC hay dos posiblidades.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A. Mediante &amp;#039;&amp;#039;BrowseClass.ActiveInvisible&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Esta técnica consiste en “esconder” el ListBox mediante HIDE y apagar la propiedad &amp;#039;&amp;#039;BrowseClass.ActiveInvisible&amp;#039;&amp;#039;. Cuando se quiere cargar el browse se quita la propiedad HIDE al ListBox.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes:&lt;br /&gt;
&lt;br /&gt;
1. En el Window Formatter encender la propiedad HIDE (o utilizar el comando HIDE en el código del procedimiento) para el control correspondiente al ListBox del browse.&lt;br /&gt;
&lt;br /&gt;
2. En &amp;#039;&amp;#039;WindowManager.Init&amp;#039;&amp;#039;, con prioridad 8150, agregar el siguiente código:&lt;br /&gt;
 BRW1.ActiveInvisible = False	!BRW1 es el nombre del objeto Browse&lt;br /&gt;
&lt;br /&gt;
3. Cuando se quiera cargar y mostrar el browse, agregar el siguiente código:&lt;br /&gt;
 ?Browse:1{PROP:Hide} = False	!?Browse:1 es el control del ListBox&lt;br /&gt;
 ThisWindow.Reset(True)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;B. Derivando la BrowseClass&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Esta técnica tiene la ventaja de que no es necesario que el ListBox esté oculto.  Consiste en agregar una nueva propiedad a la clase BrowseClass que controle cuándo se desea cargar el browse. Según el estado de esta propiedad se omite o se ejecuta el método &amp;#039;&amp;#039;BrowseClass.ResetQueue&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes:&lt;br /&gt;
&lt;br /&gt;
1. En BrowseBoxBehavior, en la solapa Classes, encender la opción “Derive?”&lt;br /&gt;
&lt;br /&gt;
2. En New Class Properties agregar una propiedad de tipo BYTE. Para seguir con la nomenclatura en inglés del resto de la clase, la llamaremos “WaitToFill”&lt;br /&gt;
 Property Name: 	WaitToFill&lt;br /&gt;
 Property Type: 	BYTE&lt;br /&gt;
&lt;br /&gt;
3. En &amp;#039;&amp;#039;WindowManager.Init&amp;#039;&amp;#039;, con prioridad 8150, agregar el siguiente código:&lt;br /&gt;
 BRW1.WaitToFill = True	!BRW1 es el nombre del objeto Browse&lt;br /&gt;
&lt;br /&gt;
4. En &amp;#039;&amp;#039;BrowseClass.ResetQueue&amp;#039;&amp;#039;, con prioridad 2500 (antes del ParentCall), agregar el siguiente código:&lt;br /&gt;
 IF SELF.WaitToFill&lt;br /&gt;
    RETURN&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
5. Cuando se quiera cargar y mostrar el browse, agregar el siguiente código:&lt;br /&gt;
 BRW1.WaitToFill = False	!BRW1 es el nombre del objeto browse&lt;br /&gt;
 ThisWindow.Reset(True)&lt;br /&gt;
&lt;br /&gt;
Si bien esto mismo se podría lograr con una variable, con una nueva propiedad se puede administrar más de un browse en el mismo procedimiento, aunque tengan diferente comportamiento.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Otras posibilidades&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Como solución elemental esta técnica es suficiente. Una solución más completa sería derivar directamente la clase &amp;#039;&amp;#039;BrowseClass&amp;#039;&amp;#039; y utilizar la clase derivada en lugar de la clase original. El método &amp;#039;&amp;#039;ResetQueue&amp;#039;&amp;#039; de la nueva clase haría su propia omisión en base al valor de la propiedad &amp;#039;&amp;#039;WaitToFill&amp;#039;&amp;#039;. También se podría agregar un método para encender y apagar la propiedad &amp;#039;&amp;#039;WaitToFill&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
La solución final consistiría en escribir un template que se encargue de implementar la técnica.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Daniel Ruzo [http://www.amazingGUI.com (amazingGUI)]&lt;br /&gt;
&lt;br /&gt;
= Identificación ÚNICA =&lt;br /&gt;
En ocasiones el campo de identificación de nuestros archivos no son suficiente con que éste sea autonumerado de forma secuencial.&lt;br /&gt;
Por ejemplo tener un pedido en un archivo y los productos del pedido en otro archivo, podría ocurrir que ambos archivos sean reemplazados por backups de diferentes fechas (ej. pedidos mas viejo que item) asi cuando abrimos un nuevo pedido éste ya poseerá productos. Otro ejemplo es que tengamos varias bases distribuidas en diferentes máquinas (no en red) y éstas se vuelcan sobre un solo grupo de archivos via internet (o cualquier otro medio) si son autonumeradas existirán mas de una ID con el mismo número.&lt;br /&gt;
Para solucionar esto pruebe lo siguiente:&lt;br /&gt;
 En el Campo del archivo que sirve de Identificación Ej. ClienteNumero&lt;br /&gt;
 colocar en INITIAL VALUE colocar la función &amp;#039;&amp;#039;GeneraID()&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Crear la función GeneraID&lt;br /&gt;
  loc:IDU   STRING(20)&lt;br /&gt;
  CODE&lt;br /&gt;
  !Identificación Única&lt;br /&gt;
  loc:IDU = FORMAT(TODAY(),@d11) &amp;amp; FORMAT(CLOCK(),@t5) &amp;amp; FORMAT(RANDOM(0,999),@n03)&lt;br /&gt;
  RETURN loc:IDU&lt;br /&gt;
&lt;br /&gt;
un saludo &lt;br /&gt;
DIPS&lt;br /&gt;
&lt;br /&gt;
= Parámetros en procedimientos llamados en threads nuevos =&lt;br /&gt;
Si quiero mandar parámetros a un procedimiento llamado con START (es decir, en un thread nuevo), puedo mandar solo hasta 3 parámetros y todos deben estar definidos como string en el prototipo del procedimiento. Internamente puedo convertir esos parámetros al tipo que necesito en variables locales al procedimiento.&lt;br /&gt;
&lt;br /&gt;
= Meses, días, botones en Español =&lt;br /&gt;
En el main, en el embed &amp;quot;Initialize the procedure&amp;quot; colocar:&lt;br /&gt;
 LOCALE(&amp;#039;CLAMONTH&amp;#039;,&amp;#039;Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre&amp;#039;)&lt;br /&gt;
 LOCALE(&amp;#039;CLAMON&amp;#039;,&amp;#039;Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic&amp;#039;)&lt;br /&gt;
 LOCALE(&amp;#039;CLACOLSEQ&amp;#039;,&amp;#039;AÁÄÅÆaàáâäåæBbCÇcçDdEÉeèéêëFfGgHhIÍiìíîïJjKkLlMmNnÑñOÓÖoòóôöPpQqRrSsßTtUÚÜuùúûüVvWwXxYyÿZz&amp;#039;)&lt;br /&gt;
 LOCALE(&amp;#039;CLABUTTON&amp;#039;,&amp;#039;Aceptar,&amp;amp;Sí,&amp;amp;No,&amp;amp;Abortar,&amp;amp;Reintentar,&amp;amp;Ignorar,Cancelar,&amp;amp;Ayuda&amp;#039;)&lt;br /&gt;
 LOCALE(&amp;#039;CLACASE&amp;#039;,&amp;#039;ÄÁÅÆÇÉÍÑÓÖÚÜ,äáåæçéíñóöúü&amp;#039;)&lt;br /&gt;
 LOCALE(&amp;#039;CLAAMPM&amp;#039;,&amp;#039;a.m.,p.m.&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
= Consultas SQL que en el Motor corren rapido pero en Clarion NO =&lt;br /&gt;
Un truco fácil pero funcional (sólo válido para SQL Server).&lt;br /&gt;
&lt;br /&gt;
Suponiendo que la instrucción original sea:&lt;br /&gt;
&lt;br /&gt;
  Select P.Codigo, P.Descripcion, K.Entradas, K.Salidas, K.Valor_Entradas, K.Valor_Salidas&lt;br /&gt;
  From Productos P&lt;br /&gt;
  Inner Join Kardex K On P.Id_Producto = K.Id_Producto&lt;br /&gt;
  Where P.Codigo = &amp;#039;AAA001&amp;#039; And K.Fecha = &amp;#039;01-10-2006&amp;#039;&lt;br /&gt;
  Order By K.Fecha, P.Codigo&lt;br /&gt;
&lt;br /&gt;
Como &amp;#039;&amp;#039;&amp;#039;CLARION&amp;#039;&amp;#039;&amp;#039; genera un cursor puede que en ocaciones dicho query sea muy pesado y el cursor tarde mucho en resolverlo, para ello simplemente agrega lo siguiente:&lt;br /&gt;
&lt;br /&gt;
  Select P.Codigo, P.Descripcion, K.Entradas, K.Salidas, K.Valor_Entradas, K.Valor_Salidas&lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;Into #TempTable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  From Productos P&lt;br /&gt;
  Inner Join Kardex K On P.Id_Producto = K.Id_Producto&lt;br /&gt;
  Where P.Codigo = &amp;#039;AAA001&amp;#039; And K.Fecha = &amp;#039;01-10-2006&amp;#039;&lt;br /&gt;
  Order By K.Fecha, P.Codigo&lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;Select * From #TempTable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta manera todo se realiza en el servidor y solo va a devolver los datos ya procesados en el #TempTable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Este truco se lo agradezco a mi amigo Juan Manuel Medina.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Javier A. Junca Barreto. [http://www.sicya.com (SICyA Software Ltda.)]&lt;br /&gt;
&lt;br /&gt;
= Exportar fechas a Excel =&lt;br /&gt;
&lt;br /&gt;
Para exportar campos fecha a Excel hay que mandarlos con format(campo, @d01b), de lo contrario Excel interpreta aleatoriamente meses como días, días como meses, etc.&lt;br /&gt;
&lt;br /&gt;
De todas maneras, que el mecanismo comentado arriba funcione depende de la configuración de Excel. Otra opción es usar la función “date” de Excel, y enviar por separado año, mes y día. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
  MSExcel1.ExecFunction(&amp;#039;A1&amp;#039;, &amp;#039;=date(&amp;#039; &amp;amp; year(FechaClarion) &amp;amp; &amp;#039;,&amp;#039; &amp;amp; month(FechaClarion) &amp;amp; &amp;#039;,&amp;#039; &amp;amp; day(FechaClarion) &amp;amp; &amp;#039;)&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
= Video tutoriales acerca de Clarion =&lt;br /&gt;
&lt;br /&gt;
Serie de videos publicados en YouTube. &lt;br /&gt;
&lt;br /&gt;
Autor: Eberto Barrios Romo&lt;br /&gt;
&lt;br /&gt;
Efecto &amp;#039;GreenBar&amp;#039;&lt;br /&gt;
&lt;br /&gt;
http://www.youtube.com/watch?v=QgOylZBHbVs&lt;br /&gt;
&lt;br /&gt;
Uso de &amp;quot;List Format&amp;quot; en un Browse&lt;br /&gt;
&lt;br /&gt;
http://www.youtube.com/watch?v=hO2mfSz7VHc&lt;br /&gt;
&lt;br /&gt;
Imprimiendo el resultado de una consulta&lt;br /&gt;
&lt;br /&gt;
http://www.youtube.com/watch?v=QgOylZBHbVs&lt;/div&gt;</summary>
		<author><name>Jorge Brugger</name></author>
	</entry>
</feed>