Ir para conteúdo
Fórum Script Brasil

K!ko

Membros
  • Total de itens

    106
  • Registro em

  • Última visita

Posts postados por K!ko

  1. Como ficaria se eu fosse montar algo com seu exemplo usando o recordcount de um ClientDataSet pra indicar as linhas e que o mesmo array tivesse 15 colunas?

    Ficara mais ou menos assim

    Primeiro voce define um array com duas dimensões ( var MeuArray: array of array of Integer; )

    depois voce define o tamanho dos indices do array ( SetLength(MeuArray,CDS_Query1.RecordCount,15); )

    depois disso é só trabalhar com os indices

    abraço

    Agora ficou claro... funfo beleza....

    Obrigado Jhonas!

    abraço

  2. Vou te dar um exemplo de como criar um array dinamico, com o numero de indices que voce quizer

    abraço

    Brow... eu fiquei um tanto confuso em algumas partes do código... se não for pedir muito, teria como explica-lo?

    Como ficaria se eu fosse montar algo com seu exemplo usando o recordcount de um ClientDataSet pra indicar as linhas e que o mesmo array tivesse 15 colunas?

    Obrigado pela atenção

    Abraço.

  3. Bom dia senhores.

    Seguinte... eu preciso criar uma matriz no meio do evento do um determinado componente, um BitBtn pra ser mais preciso.

    Por exemplo:

    procedure TFRelMov_Cob.BitBtn3Click(Sender: TObject);
    type data = array[1.. 15] of string;
    type sum = array[1.. 2,1.. 15] of integer;
    var {Variáveis};
    Begin
    
    //Linhas de código
    
    //Criar a matriz aqui. <<<<<<<<< 
    
    //Restante dos códigos
    
    end;

    não sei se fui claro com meu exemplo, mas preciso criar a matriz no meio do código pois o nº de linhas da mesma deve ser o nº de registros resultantes de um select que já esta no código e só sei criar matrizes e vetores usando o "Type" como esta no exemplo.

    agradecido desde já.

  4. Eu gostaria de escrever tanto maiúscula ou minúsculo e localizar na tabela.

    O que você pode fazer é, dependendo de como esta em seu banco, setar tudo como maiusculo ou tudo como minusculo no filtro.

    Ficaria assim para maiusculo:

    DMdados.TBCadCliente.Filtered:=False;
     DMdados.TBCadCliente.Filter:= 'nome LIKE'+QuotedStr('%' +UpperCase(Consulta) + '%');
     DMdados.TBCadCliente.Filtered:=True;
    e assim pra minusculo:
    DMdados.TBCadCliente.Filtered:=False;
     DMdados.TBCadCliente.Filter:= 'nome LIKE'+QuotedStr('%' +LowerCase(Consulta) + '%');
     DMdados.TBCadCliente.Filtered:=True;

    Eu sugiro que ao gravar algum registro em seu banco, ou grave tudo em maiusculo ou grave tudo em minusculo... para facilitar as buscas posteriormente. Ai quando você for mostrar algum registro você arruma o display dele da forma que você quiser.

    Abraço.

  5. Bom Dia Senhores.

    Seguinte... eu estou fazendo uso do componente RxMemoryData em uma rotina, e nesse trabalho surgiu algumas dúvidas quanto ao uso deste componente...

    ele aceita e/ou faz uso de "Order By" em sua propriedade Filter?

    Eu cheguei a usar Order By em seu filter, mas não obtive o resultado esperado. Agora não sei se ele não permite ou eu fiz errado, pois ele não acusou nenhum erro.

    existe alguma forma de atribuir os valores de um RxMemoryData para uma ADOQuery, usando assign, por exemplo, pra depois eu ordenar os valores dos campos e depois ainda atribuir os valores devolta para o RX?

    O que eu queria na verdade é Ordenar os valores que estão no RX por determinado campo... mas nas formas que tentei não consegui.

    Alguém pode me ajudar?

    Grato desde já.

  6. Boa Tarde Senhores.

    Seguinte... em algumas rotinas dos sistemas desenvolvidos na empresa onde trabalho, nós fazemos o uso do componente RDPrint para realizar impressões em impressoras matricias. Atualmente eu tenho me deparado com o seguinte problema relacionado com este componente:

    Por exemplo: eu tenho aqui uma rotina que imprime nota fiscal usando RDprint, que desenvolvi me baseando em testes de impressão realizados numa Epson FX-1170. Fui ajustando o código conforme os testes iam sendo realizados, sendo que no final ficou corretamente ajustado ao layout da Nota Fiscal, sendo esta impressa na Epson FX-1170. No entanto, quando imprimo esta mesma Nota Fiscal numa LX-300, por exemplo, a impressão fica totalmente fora do layout da NF.

    Não sei se isto é comum mas acho estranho já que a impressão no RDprint tem como base a quantidade de linhas e colunas e o espaçamento usado entre os caracteres, além do tamanho da fonte usado, que formam juntos a área útil de impressão, tornando esta última a mesma pra qualquer impressora.

    É comum ocorrer esta diferença na impressão dependendo da impressora que se usa ou existe algo que se possa fazer pra resolver isto neste caso? Quer dizer... eu desenvolvo o código pra imprimir na impressora que o cliente tem hj e se amanha o cara troca a impressora eu terei que desenvolver tudo outra vez?

    Se alguém puder me ajudar com essa dúvida... grato desde já.

  7. Bom dia senhores.

    Bom... minha maquina possuia 2 pentes de RAM DDR2 de 512mb (400mhz) e sua BIOS estava configurada pra trablhar com essas memóias. Nesse fds eu comprei 2 pentes de memória RAM DDR2 de 2GB (800mhz) cada um, que deveriam trabalhar em dual channel.

    Fiz todo o processo da instalação das novas memórias em meu pc e configurei as propriedades da BIOS referentes a memória. ao ligar o pc foi tudo ok na identificação dos periféricos pela BIOS, foi reconhecido os 4GB de RAM, no entanto na identificação feita pelo WINDOWS mostra apenas 3,5 GB de RAM, tanto nas propriedades de "meu computador" quanto em qualquer comando que mostre essa informação, como o "dxdiag" por exemplo. Aparentemente fiz tudo certo (eu acho) e minha placa mãe suporta essas memórias novas.

    Alguém sabe o que pode estar ocorrendo?

    É possível que mesmo com a BIOS reconhecendo os 4GB a maquina trabalhe com apenas 3,5GB ?

  8. De maneira bem simples seria assim para campos Edits:

    procedure TForm1.Button1Click(Sender: TObject);
    var i : Integer;
    begin
       for i := 0 to ComponentCount -1 do
        begin
           if Components[i] is TEdit then
              if TEdit(Components[i]).Text = '' then
                 showmessage('Existem Campos Não Preenchidos');
        end;
    
    end;

    Vlw Jhonas.

    Eu consegui fazer... ficou igual ao que você postou, só que com pequenas diferenças, usei uma variável chamada "cont" em vez de "i" e usei "if Components[cont] is TDBedit then" em vez de "if Components is TEdit then".

    memo assim... muito obrigado.

    Tópico Resolvido.

    abraço

  9. Olá Senhores....

    Eu preciso fazer uma verificação num form para saber se existe algum campo vazio no mesmo e, caso exista, relatar ao usuário que o mesmo deve ser preenchido.

    Alguém conhece alguma função que torne essa rotina simples?... quero dizer... sem verificar campo a campo, com "if campo = '' then" por exemplo.

    Grato.

  10. Ola...

    tou tentando fazer uma filtro....mas não ta funcionando...

    procedure TForm1.XiButton7Click(Sender: TObject);
    begin
      while not table1.eof do
      BEGIN
        If (table1DURACAO.asString = ('%'+'B'+'%')) THEN
        begin
          Table1.edit;
          Table1DURACAO.Value := '00:00:00';
          Table1.Post;
        end;
        Table1.next; // vai p o próximo registro
       end;
       showmessage('Alterado o Campo DURAÇÃO!');
    end;
    Com oque você ta fazendo você ta verificando, na verdade, se seu campo DURACAO é igual a '%B%', e não se exite um B nele. tenta fazer essa linha:
    If (table1DURACAO.asString = ('%'+'B'+'%')) THEN
    dessa forma:
    if pos('B',tabela1DURACAO.asSTRING) > 0 then

    com isso você procura se tem um ou mais "B" no campo DURACAO.

    abraço

  11. O fato é que não é ao "andar" no DBGrid, e sim ao CLICAR no registro...

    O fato de você estar "andando" ou clicando no grid daria na mesma, de qualquer forma você estária selecionando um registro específico na sua query.

    Fazendo isso, o TEXT assume o valor do campo.
    esste TEXT que você se refere é oque exatamente? que componente?

    Funciona perfeitamente quando tem 2 ou mais registros.

    Mas quando tem um, nada feito...

    você chegou a testar da forma que sugeri?

    abraço

  12. Sendo assim o problema está resolvido...

    Se fosse possível, eu gostaria de saber como liberar o relatório da memória naquele código que comentei em outro post... onde eu verifico se ele está ou não na memória e caso estiver relato isto ao usuário dizendo que o relatório já esta sendo exibido.

    Isto só funciona na 1ª vez que gero o relatório... ao fecha-lo e abri-lo novamente ele não é liberado da memória, por tanto a mensagem persiste em aparecer toda vez...

    agradecido.

  13. With QryCaixa do
          Begin
             Close;
             Sql.Clear;
             Sql.Add('Select Codigo, Aluno, Valor, Vencimento, Emissao, Pagamento, Historico, Tipo, Historico1 from lancamento');
             Sql.Add('where (Pagamento = Current_Date) and depositado = Current_date');
             Open;
          end;
    Como eu faço para que se buscar o deposito e pagamento que foram feitos no dia para mostrar?
    se você ta querendo mostrar o pagamento e o deposito que foram feitos no mesmo dia, troque a seguinte linha
    Sql.Add('where (Pagamento = Current_Date) and depositado = Current_date');
    por
    Sql.Add('where Pagamento =  depositado');

    Quando parcela só preenche o campo pagamento e quando é cheque é preenchido os dois campos e ai mostra!

    para isso você deve colocar alguma coisa pra indicar quando é parcela e quando é cheque, tipo um radiogroup, e dpois implementar a verificação antes do select.

    abraço.

  14. procedure TFrmos.Sada1Click(Sender: TObject);
    begin
         frmrlos1:= tfrmrlos1.create(self);
    
         {Selects usados para trazer os dados no QR, que esta no form Frmrlos1}
    
         frmrlos1.QuickRep1.Preview;
         frmrlos1.QrOs.close;
         frmrlos1.free;
    end;
    Usando somente o Preview, o comado close do QR só será excutado depois que voce fechar o QR
    Realmente isto resolve o problema... mas existe uma outra possibilidade que pode gerar erro... supomos que nosso usuário, que é perito em encontrar falhas, gere o preview do relatório e em seguida o minimize e acesse a tela onde existe o botão que gera o relatório (O preview possibilita isso, diferente do PreviewModal, que prende o usuárió na tela de preview e só o libera quando o relatório é fechado), após minizar clique no botão que gera o relatório outra vez... isso acarretaria em um erro pois o relatório já existe na memória. Por exemplo, eu fiz com que o sistema verificasse se o relatório já existe. Caso já exista mostrará uma mensagem relatando isto caso não mostraria o preview do relatório normalmente. No entanto isso só funciona na 1ª vez que gero o relatório ao fecha-lo não consigo libera-lo da memória. o código esta +/- assim
    if frmrlos1 = nil then
    begin
      frmrlos1:= tfrmrlos1.create(self);
    
      {Selects usados para trazer os dados no QR, que esta no form Frmrlos1}
    
      frmrlos1.QuickRep1.Preview;
      frmrlos1.QrOs.close;
      frmrlos1.free;
    end
    else
      messagedlg('Este relatório já esta sendo exibido', mtwarning, [mbok],0);

    tentei também libera-lo ao fechar o form no qual o QR gera o preview (frmrlos1), mas não obtive sucesso.

    Onde posso liberar o form da memória para que isto não ocorra?

    Alguém pode me ajudar com isto?

    abraço

  15. Estive conversando com um desenvolvedor que trabalha aqui a mais tempo e ele me informou que os campos que estão no QR estão setados com a fonte Draft 12Cpi neste relatório, que é usada como padrão para impressoras do tipo LX 300 (matriciais), por exemplo, ele me imformou também que isto era usado para que fosse possível visualizar o relatório no preview e além disso imprimi-lo de forma rápida nesses tipos de impressora, que é característica desse tipo de fonte.

    No entanto, notei que quando não existe nenhuma impressora deste tipo instalado na maquina esse tipo de fonte não aparece, ou seja, é como se a fonte só existisse se alguma impressora desse tipo estivesse instalada na porta LPT1 do micro. Sendo assim caso não exista a impressora na maquina o relatório não será mostrado pois a fonte no qual o mesmo é desenvolvido não existe.

    Para confirmar isto instalei uma impressora do tipo LX 300 na porta LPT1 do meu micro e realmente as fontes Draft 12Cpi apareceram. Logo após removi todas as impressoras do meu micro e, para minha surpresa, o relatório funcionou normalmente, me deixando mais confuso do que estava...

    Pode este fator ser considerado como uma possivel causa do erro?

    abraço.

  16. (ou ao form que faz a chamada do componente do quick) imagine que voce fez uma chamada ao QR mas usou

    os eventos PreviewModeless ou PreviewModal, e logo apos este comando exista um comando para fechar a janela ou destrui-la ou ainda de libera-la da memoria, então é uma das possibilidades de ocorrer este erro.

    Este é o código que faz a chamada do QR, que está em um form diferente.

    procedure TFrmos.Sada1Click(Sender: TObject);
    begin
         frmrlos1:= tfrmrlos1.create(self);
    
         {Selects usados para trazer os dados no QR, que esta no form Frmrlos1}
    
         frmrlos1.QuickRep1.Previewmodal;
         frmrlos1.QrOs.close;
         frmrlos1.free;
    end;

    você acha que este Free precedido do Preview modal está gerando o erro?

    Caso sim, como posso resolver isso?

    Abraço.

  17. Bom dia Senhores!

    Bom, eu possuo um relatório de Ordens de serviço fechadas desenvelvido em QuickReport e Delphi 5.

    O problema é que esse relatório em especial apresenta um erro intermitente, ou seja, às vezes ele funciona e às vezes ocorre o erro... o erro ocorre na tela de Preview do QuickReport, não mostra nada no preview e quando ele é fechado aparece um erro +/- assim: Win32 Error 1400...

    Eu já revi a programação diversas vezes passando linha a linha, no entanto não identifiquei o erro na mesma... ele passa por todas as linhas e atribui todos os valores corretamente aos campos das query's que são usados nos selects, tanto quanto o erro ocorre quanto não.

    Alguém sabe oque pode ser?

    Agradecido desde já.

×
×
  • Criar Novo...