<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diseño | Aliquo Software</title>
	<atom:link href="https://www.aliquo.software/wiki/categor%C3%ADa/faqs/faqs-crystal/faqs-crystal-diseno/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.aliquo.software</link>
	<description>Software de gestión de negocios</description>
	<lastBuildDate>Wed, 25 Jun 2025 10:28:27 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.aliquo.software/wp-content/uploads/2022/03/cropped-Q-500X500-32x32.png</url>
	<title>Diseño | Aliquo Software</title>
	<link>https://www.aliquo.software</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Convertir a color un valor hexadecimal en Crystal Report</title>
		<link>https://www.aliquo.software/wiki/convertir-a-color-un-valor-hexadecimal-en-crystal-report/</link>
		
		<dc:creator><![CDATA[Jose Palomo]]></dc:creator>
		<pubDate>Wed, 25 Jun 2025 10:28:22 +0000</pubDate>
				<guid isPermaLink="false">https://www.aliquo.software/?post_type=epkb_post_type_1&#038;p=53356</guid>

					<description><![CDATA[En Crystal Reports podemos convertir un valor hexadecimal a un color, para ello crearemos dos funciones personalizadas mediante los siguientes pasos: En el taller de fórmulas de Crystal Report se deben crear las funciones personalizadas: Primero crearemos la función&#160;ConvertiraDecimal&#160;que nos servirá para convertir valores hexadecimales a valores, siendo el código fuente de la función: Después [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En Crystal Reports podemos convertir un valor hexadecimal a un color, para ello crearemos dos funciones personalizadas mediante los siguientes pasos:</p>



<p class="wp-block-paragraph">En el taller de fórmulas de Crystal Report se deben crear las funciones personalizadas:</p>



<figure class="wp-block-image size-full"><a href="https://www.aliquo.software/wp-content/uploads/2022/06/image-159.png"><img fetchpriority="high" decoding="async" width="993" height="442" src="https://www.aliquo.software/wp-content/uploads/2022/06/image-159.png" alt="" class="wp-image-59646" srcset="https://www.aliquo.software/wp-content/uploads/2022/06/image-159.png 993w, https://www.aliquo.software/wp-content/uploads/2022/06/image-159-980x436.png 980w, https://www.aliquo.software/wp-content/uploads/2022/06/image-159-480x214.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 993px, 100vw" /></a></figure>



<p class="wp-block-paragraph"> <br>Primero crearemos la función&nbsp;<em>ConvertiraDecimal</em>&nbsp;que nos servirá para convertir valores hexadecimales a valores, siendo el código fuente de la función:</p>



<pre class="wp-block-code"><code>Function ConvertirADecimal (HexToConvert as string)
    If Len(HexToConvert) > 0 Then
        Dim hexValue As String
        hexValue = Right(HexToConvert, Len(HexToConvert)-2)

        Dim hexValueLen As Number
        hexValueLen = Len(hexValue)

        Dim i As Number
        Dim decimalResult As Number
        decimalResult = 0

        For i = 0 To hexValueLen
            Select Case Mid(hexValue, i+1, 1)     
             Case "a"
              decimalResult = decimalResult+10*(16 ^ (len(hexValue)-(i+1)))
             Case "b" 
              decimalResult = decimalResult+11*(16 ^ (len(hexValue)-(i+1)))
             Case "c" 
              decimalResult = decimalResult+12*(16 ^ (len(hexValue)-(i+1)))
             Case "d" 
              decimalResult = decimalResult+13*(16 ^ (len(hexValue)-(i+1)))
             Case "e" 
              decimalResult = decimalResult+14*(16 ^ (len(hexValue)-(i+1)))
             Case "f"  
              decimalResult = decimalResult+15*(16 ^ (len(hexValue)-(i+1)))
             Case Else 
              decimalResult = decimalResult+Val(Mid (hexValue,i+1,1))*(16 ^ (len(hexValue)-(i+1)))
            End Select
       Next i  
    End If 

    ConvertirADecimal = decimalResult
End Function</code></pre>



<p class="wp-block-paragraph"> <br>Después crearemos la función <em>ColorFromHex</em> para convertir el valor hexadecimal en el color, estando compuesto el hexadecimal por cuatro pares de valores equivalentes a los valores de transparencia, rojo, verde y azul. El código de la siguiente función se encargará de generar el color utilizando los valores RGB y desechando el valor de transparencia:</p>



<pre class="wp-block-code"><code>Function ColorFromHex (HexColor as string)
     
 Dim part1 as string
 Dim part2 as string
 Dim part3 as string

 if len(HexColor)>6 then
    HexColor=Right(HexColor,6)
 end if
 
 part1="0x" &amp; Mid(HexColor,1,2)
 part2="0x" &amp; Mid(HexColor,3,2)
 part3="0x" &amp; Right(HexColor,2)
 
 ColorFromHex =Color(ConvertirADecimal(Part1),ConvertirADecimal(Part2),ConvertirADecimal(Part3))

End Function</code></pre>



<p class="wp-block-paragraph"> <br><strong>Ejemplo:</strong> Convertir a decimal&nbsp; FF9ACD32</p>



<p class="wp-block-paragraph">Los dos primeros dígitos se desechan y se convierte a decimal los valores 9A (rojo), CD (verde) y 32 (azul) mostrando como resultado el color:</p>



<figure class="wp-block-image size-full"><a href="https://www.aliquo.software/wp-content/uploads/2022/06/image-160.png"><img decoding="async" width="978" height="555" src="https://www.aliquo.software/wp-content/uploads/2022/06/image-160.png" alt="" class="wp-image-59647" srcset="https://www.aliquo.software/wp-content/uploads/2022/06/image-160.png 978w, https://www.aliquo.software/wp-content/uploads/2022/06/image-160-480x272.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 978px, 100vw" /></a></figure>



<p class="wp-block-paragraph"> <br></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Formato de interpretación HTML en Crystal Report</title>
		<link>https://www.aliquo.software/wiki/formato-de-interpretacion-html/</link>
		
		<dc:creator><![CDATA[Jose Palomo]]></dc:creator>
		<pubDate>Wed, 19 Jul 2023 07:15:02 +0000</pubDate>
				<guid isPermaLink="false">https://www.aliquo.software/?post_type=epkb_post_type_1&#038;p=57433</guid>

					<description><![CDATA[La opción de formato de interpretación de texto HTML admite etiquetas HTML básicas solo para formato de texto. A continuación se muestra la lista de etiquetas HTML compatibles: Los atributos HTML admitidos son: Fuentes: SAP Knowledge Base Article]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">La opción de formato de interpretación de texto HTML admite etiquetas HTML básicas solo para formato de texto.</p>



<p class="wp-block-paragraph">A continuación se muestra la lista de etiquetas HTML compatibles:</p>



<ul class="wp-block-list">
<li>html</li>



<li>body</li>



<li>div (provoca un salto de párrafo)</li>



<li>tr (sólo provoca un salto de párrafo; no conserva la estructura de columnas de una tabla)</li>



<li>span</li>



<li>font</li>



<li>p (provoca un salto de párrafo)</li>



<li>br (provoca un salto de párrafo)</li>



<li>h1 (provoca un salto de párrafo, hace que la fuente esté en negrita y el doble de tamaño predeterminado)</li>



<li>h2 (provoca un salto de párrafo, hace que la fuente esté en negrita y 1,5 veces el tamaño predeterminado)</li>



<li>h3 (provoca un salto de párrafo, pone la fuente en negrita y el tamaño predeterminado de 9/8)</li>



<li>h4 (provoca un salto de párrafo, hace que la fuente esté en negrita)</li>



<li>h5 (provoca un salto de párrafo, pone la fuente en negrita y el tamaño predeterminado de 5/6)</li>



<li>h6 (provoca un salto de párrafo, pone la fuente en negrita y el tamaño predeterminado de 5/8)</li>



<li>center (texto alineado al centro)</li>



<li>big (provoca un salto de párrafo, pone la fuente en negrita y el tamaño predeterminado de 5/8)</li>



<li>small (disminuye el tamaño de fuente en 2 puntos si es de 8 puntos o más)</li>



<li>b (negrita)</li>



<li>i (cursiva)</li>



<li>s (tachado)</li>



<li>strike (tachado)</li>



<li>u (subrayado)</li>
</ul>



<p class="wp-block-paragraph"> <br>Los atributos HTML admitidos son:</p>



<ul class="wp-block-list">
<li>align</li>



<li>face</li>



<li>size</li>



<li>color</li>



<li>font-family</li>



<li>font-size</li>



<li>font-style</li>



<li>font-weight</li>
</ul>



<p class="wp-block-paragraph"> <br></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Fuentes:</p>
<cite><a href="https://userapps.support.sap.com/sap/support/knowledge/en/1217084" target="_blank" rel="noreferrer noopener">SAP Knowledge Base Article</a></cite></blockquote>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo generar códigos de barras Code 39 en Crystal Report</title>
		<link>https://www.aliquo.software/wiki/como-generar-codigos-de-barras-code-39-en-crystal-report/</link>
		
		<dc:creator><![CDATA[Jose Palomo]]></dc:creator>
		<pubDate>Tue, 14 Jun 2022 13:58:40 +0000</pubDate>
				<guid isPermaLink="false">https://www.aliquo.software/?post_type=epkb_post_type_1&#038;p=53385</guid>

					<description><![CDATA[Mediante Crystal Report es posible generar códigos de barras Code 39, aunque para ellos es necesario realizar los siguientes pasos: 1. Descargar e instalar una fuente de código de barras Code 39 en servidor y los equipos desde donde se vayan a imprimir los códigos de barras. 2. En el taller de fórmulas de Crystal [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"> <p>Mediante Crystal Report es posible generar códigos de barras <a href="http://es.wikipedia.org/wiki/Code_39">Code 39</a>, aunque para ellos es necesario realizar los siguientes pasos:</p>   <figure class="wp-block-image"><img decoding="async" class="wp-image-3229" src="https://www.aliquo.software/wp-content/uploads/2010/05/image_30154B84.png" alt=""></figure>   <figure class="wp-block-image"><img decoding="async" class="wp-image-3230" src="https://www.aliquo.software/wp-content/uploads/2010/05/image_4E7F8C6D.png" alt=""></figure>   </p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><p><span style="font-size: revert;">1. Descargar e instalar una fuente de código de barras Code 39 en servidor y los equipos desde donde se vayan a imprimir los códigos de barras.</span></p></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">2. E<span style="font-size: revert;">n el </span><em style="font-size: revert;">taller de fórmulas</em><span style="font-size: revert;"> de Crystal Report, se debe crear una fórmula (por ejemplo CodigoBarras), donde añadiremos un asterisco (*) al inicio y fin del campo o cadena que contenga el código de barras, así la fórmula devolverá una expresión que generará el código de barras:</span> <span style="font-size: revert;"> </span> <figure><img loading="lazy" decoding="async" width="640" height="220" class="alignnone size-full wp-image-3231" src="https://www.aliquo.software/wp-content/uploads/2010/05/image_51454160.png" alt=""></figure></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><p align="justify"><span style="font-size: revert;">3. Por último, diseñaremos el informe insertando la fórmula en la posición que deseemos y estableciéndole la fuente de código de barras Code 39.   </span></p><figure><img loading="lazy" decoding="async" width="640" height="443" class="alignnone size-full wp-image-3232" src="https://www.aliquo.software/wp-content/uploads/2010/05/image_0EE20350.png" alt=""></figure><p align="justify"> </p> </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo generar códigos de barras EAN13 en Crystal Report</title>
		<link>https://www.aliquo.software/wiki/como-generar-codigos-de-barras-ean13-en-crystal-report/</link>
		
		<dc:creator><![CDATA[Jose Palomo]]></dc:creator>
		<pubDate>Tue, 14 Jun 2022 13:55:13 +0000</pubDate>
				<guid isPermaLink="false">https://www.aliquo.software/?post_type=epkb_post_type_1&#038;p=53380</guid>

					<description><![CDATA[Mediante Crystal Report es posible generar códigos de barras EAN13, aunque para ellos es necesario realizar los siguientes pasos: 1. Descargar e instalar la fuente ean13.ttf en servidor y los equipos desde donde se vayan a imprimir los códigos de barras. 2. En el taller de fórmulas de Crystal Report se debe crear una función [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mediante Crystal Report es posible generar códigos de barras <a href="https://www.aliquo.software/?p=103">EAN13</a>, aunque para ellos es necesario realizar los siguientes pasos:</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2010/05/image_4079E4CB.png" alt="" class="wp-image-3242"/></figure>



<p class="wp-block-paragraph"><br>1. <span style="font-size: revert;">Descargar e instalar la fuente </span><a style="font-size: revert;" href="http://download.aliquosoftware.net/documentation/ean13.ttf">ean13.ttf</a><span style="font-size: revert;"> en servidor y los equipos desde donde se vayan a imprimir los códigos de barras.</span><br> <br>2. <span style="font-size: revert;">En el </span><em style="font-size: revert;">taller de fórmulas</em><span style="font-size: revert;"> de Crystal Report se debe crear una función personalizada (por ejemplo </span><em style="font-size: revert;"><em>Generar_EAN13):</em></em> <em style="font-size: revert;"> </em></p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2010/05/image5_1C7E9557.png" alt="" class="wp-image-3244"/></figure>



<p class="wp-block-paragraph"> <br>3<span style="font-size: revert;">. En la función deberemos copiar el código de las <a href="#codigo">funciones de Crystal Report</a>.</span><br>   <br>4. <span style="font-size: revert;">Posteriormente crearemos una fórmula (por ejemplo CodigoBarras) que haga referencia a la función creada, donde le pasaremos como parámetro un campo o una cadena que contenga el código EAN13 y dicha fórmula devolverá una expresión que generará el código de barras:</span> <em style="font-size: revert;"> </em></p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2010/05/image9_2140FD79.png" alt="" class="wp-image-3241"/></figure>



<p class="wp-block-paragraph"> <br>5. <span style="font-size: revert;">Por último, diseñaremos el informe insertando la fórmula en la posición que deseemos y estableciéndole la fuente Code EAN13.</span> <em style="font-size: revert;"> </em></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="640" height="443" src="https://www.aliquo.software/wp-content/uploads/2010/05/image30_7192B91F.png" alt="" class="wp-image-3240" srcset="https://www.aliquo.software/wp-content/uploads/2010/05/image30_7192B91F.png 640w, https://www.aliquo.software/wp-content/uploads/2010/05/image30_7192B91F-300x208.png 300w, https://www.aliquo.software/wp-content/uploads/2010/05/image30_7192B91F-211x146.png 211w, https://www.aliquo.software/wp-content/uploads/2010/05/image30_7192B91F-50x35.png 50w, https://www.aliquo.software/wp-content/uploads/2010/05/image30_7192B91F-576x399.png 576w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>



<h3 class="wp-block-heading" id="codigo"><br>Funciones de Crystal Report</h3>



<pre class="wp-block-code"><code>Function Generar_EAN13(Codigo As String) As String

    ' Esta función permite generar el código de barras para mostrarlo con la fuente EAN13.TTF
    ' - Parametros : código de 12 o 13 dígitos
    ' - Retorno: retorna una cadena que permite representar generar el código de barras con la fuente EAN13.TTF
    '            retorna una cadena vacía si no se puede representar el código de barras

    dim i,  first, checksum as number
    dim code, code13 as string
    dim tableA as boolean

    ' Evaluar los dígitos del código
    If Len(Codigo) = 12 then
        code = Codigo
    ElseIf Len(Codigo) = 13 then
        code = Left(Codigo,12)
    Else
        code = ""
    end If
  
    ' Verificar los dígitos del código
    For i = 1 To LEN(code)
        If Asc(Mid(code, i, 1)) &lt; 48 Or Asc(Mid(code, i, 1)) &gt; 57 Then
            code = ""
            Exit For
        End If
    Next

    ' Chequea los 12 dígitos y cálcula el digito de control
    If Len(code) = 12 Then
        For i = 12 To 1 Step -2
            checksum = checksum + Val(Mid(code, i, 1))
        Next
        checksum = checksum * 3
        For i = 11 To 1 Step -2
            checksum = checksum + Val(Mid(code, i, 1))
        Next
        code = code &amp; ToText((10 - checksum Mod 10) Mod 10,0)

        ' Si el código inicial tenía 13 dígitos comprueba si el nuevo código generado
        ' es igual y en caso contrario no se generar ningún código
        If Len(Codigo)=13 and Codigo&lt;&gt;code then
            code = ""
        end If
    End If

    ' Chequea los 13 dígitos
    If Len(code) = 13 Then
        ' Los primeros 2 dígitos que suelen corresponder al código del país
        code13 = Left(code, 1) &amp; Chr(65 + Val(Mid(code, 2, 1)))
        first = Val(Left(code, 1))

        ' Generar los códigos del primer bloque de dígitos
        For i = 3 To 7
            tableA = False
            Select Case i
                Case 3
                    Select Case first
                        Case 0 To 3
                            tableA = True
                    End Select
                Case 4
                    Select Case first
                        Case 0, 4, 7, 8
                            tableA = True
                    End Select
                Case 5
                    Select Case first
                        Case 0, 1, 4, 5, 9                 
                            tableA = True
                    End Select
                Case 6
                    Select Case first
                        Case 0, 2, 5, 6, 7
                            tableA = True
                    End Select
                Case 7
                    Select Case first
                        Case 0, 3, 6, 8, 9
                            tableA = True
                    End Select
            End Select
            If tableA Then
                code13 = code13 &amp; Chr(65 + Val(Mid(code, i, 1)))
            Else
                code13 = code13 &amp; Chr(75 + Val(Mid(code, i, 1)))
            End If
        Next

        ' Añadir el separador de los bloques
        code13 = code13 &amp; "*"

        ' Generar los códigos del segundo bloque de dígitos
        For i = 8 To 13
            code13 = code13 &amp; Chr(97 + Val(Mid(code, i, 1)))
        Next

        ' Añadir la marca final
        code13 = code13 &amp; "+"
    End If

    Generar_EAN13=code13

End Function</code></pre>



<p class="wp-block-paragraph"><em style="font-size: revert;">Nota: si se utiliza otro nombre de función entonces es necesario cambiarlo en todo el código fuente.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo generar códigos de barras EAN128 en Crystal Report</title>
		<link>https://www.aliquo.software/wiki/como-generar-codigos-de-barras-ean128-en-crystal-report/</link>
		
		<dc:creator><![CDATA[Jose Palomo]]></dc:creator>
		<pubDate>Tue, 14 Jun 2022 13:50:49 +0000</pubDate>
				<guid isPermaLink="false">https://www.aliquo.software/?post_type=epkb_post_type_1&#038;p=53377</guid>

					<description><![CDATA[Mediante Crystal Report es posible generar códigos de barras Code128 y EAN128, aunque para ellos es necesario realizar los siguientes pasos: 1. Descargar e instalar la fuente ean128.ttf en servidor y los equipos desde donde se vayan a imprimir los códigos de barras. 2. En el taller de fórmulas de Crystal Report se deben crear [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mediante Crystal Report es posible generar códigos de barras <a href="https://es.wikipedia.org/wiki/Code_128">Code128</a> y <a href="http://es.wikipedia.org/wiki/GS1-128">EAN128</a>, aunque para ellos es necesario realizar los siguientes pasos:</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2010/05/image_2D33542D.png" alt="" class="wp-image-3250"/></figure>



<p class="wp-block-paragraph"><span style="font-size: revert;"> </span></p>



<p class="wp-block-paragraph">1.<span style="font-size: revert;"><span style="font-size: revert; background-color: rgb(255, 255, 255);"> Descargar e instalar la fuente </span><a style="font-size: revert; background-color: rgb(255, 255, 255);" href="http://download.aliquosoftware.net/documentation/ean128.ttf">ean128.ttf</a><span style="font-size: revert; background-color: rgb(255, 255, 255);"> en servidor y los equipos desde donde se vayan a imprimir los códigos de barras.</span></span><br> <br>2. <span style="font-size: revert;">En el </span><em style="font-size: revert;">taller de fórmulas</em><span style="font-size: revert;"> de Crystal Report se deben crear dos funciones personalizadas (por ejemplo </span><em style="font-size: revert;">Generar_EAN128 y TestNum</em><span style="font-size: revert;">):</span></p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2010/05/image_169105E6.png" alt="" class="wp-image-3251"/></figure>



<p class="wp-block-paragraph"> <br>3<span style="font-size: revert;">. En la función deberemos copiar el código del apartado <a href="#codigo">funciones de Crystal Report</a>.</span> <br> <br>4. <span style="font-size: revert;">Posteriormente crearemos una fórmula (por ejemplo </span><em style="font-size: revert;">Code128)</em><span style="font-size: revert;"> que haga referencia a la función creada, donde le pasaremos como parámetro un campo, fórmula o una cadena que contenga el código EAN128 y dicha fórmula devolverá una expresión que generará el código de barras:</span></p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2010/05/image_78067962.png" alt="" class="wp-image-3252"/></figure>



<p class="wp-block-paragraph"> <br>5. <span style="font-size: revert;">Por último, diseñaremos el informe insertando la fórmula en la posición que deseemos y estableciéndole la fuente Code128, además si deseamos que figure el texto del código de barras entonces debemos insertar el código de barras en la posición deseada. </span></p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2010/05/image_0EB043FB.png" alt="" class="wp-image-3253"/></figure>



<h3 class="wp-block-heading" id="codigo"> <br>Funciones de Crystal Report</h3>



<pre class="wp-block-code"><code>Function TestNum (Codigo as string, i as number, mini as number) as Number
   'Si los caracteres de la variable mini desde la variable i son numericos entonces se devuelve 0
   mini = mini - 1
   If i + mini &lt;= Len(Codigo) Then
      Do While mini >= 0
         If Asc(Mid(Codigo, i + mini, 1)) &lt; 48 Or Asc(Mid(Codigo, i + mini, 1)) > 57 Then Exit Do
         mini = mini - 1
      Loop
   End If
   TestNum = mini
End Function


Function Generar_EAN128(Codigo as String) As String
 ' V 2.0.0 
 ' Esta función permite generar el código de barras para mostrarlo con la fuente CODE128.TTF
 ' - Parametros : cadenas del código
 ' - Retorno: retorna una cadena que permite representar generar el código de barras con la fuente CODE128.TTF
 '            retorna una cadena vacía si no se puede representar el código de barras
 dim i, checksum, mini, dummy as number
 dim code128 as string
 dim tableB As Boolean
 code128=""     
 If Len(Codigo) > 0 Then
     ' Verificar si los caracteres son válidos
     For i = 1 To Len(Codigo)
         Select Case Asc(Mid(Codigo, i, 1))
             Case 32 To 126, 203
             Case Else
                 Codigo=""
                 Exit For
         End Select
     Next
 End If
 If Len(Codigo) > 0 Then
     'Calcular de la cadena de código optimizando el uso de las tablas B y C
     tableB=true
     i = 1
     ' Iniciar el indice de la cadena
     Do While i &lt;= Len(Codigo)
         If tableB Then
           'Ver si interesa cambiar a la tabla C si para 4 dígitos de inicio o final sino 6 dígitos
           mini = IIf(i = 1 Or i + 3 = Len(Codigo), 4, 6)
           mini = TestNum (Codigo, i, mini)
           If mini &lt; 0 Then 'Cambiando a la tabla C
             If i = 1 Then 'Iniciando con la tabla C
               code128 = Chr(210)
             Else 'Cambiar a la tabla C
               code128 = code128 &amp; Chr(204)
             End If
             tableB = False
           Else
             If i = 1 Then code128 = Chr(209) 'Iniciando con la tabla B
           End If
         End If
         If Not tableB Then
             'Si estabamos en la tabla C se intentan procesar 2 dígitos
             mini = 2
             mini = TestNum (Codigo, i, mini)
             If mini &lt; 0 Then 'Procesar 2 dígitos
                 dummy = Val(Mid(Codigo, i, 2)) 
                 dummy = IIf(dummy &lt; 95, dummy + 32, dummy + 105)
                 code128 = code128 &amp; Chr(dummy)
                 i = i + 2
             Else 'Si no tiene 2 dígitos se cambia a la tabla B
                 code128 = code128 &amp; Chr(205)
                 tableB = True
             End If
         End If
         If tableB Then
           'Procesar 1 dígito con la tabla B
           code128 = code128 &amp; Mid(Codigo, i, 1)
           i = i + 1
         End If 
    Loop

     'Calcular el checksum
     For i = 1 To Len(code128)
         dummy = Asc(Mid(code128, i, 1))
         dummy = IIf(dummy &lt; 127, dummy - 32, dummy - 105)
         If i = 1 Then checksum = dummy
         checksum = (checksum + (i - 1) * dummy) Mod 103
     Next

     'Calculando el código ASCII de checksum
     checksum = IIf(checksum &lt; 95, checksum + 32, checksum + 105)

     'Añadir el checksum y parar
     code128 = code128 &amp; Chr(checksum) &amp; Chr(211) 
End If 

Generar_EAN128=code128
End Function</code></pre>



<p class="wp-block-paragraph">Nota: si se utilizan otros nombres de función entonces es necesario cambiarlo en todo el código fuente.</p>



<p class="wp-block-paragraph"> </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Convertir importes a letras en Crystal Report</title>
		<link>https://www.aliquo.software/wiki/convertir-importes-a-letras-en-crystal-report/</link>
		
		<dc:creator><![CDATA[Jose Palomo]]></dc:creator>
		<pubDate>Tue, 14 Jun 2022 13:43:08 +0000</pubDate>
				<guid isPermaLink="false">https://www.aliquo.software/?post_type=epkb_post_type_1&#038;p=53374</guid>

					<description><![CDATA[En Crystal Report podemos realizar una función para convertir los número a letras, para ello crearemos una función personalizada mediante los siguientes pasos: 1. En el taller de fórmulas de Crystal Report se deben crear dos funciones personalizadas (NumeroALetras y NumerosALetras): 3. Posteriormente crearemos una fórmula (por ejemplo ImporteALetras) que haga referencia a la función [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En Crystal Report podemos realizar una función para convertir los número a letras, para ello crearemos una función personalizada mediante los siguientes pasos:</p>



<p class="wp-block-paragraph">1.<span style="font-size: revert;"> En el </span><em style="font-size: revert;">taller de fórmulas</em><span style="font-size: revert;"> de Crystal Report se deben crear dos <span style="font-size: revert;"><a href="#codigo">funciones personalizadas</a></span> (</span><em style="font-size: revert;"><a href="#codigo_funcion1">NumeroALetras</a></em><span style="font-size: revert;"><em> </em>y <em><a href="#codigo_funcion2">NumerosALetras</a></em>):</span></p>



<figure class="wp-block-image size-full"><a href="https://www.aliquo.software/wp-content/uploads/2022/06/image-156.png"><img loading="lazy" decoding="async" width="990" height="498" src="https://www.aliquo.software/wp-content/uploads/2022/06/image-156.png" alt="" class="wp-image-59070" srcset="https://www.aliquo.software/wp-content/uploads/2022/06/image-156.png 990w, https://www.aliquo.software/wp-content/uploads/2022/06/image-156-980x493.png 980w, https://www.aliquo.software/wp-content/uploads/2022/06/image-156-480x241.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 990px, 100vw" /></a></figure>



<p class="wp-block-paragraph"> <br>3. <span style="font-size: revert;">Posteriormente crearemos una fórmula (por ejemplo ImporteALetras</span><em style="font-size: revert;">)</em><span style="font-size: revert;"> que haga referencia a la función creada, donde le pasaremos como parámetro un campo, fórmula o un número que contenga el importe y dicha fórmula devolverá una expresión con el importe en letras</span>. En el siguiente ejemplo se convierte un importe monetario en letras incluyendo la moneda.<span style="font-size: revert;">&nbsp; </span></p>



<figure class="wp-block-image size-full"><a href="https://www.aliquo.software/wp-content/uploads/2022/06/image-158.png"><img loading="lazy" decoding="async" width="990" height="527" src="https://www.aliquo.software/wp-content/uploads/2022/06/image-158.png" alt="" class="wp-image-59076" srcset="https://www.aliquo.software/wp-content/uploads/2022/06/image-158.png 990w, https://www.aliquo.software/wp-content/uploads/2022/06/image-158-980x522.png 980w, https://www.aliquo.software/wp-content/uploads/2022/06/image-158-480x256.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 990px, 100vw" /></a></figure>



<pre class="wp-block-code"><code>' número a convertir
dim numero as number
numero = 0

formula = ""
if numero &lt; 0 then
    numero = abs(numero)
    formula = "MENOS "
end if

' parte entera
dim entero as number
entero = truncate(numero)
formula = formula &amp; NumerosALetras(entero)
formula = formula &amp; " EUROS"

' parte decimal
dim decimales as number
decimales = Round((numero - entero) * 100, 2)

if decimales > 0 then
    formula = formula &amp; " CON " &amp;  NumerosALetras(decimales)
    formula = formula &amp; " CENTIMOS"
end if</code></pre>



<p class="wp-block-paragraph"><br>4. <span style="font-size: revert;">Por último, diseñaremos el informe insertando la fórmula en la posición que deseemos.</span> <span style="font-size: revert;">&nbsp;</span></p>



<figure class="wp-block-image size-large"><a href="https://www.aliquo.software/wp-content/uploads/2022/06/image-154.png"><img loading="lazy" decoding="async" width="1024" height="376" src="https://www.aliquo.software/wp-content/uploads/2022/06/image-154-1024x376.png" alt="" class="wp-image-58889" srcset="https://www.aliquo.software/wp-content/uploads/2022/06/image-154-1024x376.png 1024w, https://www.aliquo.software/wp-content/uploads/2022/06/image-154-980x359.png 980w, https://www.aliquo.software/wp-content/uploads/2022/06/image-154-480x176.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></figure>



<p class="wp-block-paragraph">&nbsp;</p>



<figure class="wp-block-image size-large"><a href="https://www.aliquo.software/wp-content/uploads/2022/06/image-155.png"><img loading="lazy" decoding="async" width="1024" height="376" src="https://www.aliquo.software/wp-content/uploads/2022/06/image-155-1024x376.png" alt="" class="wp-image-58890" srcset="https://www.aliquo.software/wp-content/uploads/2022/06/image-155-1024x376.png 1024w, https://www.aliquo.software/wp-content/uploads/2022/06/image-155-980x359.png 980w, https://www.aliquo.software/wp-content/uploads/2022/06/image-155-480x176.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></figure>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="codigo"><br>Funciones personalizadas de Crystal Report</h3>



<pre id="codigo_funcion1" class="wp-block-code"><code>Function NumeroALetras(numero As number) As String

	Dim text As String
	Dim value As number
	value = Truncate(numero)

	If value = 0 Then
		text = "CERO"
	ElseIf value = 1 Then
		text = "UN"
	ElseIf value = 2 Then
		text = "DOS"
	ElseIf value = 3 Then
		text = "TRES"
	ElseIf value = 4 Then
		text = "CUATRO"
	ElseIf value = 5 Then
		text = "CINCO"
	ElseIf value = 6 Then
		text = "SEIS"
	ElseIf value = 7 Then
		text = "SIETE"
	ElseIf value = 8 Then
		text = "OCHO"
	ElseIf value = 9 Then
		text = "NUEVE"
	ElseIf value = 10 Then
		text = "DIEZ"
	ElseIf value = 11 Then
		text = "ONCE"
	ElseIf value = 12 Then
		text = "DOCE"
	ElseIf value = 13 Then
		text = "TRECE"
	ElseIf value = 14 Then
		text = "CATORCE"
	ElseIf value = 15 Then
		text = "QUINCE"
	ElseIf value &lt; 20 Then
		text = "DIECI" &amp; "#" &amp; ToText(value - 10,0) &amp; "#"
	ElseIf value = 20 Then
		text = "VEINTE"
	ElseIf value &lt; 30 Then
		text = "VEINTI" &amp; "#" &amp; ToText(value - 20,0) &amp; "#"
	ElseIf value = 30 Then
		text = "TREINTA"
	ElseIf value &lt; 40 Then
		text = "TREINTA Y " &amp; "#" &amp; ToText(value - 30,0) &amp; "#"
	ElseIf value = 40 Then
		text = "CUARENTA"
	ElseIf value &lt; 50 Then
		text = "CUARENTA Y " &amp; "#" &amp; ToText(value - 40,0) &amp; "#"
	ElseIf value = 50 Then
		text = "CINCUENTA"
	ElseIf value &lt; 60 Then
		text = "CINCUENTA Y " &amp; "#" &amp; ToText(value - 50,0) &amp; "#"
	ElseIf value = 60 Then
		text = "SESENTA"
	ElseIf value &lt; 70 Then
		text = "SESENTA Y " &amp; "#" &amp; ToText(value - 60,0) &amp; "#"
	ElseIf value = 70 Then
		text = "SETENTA"
	ElseIf value &lt; 80 Then
		text = "SETENTA Y " &amp; "#" &amp; ToText(value - 70,0) &amp; "#"
	ElseIf value = 80 Then
		text = "OCHENTA"
	ElseIf value &lt; 90 Then
		text = "OCHENTA Y " &amp; "#" &amp; ToText(value - 80,0) &amp; "#"
	ElseIf value = 90 Then
		text = "NOVENTA"
	ElseIf value &lt; 100 Then
		text = "NOVENTA Y " &amp; "#" &amp; ToText(value - 90,0) &amp; "#"
	ElseIf value = 100 Then
		text = "CIEN"
	ElseIf value &lt; 200 Then
		text = "CIENTO " &amp; "#" &amp; ToText(value - 100,0) &amp; "#" 
	ElseIf value = 200 Then
		text = "DOSCIENTOS"
	ElseIf value = 300 Then
		text = "TRESCIENTOS"
	ElseIf value = 400 Then
		text = "CUATROCIENTOS"
	ElseIf value = 500 Then
		text = "QUINIENTOS"
	ElseIf value = 600 Then
		text = "SEISCIENTOS"
	ElseIf value = 700 Then
		text = "SETECIENTOS"
	ElseIf value = 800 Then
		text = "OCHOCIENTOS"
	ElseIf value = 900 Then
		text = "NOVECIENTOS"
	ElseIf value &lt; 1000 Then
		text =  "#" &amp; ToText(Truncate(value / 100) * 100,0) &amp; "# #" &amp; ToText(value Mod 100,0) &amp; "#" 
	ElseIf value = 1000 Then
		text = "MIL"
	ElseIf value &lt; 2000 Then
		text = "MIL #" &amp; ToText(value Mod 1000,0) &amp; "#" 
	ElseIf value &lt; 1000000 Then
		text = "#" &amp; ToText(Truncate(value / 1000),0) &amp; "# MIL"
		If (value Mod 1000) &gt; 0 Then text = text &amp; " #" &amp; ToText(value Mod 1000,0) &amp; "#" 
	ElseIf value = 1000000 Then
		text = "UN MILLÓN"
	ElseIf value &lt; 2000000 Then
		text = "UN MILLÓN #" &amp; ToText(value Mod 1000000,0) &amp; "#" 
	Else
		text = "#" &amp; ToText(Truncate(value / 1000000),0) &amp; "# MILLONES"
		If (value Mod 1000000) &gt; 0 Then text = text &amp; " #" &amp; ToText(value Mod 1000000,0) &amp; "#" 
	End If

	NumeroALetras = text
End Function</code></pre>



<p class="wp-block-paragraph"></p>



<pre id="codigo_funcion2" class="wp-block-code"><code>Function NumerosALetras (numero As number) As String
      
    Dim texto As String
    Dim numTexto As String
    Dim numLetras As String
    Dim posInicial As Number
    Dim posFinal As Number

    texto = "#" &amp; ToText(Truncate(numero),0) &amp; "#"

    Do While InStr(texto, "#") &gt; 0
        posInicial = InStr(texto, "#")+1
        posFinal = InStr(posInicial, texto, "#")
    
        If posFinal &gt; 0 Then
            numTexto = Mid(texto, posInicial, posFinal - posInicial)
            numLetras = NumeroALetras(ToNumber(numTexto))
            texto = Replace(texto, "#" &amp; numTexto &amp; "#", numLetras)
        Else
            Exit Do
        End If
    Loop

    NumerosALetras = texto

End Function</code></pre>



<p class="wp-block-paragraph"></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em style="font-size: revert;">Nota: si se utiliza otro nombre de función entonces es necesario cambiarlo en todo el código fuente.</em> </p>
</blockquote>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creación de parámetros en informes de Crystal Report</title>
		<link>https://www.aliquo.software/wiki/creacion-de-parametros-en-informes-de-crystal-report/</link>
		
		<dc:creator><![CDATA[Jose Palomo]]></dc:creator>
		<pubDate>Tue, 14 Jun 2022 12:32:04 +0000</pubDate>
				<guid isPermaLink="false">https://www.aliquo.software/?post_type=epkb_post_type_1&#038;p=53362</guid>

					<description><![CDATA[Crystal Report nos permite la creación de parámetros permitiendo utilizar el valor en cualquier parte del informe y conseguir de este modo personalizar dicho informe con tan sólo cambiar el valor del parámetro. A continuación se detallan los pasos para la creación de parámetros permitiendo su compatibilidad con Aliquo: 1. Establecer el nombre y tipo [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Crystal Report nos permite la creación de parámetros permitiendo utilizar el valor en cualquier parte del informe y conseguir de este modo personalizar dicho informe con tan sólo cambiar el valor del parámetro.</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2012/03/image_17A5378E.png" alt="" class="wp-image-2243"/></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">A continuación se detallan los pasos para la creación de parámetros permitiendo su compatibilidad con Aliquo:</p>



<p class="wp-block-paragraph">1. <span style="font-size: revert;">Establecer el nombre y tipo de valor que contendrá el parámetro. La opción de lista de valores se dejará como Estático.</span><br><figure><img loading="lazy" decoding="async" width="730" height="142" class="alignnone size-full wp-image-2244" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_42168A0D.png" alt=""></figure><p align="justify"> </p></p>



<p class="wp-block-paragraph">2. <span style="font-size: revert;">Si se desea se puede hacer una lista de valores y descripciones (por temas de compatibilidad la descripción deberá indicarse en la columna de valor con el formato valor;descripción)   </span></p>



<ul class="wp-block-list"><li><em>Sólo valores</em> <figure><img loading="lazy" decoding="async" width="726" height="157" class="alignnone size-full wp-image-2245" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_615BC191.png" alt=""></figure><p align="justify">  </p></li></ul>



<ul class="wp-block-list"><li><em>Valores y descripción</em> <figure><img loading="lazy" decoding="async" width="725" height="156" class="alignnone size-full wp-image-2246" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_69DF20DB.png" alt=""></figure><p align="justify">  </p></li></ul>



<p class="wp-block-paragraph">3. <span style="font-size: revert;">Se deben indicar las diferentes opciones de valor, aunque por compatibilidad sólo están permitidas las siguientes opciones:</span>  </p>



<ul class="wp-block-list"><li><em style="font-size: revert;">Mostrar en panel (visor): </em><span style="font-size: revert;">mediante esta opción se indica si se puede editar u ocultar el parámetro en el panel de parámetros.</span> </li><li><p align="justify"><em>Texto de petición: </em>permite indicar el texto que se desea que aparezca a la hora de solicitar el valor.</p></li><li><p align="justify"><em>Petición con sólo descripción</em>: cuando se utilizan listas de valores se pueden indicar si la lista contendrá el valor y la descripción o sólo la descripción. </p></li><li><p align="justify"><em>Petición opcional</em>: indica si el valor del parámetro puede estar  vacío, por supuesto en el caso de tipos numéricos será 0 y en fecha será la mínima permitida. </p></li><li><p align="justify"><em>Permitir valores personalizados</em>: cuando se utilizan listas de valores permite indicar si se puede establecer valores distintos a los establecidos en dicha lista. </p></li><li><p align="justify"><em>Longitud mínima y máxima (exclusivo del tipo cadena):</em> permite indicar el tamaño mínimo y máximo de caracteres que debe tener el valor. </p></li><li><p align="justify"><em>Iniciar y finalizar</em> (exclusivo para el tipo fecha y hora): establece la fecha/hora de inicio y fin entre la que debe encontrarse el valor del parámetro. </p></li><li><p align="justify">Valor mínimo y máximo (exclusivo del tipo número y moneda): indica el valor mínimo y máximo permitido para el valor de dicho parámetro.</p>  </li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Formularios de documentos en tablas</title>
		<link>https://www.aliquo.software/wiki/formularios-de-documentos-en-tablas/</link>
		
		<dc:creator><![CDATA[Jose Palomo]]></dc:creator>
		<pubDate>Tue, 14 Jun 2022 12:28:33 +0000</pubDate>
				<guid isPermaLink="false">https://www.aliquo.software/?post_type=epkb_post_type_1&#038;p=53359</guid>

					<description><![CDATA[Se crea la opción de combinar varios esquemas de tablas con el fin de poder realizar formularios de documentos con información vinculada a una tabla principal. A continuación se detallan los pasos para realizar un documento con varios esquemas combinados, para ello vamos a realizar un ejemplo que muestre los contactos de los clientes: &#160; [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Se crea la opción de combinar varios esquemas de tablas con el fin de poder realizar formularios de documentos con información vinculada a una tabla principal.</p>



<p class="wp-block-paragraph">A continuación se detallan los pasos para realizar un documento con varios esquemas combinados, para ello vamos a realizar un ejemplo que muestre los contactos de los clientes:<br> &nbsp;</p>



<ol class="wp-block-list"><li>Generar el esquema de la tabla principal mediante<em> Configuración/Esquema de tablas</em>, para este ejemplo la tabla de <em>Clientes</em>.  </li><li>En la pantalla de generar esquema seleccionaremos los campos que deseemos mostrar en el documento (por ejemplo <em>Clientes.Código</em> y <em>Clientes.Nombre</em>) y guardaremos el esquema en una carpeta con el nombre que deseemos (por ejemplo<em> Esquema_Contactos.xsd</em>). <figure><img loading="lazy" decoding="async" width="652" height="367" class="alignnone size-full wp-image-2232" src="https://www.aliquo.software/wp-content/uploads/2012/03/image_0DF31539.png" alt=""></figure><p align="justify"> </p></li><li>Mediante<em> Configuración/Esquemas de tablas </em>volveremos a generar otro esquema para la tabla vinculada, en este caso seleccionaremos la tabla <em>Clientes_Contactos.</em>  </li><li>En la pantalla de generar esquema seleccionaremos los campos que deseemos mostrar (por ejemplo<em> Clientes_Contactos.Nombre y Clientes.Contactos.Teléfono_móvil</em>) aunque lo más importante es elegir el campo que relaciona esta tabla con la tabla principal, en este caso <em>Clientes.Contactos.CodCliente.</em>   <figure><img loading="lazy" decoding="async" width="652" height="367" class="alignnone size-full wp-image-2233" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_50F40508.png" alt=""></figure><p align="justify"> </p></li><li>Una vez elegidos los campos, guardaremos el esquema seleccionando el mismo archivo generado anteriormente y como ya existe el archivo nos preguntará si deseamos combinar el esquema, en este caso indicaremos que Sí deseamos combinar, obteniendo de esta forma un único esquema de datos de las tablas de <em>Clientes y Clientes_Contactos.</em>   <figure><img loading="lazy" decoding="async" width="431" height="171" class="alignnone size-full wp-image-2234" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_47312E41.png" alt=""><span style="font-size: revert;"> </span></figure></li><li>Posteriormente en <em>Crystal Report</em> seleccionaremos el esquema guardado, permitiéndonos seleccionar las tablas que se incluyen en dicho esquema.   <img loading="lazy" decoding="async" width="982" height="445" class="alignnone size-full wp-image-2235" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_03E8B6D2.png" alt=""><p align="justify">  </p></li><li>En la siguiente pantalla de <em>Crystal Report</em> deberemos crear los vínculos de dichas tablas par que funcione el documento. En este caso se ha creado el vínculo del campo <em>Clientes.Código</em> de la tabla Clientes con el campo<em> Clientes_Contactos.CodCliente</em> de la tabla<em> Clientes_Contactos.</em>  <figure><img loading="lazy" decoding="async" width="982" height="445" class="alignnone size-full wp-image-2236" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_62FA658C.png" alt=""><span style="font-size: revert;"> </span></figure><p align="justify">Si se desea que salgan todos los clientes aunque no tengan contactos, entonces se debe pulsar con el botón derecho del ratón sobre el vínculo y seleccionar opciones de vínculo.   </p><figure><img loading="lazy" decoding="async" width="982" height="445" class="alignnone size-full wp-image-2237" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_43D9D95D.png" alt=""><span style="background-color: rgba(102, 102, 102, 0.2); font-size: revert;"> </span></figure> Después en la pantalla de <em style="font-size: revert;">Opciones de vínculo</em><span style="font-size: revert;"> se debe seleccionar la opción de </span><em style="font-size: revert;">Combinación externa izquierda</em><span style="font-size: revert;">.</span>   <figure><img loading="lazy" decoding="async" width="577" height="303" class="alignnone size-full wp-image-2238" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_4710E2A7.png" alt=""></figure><p align="justify"></li><li>Por último, sólo nos queda diseñar el documento y guardarlo en la carpeta correspondiente a la tabla principal (por ejemplo… Aliquo\Server\Empresas\Emp0001\Documentos\Tablas\Clientes)   <figure><img loading="lazy" decoding="async" width="1003" height="456" class="alignnone size-full wp-image-2239" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_4230BF9C.png" alt=""><span style="background-color: rgba(102, 102, 102, 0.2); font-size: revert;"> </span></figure></li><li>Una vez finalizado todo el proceso, dispondremos en la tabla correspondiente del documento, por lo que sólo tendremos que seleccionar los clientes y elegir dicho documento de impresión.</li></ol>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Conocer la cantidad de decimales en Crystal Report</title>
		<link>https://www.aliquo.software/wiki/conocer-la-cantidad-de-decimales-en-crystal-report/</link>
		
		<dc:creator><![CDATA[Jose Palomo]]></dc:creator>
		<pubDate>Tue, 14 Jun 2022 12:23:42 +0000</pubDate>
				<guid isPermaLink="false">https://www.aliquo.software/?post_type=epkb_post_type_1&#038;p=53353</guid>

					<description><![CDATA[En Crystal Reports podemos comprobar cuantos números de decimales tiene un número, para ello crearemos una función personalizada mediante los siguientes pasos: 1. En el taller de fórmulas de Crystal Report se debe crear una función personalizada (por ejemplo NumDecimales):   2. En la función deberemos copiar el código de las funciones de Crystal Report. 3. Después crearemos una fórmula [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En Crystal Reports podemos comprobar cuantos números de decimales tiene un número, para ello crearemos una función personalizada mediante los siguientes pasos:</p>



<p class="wp-block-paragraph">1. En el <em>taller de fórmulas</em> de Crystal Report se debe crear una función personalizada (por ejemplo <em><em>NumDecimales):</em></em> <em> </em></p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2012/04/image_25F5C199.png" alt="" class="wp-image-2214"/></figure>



<p class="wp-block-paragraph"> <br>2<span style="font-size: revert;">. En la función deberemos copiar el código de las <a href="#codigo">funciones de Crystal Report</a>.</span> <br> <br>3. Después crearemos una fórmula (por ejemplo: una fórmula para formatear el campo tiempo según el número de decimales) que haga la referencia a la función creada, donde le pasaremos como parámetro el campo que contiene el número sobre el necesitamos conocer la cantidad de decimales.</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.aliquo.software/wp-content/uploads/2015/10/image_748C6EA7.png" alt="" class="wp-image-2215"/></figure>



<h3 class="wp-block-heading" id="codigo"> <br>Funciones de Crystal Report</h3>



<pre class="wp-block-code"><code>Function NumDecimales(Numero as number, optional MaxDecimales as number=2) as number
    NumDecimales=MaxDecimales
    
    dim Pos as number
    for Pos = 0 to MaxDecimales
        if Numero=Fix(Numero,Pos) then
            NumDecimales=Pos
            Exit for
        end if
    next
End Function</code></pre>



<p class="wp-block-paragraph"><em style="font-size: revert;">Nota: si se utiliza otro nombre de función entonces es necesario cambiarlo en todo el código fuente.</em></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
