Expression expected but nothing found que erro é este
Tenho este codigo e esta aparecendo este erro ´Expression expected but nothing found´, sei que deve esta faltando um end, mas não estou conseguindo ver onde, alguem poderia ajudar
Agradeço
[b:81f17b09be]Editando.[/b:81f17b09be]
DPinho, ao invés de utilizar cores, alterei o código inserindo a tag [code] para facilitar a leitura.
Sandra/Moderação
procedure TFormBalcao2.Edit1Change(Sender: TObject); var Quant:Integer; s,ABREVIADO:String; begin if dm.SDS_PDVS.locate(´CODBARRAS´,FormBalcao2.edit1.text,[])= True then begin FormBalcao2.Edit3.Text:=(dm.SDS_PDVS.FieldByName(´DESCRICAO´).AsString); ABREVIADO:=(dm.SDS_PDVS.FieldByName(´ABREVIADO´).AsString); FormBalcao2.Edit4.Text:=(dm.SDS_PDVS.FieldByName(´PRECO´).AsString); Beep; IF dm.SDS_PDVS.FieldByName(´CODBARRAS´).AsString =FormBalcao2.Edit1.text then begin if FormBalcao2.Edit2.text =´´ then begin FormBalcao2.Edit2.text:=´1´; end; if FormBalcao2.Edit2.text <>´´ then begin A:=StrtoFloat(dm.SDS_PDVS.FieldByName(´PRECO´).AsString); B:=StrtoFloat(edit2.text); Soma:=(A*B); Total:=Total+(soma); Edit6.Text := FormatFloat(´R$ #,,0.00 ´, Total); Edit7.Text := FormatFloat(´R$ ,,0.00 ´, soma); ClientDataset1.Insert; ClientDataset1.FieldByname(´CodBarras´).AsString:=(Edit1.Text); ClientDataset1.FieldByname(´Codigo´).AsInteger:=(dm.SDS_Produto.FieldByName(´Codigo´).AsInteger); ClientDataset1.FieldByname(´Quantidade´).AsInteger:=strtoint(Edit2.Text); ClientDataset1.FieldByname(´Descricao´).AsString:=(ABREVIADO); ClientDataset1.FieldByname(´Preco´).Ascurrency:=StrTocurr(Edit4.Text); ClientDataset1.FieldByname(´Soma´).AsFloat:=(soma); ClientDataset1.FieldByname(´Total´).AsFloat:=(Total); ClientDataset1.Post; edit1.clear; E_Desconto.Clear; if FormBalcao2.Edit2.text <> ´1´ then begin FormBalcao2.Edit2.text:=´1´; end; end; end; end else //-------------- if dm.SDS_PDVS.locate(´CODIGO´,FormBalcao2.edit1.text,[])= True then begin FormBalcao2.Edit3.Text:=(dm.SDS_PDVS.FieldByName(´DESCRICAO´).AsString); ABREVIADO:=(dm.SDS_PDVS.FieldByName(´ABREVIADO´).AsString); FormBalcao2.Edit4.Text:=(dm.SDS_PDVS.FieldByName(´PRECO´).AsString); Beep; IF dm.SDS_PDVS.FieldByName(´CODIGO´).AsInteger =StrToInt(FormBalcao2.Edit1.text) then begin if FormBalcao2.Edit2.text =´´ then begin FormBalcao2.Edit2.text:=´1´; end; if FormBalcao2.Edit2.text <>´´ then begin A:=StrtoFloat(dm.SDS_PDVS.FieldByName(´PRECO´).AsString); B:=StrtoFloat(edit2.text); Soma:=(A*B); Total:=Total+(soma); Edit6.Text := FormatFloat(´R$ #,,0.00 ´, Total); Edit7.Text := FormatFloat(´R$ ,,0.00 ´, soma); ClientDataset1.Insert; ClientDataset1.FieldByname(´CodBarras´).AsString:=(Edit1.Text); ClientDataset1.FieldByname(´Codigo´).AsInteger:=(dm.SDS_Produto.FieldByName(´Codigo´).AsInteger); ClientDataset1.FieldByname(´Quantidade´).AsInteger:=strtoint(Edit2.Text); ClientDataset1.FieldByname(´Descricao´).AsString:=(ABREVIADO); ClientDataset1.FieldByname(´Preco´).Ascurrency:=StrTocurr(Edit4.Text); ClientDataset1.FieldByname(´Soma´).AsFloat:=(soma); ClientDataset1.FieldByname(´Total´).AsFloat:=(Total); ClientDataset1.Post; edit1.clear; E_Desconto.Clear; if FormBalcao2.Edit2.text <> ´1´ then begin FormBalcao2.Edit2.text:=´1´; end; end; end; end; end;
Agradeço
[b:81f17b09be]Editando.[/b:81f17b09be]
DPinho, ao invés de utilizar cores, alterei o código inserindo a tag [code] para facilitar a leitura.
Sandra/Moderação
Dpinho
Curtidas 0
Respostas
Beppe
05/07/2005
O jeito é ir tabulando os comandos até achar o problema. Se for um end no meio, receio que vc terá que parar para entender o que o código faz, para inserí-lo na posição certa.
GOSTEI 0
Sandra
05/07/2005
Não me atentei a cada linha do código, apenas usei a identação para facilitar a identificação dos blocos.
Tente assim:
Observe que havia alguns begin/end não necessários; foram retirados.
Espero que resolva.
Tente assim:
procedure TFormBalcao2.Edit1Change(Sender: TObject); var Quant:Integer; s,ABREVIADO:String; begin if dm.SDS_PDVS.locate(´CODBARRAS´,FormBalcao2.edit1.text,[])= True then begin FormBalcao2.Edit3.Text:=(dm.SDS_PDVS.FieldByName(´DESCRICAO´).AsString); ABREVIADO:=(dm.SDS_PDVS.FieldByName(´ABREVIADO´).AsString); FormBalcao2.Edit4.Text:=(dm.SDS_PDVS.FieldByName(´PRECO´).AsString); Beep; IF dm.SDS_PDVS.FieldByName(´CODBARRAS´).AsString =FormBalcao2.Edit1.text then begin if FormBalcao2.Edit2.text =´´ then FormBalcao2.Edit2.text:=´1´; if FormBalcao2.Edit2.text <>´´ then begin A:=StrtoFloat(dm.SDS_PDVS.FieldByName(´PRECO´).AsString); B:=StrtoFloat(edit2.text); Soma:=(A*B); Total:=Total+(soma); Edit6.Text := FormatFloat(´R$ #,,0.00 ´, Total); Edit7.Text := FormatFloat(´R$ ,,0.00 ´, soma); ClientDataset1.Insert; ClientDataset1.FieldByname(´CodBarras´).AsString:=(Edit1.Text); ClientDataset1.FieldByname(´Codigo´).AsInteger:=(dm.SDS_Produto.FieldByName(´Codigo´).AsInteger); ClientDataset1.FieldByname(´Quantidade´).AsInteger:=strtoint(Edit2.Text); ClientDataset1.FieldByname(´Descricao´).AsString:=(ABREVIADO); ClientDataset1.FieldByname(´Preco´).Ascurrency:=StrTocurr(Edit4.Text); ClientDataset1.FieldByname(´Soma´).AsFloat:=(soma); ClientDataset1.FieldByname(´Total´).AsFloat:=(Total); ClientDataset1.Post; edit1.clear; E_Desconto.Clear; if FormBalcao2.Edit2.text <> ´1´ then FormBalcao2.Edit2.text:=´1´; end; end; end else //-------------- if dm.SDS_PDVS.locate(´CODIGO´,FormBalcao2.edit1.text,[])= True then begin FormBalcao2.Edit3.Text:=(dm.SDS_PDVS.FieldByName(´DESCRICAO´).AsString); ABREVIADO:=(dm.SDS_PDVS.FieldByName(´ABREVIADO´).AsString); FormBalcao2.Edit4.Text:=(dm.SDS_PDVS.FieldByName(´PRECO´).AsString); Beep; IF dm.SDS_PDVS.FieldByName(´CODIGO´).AsInteger =StrToInt(FormBalcao2.Edit1.text) then if FormBalcao2.Edit2.text =´´ then FormBalcao2.Edit2.text:=´1´; if FormBalcao2.Edit2.text <>´´ then begin A:=StrtoFloat(dm.SDS_PDVS.FieldByName(´PRECO´).AsString); B:=StrtoFloat(edit2.text); Soma:=(A*B); Total:=Total+(soma); Edit6.Text := FormatFloat(´R$ #,,0.00 ´, Total); Edit7.Text := FormatFloat(´R$ ,,0.00 ´, soma); ClientDataset1.Insert; ClientDataset1.FieldByname(´CodBarras´).AsString:=(Edit1.Text); ClientDataset1.FieldByname(´Codigo´).AsInteger:=(dm.SDS_Produto.FieldByName(´Codigo´).AsInteger); ClientDataset1.FieldByname(´Quantidade´).AsInteger:=strtoint(Edit2.Text); ClientDataset1.FieldByname(´Descricao´).AsString:=(ABREVIADO); ClientDataset1.FieldByname(´Preco´).Ascurrency:=StrTocurr(Edit4.Text); ClientDataset1.FieldByname(´Soma´).AsFloat:=(soma); ClientDataset1.FieldByname(´Total´).AsFloat:=(Total); ClientDataset1.Post; edit1.clear; E_Desconto.Clear; if FormBalcao2.Edit2.text <> ´1´ then FormBalcao2.Edit2.text:=´1´; end; end; end;
Observe que havia alguns begin/end não necessários; foram retirados.
Espero que resolva.
GOSTEI 0
Dpinho
05/07/2005
Não me atentei a cada linha do código, apenas usei a identação para facilitar a identificação dos blocos.
//--------------
if dm.SDS_PDVS.locate(´CODIGO´,FormBalcao2.edit1.text,[])= True then
Observe que havia alguns begin/end não necessários; foram retirados.
Espero que resolva.
Esta dando o mesmo erro nesta linha, ja tentei de tudo e não consigo resolver esta situação. Ja debuguei e nada... alguem me ajude por favor
GOSTEI 0
Massuda
05/07/2005
O código que você postou aparentemente está OK. Verifique se o código que está [b:a968237168]antes[/b:a968237168] do trecho que você postou está OK... pode estar faltando um end, um ponto e vírgula, etc.
GOSTEI 0
Beppe
05/07/2005
Vc não está sendo muito claro...vc disse ´já debuguei´, o que significa que seu código compila e não é erro de sintaxe, mas de execução.
Informe o erro que está dando.
Informe o erro que está dando.
GOSTEI 0
Dpinho
05/07/2005
Vc não está sendo muito claro...vc disse ´já debuguei´, o que significa que seu código compila e não é erro de sintaxe, mas de execução.
Informe o erro que está dando.
isto mesmo, so acontece quando esta em execução
GOSTEI 0
Massuda
05/07/2005
isto mesmo, so acontece quando esta em execução
Nesse caso, o ´primeiro suspeito´ seria o conteúdo de FormBalcao2.edit1.text... infelizmente, não sei/lembro o que acontece se o Locate for buscar algo incompatível com o tipo do campo ou se o edit estiver vazio.GOSTEI 0
Dpinho
05/07/2005
[quote:c43a783040=´DPinho´]isto mesmo, so acontece quando esta em execução
Nesse caso, o ´primeiro suspeito´ seria o conteúdo de FormBalcao2.edit1.text... infelizmente, não sei/lembro o que acontece se o Locate for buscar algo incompatível com o tipo do campo ou se o edit estiver vazio.[/quote:c43a783040]Bem o tipo do campo é char(13) e neste momento o edit esta vazio sim.
mas tambem esta acontecendo que quando mando gravar um novo item na tabela. faço uma busca o item esta gravado, mas quando vou pro ecf e tento fzer a venda ele diz que o numero não é valido exemplo ´789123456789´ não é um valor valido
GOSTEI 0
Dpinho
05/07/2005
Conforme a dica anterior, o problema é que o Edit estava abrindo sem valor, mudei a função para o keypress e ficou tudo bem... muito obrigado
GOSTEI 0