problemas com ClientdataSet
pessoal, tenho uma aplicação que usa um ClientdataSet para puxar os dados de um IBDataSet e depois gerar um relatório de etiquetas em Rave.
ele funciona certinho como quero, só que tem um problema que nao estou conseguindo resolver.
Por exemplo: eu tinha 10 registros dentro da tabela. na primeira vez que executo a aplicação para gerar o relatório, ela me mostra os 10 itens no rave, porem se depois eu atualizo a tabela, colocando mais registros ou até mesmos retirando alguns dos resgistros nao acontece nada, ou seja, quando mando gerar um outro relatório, continuam lá os mesmos 10 resgistros de quando eu mandei gerar o relatório da primeira vez.
será que o ClientdataSet nao atualiza automaticamente os dados que tenho na tabela? se for isso eu teria que dar um ´assign local data´ em tempo de execução toda vez que fosse mandar gerar o relatório? como eu faria isso?
abraços!
ele funciona certinho como quero, só que tem um problema que nao estou conseguindo resolver.
Por exemplo: eu tinha 10 registros dentro da tabela. na primeira vez que executo a aplicação para gerar o relatório, ela me mostra os 10 itens no rave, porem se depois eu atualizo a tabela, colocando mais registros ou até mesmos retirando alguns dos resgistros nao acontece nada, ou seja, quando mando gerar um outro relatório, continuam lá os mesmos 10 resgistros de quando eu mandei gerar o relatório da primeira vez.
será que o ClientdataSet nao atualiza automaticamente os dados que tenho na tabela? se for isso eu teria que dar um ´assign local data´ em tempo de execução toda vez que fosse mandar gerar o relatório? como eu faria isso?
abraços!
Mahdak
Curtidas 0
Respostas
Leandroaoa
30/01/2006
Antes de passar os dados para o clientdataset limpe desta forma
ClientDataSet1.CanceUpdates;
ClientDataSet1.CanceUpdates;
GOSTEI 0
Mahdak
30/01/2006
Antes de passar os dados para o clientdataset limpe desta forma
ClientDataSet1.CanceUpdates;
nao deu certo, continua a mesma coisa... vou colar o código responsavel por obter os dados do ClientDataSet ´cdsCustomer´ e chamar o relatório
procedure TFrmPrincipal.btnVisualizarClick(Sender: TObject); var etiquetasRave : TEtiquetaRave; begin // visualiza as etiquetas --------------------------------------------------------- cdsCustomer.CancelUpdates; etiquetasRave := TEtiquetaRave.Create; with etiquetasRave do begin origemDosDados := cdsCustomer; camposDaEtiqueta.Assign(lbCamposEtiqueta.Items); fonteEtiqueta := lblNomeFonte.Caption; tamanhoFonteEtiqueta := StrToInt(lblTamanhoFonte.Caption); alturaEtiqueta := etiquetasRave.CmParaPolegada(StrToFloat(edtAltEtiq.Text)); numEtiquetasPagina := StrToInt(edtNumEtiq.Text); numColunasPagina := StrToInt(edtNumCol.Text); larguraEntreColunas := etiquetasRave.CmParaPolegada(StrToFloat(edtLargCol.Text)); margemSuperior := etiquetasRave.CmParaPolegada(StrToFloat(edtSuperior.Text)); margemInferior := etiquetasRave.CmParaPolegada(StrToFloat(edtInferior.Text)); margemDireita := etiquetasRave.CmParaPolegada(StrToFloat(edtDireita.Text)); margemEsquerda := etiquetasRave.CmParaPolegada(StrToFloat(edtEsquerda.Text)); tamanhoPapel := cbTamanhoPagina.Text; case rgOrientacao.ItemIndex of 0: orientacaoPapel := ´RETRATO´; 1: orientacaoPapel := ´PAISAGEM´; end; if edtAltPag.Text <> ´´ then alturaPagina := CmParaPolegada(StrToFloat(edtAltPag.Text)) else alturaPagina := 0; if edtLargPag.Text <> ´´ then larguraPagina := CmParaPolegada(StrToFloat(edtLargPag.Text)) else larguraPagina := 0; case rgOrdemImpressao.ItemIndex of 0: ordemDeImpressao := ´LC´; 1: ordemDeImpressao := ´CL´; end; Visualizar; Free; end; // -------------------------------------------------------------------- end;
GOSTEI 0
Mahdak
30/01/2006
uma coisa eu notei. quando eu deleto manualmente os componentes que tenho e crio eles novamente, a quantidade de registros é atualizada. alguem saberia me dizer como eu dou um ´assign local data´ em tempo de execussao no meu ClientDataSet??? pq acho que tentarei criar todos os componentes em tempo de execussao só pra ver no que vai dar.
o que os amigos acham????
o que os amigos acham????
GOSTEI 0
Mahdak
30/01/2006
pessoal, problema resolvido, era só a ligação entre os componentes que estava faltando um detalhe.
brigadão pela ajuda de todos
brigadão pela ajuda de todos
GOSTEI 0