etspaz Postado Janeiro 10, 2008 Denunciar Share Postado Janeiro 10, 2008 Bom dia, alguém saberia me dizer o que pode estar errado nesta linha?CODE DmDentalita.FollowUp(StrToInt(Dbedit_codcliente.Text),' Clientes');É ai que está dando o erro 'No argument for format '%S'' , este programa é de outro e eu comecei a manutenção nele agora.Valeu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 10, 2008 Denunciar Share Postado Janeiro 10, 2008 está dando o erro 'No argument for format '%S'' ' Nenhum argumento para formato ' %S '' String. O argumento deve ser um carácter, uma string, ou um valor de PChar. A string ou carácter é inserido em lugar do formato de especificação . A especificação de precisão, se presente na string de formato, especifica o comprimento máximo da string resultante. Se o argumento for uma string que é mais longo que este máximo, a string é truncada.OBS: veja na tabela qual o tamanho definido para Clientesabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 etspaz Postado Janeiro 11, 2008 Autor Denunciar Share Postado Janeiro 11, 2008 (editado) opa voltei,olha não consegui identificar o erro ainda então vou tentar explicar melhor,me desculpem o sumiço é por que eu fiquei fora do ar ontem.DmDentalita.FollowUp(StrToInt(Dbedit_codcliente.Text),' Clientes');é uma procedure criada em dmdentalita.followup são pendencias de clientes .este é o codigo:procedure TDmDentalita.FollowUp(cod_cliente : integer; chamador : String); begin sdt_consluta_followup.Close; sdt_consluta_followup.DataSet.CommandText := ''; sdt_consluta_followup.DataSet.CommandText := 'select * from FOLLOW_UP where CLIENTE_ID = ' + IntToStr(cod_cliente); sdt_consluta_followup.Open; if sdt_consluta_followup.DataSet.RecordCount = 0 then begin //Caso o cliente não tenha pendências, é perguntado ao usuário se ele quer cadastrar uma nova if MessageDlg('Não há registros de Follow Up para este cliente. Deseja cadastrar um novo?',mtConfirmation,[mbOK,mbCancel],0) = mrOK then begin if not assigned(Frm_FollowUp) then application.CreateForm(TFrm_FollowUp,Frm_FollowUp); if not dts_follow_up.DataSet.Active then dts_follow_up.DataSet.Open; DmDentalita.Dts_Follow_up.DataSet.Filtered := False; DmDentalita.Dts_Follow_up.DataSet.Filter := 'CLIENTE_ID = ' + IntToStr(cod_cliente); DmDentalita.Dts_Follow_up.DataSet.Filtered := True; Frm_FollowUp.InserirFollowUp(cod_cliente); Frm_FollowUp.ShowModal; end; end else begin //Caso o cliente tenha pendências, é exibida a lista de follow up (todas as ocorrências) if not assigned(Frm_ListaFollowUp) then application.CreateForm(TFrm_ListaFollowUp,Frm_ListaFollowUp); if chamador = 'Principal' then Frm_ListaFollowUp.btnInserir.Visible := False else Frm_ListaFollowUp.btnInserir.Visible := True; Frm_ListaFollowUp.ShowModal; end; end;porém o erro surgiu depois que eu fiz algumas alterações, seguinte:o sistema tem uma tela para gravar novos followups, eu tive que incluir um campo do vendedor para gravar com o nome do vendedor.usei um dbloockupcombobox para selecionar o nome do vendedor.a query usada é esta:select * from usuariousuario é a tabela que tem os dados do vendedor.bem acho que tenho que mudar esta procedure, pois ela não previa o campo vendedor, correto?até beleza, mas aí depois que grava o followp gera uma lista com todos fllowups de um cliente, então,tem esta query para gerar a lista de followup.select F.*, U.NOME from FOLLOW_UP F , USUARIO Uwhere U.USUARIO_ID = F.USUARIO_IDORDER BY DATA_LANCAMENTOfui no dbgrid que exibe a lista e acrescentei o campo nome do vendedor,a partir daí gera o erro que eu citei. Editado Janeiro 12, 2008 por Micheus Adicionada a tag [CODE]...[/CODE] para melhor visualização do codigo. Por favor, utilize-a. ;-) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 11, 2008 Denunciar Share Postado Janeiro 11, 2008 fui no dbgrid que exibe a lista e acrescentei o campo nome do vendedor,a partir daí gera o erro que eu citei.colega ... se voce acrescentou o campo vendedor no dbgrid usando o editor de colunas do dbgrid, e não definiu este campo na select ou não importou o campo para dentro do dataset, este erro pode acontecer. muito provavelmente o erro acontece quando voce abre (open) o dataset ou a select... verifiqueabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 etspaz Postado Janeiro 11, 2008 Autor Denunciar Share Postado Janeiro 11, 2008 fui no dbgrid que exibe a lista e acrescentei o campo nome do vendedor,a partir daí gera o erro que eu citei.colega ... se voce acrescentou o campo vendedor no dbgrid usando o editor de colunas do dbgrid, e não definiu este campo na select ou não importou o campo para dentro do dataset, este erro pode acontecer. muito provavelmente o erro acontece quando voce abre (open) o dataset ou a select... verifiqueabraçoe aeh beleza Jhonas,na verdade eu defini o campo na select, importei para o dataset e na propriedade collums do dbgrid ele já era visivel, só criei as colunas e selecionei os campos em datafield, mas o erro persiste.obrigado pela atenção! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 11, 2008 Denunciar Share Postado Janeiro 11, 2008 está dando o erro 'No argument for format '%S'' ' Nenhum argumento para formato ' %S '' String. O argumento deve ser um carácter, uma string, ou um valor de PChar. A string ou carácter é inserido em lugar do formato de especificação . A especificação de precisão, se presente na string de formato, especifica o comprimento máximo da string resultante. Se o argumento for uma string que é mais longo que este máximo, a string é truncada.de acordo com este erro esta faltando ( Nenhum argumento ) passar a string;procedure TDmDentalita.FollowUp(cod_cliente : integer ; chamador : String);de acordo com esta procedure, voce tem que passar 2 parametros, o codigo do cliente e este chamador que é uma string .... mas tambem não se esquece de verificar como esta o seu banco de dadosSugestão: Quando comigo acontece isto que voce reportou, ou seja, faço uma modificação no programa e ai começam aparecer erros, eu desfaço todas as modificações, rodo o programa para saber se voltou a funcionar corretamente, ai então parto novamente para as modificações, prestando mais atenção ao que estou fazendo, e tento novamente, até solucionar o problema. abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 12, 2008 Denunciar Share Postado Janeiro 12, 2008 Jhonas, sem querer interferir na linha de raciocínio tomada, eu sugeriria ao colega etspaz que verificasse em algum dos procedimentos chamados a partir da procedure FollowUp, ou forms que lá ele cria, em que ponto ele está fazendo uso da função Format. Esta mensagem de erro é típica da chamada desta função como: Label1.Caption := Format('Cliente: %d %s', [Codigo]);onde foi informado apenas um parâmetro, sendo esperado outro que é justamente o string (%s)Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
etspaz
Bom dia, alguém saberia me dizer o que pode estar errado nesta linha?
CODE
DmDentalita.FollowUp(StrToInt(Dbedit_codcliente.Text),' Clientes');
É ai que está dando o erro 'No argument for format '%S'' , este programa é de outro e eu comecei a manutenção nele agora.
Valeu.
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.