Diferencia entre revisiones de «TTprxADODataSet Options Impresion Aplicativo Form»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
(No se muestran 3 ediciones intermedias del mismo usuario)
Línea 7: Línea 7:
La pantalla tiene dos pestañas:
La pantalla tiene dos pestañas:
[[Archivo:20250530 1029 IMPRIMIR APLICATIVO FORM.png|miniaturadeimagen|no|Pantalla de impresión de aplicativos.]]
[[Archivo:20250530 1029 IMPRIMIR APLICATIVO FORM.png|miniaturadeimagen|no|Pantalla de impresión de aplicativos.]]
=[[QUEESESTO/IDENTIDAD|Identidad]]=
[[Category:MANUAL/PROGRAMADOR]]
[[Category:CONTROLES/FORMS]]
*Ancestro: [[TTfvsForm]]
*Carpeta: C:\DevelopPrx\library
*Archivo: prxADODataSet_Options_Impresion_Aplicativo_Form.pas


=Armado del registro=
=Armado del registro=
Línea 69: Línea 62:
<pre>
<pre>
SELECT * FROM cmpAPLICATIVO ORDER BY Pantalla, Linea
SELECT * FROM cmpAPLICATIVO ORDER BY Pantalla, Linea
</pre>
=Declaración=
<pre>
</pre>
</pre>


Línea 81: Línea 70:
*Carpeta: C:\DevelopPrx\library
*Carpeta: C:\DevelopPrx\library
*Archivo: prxADODataSet_Options_Impresion_Aplicativo_Form.pas
*Archivo: prxADODataSet_Options_Impresion_Aplicativo_Form.pas
=Declaración=
<pre>
type
  TTprxADODataSet_Options_Impresion_Aplicativo_Form = class(TTfvsForm)
    Panel1: TPanel;
    Panel2: TPanel;
    ButtonCANCELAR: TButton;
    PageControl1: TPageControl;
    TabSheetDEFINICION: TTabSheet;
    Panel3: TPanel;
    TabSheetGENERACION: TTabSheet;
    prxAplicativo1: TprxAplicativo;
    Panel4: TPanel;
    SaveDialog1: TSaveDialog;
    Panel5: TPanel;
    Panel6: TPanel;
    MemoGENERACION: TMemo;
    Panel7: TPanel;
    Panel8: TPanel;
    MemoCOMANDOS: TMemo;
    ButtonGENERAR_ASCII: TButton;
    ButtonAPLICAR: TButton;
    ButtonGUARDAR_ARCHIVO: TButton;
    CantidadRegistros_Label: TLabel;
    prxCheckBox_PREFIJO: TprxCheckBox;
    prxCheckBox_DEBUG: TprxCheckBox;
    procedure FormShow(Sender: TObject);
    procedure ButtonCANCELARClick(Sender: TObject);
    procedure ButtonAPLICARClick(Sender: TObject);
    procedure ButtonGENERAR_ASCIIClick(Sender: TObject);
    procedure ButtonGUARDAR_ARCHIVOClick(Sender: TObject);
  private
    FPantalla: String;
    FDataSet: TCustomADODataSet;
    FGenerar: Boolean;
  protected
    function    GuardarDefinicion: Boolean;
    function    GenerarASCII: Boolean;
  public
    property    Pantalla: String read FPantalla write FPantalla;
    property    DataSet: TCustomADODataSet read FDataSet write FDataSet;
    property    Generar: Boolean read FGenerar write FGenerar;
  end;
</pre>
=Implementación=
===procedure FormShow(Sender: TObject)===
Carga los comandos de la pantalla asociada con:
<pre>
SELECT * FROM cmpAPLICATIVO WHERE Pantalla = @Pantalla ORDER BY Linea
</pre>
===function GuardarDefinicion: Boolean===
Guarda la definición del registro.
===function GenerarASCII: Boolean===
Genera el archivo ASCII usando un componente [[TprxAplicativo]].
===procedure ButtonGENERAR_ASCIIClick(Sender: TObject)===
Ejecutado desde el botón de '''Generar''', llama a la función anterior.
===procedure ButtonGUARDAR_ARCHIVOClick(Sender: TObject)===
Abre el diálogo de Windows para elegir dónde guardar el archivo ASCII.
=Uso=
El form es abierto desde [[TprxADODataSet_Options_Impresion_Aplicativo]] que...
Primero agrega la opción al menú:
<pre>
procedure TprxADODataSet_Options_Impresion_Aplicativo.GetPopupOptions(Sender: TprxPopupMenu);
begin
  inherited GetPopupOptions(Sender);
  Sender.AddItem(Traducir('Exportar a aplicativo') + '...', ExecuteClick, img_agregar, argDataSet.State = dsBrowse, pmaAddSubItem);
end;
</pre>
Este procedimiento es llamado desde [[TprxADODataSet_Options_Impresion_Menu]].GetPopupOptions.
Si la opción es elegida entonces abre el form:
<pre>
procedure TprxADODataSet_Options_Impresion_Aplicativo.ExecuteClick(Sender: TObject);
var
  vF: TTprxADODataSet_Options_Impresion_Aplicativo_Form;
begin
  inherited;
  vF          := TTprxADODataSet_Options_Impresion_Aplicativo_Form.Create(Self);
  vF.Pantalla := ReportId;
  vF.DataSet  := TCustomADODataSet(argDataSet);
  vF.Generar  := True;
  vF.ShowModal;
  vF.Release;
end;
</pre>

Revisión del 16:07 30 may 2025

Introducción

El form TTprxADODataSet_Options_Impresion_Aplicativo_Form (Form para imprimir datos a aplicativos.) permite imprimir los datos del form al que está asociado a un archivo ASCII con una estructura definida en la misma pantalla. Esta definición usa algo similar a XML y se guarda en la tabla APLICATIVOS/APLICATIVO (ver categoría Impresión genérica de aplicativos).

Al form se accede desde:

Acceso a la impresión de aplicativos.

La pantalla tiene dos pestañas:

Pantalla de impresión de aplicativos.

Armado del registro

El formato del registro se arma con etiquetas similares a las de XML, y se carga en la primera pestaña de la pantalla:

Diseño del registro para el aplicativo.

Una vez cargado el diseño del registro debemos presionar el botón Guardar definición.

La estructura básica de un campo es:

<columna>
<campo>nombre de una columna</campo>
<ancho>ancho en caracteres</ancho>
</columna>

Donde:

  • nombre de una columna es el nombre de alguna de las columnas de la pantalla asociada.
  • ancho en caracteres en el caso de campos alfanuméricos se ingresa un entero indicando el ancho de la columna.

Caso especial, fechas

Cuando el campo corresponde a una fecha no hay que indicar el ancho, pero sí el formato de la fecha, por ejemplo:

<formato>aaaammdd</formato>

Donde:

  • 'aaaa es el año usando 4 dígitos.
  • 'mm es el mes usando 2 dígitos.
  • 'dd es el día usando 2 dígitos.

Caso especial, caracteres constantes

Si quisiéramos agregar caracteres constantes tenemos que usar:

<caracter> </caracter>

Donde el espacio (en este caso) entre las etiquetas será el caracter a imprimir, si quisiéramos imprimir otro caracter hay que ponerlo en el lugar del espacio en blanco.

Caso especial, numéricos formateados=== Para los campos numéricos en los que queremos algún formato podemos indicarlo usando:

<formato>0000000000000.00</formato>
<pre>

Y si necesitamos mostrar un separador de miles podemos indicarlo con:
<pre>
<separador></separador>

En este caso no hay separador.

Ejemplos

La mejor manera de ver que se ha definido es hacer:

SELECT * FROM cmpAPLICATIVO ORDER BY Pantalla, Linea

Identidad

  • Ancestro: TTfvsForm
  • Carpeta: C:\DevelopPrx\library
  • Archivo: prxADODataSet_Options_Impresion_Aplicativo_Form.pas

Declaración

type
  TTprxADODataSet_Options_Impresion_Aplicativo_Form = class(TTfvsForm)
    Panel1: TPanel;
    Panel2: TPanel;
    ButtonCANCELAR: TButton;
    PageControl1: TPageControl;
    TabSheetDEFINICION: TTabSheet;
    Panel3: TPanel;
    TabSheetGENERACION: TTabSheet;
    prxAplicativo1: TprxAplicativo;
    Panel4: TPanel;
    SaveDialog1: TSaveDialog;
    Panel5: TPanel;
    Panel6: TPanel;
    MemoGENERACION: TMemo;
    Panel7: TPanel;
    Panel8: TPanel;
    MemoCOMANDOS: TMemo;
    ButtonGENERAR_ASCII: TButton;
    ButtonAPLICAR: TButton;
    ButtonGUARDAR_ARCHIVO: TButton;
    CantidadRegistros_Label: TLabel;
    prxCheckBox_PREFIJO: TprxCheckBox;
    prxCheckBox_DEBUG: TprxCheckBox;
    procedure FormShow(Sender: TObject);
    procedure ButtonCANCELARClick(Sender: TObject);
    procedure ButtonAPLICARClick(Sender: TObject);
    procedure ButtonGENERAR_ASCIIClick(Sender: TObject);
    procedure ButtonGUARDAR_ARCHIVOClick(Sender: TObject);
  private
    FPantalla: String;
    FDataSet: TCustomADODataSet;
    FGenerar: Boolean;
  protected
    function    GuardarDefinicion: Boolean;
    function    GenerarASCII: Boolean;
  public
    property    Pantalla: String read FPantalla write FPantalla;
    property    DataSet: TCustomADODataSet read FDataSet write FDataSet;
    property    Generar: Boolean read FGenerar write FGenerar;
  end;

Implementación

procedure FormShow(Sender: TObject)

Carga los comandos de la pantalla asociada con:

SELECT * FROM cmpAPLICATIVO WHERE Pantalla = @Pantalla ORDER BY Linea

function GuardarDefinicion: Boolean

Guarda la definición del registro.

function GenerarASCII: Boolean

Genera el archivo ASCII usando un componente TprxAplicativo.

procedure ButtonGENERAR_ASCIIClick(Sender: TObject)

Ejecutado desde el botón de Generar, llama a la función anterior.

procedure ButtonGUARDAR_ARCHIVOClick(Sender: TObject)

Abre el diálogo de Windows para elegir dónde guardar el archivo ASCII.

Uso

El form es abierto desde TprxADODataSet_Options_Impresion_Aplicativo que...

Primero agrega la opción al menú:

procedure TprxADODataSet_Options_Impresion_Aplicativo.GetPopupOptions(Sender: TprxPopupMenu);
begin
  inherited GetPopupOptions(Sender);

  Sender.AddItem(Traducir('Exportar a aplicativo') + '...', ExecuteClick, img_agregar, argDataSet.State = dsBrowse, pmaAddSubItem);
end;

Este procedimiento es llamado desde TprxADODataSet_Options_Impresion_Menu.GetPopupOptions.

Si la opción es elegida entonces abre el form:

procedure TprxADODataSet_Options_Impresion_Aplicativo.ExecuteClick(Sender: TObject);
var
  vF: TTprxADODataSet_Options_Impresion_Aplicativo_Form;
begin
  inherited;

  vF          := TTprxADODataSet_Options_Impresion_Aplicativo_Form.Create(Self);
  vF.Pantalla := ReportId;
  vF.DataSet  := TCustomADODataSet(argDataSet);
  vF.Generar  := True;
  vF.ShowModal;
  vF.Release;
end;