TTprxADODataSet Options Impresion Aplicativo Form
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;