Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1838 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Olá comunidade do ACBR, Tudo bem com vocês?
Então vim aqui procurar um socorro porque estou com um problema que vem me tirando o sossego , o problema é bem simples imagino,mas não sei o que posso estar fazendo errado,já que sou iniciante em Delphi.

Descrição do problema :
Precisei usar um ClienteDataSet em meu projeto em determinada tela , e nas condições que os erros se apresentam já descobri que o erro está no CDS, pois em testes que executei aqui quando eu não o crio não ocorre estes erros.

Trechos do código
- Criação:

1
2
3
4
5
6
procedure TF_FinContaReceber.FormShow(Sender: TObject);
begin
   Cds_Lanc.CreateDataSet;
   Cds_Lanc.Open;
{...}
end;



- Fechando o Form:

1
2
3
4
5
6
7
8
9
10
11
procedure TF_FinContaReceber.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Cds_Lanc.Close;
   {...}
   Action := caFree;
end;
 
procedure TF_FinContaReceber.FormDestroy(Sender: TObject);
begin
   F_FinContaReceber := nil;
end;



Propriedades do ClientDataSet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
object Cds_Lanc: TClientDataSet
    Aggregates = <>
    AggregatesActive = True
    FieldDefs = <>
    IndexDefs = <>
    Params = <>
    StoreDefs = True
    OnCalcFields = Cds_LancCalcFields
    Left = 32
    Top = 389
    object Cds_LancSequencialLanc: TIntegerField
      FieldName = 'SequencialLanc'
    end
    object Cds_Lancflag: TStringField
      DisplayLabel = 'X'
      FieldName = 'flag'
      Size = 1
    end
    object Cds_LancVencimento: TDateField
      FieldName = 'Vencimento'
    end
    object Cds_LancCodEnti: TIntegerField
      FieldName = 'CodEnti'
    end
    object Cds_LancEntidadeNome: TStringField
      FieldName = 'EntidadeNome'
      Size = 67
    end
    object Cds_LancReferencia: TStringField
      FieldName = 'Referencia'
      Size = 65
    end
    object Cds_LancValor: TFloatField
      DefaultExpression = '0'
      FieldName = 'Valor'
      DisplayFormat = '#,###,###,##0.00'
    end
    object Cds_LancJuros: TFloatField
      DefaultExpression = '0'
      FieldName = 'Juros'
      DisplayFormat = '#,###,###,##0.00'
    end
    object Cds_LancDesconto: TFloatField
      DefaultExpression = '0'
      FieldName = 'Desconto'
      DisplayFormat = '#,###,###,##0.00'
    end
    object Cds_LancValorReceber: TFloatField
      DefaultExpression = '0'
      FieldKind = fkInternalCalc
      FieldName = 'ValorReceber'
      DisplayFormat = '#,###,###,##0.00'
    end
    object Cds_LancSelecTotal: TFloatField
      FieldKind = fkInternalCalc
      FieldName = 'SelecTotal'
      DisplayFormat = '#,###,###,##0.00'
    end
    object Cds_LancSelecJuros: TFloatField
      FieldKind = fkInternalCalc
      FieldName = 'SelecJuros'
      DisplayFormat = '#,###,###,##0.00'
    end
    object Cds_LancSelecDesc: TFloatField
      FieldKind = fkInternalCalc
      FieldName = 'SelecDesc'
      DisplayFormat = '#,###,###,##0.00'
    end
    object Cds_LancSelecValor: TFloatField
      FieldKind = fkInternalCalc
      FieldName = 'SelecValor'
      DisplayFormat = '#,###,###,##0.00'
    end
    object Cds_LancVendaCod: TIntegerField
      FieldName = 'VendaCod'
    end
    object Cds_LancDataPagto: TDateField
      FieldName = 'DataPagto'
    end
    object Cds_LancParcela: TStringField
      FieldName = 'Parcela'
      Size = 6
    end
    object Cds_LancDataEmissao: TDateField
      FieldName = 'DataEmissao'
    end
    object Cds_LancFormaPagto: TStringField
      FieldName = 'FormaPagto'
      Size = 40
    end
    object Cds_LancCPFCNPJ: TStringField
      FieldName = 'CPFCNPJ'
      Size = 32
    end
    object Cds_LancDocumento: TStringField
      FieldName = 'Documento'
      Size = 15
    end
    object Cds_LancTotValor: TAggregateField
      FieldName = 'TotValor'
      Active = True
      DisplayName = ''
      DisplayFormat = '#,###,###,##0.00'
      Expression = 'Sum(SelecValor)'
    end
    object Cds_LancTotReceber: TAggregateField
      FieldName = 'TotReceber'
      Active = True
      DisplayName = ''
      DisplayFormat = '#,###,###,##0.00'
      Expression = 'Sum(SelecTotal)'
    end
    object Cds_LancTotDesc: TAggregateField
      FieldName = 'TotDesc'
      Active = True
      DisplayName = ''
      DisplayFormat = '#,###,###,##0.00'
      Expression = 'Sum(SelecDesc)'
    end
    object Cds_LancTotJuros: TAggregateField
      FieldName = 'TotJuros'
      Active = True
      DisplayName = ''
      DisplayFormat = '#,###,###,##0.00'
      Expression = 'Sum(SelecJuros)'
    end
  end



Somente postei estes trechos de código porque os erros que serão mostrados já ocorrem quando eu apenas abro e fecho o formulário em questão.

Então é isso ,se alguém me ajudar ficarei muito agradecido,como dito anteriormente,sou iniciante em Delphi e mesmo que possa ser um problema básico ainda não tenho conhecimento necessário para resolvê-lo.

erro 4.PNG

erro1.PNG

erro2.PNG

erro3.PNG

infocomp.PNG

infodelphi.PNG

Editado por Isaias_Souza
  • Administradores
Postado

Bom dia.

Que bom que foi resolvido, porém seria interessante compartilhar com a comunidade a solução.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Solution
Postado

Como solução não sei ao certo o que foi que resolveu ,mas para deixar registrado teve umas coisas ao resolver este problema que aprendi,como dito anteriormente sou um iniciante em Delphi,talvez o que eu dizer aqui agora não será tão útil a todos.

- Tirei o parâmetro DefaultExpression dos campo internalCalc e deixei o StoreDefs para False  , provavelmente foram as alterações que fiz que consertaram todos estes problemas.

- Os campos Aggregate retornam String então isto deve ser tratado para evitar possíveis erros.

- Os campos InternalCalc não funcionam com tipo Extended.

Bom que eu me lembre foram estas coisas que me fizeram arrumar, e talvez uma outra que não consigo identificar por agora já que recriei o ClientDataSet do zero.

Obrigado,Bom dia!

  • Curtir 1
  • Administradores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 1838 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.