Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error al calcular una factura (https://www.clubdelphi.com/foros/showthread.php?t=59613)

coso 02-09-2008 23:02:59

PD: el skin del form principal, precioso :) creo q lo voy a guardar

Yensis22 02-09-2008 23:19:02

espo que
 
Tiene que realizar

Cita:

Realisar la connexion de ODBC por panel de control/ Herramientas administrativas/Orígenes de datos (ODBC)/DNS Sitem/agregar/Microsoft Accesss drive(*dma) y le pone nombre DB y seleciona el lugad donde esta la base de dtao tine que poner la carpeta en c:\

coso 02-09-2008 23:19:46

no, eso ya lo hice. y entre con carlos 123

Yensis22 02-09-2008 23:27:00

Entra
 
Entra con este Usuario
Yensis user
mcmlxxx clave

coso 02-09-2008 23:50:05

siguen sin abrirse las tablas .yensis, lo siento pero aqui es tarde (00:51) si no lo miraria mas. Haz caso del mensaje anterior, de lo de los quotedstr, para almenos solucionar ese execsql.saludos.

Yensis22 03-09-2008 02:01:10

Error de
 
en la ejecucion

Cita:


Ya realice eso cambio pero cunado lo ejecuto manda este error (error de sistanxis (falta operador en la expresión de consulta " D?").
en el botón de los cálculos y en el de busqueda que me trael el otro form me lo trae pero no me inserta ningún dato.


Yensis22 03-09-2008 02:10:20

base dato
 
Aqui esta la base dede datos sola
para que la baje y la haga la prueba
http://www.4shared.com/file/61518389...cturacion.html

Caral 03-09-2008 02:39:19

Hola
Creo y casi podria asegurar que no as revisado el ORDEN en que estan los datos en la tabla.
Indique hace ya un rato que el ORDEN DE LA TABLA TIENE QUE SER EL MISMO QUE EL DEL INSERT.
Lo que pude notar haciendo algunas pruebas es que no coinciden los datos ni de la tabla ni con el tipo de dato.
Si se hace un cambio, da otro error y asi sucesivamente.
Consejo:
Cambia ese insert (osea el query) por un table y haces un edit y un post.
Esto lo digo para que salgas del problema facilmente, ya que tienes poco tiempo.
Cuando tengas mas tiempo y experiencia regresa al query que es la mejor opción, de otra manera estaras aqui toda la noche y no creo que nadie te pueda ayudar, es muy dificil entender esto, como esta.
Saludos

Yensis22 03-09-2008 05:13:10

Ya hace rato que
 
que modifique las tabla a datos double

[quote]
si cambioa a la tabla tengo que cambiar todo el codigo casimentes eso es empesa de cero.
[quote]

tcp_ip_es 03-09-2008 07:51:34

Abro Paréntesis con aclaración sin desvirtuar el hilo.

Cita:

Hola, a manera de observación les aconsejaría que no se limiten tan apresuradamente a sacar conclusiones de la grafía de una persona. Es muy posible que sea una persona con dislexia.
Precisamente por no sacar conclusiones le he preguntado ¿que por qué escribía asi? es posible que sea lo que dices tu o bien lo que he dicho yo sobre que hable otro idioma y su segundo idioma sea el castellano/español y se le de peor, pero hasta que Yensis nos aclare el tema no nos podremos enterar :rolleyes: (y no miro a nadie ehhh :D )

Cierro Paréntesis con aclaración sin desvirtuar el hilo.

coso 03-09-2008 10:26:25

Hola buenos dias, deberias hacer tal como te dice caral, con el mismo query:

en vez de usar el insert...

Código Delphi [-]
Qfacturacion.SQL.Text := 'Insert into Facturacion 
 Values ('+QuotedStr(ECodFactura.Text)+', '+QuotedStr(EdiCliente.Text)+ ', 
 '+ LabDireccion.Caption+ ' :FechaFactura, '+QuotedStr(Editequipo.Text)+ ', 
 '+QuotedStr(EditRNC.Text)+ ', '+QuotedStr(DBComboBox2.Text)+', 
 '+QuotedStr(EMonto.Text)+', '+
                        QuotedStr(Editcantidad.Text)+', '+QuotedStr(ETotal.Text)+', 
 '+QuotedStr(EImp.Text)+', '+QuotedStr(EDesc.Text)+', '+QuotedStr(DBComboBox3.Text)+ ', 
'+QuotedStr(ESTotal.Text)+ ', '+QuotedStr(EDescuento.Text)+')', '+
                        QuotedStr(EImpuesto.Text)+')';
 Qfacturacion.Parameters.ParamByName('FechaFactura').Value:= DateToStr(DateTimePicker1.Date);
 Qfacturacion.ExecSQL;

usar

Código Delphi [-]
QFacturacion.Append;
QFacturacion.FieldValues['CODIGO_FACTURA'] := ECodFactura.Text;
QFacturacion.FieldValues['DIREC_CLIENTE'] := LabDireccion.Caption;
...
QFacturacion.FieldValues['TOTAL'] := total; // siendo la variable total real
QFacturacion.FieldValues['FECHA'] := Datetimepicker1.Date;
Qfacturacion.Post;

para salir del paso este que te bloquea. saludos.

coso 03-09-2008 10:39:08

Código Delphi [-]
 
'... Values ('+QuotedStr(ECodFactura.Text)+', ' 
+QuotedStr(EdiCliente.Text)+ ',  ' + 
LabDireccion.Caption + ' :FechaFactura, '+ // <--- con quotedstr, y falta una coma delante el :
QuotedStr(Editequipo.Text)+ ',' ...

otro fallo, esto deberia ser QuotedStr, y antes de :FechaFactura, tendria que haber una coma...

coso 03-09-2008 10:57:35

bueno, a ver si sales del paso yensis, saludos. Procura escribir mas ordenadamente la proxima vez, de igual manera con tu codigo, que te ayudara mucho. venga, saludos.

Yensis22 03-09-2008 15:09:30

Nuevos cambio
 
Ya Realise los cambio

Cita:


Pero me esta mandando este error “Raised exception class EDatabaseError with messege “”qfacturacion: Fild “cliente” not found.” Y se para en esta linea (QFacturacion.FieldValues['Direccion'] :=LabDireccion.Caption;) este es el nuevo codigo.
Código Delphi [-]
procedure TFFacturacion.BitBtn1Click(Sender: TObject);
var
a,b,c,d,e,f,g,h :real;
begin
 a:= StrTofloat(Editcantidad.Text);
 b:= StrTofloat(EMonto.Text);
 d:= StrTofloat(EDesc.Text);
 f:= StrTofloat(EImp.Text);
 c:= a * b;
 e:= c * d / 100;
 g:= (c - e) * f / 100;
 h:= c - e + g;
 ESTotal.Text:= floatToStr(c);
 EDescuento.Text:=floatToStr(e);
 EImpuesto.Text:=floatToStr(g);
 ETotal.Text:= floatToStr(Round(h));
 //QFacturacion.Active := false;
 QFacturacion.Append;
 QFacturacion.FieldValues['NumeroFactura'] := ECodFactura.Text;
 QFacturacion.FieldValues['Cliente'] :=EdiCliente.Text;
 QFacturacion.FieldValues['Direccion'] :=LabDireccion.Caption;
 QFacturacion.FieldValues['FechaFactura'] := Datetimepicker1.Date;
 QFacturacion.FieldValues['Equipos'] :=Editequipo.Text;
 QFacturacion.FieldValues['NCF'] :=EditRNC.Text;
 QFacturacion.FieldValues['Tecnico'] :=DBComboBox2.Text;
 QFacturacion.FieldValues['Monto'] :=EMonto.Text;
 QFacturacion.FieldValues['Cantidad'] :=Editcantidad.Text;
 QFacturacion.FieldValues['Total'] :=ETotal.Text;
 QFacturacion.FieldValues['ITBIS'] :=EImp.Text;
 QFacturacion.FieldValues['Descuento'] :=EDesc.Text;
 QFacturacion.FieldValues['FormaPago'] :=DBComboBox3.Text;
 QFacturacion.FieldValues['SubTotal'] :=ESTotal.Text;
 QFacturacion.FieldValues['Desctotal'] :=EDescuento.Text;
 QFacturacion.FieldValues['ITBIStotal'] :=EImpuesto.Text;
 QFacturacion.FieldValues['Comentario'] :=DBMemo1.Text;
   Qfacturacion.Post;
        end;
end.

coso 03-09-2008 15:11:53

antes de qfacturacion.append...

Código Delphi [-]
 
qfacturacion.active := false;
qfacturacion.sql.text := 'select * from facturacion';
qfacturacion.active := true;
 
qfacturacion.append;
...

coso 03-09-2008 15:12:52

descuento, etc... ahora los debes poner tal cual como reales, tal y como te comentaron en otro mensaje...ahora cada variable que pongas debe estar en su tipo...

Caral 03-09-2008 15:14:21

Hola
Ademas de lo dicho por Coso:
Podria estar afectando los espacios, trata asi:
Código Delphi [-]
var
a,b,c,d,e,f,g,h :real;
begin
 a:= StrTofloat(Editcantidad.Text);
 b:= StrTofloat(EMonto.Text);
 d:= StrTofloat(EDesc.Text);
 f:= StrTofloat(EImp.Text);
 c:= a * b;
 e:= c * d / 100;
 g:= (c - e) * f / 100;
 h:= c - e + g;
 ESTotal.Text:= floatToStr(c);
 EDescuento.Text:=floatToStr(e);
 EImpuesto.Text:=floatToStr(g);
 ETotal.Text:= floatToStr(Round(h));
 //QFacturacion.Active := false;
 QFacturacion.Append;
 QFacturacion.FieldValues['NumeroFactura'] := ECodFactura.Text;
 QFacturacion.FieldValues['Cliente'] := EdiCliente.Text;
 QFacturacion.FieldValues['Direccion'] := LabDireccion.Caption;
 QFacturacion.FieldValues['FechaFactura'] := Datetimepicker1.Date;
 QFacturacion.FieldValues['Equipos'] := Editequipo.Text;
 QFacturacion.FieldValues['NCF'] := EditRNC.Text;
 QFacturacion.FieldValues['Tecnico'] := DBComboBox2.Text;
 QFacturacion.FieldValues['Monto'] := EMonto.Text;
 QFacturacion.FieldValues['Cantidad'] := Editcantidad.Text;
 QFacturacion.FieldValues['Total'] := ETotal.Text;
 QFacturacion.FieldValues['ITBIS'] := EImp.Text;
 QFacturacion.FieldValues['Descuento'] := EDesc.Text;
 QFacturacion.FieldValues['FormaPago'] := DBComboBox3.Text;
 QFacturacion.FieldValues['SubTotal'] := ESTotal.Text;
 QFacturacion.FieldValues['Desctotal'] := EDescuento.Text;
 QFacturacion.FieldValues['ITBIStotal'] := EImpuesto.Text;
 QFacturacion.FieldValues['Comentario'] := DBMemo1.Text;
   Qfacturacion.Post;
        end;
Saludos

coso 03-09-2008 15:14:47

antes se pasaban a string porque sql.text es una string, tambien, pero ahora no hace falta; de la misma manera se usa quotedstr para poner una cadena dentro de otra.

coso 03-09-2008 15:18:52

otra cosa : veo q usas el texto normal para indicar lo que has hecho, el quoted para indicar lo que te ocurre o vas a hacer. Es muy confuso y molesto :confused: mejor no uses el quote a no ser q sea para referirte a algun mensaje anterior ;)

Yensis22 03-09-2008 15:52:14

Ya gracias
 
ya me esta realisando los calculos
muchas gracas por lalucha que les dado con ese codigo

Cita:

Por otra parte de este mismo from de factura yo tengo un botón busca, que lo que yo quiero que el me realice es que cunado yo lo llame me traiga otro from eso el me lo hace bien, pero que cuando yo le de le de clic a un cliente este me lo inserte en el edit de cliente de la factura esto lo que no me esta haciendo este es el código que tengo es este botón esta variable Nom_Cliente esta de clarada como publica Nom_Cliente: string; en el otro from que se llama FRegistroclient. este es el codigo del boton que me trael en from de del cliete.

Código Delphi [-]
procedure TFFacturacion.BSeleccionarClick(Sender: TObject);
begin
FRegistroclient:=TFRegistroclient.Create(self);
   try
    FRegistroclient.ShowModal;
   finally
   If FRegistroclient.Nom_Cliente <> '' then
   EdiCliente.Text := FRegistroclient.Nom_Cliente;
   LabDireccion.Caption:= QuotedStr(FRegistroclient.Direccion);
   FRegistroclient.Free;
   end;
end;

coso 03-09-2008 18:29:02

hola yensis...si sigues haciendo lo del quote, lo siento pero no te respondere mas. En cuanto a lo del cliente, lo mejor sera que hagas un 'breakpoint' (f5) justo en FRegistroclient.showmodal, con las opciones de debug activadas (project->options->compiler options->debug options) Pulsando f9 primero y luego f7,f8, podras ir siguiendo el recorrido del programa dentro de FRegistroClient. Mediante Ctrl+F5, puedes vigilar el valor de cierta variable durante este recorrido. Asi, hasta que cierras FRegistroClient, podras saber si se mantiene y si se pasa correctamente al edit. saludos.

coso 03-09-2008 18:51:44

A mi es que no se porque no se me abren las tablas :confused:

Caral 03-09-2008 18:54:03

Hola
Hombre para abrir tablas hay que ser carateca.:D:D;)
Saludos

coso 03-09-2008 19:02:22

no se yo si yensis se va a poner a pegar katas para abrir 'facturacion' alla cuando presente el programa. eso si, si fuese un profesor, yo la aprobaba seguro :D:D (por acojonamiento q se dice, claro)

Caral 03-09-2008 19:15:11

Hola
No se si as bajado el programa, pero me da la impresión de que se ha preocupado mas por la apariencia que por el código.
Una cosa que no entiendo es por que hace la conexión con la base de datos una parte con bde y otra con ado.
Es un programa muy sencillo que lo esta complicando mas de la cuenta.
Arreglar este programa es muy sencillo, ponerlo a trabajar es un asunto de una hora como máximo, lo que me molesta es que habría que empezar cambiando todos los bde por ado y eso es mas lento.
Bueno, ya que se metio en camisa de once varas pues veamos como sale.:D
No se quien estará mas acojonado, el al presentarlo o el profesor al verlo.:D:D
Saludos

coso 03-09-2008 19:19:00

home las imagenes son chulas, y ten en cuenta q es de una estudiante...me refiero a lo de q se puede mejorar...he visto varias cosas q no me han gustado para nada y ya no he analizado mucho el codigo (tropecientas querys, tablas, etc..., lo del timer con el splash, variables globales para forms,...). No he podido probarlo pq directamente no se me abren las susodichas tablas (facturacion, clientes) mientras que la de usuario si, y eso ya es teclear :o y me da pereza :) a ver si tiene suerte o buen golpe karateka, la yensis, (u otras armas desconocidas para nosotros) ;) saludos

PD: pero yensis es nombre de mujer no? me refiero, es una chica no? :eek:

Caral 03-09-2008 19:26:30

Hola
Cita:

Empezado por coso (Mensaje 311566)
home las imagenes son chulas, y ten en cuenta q es de una estudiante...me refiero a lo de q se puede mejorar...he visto varias cosas q no me han gustado para nada y ya no he analizado mucho el codigo (tropecientas querys, tablas, etc..., lo del timer con el splash, variables globales para forms,...). No he podido probarlo pq directamente no se me abren las susodichas tablas (facturacion, clientes) mientras que la de usuario si, y eso ya es teclear :o y me da pereza :) a ver si tiene suerte o buen golpe karateka, la yensis, (u otras armas desconocidas para nosotros) ;) saludos

PD: pero yensis es nombre de mujer no? me refiero, es una chica no? :eek:

A mi me a dado también pereza por eso no le e metido mano, no se sabe por donde empezar.:D
PD: No se si sera Nick de mujer, puede ser, buena pregunta.
Saludos

tcp_ip_es 05-09-2008 07:52:37

uhmmmm que raaaaaaaaaaro ok0510 ha escrito lo mismito que dec en su primera respuesta al hilo...

Cita:

Por favor, edita tu mensaje de manera que no "rompa" la página del foro. ¿Y qué es eso de "facruta"? Quisiste decir factura, claro. Presta más atención al título de los hilos, porque, es importante a la hora de realizar búsquedas en el futuro, entre otras cosas. Gracias.
...:eek: y es el primer mensaje de ok0510 .... yo ya no entiendo nada :rolleyes::confused::D

coso 05-09-2008 08:58:47

es un bot, tcp_ip, para ganar clicks a las paginas de abajo

tcp_ip_es 05-09-2008 09:25:47

uhmmm pero es un bot autorizado? ....uhmmm sigo sin entender...

coso 05-09-2008 09:28:22

no, claro q no. ten en cuenta q los ops no leen todos los mensajes, y mas si son asi (texto .... firma) vamos, formalmente correctos...ya lo borraran

tcp_ip_es 05-09-2008 09:37:33

;) Ok me queda claro....

maeyanes 05-09-2008 15:38:19

Vaya... creo recordar que ya había yo reportado a ese spambot... :p


Saludos...


La franja horaria es GMT +2. Ahora son las 15:20:11.

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