Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-12-2008
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Insertar un dato a una tabla desde fastreport 4

Hola a todos

Alguno de uds. a logrado insertar un dato a una tabla desde fastreport es decir
Imaginemonos que es un informe de cuatro paginas cada vez que la pagina termina el valor que esta incluya al final de la misma debe ser insertada a una tabla

Ej. una factura tiene 4 paginas de impresion , el final se encuentra la base Imponible , el iva , base Iva cero , pues bien esos datos son los que quiero capturar y grabarlos

la segunda opcion . el objeto del reporte trae un evento que indica cuando una pagina termina pero bien como le paso del reporte a este evento los valores para insertarlos que seria lo que ando buscando ..

Gracias por su tiempo e interes a leer este pedido
__________________
IVAND
Responder Con Cita
  #2  
Antiguo 10-12-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Hola
Ivand
Yo he insertado y modificado registros al dar la vista previa al reporte, pero no es algo que recomiende hacer ya que cada vez que se de la vista previa o impresion el sistema ejecuta el sql de insercion duplicando los registros
Si a pesar de esto te interesa te puedo dar un dato de como hacerlo
Responder Con Cita
  #3  
Antiguo 10-12-2008
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Gracias por tu respuesta , si fueras tan amable en darme una idea te lo agradeceria , la otra manera que estoy intentado es leer una variable desde delphi com el metodo findobject pero me retorna el texto de este campo y seria que me retorne es el valor (en este memo hay una formula de suma)


En espera de tu respuesta te quedo muy agradecido
__________________
IVAND
Responder Con Cita
  #4  
Antiguo 14-12-2008
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Hola hescopina ,

Espero no te incomode pero me podrias guiar un poquito en lo de insertar un datos a una tabla desde fastreport


Gracias
__________________
IVAND
Responder Con Cita
  #5  
Antiguo 17-12-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Hola IVAND
Que pena la demora pero he estado un poco ocupado y sin internet

Empecemos
te voy a hacer un ejemplo donde se inserta codigo, nombre y valor en una tabla

Primero debes crear la variables de los valores que deseas insertar
Desde la pestaña codigo debes adicionar las siguentes lineas

Código Delphi [-]
Var
codigo:string;
nombre:string;
valor:string;

esto antes del begin

Despues debes crar el ibxquery para la insercion
desde la ventana data o datos adicionas un ibxquery

Código SQL [-]
insert into tabla (codigo,nombre,valor) values (:cod,:nom,:vlr)

alli con el boton parametros asignas a estos parametros el valor de las variables creadas

Por ejemplo

PARAMETRO ------- TIPO DE DATO ------- VARIABLE
COD -------------- STRING-----------------<CODIGO>
NOM--------------- STRING-----------------<NOMBRE>
VLR---------------- CURRENCY--------------<VALOR>

tercero utilizando el evento before print de una banda, en mi caso utilizo un pie de pagina o un pie de grupo, eso depende del reporte

Para asignar el evento debes hace clic en la banda y oprimir la tecla F11, aparece el inspector de objetos y alli la pestaña eventos, haces dobleclic en el beforeprint y adicionas el siguiente codigo

Código SQL [-]
codigo:=memo1.value;
nombre:=memo2.value;
valor:=memo3.value;
ibxquery1.open;

Memo1, memo2 y memo3, son los memos donde se almacena los valores a ser insertados
Ibxquery1 es la instruccion de insercion creada en el segundo paso

Espero te ayude a resolver tu problema

Yo personalmente no lo utilizo por los problemas de duplicidad de datos y violacion a llaves primarias, al realizar una nueva impresion

De nuevo disculpas por la tardanza

Responder Con Cita
  #6  
Antiguo 18-12-2008
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Hola Hescopina , nuevamente gracias por tu tiempo , te cuento que mas o menos era lo que yo habia investigado , solo tengo una pregunta para que los datos que insertas se vean reflejados en la base despues de la impresion como le haces , ahora lo que hago es cerrar el aplicativo y ahi me muestra los cambios recien , es decir que falta un commitretaing desde el fastreport

Aqui te pongo lo que yo he echo


Código Delphi [-]
procedure Memo4OnBeforePrint(Sender: TfrxComponent);
begin
    if Engine.FinalPass then
     Begin                            
      ibx.Close;                    
      IBX.ParamByName('Val').Value:=Get();
      IBX.ExecSQL;
      ibx.Open;                    
    End;              
end;


Lo que ahora no puedo es ver los datos directamente como cuando uno hace commitretaining

Nuevamente gracias por tu tiempo , felicez fiestas
__________________
IVAND
Responder Con Cita
  #7  
Antiguo 19-12-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Hola Ivand
No sabria como hacer el commit, nunca lo he utilizado pues dentro de la aplicacion que manejo al ingresar a la ventana que requiero los datos se actualizan

Mira si depronto en la propiedad de la transaccion encuentras el commit

algo como esto
ibxquery1.query.transaction.commit;

Suerte
Responder Con Cita
  #8  
Antiguo 27-12-2008
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Listo ahora ya se pueden insertar datos desde fastreport a una tabla ... en poco colocare el codigo y la explicacion para todos aquellos que algun dia la necesitaran
__________________
IVAND
Responder Con Cita
  #9  
Antiguo 29-12-2008
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Antes de nada, felicitar las fiestas a todos los miembros del club.

Este post, me parece curiosisimo por el echo de generar registros desde el propio reporte. No es por criticar lo que haces, es que no comprendo muy bien el motivo. A mi entender esta claro que lo que haces no es correcto. Hacer se puede hacer, ¿pero es lógico está forma de implementación?

En 20 años en el mundo de la programación, es la primera vez que veo algo parecido.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #10  
Antiguo 29-12-2008
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Felices fiestas y un buen año 2009 a todos de corazon

Bueno Pepelolo , pues mira en el mundo de la programacion siempre hay alguna cosa logica en mi caso muy particular es justamente la de insertar registros al imprimir un reporte caso especial las facturas , en todos mis clientes trabajamos con impresiones de facturas muy grandes y de diferentes medidas , entonces como el Sri(servicio de rentas internas del ecuador) obliga a que cada impresion de facturas tenga subtotales iva y todo lo de ley , eso lo hacia antes en un proceso aparte pero entreba en juego varios factores entre ellos el redondeo es asi que las facturas dividas en varias hojas el valor que se insertaba desde otro proceso variaba por un centavo(questines de usar 4 decimales en los subtotales y dos para el calculo del iva)
, imaginate en 30.000 impresiones en el mes , ahora lo inserto desde el reporte y los valores que tiene cada factura seran exactos a lo que se guardan en la tabla , si el cliente cambia el tamaño de la impresion no pasara nada seguira dividiendo e insertando los valores sin ningun cambio


Y feliz año 2009
__________________
IVAND
Responder Con Cita
  #11  
Antiguo 29-12-2008
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Cita:
Empezado por IVAND Ver Mensaje
Felices fiestas y un buen año 2009 a todos de corazon

Bueno Pepelolo , pues mira en el mundo de la programacion siempre hay alguna cosa logica ..... entonces como el Sri(servicio de rentas internas del ecuador) obliga a que cada impresion de facturas tenga subtotales iva y todo lo de ley , eso lo hacia antes en un proceso aparte pero entreba en juego varios factores entre ellos el redondeo es asi que las facturas dividas en varias hojas el valor que se insertaba desde otro proceso variaba por un centavo(questines de usar 4 decimales en los subtotales y dos para el calculo del iva)
Justo le has dado, en medio de la frente, no se puede usar un número de decimales distintos en el proceso de calculo. En España sucede lo mismo con el calculo de facturas (Importe Bruto - Descuentos + Iva + Gastos financieros = Total), en todos ellos se deben aplicar el mismo número de decimales, sino el total se desvirtua. Personalmente siempre uso 4 decimales y nunca he tenido problemas con el redeondeo (en mi caso mi empresa vende productos con 6 decimales la únidad, claro que al final hablamos de miles de unidades vendidas por lo que el redondeo se deja en 4 decimales).

¿Creo entender que es un servicio de billing.?
En la empresa actual en la que trabajo, se imprimen algunos millones de facturas al mes de distintos clientes, se usan distintos programas de generación de spool (PrintNet o Press) y tampoco se ha tenido problema con los subtotales, a no ser que no se manejaran el número correcto de decimales en todos los casos.

El proceso que hacias anteriormente si es lógico.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insertar dato en Tabla Paradox Abuelo7 Conexión con bases de datos 11 09-10-2008 23:09:12
Insertar datos en una tabla desde consulta en un SP subzero MS SQL Server 2 05-12-2007 16:18:19
insertar desde una tabla externa sidneyb SQL 3 03-12-2007 13:43:37
insertar datos en una tabla desde fichero XML??? mguixot Conexión con bases de datos 2 17-05-2006 16:18:04
insertar datos en una tabla desde otra Giniromero SQL 5 17-06-2004 19:37:16


La franja horaria es GMT +2. Ahora son las 22:50:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi