![]() |
estructura erronea pero no se donde
Buenas tardes, os muestro una estructura que me trae loco no se donde esta el fallo , bueno si si quito el ultimo else funciona pero tambien me da el mensaje y es mentira agradeceré cualquier mensaje aunque sea de apoyo estoy muerto con esto:mad:
procedure TForm6.Button2Click(Sender: TObject); var sumador:integer; var fecha1:tdatetime; var fecha2:tdatetime; begin // compruebo si lo quiere entre fechas o todo if not checkbox2.Checked then edit2.text:=form19.ADOTable1pendiente.AsString else // si lo quiere entre fechas comprueba primero que existen registros //form5.ADOTable1.IndexName:='codigo'; if form5.ADOTable1.Locate('codigo', form19.ADOTable1codigo.AsInteger,[]) then edit3.Text:='@'; while not form5.ADOTable1.eof do begin edit3.Text:=form5.ADOTable1ADELANTO.AsString; form5.ADOTable1.Next; end else messagedlg('No existen registros de ese empleado', mtinformation, [mbok],0); end; |
De momento faltaría ese punto y coma, pero no he seguido analizando algún fallo más que pueda haber, porque creo que lo correcto sería montar una simple consulta SQL. Un Saludo. |
';' not allowed before 'ELSE'
Exacto, yo lo habia puesto pero si lo coloco me da el error que ves en el titulo y si no lo pongo 'END' expected but 'ELSE' found este asi que sigo en un mar de dudas ya que no veo , estaré embotado la solución.
sobre la consulta sql es lo primero que hice pero me daba errores (ya puse un hilo en bd ) y me comentaron muy amablemente que deberia usar decodedatetime pero no se usarlo y en ningun libro de los que tengo describe su uso la cadena sql la tenia creada hace tiempo de otra aplicación y en la otra funcionaba muy bien. gracias por tu interres.- |
Si al menos publicaras el código indentado... (con la etiqueta delphi, o code)
|
Cita:
Date cuenta en en todos los if que tienes en el código no tienes ningun begin y end... por tanto solo afecta a la linea siguiente. lo que falta es el begin y el end que estan justificados a la izquierda Ves como el código entre [ delphi ] codigo fuente aqui [ / delphi ] (sin los espacios)se vé mas clarito ?? :p :p :p Por otra parte no veo sentido al bucle, o sea, en el edit3 pones el "Adelanto", pero a la siguiente vuelta del bucle while, lo machacas y pone lo uqe haya en el siguiente registro.... TOTAL. En el Edit3 solo habrá lo que tenga "Adelanto" en el ultimo registro de la tabla. Otro detalle es que no pones un form5.ADOTable1.First para que empiece a buscar desde el principio de la tabla, sino que empieza a buscar desde el registro en curso (desde el locate)... no sé si realmente es lo que quieres. :confused: Ya nos contarás que es lo que quieres hacer. |
solucionado , gracias a vosotros ...
A lo mejor algun día aprendo y todo, exactamente el problema era que el else estaba ahi colgadito al final lo he dejado asi y funciona :
begin // compruebo si lo quiere entre fechas o todo if not checkbox2.Checked then edit2.text:=form19.ADOTable1pendiente.AsString else // datasource2.DataSet.Refresh; begin button3.Visible:=true; form5.DataSource2.DataSet.Filtered:=false; form5.DataSource2.DataSet.Filter := 'codigo = '+QuotedStr (form19.adotable1codigo.value) + 'and fecha >=' + quotedstr(datetostr(datetimepicker1.Date)) + ' and fecha <=' + quotedstr(datetostr(datetimepicker2.Date)) ; form5.DataSource2.DataSet.Filtered:=true; dbgrid1.Refresh; form5.adotable1.First; sumador:= 0; while not form5.adotable1.Eof do begin sumador:= sumador + form5.ADOTable1IMPORTE.AsInteger - form5.ADOTable1ADELANTO.AsInteger; form5.datasource2.DataSet.Next; end; edit2.text:=inttostr(sumador); qrlabel8.Caption:=edit2.Text; qrlabel9.Caption:=edit2.Text; Qrlabel11.Caption:=datetostr(datetimepicker1.Date); Qrlabel12.Caption:=datetostr(datetimepicker2.Date); Qrlabel16.Caption:=datetostr(datetimepicker1.Date); qrlabel18.Caption:=datetostr(datetimepicker2.Date); end; end; los qrlabel son para el informe impreso prometo mejorar el tema indentado , gracias a todos por vuestro interés y amabilidad al contestar y preocuparos . |
Otra vez pegando codigo sin las etiquetas delphi..... ahora si que me niego a leer el codigo :p :p. Si te funciona, me alegro :p
:D:D |
La franja horaria es GMT +2. Ahora son las 00:20:36. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi