PDA

Ver la Versión Completa : Ayuda con vista en ibexpert y reportbuilder enterprise


synapsevzla
07-09-2015, 04:11:50
hola a todos amigos del club delphi, estoy tratando de adaptar una ap para el negocio de mi papa que esta realizada en delphi y firebird como motor de db el problema que tengo es el siguiente genere una vista en ibexpert que me arroja los siguientes resusltados.


DOCUMENTO TIPO_DOCUMENTO TOTAL_OPERACION
0000000001 FAC 180962,96,0000
0000000002 FAC 365094,44,0000
0000000003 FAC 180962,96,0000
0000000001 DEV 180962,96,0000
0000000004 FAC 180962,96,0000
0000000005 FAC 180962,96,0000
0000000006 FAC 180962,96,0000

Pero yo necesito que todo lo que aparesca en la fila con la descripcion 'DEV y N/C' en el reportbuilder se ponga en negativo para que se pueda restar.

Ejemplo:

DOCUMENTO TIPO_DOCUMENTO TOTAL_OPERACION
0000000001 FAC 180962,96,0000
0000000002 FAC 365094,44,0000
0000000003 FAC 180962,96,0000
0000000001 DEV -180962,96,0000
0000000004 FAC 180962,96,0000
0000000005 FAC 180962,96,0000
0000000006 FAC 180962,96,0000

Como puedo lograr esto?

Les agradeceria de todo corazon su ayuda.

Comparto tambien copia de la db con las vistas incluidas.

synapsevzla
07-09-2015, 04:14:51
Corrijo la mustra de los datos asi se ve la vista

DOCUMENTO TIPO_DOCUMENTO TOTAL_OPERACION
0000000001 FAC 180962,96,0000
0000000002 FAC 365094,44,0000
0000000003 FAC 180962,96,0000
0000000001 DEV 180962,96,0000
0000000004 FAC 180962,96,0000
0000000005 FAC 180962,96,0000
0000000006 FAC 180962,96,0000

y me tendria que quedar asi

DOCUMENTO TIPO_DOCUMENTO TOTAL_OPERACION
0000000001 FAC 180962,96,0000
0000000002 FAC 365094,44,0000
0000000003 FAC 180962,96,0000
0000000001 DEV -180962,96,0000
0000000004 FAC 180962,96,0000
0000000005 FAC 180962,96,0000
0000000006 FAC 180962,96,0000

Casimiro Notevi
07-09-2015, 09:38:14
Hola, primero de todo, ¿qué dato es esto?: 180962,96,0000
Se supone que es un número con decimales, pero dos comas ahí :confused:

En cuanto a lo que quieres hacer en el informe no es nada complicado, pero demasiado difícil de explicar por escrito, debes añadir una campo calculado sobre la columna que quieras, nada más.
Te aconsejo que mires la documentación o alguno de los montones de ejemplos que vienen con reportbuilder.

synapsevzla
07-09-2015, 15:01:53
Hola casimiro gracias por la observacion si en realidad son dos decimales los 0000000 al final pertenecian a otra columna lo que pasa es que copie y pege mal lo siento e tratado de hacer lo siguiente en mi report builder anoche.


if (vista['Documento_Tipo'] = 'Dev') then

Value := -(vista[monto])

else

Value := vista[monto];


al darle compilar me aparece 0 error pero al tratar de ver el reporte me arroja el error variable0oncalc en un cuadro de mensaje.

pense que asi quisas podria cambiar los valores positivo que aparecieran con DEV en el reporte en negativo pero nada.

cloayza
07-09-2015, 16:00:12
Estimado compañero, te sugiero que realices la transformación del valor en la misma vista...

Te propongo algo así:


CREATE OR ALTER VIEW TU_VISTA(
DOCUMENTO,
TIPO_DOCUMENTO,
TOTAL_OPERACION)
AS
SELECT DOCUMENTO,
TIPO_DOCUMENTO
IIF(TIPO_DOCUMENTO='DEV',-1*TOTAL_OPERACION,TOTAL_OPERACION) AS TOTAL_OPERACION
FROM TU_TABLA;


Saludos cordiales

synapsevzla
07-09-2015, 16:52:26
osea que tendria que ser algo como esto?


CREATE OR ALTER VIEW VIEW_LIBROVTAIVA2015(
CORRELATIVO,
CORRELATIVO_CODIGO,
DOCUMENTO,
TIPO_DOCUMENTO,
CLIENTE_CODIGO,
CLIENTE_NOMBRE,
CLIENTE_RIF,
FECHA_EMISION,
HORA_EMISION,
TOTAL_OPERACION,
TOTAL_BASE_IMPONIBLE,
TOTAL_IMPUESTO_FISCAL,
TOTAL_EXENTO,
CORRELATIVO_PRINCIPAL,
TOTAL_NETO_01,
TOTAL_IMPUESTO_01,
PORC_IMPUESTO_01,
IMPUESTO_IVA_CODIGO_01,
CORRELATIVO_PRINCIPAL1,
TOTAL_NETO_03,
TOTAL_IMPUESTO_03,
PORC_IMPUESTO_03,
IMPUESTO_IVA_CODIGO_03,
ORDEN_DE_COMPRA)
AS
select
ventas.correlativo,
ventas.correlativo_codigo,
ventas.documento,
ventas.tipo_documento,
if (ventas.tipo_documento='DEV', -1*ventas.total_operacion, ventas.total_operacion) as ventas.total_operacion,
ventas.cliente_codigo,
ventas.cliente_nombre,
ventas.cliente_rif,
ventas.fecha_emision,
ventas.hora_emision,
ventas.total_operacion,
ventas.total_base_imponible,
ventas.total_impuesto_fiscal,
ventas.total_exento,
view_compiladoiva01.correlativo_principal,
view_compiladoiva01.total_neto_01,
view_compiladoiva01.total_impuesto_01,
view_compiladoiva01.porc_impuesto_01,
view_compiladoiva01.impuesto_iva_codigo_01,
view_compiladoiva03.correlativo_principal,
view_compiladoiva03.total_neto_03,
view_compiladoiva03.total_impuesto_03,
view_compiladoiva03.porc_impuesto_03,
view_compiladoiva03.impuesto_iva_codigo_03,
ventas.orden_de_compra
from ventas
inner join view_compiladoiva01 on (ventas.correlativo = view_compiladoiva01.correlativo_principal)
inner join view_compiladoiva03 on (ventas.correlativo = view_compiladoiva03.correlativo_principal)


Si fuerabn mas valores que al conicidir con DEV tubiesen que cambiar a negativo como seria y si la condicion Fuese no solo DEV si no tambien NC o tra condicion como podria lograrlo?

Nota: trate de crearlo asi y no me manda error el ibexpert la linea que resalto en rojo me la muestra como error.

y los valores que tendrian que cambiar a negativo cuando aparesca la condicion DEV o NC serian los resaltados en azul

cloayza
07-09-2015, 17:02:20
Si fueran mas valores podria ser así:



--Opcion 1:
IIF(ventas.tipo_documento='DEV' OR ventas.tipo_documento='NC', -1*ventas.total_operacion, ventas.total_operacion) as ventas.total_operacion

--Opcion 2:
IIF(ventas.tipo_documento IN ('DEV','NC'), -1*ventas.total_operacion, ventas.total_operacion) as ventas.total_operacion



Saludos cordiales

synapsevzla
08-09-2015, 16:51:53
hola amigos del foro de verdad estoy muy agradecido por la respuesta tan rapida que me han brindado espero a futuro poder colaborar con ustedes miesntras voy puliendo cada ves mas en el tema del desarrollo con respuesta a las suluciones que me am planteado.

me sigue dando error la vista al tratar de compilarla me dice lo siguiente

IIF (ventas.tipo_documento='DEV', -1*ventas.total_operacion, ventas.total_operacion) as ventas.total_operacion,

al darle compile a la vista me arroja este error.

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 32, column 96.
.

aun sigo sin saber que pasa, aunque agrego que cuando me da el error el cursor se pone en la linea de la sentencia del sql en el ultimo . de ventas.total_operacion

cloayza
08-09-2015, 18:46:48
Amigo, creo que el problema es que estas dando un nombre de alias al campo calculado incluyendo el nombre de la tabla, intenta dejar la sentencia de esta forma:


IIF (ventas.tipo_documento='DEV', -1*ventas.total_operacion, ventas.total_operacion) as total_operacion

El alias total_operacion, es un nombre que se puede dar a las variables o cálculos que participa en una consulta, de esta manera yo puedo indicar cuales serán los nombres de estas variables, por defecto se asigna el nombre del campo correspondiente a la tabla, pero en este caso como es una expresión yo asigno un alias -total_operacion- que puede ser cualquiera, como:


IIF (ventas.tipo_documento='DEV', -1*ventas.total_operacion, ventas.total_operacion) as Resultado

Saludos cordiales