Diferencia entre revisiones de «TTprxADODataSet Options Impresion Aplicativo Form»
(Página creada con «=Descripció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 cmpAPLICATIVO. =Identidad= Category:MANUAL/PROGRAMADOR Category:CONTROLES/FORMS *Ancestro: TTfvsForm *Carpeta: C:\Develo…») |
|||
(No se muestran 7 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
= | =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 [[ | 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 [[:Category:APLICATIVOS|Impresión genérica de aplicativos]]). | ||
Al form se accede desde: | |||
[[Archivo:20250530 1029 IMPRIMIR APLICATIVO MENU.png|miniaturadeimagen|no|Acceso a la impresión de aplicativos.]] | |||
La pantalla tiene dos pestañas: | |||
[[Archivo:20250530 1029 IMPRIMIR APLICATIVO FORM.png|miniaturadeimagen|no|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: | |||
[[Archivo:20250530 1047 IMPRIMIR APLICATIVO DISEÑO.png|miniaturadeimagen|no|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: | |||
<pre> | |||
<columna> | |||
<campo>nombre de una columna</campo> | |||
<ancho>ancho en caracteres</ancho> | |||
</columna> | |||
</pre> | |||
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: | |||
<pre> | |||
<formato>aaaammdd</formato> | |||
</pre> | |||
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: | |||
<pre> | |||
<caracter> </caracter> | |||
</pre> | |||
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: | |||
<pre> | |||
<formato>0000000000000.00</formato> | |||
<pre> | |||
Y si necesitamos mostrar un separador de miles podemos indicarlo con: | |||
<pre> | |||
<separador></separador> | |||
</pre> | |||
En este caso no hay separador. | |||
===Ejemplos=== | |||
La mejor manera de ver que se ha definido es hacer: | |||
<pre> | |||
SELECT * FROM cmpAPLICATIVO ORDER BY Pantalla, Linea | |||
</pre> | |||
=[[QUEESESTO/IDENTIDAD|Identidad]]= | =[[QUEESESTO/IDENTIDAD|Identidad]]= | ||
[[Category:MANUAL/PROGRAMADOR]] | [[Category:MANUAL/PROGRAMADOR]] | ||
Línea 7: | 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 actual - 21:00 5 jun 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:

La pantalla tiene dos pestañas:

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:

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;