Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   debe y haber (https://www.clubdelphi.com/foros/showthread.php?t=25732)

sflexas 02-10-2005 01:49:10

debe y haber
 
Hola :eek:
tengo una tabla movimientos en los que tengo algunos que son debe y otros haber. Lo que quiero hacer es imprimir el 2 detalles ambos y no puedo hacer que me los muestre intercalados por fechas (Me explico??) en 2 columnas distintas. Agrdeceria cualquier ayuda. Gracias :p

Casimiro Noteví 02-10-2005 12:40:29

Creo que entiendo lo que preguntas, pero no está muy claro, podrías explicarlo mejor?, gracias.

marcoszorrilla 02-10-2005 12:44:46

Si tienes ambos campos debe y haber y no todo confundido en uno, la cosa es muy sencilla, símplemente colocas en la parte izquierda como es preceptivo el debe y en la derecha el haber (que serán dos campos diferentes) y luego pintas un línea vertical entre ambos y dará la ilusión de 2 columnas, esta línea, dependerá del programa que utilices para informes, la manera en que se llevará a cabo.

Un Saluod.

sflexas 09-10-2005 03:33:08

me explico mejor
 
Solo tengo una tabla movimientos en los que algunos tienen un importe positivo y otros negativo. Mi intencion es que salga de la siguiente forma

cod Tipo ------------------------------------Debe ------Haber

1 Recibo------------------------------------- 1000
43 cheque -----------------------------------------------125

Me explico??
Gracias :D

Casimiro Noteví 09-10-2005 12:49:11

Es difícil (imposible) dar respuestas válidas cuando no se hacen preguntas correctas.

Al principio no dijiste nada sobre importes positivos y negativos, también preguntaste por fechas, sin embargo ahora no sale en tu ejemplo :confused:

En fin, que esto es perder el tiempo intentanto "tirarte de la lengua" para que nos diga exactamente qué tiénes y qué quiéres.

Y no lo digo sólo por tí, tu caso es muy habitual, que piensan que los demás somos adivinos o algo así.

Menos mal que en tu caso no te has quejado que no se te ayude bien, porque algunos además se quejan.

Saludos.

vtdeleon 09-10-2005 15:45:20

Saludos

Yo tengo más o menos una idea de lo que se quiere, pero no me atrevo a decir cual es, puesto que (quizas) estaría hablando blablabla....
Yo le sugiero a sflexas que nos muestre la estrúctura de la(s) tabla(s) en cuestión y como desearía la estructura del reporte.

sflexas 10-10-2005 03:40:57

A ver...
 
Realmente pido disculpas al ser tan poco explicito, realmente pense que era comun lo que pregunto. Lo que yo queria es que en la misma banda de detalle ( Maestro: Cliente, Detalle: Movimientos ) aparezca el importe positivo en una posicion determinada (left=100) y el negativo en otro (left=140). Para que quede el formulario al estilo tablas de contabilidad; con el Debe en una columna y el Haber en otra. El tema es que lo intente poniendo QrExpr con el if pero no creo que se pueda por estar tratando el mismo campo. El importe positivo y el negativo son el mismo campo. Saludos, El INCOMPRENDIDO SFLEXAS:rolleyes:

vtdeleon 10-10-2005 03:58:45

Saludos
Bueno, aún no entiendo...pero dejame aventurarme.
Código:

****Estructura actual****

Cliente  Nombre

000001  Juan
000002  Mario

Cliente    Movimiento

000001        234.00
000001        543.00
000002        193.00
000001        -832.00
000002        -423.00
000002        -100.00
****Estructura Deseada****

Cliente  Nombre  Debe    Haber

000001    Juan...  234.00
000001    ......  543.00
000001    .......          832.00
000002    .......  193.00
000002    .......          423.00
000002    .......          100.00

Es esto lo que deseas?

Casimiro Noteví 10-10-2005 09:04:12

Te das cuenta sflexas, ahí tienes a vtdeleon suponiendo, imaginando, aventurando qué es lo que quieres y qué es lo que tienes.

Debes decir: tengo una tabla con estos campos: xxx, yyy, zzz y otra tabla con estos otros campos: aaa,bbb,ccc y quiero obtener el siguiente resultado: bla,bla,bla......

Esta es la contestación número 8 después de que formularas tu pregunta y todavía no sabemos exactamente qué tienes y qué quieres.

Porfa, sé un poquito más explícito, no eres el incomprendido sflexas, es que no somos adivinos.

Saluditos.

quimeras 10-10-2005 09:25:18

Tampoco conocemos el sistema de base de datos que utilizas, sflexas.
Por ejemplo, en Firebird/Interbase sería muy facil de hacer dentro de un procedimiento almacenado:
Código:

          if (Importe >=0) then begin
                Debe = Importe;
                Haber = 0;
          end
          if (Importe < 0) then begin
                Debe = 0;
                Haber = 0 - Importe;
          end


sflexas 16-10-2005 02:24:42

Vtdeleon, eso es exactamente lo que quiero. Me parecia algo comun y no tan raro. El tema es que lo quiero dentro de un Quickreport y no se como hacer para que cuando es debe no me aparezca nada en la columna haber y lo inverso de esto. El invonveniente surge por ser el mismo campo (segun vos Movimiento)

Lepe 16-10-2005 06:26:26

sflexas sigues sin decir los componentes de acceso a la BD (ado, bde, ibx) ni tampoco la BBDD en sí (paradox, firebird,...). No creas que vamos a poner la solución para todas las Bases de datos que existen.

saludos.

sflexas 17-10-2005 03:23:25

Ok, Componentes Ado , base de datos Sql server 7.0 reportes Qreport. Calculo que la solucion esta en el qreport y no en la conexion a la base de datos ni en el manejode las componentes.Gracias por la paciencia

roman 17-10-2005 04:10:17

Podrías agregar dos campos calculados al AdoTable: Debe y Haber y asignarles su valor en el evento OnCalcFields:

Código Delphi [-]
procedure TForm1.AdoTable1CalcFields(DataSet: TDataSet);
var
  Movimiento: Currency;

begin
  Movimiento := DataSet.FieldByName('movimiento').AsCurrency;
  if Movimiento >= 0 then
  begin
    DataSet.FieldByName('debe').AsCurrency := Movimiento;
    DataSet.FieldByName('haber').AsCurrency := 0;
  end
  else
  begin
    DataSet.FieldByName('debe').AsCurrency := 0;
    DataSet.FieldByName('haber').AsCurrency := -Movimiento;
  end;
end;

Alimentas al QuickReport con esto y tendrás tus dos columnas.

// Saludos


La franja horaria es GMT +2. Ahora son las 06:36:31.

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