Macro en Word para leer recibos de nómina CFDI y extraer el ISR retenido automáticamente

Imagen
Macro en Word para leer recibos de nómina CFDI y extraer datos clave Si trabajas en contabilidad, seguramente has recibido archivos XML de recibos de nómina para revisión o conciliación. Esta macro te permite leer múltiples archivos CFDI versión 4.0 directamente desde Word, y extraer automáticamente los siguientes datos: RFC del Emisor RFC del Receptor Total del comprobante UUID ISR Retenido (extraído del nodo de deducciones de nómina) Esto es especialmente útil para quienes deben validar cantidades retenidas de ISR en recibos de nómina digitales y quieren presentar su declaración anual o para contadores. La macro coloca toda la información organizada en una tabla dentro del documento Word, lista para copiar o validar. ¿Cómo funciona? Al ejecutar la macro: Seleccionas uno o varios archivos XML desde tu computadora Word los analiza uno por uno Se genera automáticamente una tabla con los datos clave ¿Quién puede usar esta macro? Está pensada para c...

Como Programar en Pascal y Delphi, ejemplo calculadora en Delphi

Que tal amigos, bienvenidos a otra semana de nuestro blog, les quiero platicar acerca de un lenguaje de programación que se llama Pascal, fue creado por Niklaus Wirth entre 1968 y 1970, es un lenguaje enfocado a la programación estructurada, esto se refiere a que se crean funciones o subrutinas y utilizar criterios de selección con if y switch e iteraciones o ciclos con las sentencias for o while.

Pascal a mi parecer es muy sencillo de aprender yo lo aprendí cuando estaba en la Secundaria y me parece muy bueno, después en la Universidad en la materia de graficación el Académico que me dio clases que es un gran profesor y científico Manuel Martin Ortiz los ejercicios de la materia los realizábamos en Borland Delphi (versión Windows) que es ni mas ni menos que un entorno de desarrollo (programa para escribir programas) para Object Pascal o IDE , que es  entorno de desarrollo para la versión orientada a Objetos de Pascal y que permite generar software con ventanas o pantallas es decir lo hace más gráfico o visual (la explicación de la programación orientada a objetos la pueden ver en la siguiente liga Javascript)

Para este ejemplo vamos hacer una calculadora pero con una pantalla más amigable que el otro ejemplo que vimos con Progress.

Comencemos con el código 


unit Unit1;

interface


uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdNetworkCalculator;

type

  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Campo2: TEdit;
    Campo1: TEdit;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var

  Form1: TForm1;
  resultado: Double;
implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);

var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A + B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;
end;

procedure TForm1.Button2Click(Sender: TObject);

var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A - B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;

end;


procedure TForm1.Button4Click(Sender: TObject);

var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A / B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;

end;


procedure TForm1.Button3Click(Sender: TObject);

var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A * B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;

end;



end.

Explicación del código



Para programar en Pascal debemos seguir algunas normas, cada que terminemos una instrucción debemos colocar el signo de punto y coma (;) 
  • Los tipos de variables que podemos utilizar son:

Nombre Rango Bytes Tipo
char 8
ShortString
AnsiStrings
Widestrings
Byte 0 .. 255 1 Enteros
Shortint -128 .. 127 1 Enteros
Smallint -32768 .. 32767 2 Enteros
Word 0 .. 65535 2 Enteros
Integer smallint o longint 2 o 4 Enteros
Cardinal longword 4 Enteros
Longint -2147483648 .. 2147483647 4 Enteros
Longword 0..4294967295 4 Enteros
Int64 -9223372036854775808 .. 9223372036854775807 8 Enteros
QWord 0 .. 18446744073709551615 8 Enteros
Single 1.5E-45 .. 3.4E38 4 Decimales
Double 5.0E-324 .. 1.7E308 8 Decimales
Extended 1.9E-4932 .. 1.1E4932 10 Decimales
Comp -2E64+1 .. 2E63-1 8 Decimales
Currency -9.22337E+14 8 Decimales
Boolean 1 Lógicos
ByteBool 1 Lógicos
WordBool 2 Lógicos
LongBool 4 Lógicos

  • Cada objeto dentro de la pantalla tiene sus propias características por ejemplo un botón le puedes configurar el tamaño, la letra, el fondo y 




  • Cada que terminemos un segmento de programa debemos colocar end; y cuando es fin de un procedimiento o de todo el programa end.

procedure TForm1.Button3Click(Sender: TObject);
var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A * B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;

end;


end.

Ejecución del Programa





Les dejó la liga para descargarlo


En lo personal creo que es muy buena opción para desarrollo de aplicaciones, porque una vez que terminas tu desarrollo, generas tu programa ejecutable y lo puedes distribuir sin tener que instalar nada más a menos que tu aplicación lo requiera y no entregas tus programas fuentes o códigos, si no solo el sistema. Tiene varias librerías para poder realizar conexiones con otros sistemas o hacer cosas muy complejas, tiene conectores para conexión de bases de datos, para crear WebService, toda la barra superior son las librerías que tiene




No se si sea un lenguaje muy popular, pero se que si hay empresas que lo utiliza, incluso si filtran en OCC también hay trabajos que requieren este software https://www.occ.com.mx/empleos/de-desarrollador-delphi/

Otro ejemplo de programación de Delphi en este blog 
https://www.programacionparatodos.com/2020/01/catalogos-cascada-en-delphi.html

Saludos, espero les haya parecido interesante este post y nos compartan. Hasta el próximo post.

No olvide compartirnos y seguirnos en este blog o en Facebook.

Comentarios

🚀 Mantener este blog funcionando requiere tiempo y café. ¡Puedes contribuir con uno aquí!

Entradas más populares de este blog

Guía Práctica: Ejemplo Completo de ASPX para Desarrolladores Web

📊 Automatiza tu trabajo: Convierte tablas de Word a Excel con una macro

Macro de Excel para abrir archivo csv