Jump to content

Compre o Delphi
Com até 30% de desconto
e parcelado em até 12x sem juros

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Recommended Posts

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

Edited by Isaias_Souza

Share this post


Link to post
Share on other sites

Bom dia.

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

Att.


Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

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

Share this post


Link to post
Share on other sites

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!

  • Like 1

Share this post


Link to post
Share on other sites

Obrigado por reportar.

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


Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...