Ir para conteúdo
Fórum Script Brasil

Recife

Membros
  • Total de itens

    110
  • Registro em

  • Última visita

Tudo que Recife postou

  1. Boa Tarde, Faz um tempo que não posto nada no forum, porém estou precisando de ajuda. Estou trabalhando com Delphi 5 e BD Firebird 1.5 Tenho a seguinte situção: Criei uma tabela temporaria em tempo de execução e com os valores dessa tabela carrego um grid também em tempo de execução. Com isto, tenho os dados apresentados no grid sem problemas. O meu problema esta que, preciso editar uma coluna especifica, mais detalhadamente a colum[3]. Tenho uma query(TQuery) que criou em tempo de execução e uma datasource que peguei da paleta DATAACESS em que seto a query temporaria a esse datasource em tempo de execução e que ligo ao meu DBGRID, também em tempo de execução. Fiz o seguinte para poder editar, mais é só um esbouço, pois não sei o que passar para dentro da query , se o valor da coluna do DBgrid que esta sendo digitado ou outro meio. Sei que estou errando em algum processo, por isto solicitaria ajuda para poder editar no DBGrid. Este foi o esbouço que, fiz porém pelo fato de não saber com passar o valor para query e atualizar a tabela no BD, mais uma vez peço ajuda procedure TForm1.DBGrid1DBLClik(sender) begin Qtemp.edit; Qtemp.fieldbyname('QTD_EMITIDA').asfloat := //não sei o que passar aqui; Qtemp.post; end;
  2. Boa tarde, Sera possível desenvolver uma rotina em que me permita navegar dentro de um listbox atraves do evento onclik de botoes. tipo: next e prior ??
  3. Zolhos, Vê só, penso que você deveria reformular seu código, ao invés da condição do while estar verificando o nrº de linhas do grid, você deveria verificar se o registro da query é final de arquivo, tipo( while not query.eof do), pois seu grid esta ligado a uma query através de um datasoure. Dai você evitaria de estar fazendo um select dentro do loop. as colunas do grid são preenchidas pelo dataset, dai você passa os valores para sua sentença sql(update ou insert) os campos que alimentam estas colunas, ou seja, os datafield das colunas.
  4. Recife

    problema no dbmemo

    Lucy, Pelo o que você postou, o que deve estar acontecendo é que quando você esta inserindo linhas no dbmemo o seu dataset deve estar no modo de inserção(dsInsert) a partir do momento emque você salva é mudado o estado do dataset. Dai o motivo para você fazer um tratamento no seu código. Verifica o estado do dataset, e como no seu caso você quer editar, ai você passa o estado do dataset para dsEdit. Como você deve saber o dbmemo é um componente que esta ligado a um dataset, por isto que deve ter este tipo de cuidado dw tratamento. abraços;
  5. Recife

    DBLookupComboBox1

    Nesta rotina acima tenta deixar da seguinte maneira
  6. Januário, Só para te ajudar, o que Micheus quis te informar é que quando mais informações você passar para nós fica mais fácil para podermos ajudar. Tipo você trazer para o forum a estrutura da sua tabela. Vou ver se dar para te explicar abaixo Não sei se é o teu proposito, mais espero ter ajudado dando um caminho para você desenvolver o resto do problema. Abraços
  7. Recife

    DBGRID por grupo

    Rodrigo, Neste caso nunca vi dentro de um dbgrid, pois o mesmo nos retorna registro de um BD, oriunda de um resultado de uma query. oO que você pode fazer é criar dentro dos fields de uma query campos lookup, dai dentro do dbgrid você poderá pesquisar itens, como se fosse um dblookup inserido no dbgrid. Espero ter ajudado.
  8. dvmarinho, especifique melhor o qu você esta querendo, para podermos melhor te ajudar. Tipo, você esta querendo consultar numa query, apenas digitando uma caracterer e já aprecer o resultado?? Ex. no edit digito o caracter "C" e me aparece todos os registros que comecem com "C", após digitar "CA" e assim sucessivamente até chegar no registro desejado. Posta também tudo o seu código afim de podermos analisar. Abraços.
  9. Oi Progr'amador, O que estou querendo é implementar relatórios zebrados direto no quick report. Como zebrar o relatório e imprimir sem as zebras peguei a dica com o Micheus, porém meu chefe deseja que a mesma seja implementada direto no quick. Conseguir implantar a rotina para zebrá-lo, porém não estou conseguindo colocar a propriedade do QRDBText para transparente. Também precisaria identificar onde fica o beforeprint da band detail e before e after print que ficam no quick. A idéia é a seguinte: - Colocar um checkbox no QRPrev.pas e se o mesmo estiver true o relatório sairá no preview a zebrado, com isto ele tera seu default true. Criar um arquivo tipo .ini que ira registrar se o checkbox esta true ou false antes de executar o preview. - Quando clicar no botão de imprimir o relatório será impresso da forma normal (sem Zebra). O que já foi feito: -Inclusão de rotina em que cria-se as variáveis de controle para zebrar e condições que verificam se as vaiáveis de controle estão verdadeiras ou falsas para zebrar ou não . -no clique do botão imprimir rotina para passar a variável de controle para true, pois existe uma rotina em que inverte seu valor fazendo com que a condição de zebrar não seja executada, dai imitido o relatório sem zebras.
  10. Bom dia pessoal, alguém já colocou alguma nova funcionalidade direto no codigo fonte do quick report. Estou precisando inserir rotina dentro do mesmo, porém não estou conseguindo encontrar onde se inicializam os eventos before e after print, onde é setada a banda detail. Conseguir acessar o form do preview(QRPrev.pas) e a unit QuickRpt.pas(onde creio esta o que procuro,porem não encontrei) Estou utilizando o delphi 7 e quick report 4.05(onde tenho o codigo fonte da montagem do mesmo). Abraços.
  11. Micheus, Mais uma vez obrigado, neste segundo exemplo funcionou conforme a especificação a qual me foi passada. Vou estuda-lo com mais detalhe devido agora terei que implantar esta rotina em projeto em nossa empresa. Com isto, tenho resolvido este problema e espero que serva para outros membros do forum. Abraços.
  12. Olá Micheus, Peguei seu exemplo e verifiquei algumas diferenças que já consertei, quanto a impressão aqui em minha casa estou sem impressora ai estou visualizando em html e .txt a saída, porém lá na empresa estou imprimido. Amanhã irei testar e posto aqui o resultado. Mais uma vez agradecido.
  13. Oi micheus, Conforme havia dito, estou trazendo o resultado da implementação, ele executa o preview normal, porém na impressão esta saindo zebrado. É como se não tivesse respeitando o evento afterprint do quickreport. Este é o form de chamada do relatório unit RelExemplo; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TFImpressao = class(TForm) Label1: TLabel; BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var FImpressao: TFImpressao; implementation uses RelExem; {$R *.DFM} procedure TFImpressao.BitBtn1Click(Sender: TObject); begin FRelExem := TFRelExem.Create(application); try FRelExem.zebrar := False; FRelExem.QuickRep1.Preview; finally FreeAndNil(FRelExem); end; end; end. Este é o codigo do relatório unit RelExem; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, QuickRpt, Db, IBCustomDataSet, IBQuery, IBDatabase, Qrctrls, QRExport; type TFRelExem = class(TForm) QuickRep1: TQuickRep; ColumnHeaderBand1: TQRBand; QRLabel1: TQRLabel; QRLabel2: TQRLabel; QRLabel3: TQRLabel; DetailBand1: TQRBand; QRDBText1: TQRDBText; QRDBText2: TQRDBText; QRDBText3: TQRDBText; IBDatabase1: TIBDatabase; IBTransaction1: TIBTransaction; IBQuery1: TIBQuery; TitleBand1: TQRBand; QRLabel4: TQRLabel; QRHTMLFilter1: TQRHTMLFilter; QRTextFilter1: TQRTextFilter; IBQuery1NOMEESTADO: TIBStringField; IBQuery1UF: TIBStringField; IBQuery1DATAULTATUALIZACAO: TDateTimeField; procedure DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); procedure QuickRep1BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); procedure QuickRep1AfterPrint(Sender: TObject); private { Private declarations } zebra : boolean; public { Public declarations } zebrar : boolean; end; var FRelExem: TFRelExem; implementation {$R *.DFM} procedure TFRelExem.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin if zebrar then begin if zebra then begin Sender.Color := clMoneyGreen; QRDBText1.Color := clMoneyGreen; QRDBText2.Color := clMoneyGreen; QRDBText3.Color := clMoneyGreen; end else begin Sender.Color := clWhite; QRDBText1.Color := clWhite; QRDBText2.Color := clWhite; QRDBText3.Color := clWhite; end; //fim if zebra then zebra := not zebra; end;//fim if zebrar then end; procedure TFRelExem.QuickRep1BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); begin zebrar := not zebrar; end; procedure TFRelExem.QuickRep1AfterPrint(Sender: TObject); begin zebrar := True; end; end.
  14. Micheus, Mais uma vez muito obrigado por mais uma aula, gosto muito das suas explicações, pois são bastante claras e tenho certeza que irá servir para outros companheiros de profissão. Segunda-feira irei testar na empresa pois minha impressora (residencial) esta quebrada. Porém, irei passar este final de semana mais tranquilo. Segunda dou resultado da implementação. Obrigado. :lol:
  15. José Luiz, Dá uma olhada na propriedade do qrexpre, existe lá uma propriedade mask. Nela você formata a sua expressão.
  16. Flavio, penso que com stringreplace você não ira conseguir resolver o seu problema, pense em utiliza um copy(string,x,y), onde: string: string a ser mexida; x: início de onde irá a contar a string; y: até onde irá ficar. ex:copy(500,00,1,5)
  17. Boa Tarde, Estou precisando implementar uns relatórios com as seguintes caracteristicas: * No momento em que ele apresenta o mesmo na tela(preview), os dados da banda detail devem estar zebrados. * Na impressão deve apresentar os dados da banda detail sem estar zebrado. Esta implementação será para ser usada nas versões do delphi 5 e 7, estou utiizando firebird 2.0
  18. Claro que sim. Isto que você fez acima nada mais que uma consulta ao BD. para inserir dados você deve usar INSERT, para alterar UPDATE. ex: INSERT INTO <NOME DA TABELA> (<NOME DOS CAMPOS>) VALUES (<DADOS QUE SERAM INSERIDOS>) UPDATE <NOME DA TABELA> SET(<CAMPOS QUE SERAM ALTERADOS>) WHERE <CAMPO FILTRO PARA DETERMINADO COD> Espero ter ajudado.
  19. Partindo do princípio que você armazenar os recados em alguma tabela de um Banco de dados, nada mais simples que fazer uma verificação ao campo da tabela que contenha o recado e caso exista criar e mostrar a tela de alerta em que você pode posicionar no mesmo local em que os laertas do MSN aparecem. Vale ressaltar que deve-se na verificação ver o último recado adicionado.
  20. Recife

    (Resolvido) data

    -para dar automaticamente da data da máquina no create do form onde esta o datetimepicker passa o seguinte: DateTimepicker1.datetime := Now; - para mostrar a data em que foi executado o progrma procura utilizar a mesma forma acima. Só utilizar um pouco de lógica.
  21. Conseguir obter a resposta para o sql acima, para quem possa interessar a forma correta seriá a seguinte: sql.text := 'select * from tbfuncionarios '+ 'where extract(day from dtnasfun)>=:diaini '+ 'and extract(month from dtnasfun)>=:mesini '+ 'and extract(day from dtnasfun)<=:diafim '+ 'and extract(month from dtnasfun)<=:mesfim'; com isto dou o probelma com resolvido.
  22. Boa Noite, Estou precisando de ajuda para concluir um relatório em que existe um filtro para pesquisar os funcionários com data nascimento inicial(Dia/Mes) e data nascimento final(Dia/Mes). Abaixo demonstro o código, porém não esta funcionando. Pois se fizer 01/10(inicio) e 30/10(fim) não retornar nada. Se for 01/10(inicio) e 01/10(fim) traz o registro neste intervalo. Estou usando Delphi 6 e Firebird 2.0 . var sDiaIni, sMesIni, sDiaFim, sMesfim: string; sDiaIni := copy(maskeditIni.text,1,2); sMesIni := copy(maskeditIni.text,4,2); sDiaFim := copy(maskeditFim.text,1,2); sMesFim := copy(maskeditFim.text,4,2); whit QryFuncionario do Begin close; sql.clear; sql.text := 'select * from tbfuncionarios '+ 'where extract(day from dtnasfun)=:diaini '+ 'and extract(month from dtnasfun)=:mesini '+ 'and extract(day from dtnasfun)=:diafim '+ 'and extract(month from dtnasfun)=:mesfim'; open; if qryfuncionario.isempty then begin showmessagem('Não existe dados para esta pesquisa.'); maskeditini.setfocus; exit; end else begin frmrelanivfunc := tfrmrelanivfunc.create(application); try frmrelanivfunc.quickreport1.preview; finally freeandnill(frmrelanivfunc); end; end; end;
  23. Oi, estava dando uma olha neste post e acho que através do IBOConsole acessando as tabelas e no campo "Permissions" pode-se dar as permissões para select, delete, insert, update,reference e execute. Isto tabela por tabela. Espero ter contribuido.
  24. oi vivendo e aprendendo, ao invés de você passar o valor do campo edit, porcure criar um parâmetro na setença SQL e depois passe o valor através de parambyname. procedure TForm1.BitBtn1Click(Sender: TObject); VAR NOME : STRING; begin NOME := Edit1.Text; with IBQuery1 do begin Close; sql.Clear; SQL.Add('SELECT * FROM TBCLIENTE'); SQL.Add('WHERE NOMECLI =:NOME'); ParamByName('NOME').AsString := NOME; Open; end; end;
×
×
  • Criar Novo...