<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ramon Sanchez Belillas</title>
    <description>The latest articles on DEV Community by Ramon Sanchez Belillas (@infodevbeli).</description>
    <link>https://dev.to/infodevbeli</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F908291%2Fdb11ae1c-5d8e-4093-b9ee-2cee2ea6c5fe.jpg</url>
      <title>DEV Community: Ramon Sanchez Belillas</title>
      <link>https://dev.to/infodevbeli</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/infodevbeli"/>
    <language>en</language>
    <item>
      <title>How to trigger tab (InputText) in Microsoft Power Apps</title>
      <dc:creator>Ramon Sanchez Belillas</dc:creator>
      <pubDate>Mon, 27 Feb 2023 12:12:48 +0000</pubDate>
      <link>https://dev.to/infodevbeli/how-to-trigger-tab-inputtext-in-microsoft-power-apps-4fo5</link>
      <guid>https://dev.to/infodevbeli/how-to-trigger-tab-inputtext-in-microsoft-power-apps-4fo5</guid>
      <description>&lt;p&gt;I've recently faced a couple of issues while developing with Power Apps, I haven't been able to find solutions to them on the internet (the closest workaround I've found is to add a &lt;code&gt;timer&lt;/code&gt; with a &lt;code&gt;timeEnd&lt;/code&gt; which seemed a bit odd to me) so I've developed my own solution, but let's explain the issues first:&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 1:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;In a formatted text field.&lt;/li&gt;
&lt;li&gt;you add a value (let's say &lt;code&gt;1000&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;onChange&lt;/code&gt; event is triggered.&lt;/li&gt;
&lt;li&gt;The field is formatted to &lt;code&gt;1,000.00&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The formatted value gets injected to the field.&lt;/li&gt;
&lt;li&gt;Edit the input field adding &lt;code&gt;1000&lt;/code&gt; again.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;onChange&lt;/code&gt; event doesn't trigger because it considers it "the same".&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Problem 2:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;When you press tab in input field and go to another input field&lt;/li&gt;
&lt;li&gt;The onSelect is not activated because you have to "Click"&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  SOLUTION:
&lt;/h2&gt;

&lt;p&gt;We need to create two text inputs and one button like that:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;InputText 1:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create an input text (inputText1)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;onChange&lt;/code&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;   &lt;span class="nf"&gt;Set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ChangeNumberVar&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
       &lt;span class="nf"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
           &lt;span class="nf"&gt;Value&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TextInput1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="s"&gt;"#,###.00"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="s"&gt;"ca-ES"&lt;/span&gt;
       &lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="p"&gt;);;&lt;/span&gt;
   &lt;span class="nf"&gt;Select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Button1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(nextStep) 3. &lt;code&gt;Default&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;   &lt;span class="n"&gt;ChangeNumberVar&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(nextStep) 4. &lt;code&gt;tabIndex&lt;/code&gt;: 1&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;InputText 2:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create another input text (inputText2)&lt;/li&gt;
&lt;li&gt;tabIndex:3&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Button1:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a button (button1)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tabIndex&lt;/code&gt;:2&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Visible&lt;/code&gt;: false&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;onSelect&lt;/code&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;   &lt;span class="nf"&gt;Reset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TextInput1&lt;/span&gt;&lt;span class="p"&gt;);;&lt;/span&gt;
   &lt;span class="nf"&gt;SetFocus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TextInput2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q4dfZrsN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ccmtz7415weje7tj7cfp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q4dfZrsN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ccmtz7415weje7tj7cfp.png" alt="Image at the end of creating the solution" width="880" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you can switch from &lt;code&gt;inputText1&lt;/code&gt; to &lt;code&gt;inputText2&lt;/code&gt; by triggering the &lt;code&gt;OnSelect&lt;/code&gt; trigger using the tab key.&lt;/p&gt;

&lt;h3&gt;
  
  
  Side Notes:
&lt;/h3&gt;

&lt;p&gt;The main language on my environment is spanish. If the provided solution doesn't work for you, please leave a comment and we can take a look at your specific use-case 😁&lt;/p&gt;

&lt;p&gt;Best regards!&lt;/p&gt;

</description>
      <category>powerapps</category>
      <category>powerfuldevs</category>
      <category>lowcode</category>
    </item>
    <item>
      <title>Variables C#</title>
      <dc:creator>Ramon Sanchez Belillas</dc:creator>
      <pubDate>Sun, 14 Aug 2022 13:37:46 +0000</pubDate>
      <link>https://dev.to/infodevbeli/variables-c-16ap</link>
      <guid>https://dev.to/infodevbeli/variables-c-16ap</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Notas:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nombres de variable = identificadores&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Reglas para variables:&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Los identificadores deben empezar por su nombre, con una letra o un guion bajo.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAL -&amp;gt; $$variable
BIEN -&amp;gt; _variable
BIEN -&amp;gt; variable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Los identificadores pueden contener números pero no pueden empezar con ellos
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAL -&amp;gt; 123alumno
BIEN -&amp;gt; alumno123
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Los identificadores no pueden llevar acentos
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAL -&amp;gt; varíable
MAL -&amp;gt; pruebä
BIEN -&amp;gt; prueba
BIEN -&amp;gt; variable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Los identificadores no pueden llevar signos a excepción del guion bajo
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAL -&amp;gt; var-iable
MAL -&amp;gt; variable/
MAL -&amp;gt; variable)
BIEN -&amp;gt; prueba_final
BIEN -&amp;gt; _pruebaFinal
BIEN -&amp;gt; pruebaFinal_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Los identificadores no pueden llevar espacios
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAL -&amp;gt; prueba final
BIEN -&amp;gt; pruebaFinal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Documentación:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/bGgsc5mWoryfgKBx1u/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/bGgsc5mWoryfgKBx1u/giphy.gif" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;C# diferencia las mayúsculas de las minúsculas en los identificadores.&lt;/p&gt;

&lt;p&gt;Son identificadores diferentes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alumno
Alumno
ALUMNO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En C# se utiliza la notación camelCase. Esto quiere decir que la primera letra del identificador es minúscula pero la primera letra de una posible segunda palabra en el identificador debe ir en mayúscula.&lt;/p&gt;

&lt;p&gt;Supongamos que tenemos un identificador para la suma de dos números.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAL -&amp;gt; Sumadosnumeros
MAL -&amp;gt; SUMADOSNUMEROS
MAL -&amp;gt; sumadosnumeros
BIEN -&amp;gt; sumaDosNumeros
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como se puede observar en el identificador "sumaDosNumeros"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Empieza por minúscula&lt;/li&gt;
&lt;li&gt;Cada nueva palabra en este caso "dos" y "numeros" empiezan por mayúscula&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Otros ejemplos de camelCase:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;institutoBarcelona
ofertaMayo
llavesObtenidas
UnaDeLasFrasesMasBonitasDelMundo25
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Tipos de variables (Básicas):&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/QuIxFwQo0RMT1tASlV/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/QuIxFwQo0RMT1tASlV/giphy.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Fuente: &lt;br&gt;
&lt;a href="https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/builtin-types/value-types"&gt; Microsoft &lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;De momento vamos a excluir los "nint" y los "nuint"&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tipos numéricos enteros:&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Notas: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;En el editor .NET Fiddle solo hago mención de los tipos sbyte, &amp;gt; short, int, long&lt;/li&gt;
&lt;li&gt;En las próximas partes "incorrectas" he tenido que comentar el código con &lt;code&gt;//&lt;/code&gt;. El compilador no puede ejecutarse con errores. Si queréis ver los errores eliminar &lt;code&gt;//&lt;/code&gt;. Adjunto foto para ver un ejemplo de código de error.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qGfGFDvR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9kyb6yet1a0mk7v2v9vc.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qGfGFDvR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9kyb6yet1a0mk7v2v9vc.JPG" alt="Error variable tipo incorrecto" width="681" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Con signo (-):&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;sbyte&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;De -128 a 127
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;short&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;De -32 768 a 32 767
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;De -2.147.483.648 a 2.147.483.647
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;long&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;De -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;Sin signo (-):&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;byte&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;De 0 a 255
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;ushort&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;De 0 a 65.535
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;uint&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;De 0 a 4.294.967.295
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;ulong&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;De 0 a 18.446.744.073.709.551.615
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

public class Program
{
    public static void Main()
    {
        // Los warnings de color amarillo quieren decir que la variable no se esta utilizando.

        //sbyte - correcto
            sbyte sbyteCorrectoNumero = 25;
            sbyte sbyteCorrectoNumero1 = 100; 
            sbyte sbyteCorrectoNumero2 = -120;

        //sbyte - incorrecto
            //sbyte sbyteIncorrectoNumero = 129
            //sbyte sbyteIncorrectoNumero1 = 500 
            //sbyte sbyteIncorrectoNumero2 = -129

        //short - correcto
            short shortCorrectoNumero = -32500;
            short shortCorrectoNumero1 = 500;
            short shortCorrectoNumero2 = 32750;

        //short - incorrecto
            //short shortIncorrectoNumero = -33000;
            //short shortIncorrectoNumero = 33000;

        //int - correcto
            int intCorrectoNumero = -2147483647; //-2.147.483.647
            int intCorrectoNumero2 = 500;
            int intCorrectoNumero3 = 500000; //500.000

        //int - incorrecto
            //int intIncorrectoNumero = -3147483648; //-3.147.483.648
            //int intIncorrectoNumero1 = -3147483648; //3.147.483.648

        //Trabajar a partir de estos números para una primera pasada esta bien, pero para tocar en futuros proyectos de momento no hace falta. Ya que son números extremadamente grandes, los pongo por poner ejemplos

        //long - correcto
            long longCorrectoNumero = -9223372036854775808; //-9.223.372.036.854.775.808
            long longCorrectoNumero1 = 9223372036854775807; //9.223.372.036.854.775.807

        //long - incorrecto
            //long longIncorrectoNumero = -10223372036854775808; //-10.223.372.036.854.775.808
            //long longIncorrectoNumero1 = -10223372036854775808; //10.223.372.036.854.775.808


        Console.WriteLine(sbyteCorrectoNumero);
        Console.WriteLine(shortCorrectoNumero);
        Console.WriteLine(intCorrectoNumero);
        Console.WriteLine(longCorrectoNumero);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por si quereis hacer pruebas :)&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://dotnetfiddle.net/Widget/jmODqn" width="100%" height="600"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/edFF9tEQEjVAMkDO3W/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/edFF9tEQEjVAMkDO3W/giphy.gif" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
