Ir para conteúdo
Fórum Script Brasil
  • 0

no argument for format %s


etspaz

Pergunta

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

  • 0

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 Clientes

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

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 usuario

usuario é 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 U

where U.USUARIO_ID = F.USUARIO_ID

ORDER BY DATA_LANCAMENTO

fui no dbgrid que exibe a lista e acrescentei o campo nome do vendedor,

a partir daí gera o erro que eu citei.

Editado por Micheus
Adicionada a tag [CODE]...[/CODE] para melhor visualização do codigo. Por favor, utilize-a. ;-)
Link para o comentário
Compartilhar em outros sites

  • 0
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... verifique

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
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... verifique

abraço

e 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!

Link para o comentário
Compartilhar em outros sites

  • 0
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 dados

Sugestã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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...