Ir para conteúdo
Fórum Script Brasil

robinhocne

Membros
  • Total de itens

    854
  • Registro em

  • Última visita

Tudo que robinhocne postou

  1. Bom dia.. Estava tentado fazer para que quando eu clicava duas vezes na linha do grid a cor da fonte mudaria! Tentei fazer mais ou menos parecido de quando eu mudo a cor no evento drawcell(alguma coisa assim) mas não deu muito certo, alguém poderia me ajudar???
  2. Isso mesmo, o que estava dando de errado era na sql mas ai mudei de (+) para (-) e deu certo! valeu obrigado!
  3. Eu estava querendo somar quantidade de horas entre o meu horarioInicial e horarioFinal, mas tá dando esse erro: Esse é o codigo que estou montando: with QryHoras do begin close; sql.Clear; sql.Add('Select Aluno, Sum((HorarioInicial + HorarioFinal)) AS HorasMarcadas From Teoricas' +' where Aluno = :Alu Group By Aluno Order By Aluno'); ParamByName('Alu').AsString := TxtCod.Text; open; end; Total := QryHoras.FieldByName('HorasMarcadas').AsInteger; Horas := Total / 86400; Edit1.Text := TimeToStr(Horas); O que estou fazendo de errado ????
  4. Neste caso o que não está correto é a sua pesquisa.... sugestão: refaça a sua pesquisa ( horarios marcados do aluno ) procurando pelo nome ou codigo do aluno e depois ordenando as datas e horarios desse aluno, mostrando o resultado da pesquisa em um grid como já esta fazendo. Quando verificar que os dados estão corretos bastara voce jogar o conteudo da pesquisa nos seus edits, na mesma sequencia da leitura do arquivo. Abraço Ok, entendi, então consegui com a ajuda de uma amigo programador em delphi
  5. Estou fazendo um formulario com varios edits em tempo de execução.....mas cada coluna desses edits depende de quanto o usuario quer.....em questão da marcação das aulas estão oks, mas quando eu consulto para que cada aluno que foi marcado no seu devido horario ele fica tudo em uma linha!, coloquei do lado um grid mostrando os horarios marcados do aluno mas não cai nesse horarios certos!..... estou colocando o link do exemplo que fiz.... antes de compilar abre o fdtmiza e coloque o caminho certo do banco de dados, o banco está dentro da pasta teoricas mesmo o nome é (IzaCfc.gdb)... eu uso o firebird 2.0 e delphi 7... e vai precisa do rxlib instalado na sua maquina, quaisquer coisa eu posto o instalador direto dele! preciso de ajuda urgente! se poderem me ajudar ficarei grato! link do projeto http://www.4shared.com/file/56015346/ff3dbec1/TEORICAS.html 3.8 Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.
  6. Salvei um cominho de imagem no banco de dados (Firebird), assim: e ai quero colocar essa imagem de fundo do form principal, estou buscando o caminho e coloco em uma variavel caminho tipo string, ai quero buscar quando abri o programa, e mostrar no Image1; Como eu chamo a imagem e coloco no caminho para carregar no Image1 no oncreate ?
  7. Erro!! são cinco campos, e nos tres primeiros dá o erro, e nos dois ultimos não dão o erro, esse erro ocorre se eu consulto chamando a tela de pesquisa. esse é o erro: Eu crio esse cinco componentes de acordo com o quanto usuario vai querer, e eu faço dois tipo de consulta Primeiro pelo o OnExit dos Campos pequenos que são para os Códigos dos Alunos....mas ai nem dá erro .... e quando eu faço chamando o formulario de pesquisa nos 3 primeiros campos dão erro e nos dois ultimos não. Esse é o codigo da consulta para o OnExit dos Codigos. procedure TFrmFormarTumaTeorica.ConsultaAlunosCodigo(Sender: TObject); begin ConsultaRegistros ('Alunos', 'Codigo, Nome', 'Codigo=' + TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).Text); TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).Text := LeDados ('Codigo'); TEdit( FindComponent( 'NomAlu' + IntToStr( Conta ) ) ).Text := LeDados ('Nome'); TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).Text := StrZero( StrToFloat( TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).Text ), 6 ); Conta := Conta + 1; If Conta < Alunos then begin TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).SetFocus; end; end; Esse codigo é para chamar a tela de pesquisa: procedure TFrmFormarTumaTeorica.ConsultaAlunos; begin with vcpo do begin clear; add ( 'Codigo' ); add ( 'Nome' ); add ( 'Cpf' ); end; with vvlr do begin clear; add ( 'Código' ); add ( 'Nome' ); add ( 'Cpf' ); end; with tfrmpesaluno.create (application) do begin try tabela := 'Alunos'; camporetorno := 'codigo'; showmodal; finally free; end; end; if (retorno<> '') then begin ConsultaRegistros ('Alunos', 'Codigo, Nome', 'Codigo=' + Retorno);//TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).Text); TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).Text := Retorno;//LeDados ('Codigo'); TEdit( FindComponent( 'NomAlu' + IntToStr( Conta ) ) ).Text := LeDados ('Nome'); TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).Text := StrZero( StrToFloat( TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).Text ), 6 ); Conta := Conta + 1; If Conta < Alunos then begin TEdit( FindComponent( 'CodAlu' + IntToStr( Conta ) ) ).SetFocus; end; end; end; O ConsultaRegistros é uma funcão que tenho: function consultaregistros (ptabela, pcampos, pcondicao :string) : boolean; var instrucaosql :string; begin instrucaosql := 'select ' + pcampos + ' from ' + ptabela; if (pcondicao<>'') then begin instrucaosql := instrucaosql+' where ' + pcondicao; end; //showmessage (instrucaosql); with dtmiza.qryiza do begin close; sql.Clear; sql.add (instrucaosql); open; end; result := (not dtmiza.qryiza.IsEmpty); end; e esse é dos edits codigo e nome que eu crio: procedure TFrmFormarTumaTeorica.FormCreate(Sender: TObject); var SP, CA, CAC, A : Integer; CodAlu, NomAlu : TEdit; SpbAlu : TSpeedButton; begin with DtmIza.QryIza do begin close; sql.clear; sql.add('select * from Configuracao'); open; end; Alunos := DtmIza.QryIza.FieldByName('TOT_ALU_TEORICAS').AsInteger; // Criando total de alunos for CAC := 1 to Alunos do begin CodAlu := TEdit.Create(Self); with CodAlu do begin Name := 'CodAlu'+ IntToStr(CAC); Tag := ca; Left := 0; Height := 20; Width := 55; AutoSize := false; Font.Size := 8; Text := ''; top := -19+(CAC*20); Font.Style := [fsbold]; Parent := Grade; OnExit := ConsultaAlunosCodigo; end; end; // Criando total de alunos for CA := 1 to Alunos do begin NomAlu := TEdit.Create(Self); with NomAlu do begin Name := 'NomAlu'+ IntToStr(CA); Tag := ca; Left := 56; Height := 20; Width := 270; AutoSize := false; Font.Size := 8; Text := ''; top := -19+(CA*20); Font.Style := [fsbold]; Parent := Grade; end; end; Conta := 1; end; a imagem da tela e do erro: http://www.4shared.com/file/54745979/b42dba4/imagem2.html Espero que tenham entendido!
  8. Mude a cor do caption do RadioButton!
  9. É assim que estou criando os TEdits // Criando total de alunos for CAC := 1 to Alunos do // criando colunas begin CodAlu := TEdit.Create(Self); with CodAlu do begin Name := 'Alu'+ IntToStr(CAC); Tag := ca; Left := 20; Height := 20; Width := 55; AutoSize := false; Font.Size := 8; Text := ''; top := -19+(CAC*20); Parent := Grade; end; end; :huh: Resolvido! // Criando total de alunos for CAC := 1 to Alunos do // criando colunas begin CodAlu := TEdit.Create(Self); with CodAlu do begin Name := 'Alu'+ IntToStr(CAC); Tag := ca; Left := 20; Height := 20; Width := 55; AutoSize := false; Font.Size := 8; Text := ''; top := -19+(CAC*20); Parent := Grade.Parent; <<<<<<<<<<< end; end;
  10. No que você está fazendo esse relatorio ?
  11. Uso o componente JvGradient da paleta JvBars, Panels do pacote JEDI, ele é um panel gradient,.. Pois eu estou criando uns TEdit em tempo de execução e quero criar dentro dele, mas ele dá esse erro: É assim que estou criando os TEdits // Criando total de alunos for CAC := 1 to Alunos do // criando colunas begin CodAlu := TEdit.Create(Self); with CodAlu do begin Name := 'Alu'+ IntToStr(CAC); Tag := ca; Left := 20; Height := 20; Width := 55; AutoSize := false; Font.Size := 8; Text := ''; top := -19+(CAC*20); Parent := Grade; end; end; :huh:
  12. Verifica se não está faltando índices na SQL. A falta de índices reduz, exponencialmente ao crescimento da tabela, a velocidade de execução do relatório (por causa da query) em questão do sql, não é, pois o sql, só busca poucos dados que serão mostrados, e no inicio eu consiguo vizualizar rapido mas depois demora muito! Esse é o codigo em que eu faço o sql, e para mostra no relatorio: Application.CreateForm(TRHonorario,RHonorario); DmDados.TbConfigura.Open; RHonorario.QrEmpresa.Caption:=DmDados.TbConfiguraEMPRESA.AsString; if FileExists(DmDados.TbConfiguraLOGO.AsString) then begin RHonorario.QrLogo.Picture.LoadFromFile(DmDados.TbConfiguraLOGO.AsString); end; DmDados.TbConfigura.Close; RHonorario.QrTitulo.Caption :='Relatório de Honorários - '+ComboBox1.Text; RHonorario.QrPeriodo.Caption:='Periodo: '+Dt_Inicial.Text + ' a '+Dt_Final.Text+' - '+ComboBox2.Text; RHonorario.QrDespesa.Caption:='Despesa: '+eDespesa.Text + ' - '+PDespesa.Caption; RHonorario.QrCredor.Caption:='Credor: '+ECredor.Text + ' - '+PCredor.Caption; TbRelReceber.Close; // sql.. e filtros TbRelReceber.SelectSQL.Clear; TbRelReceber.SelectSQL.Add('SELECT CODI_REC||'+#39+'/'+#39+ '||PARC_REC AS DOCUMENTO, HIST_REC, EMIS_REC,VALO_REC, DTPG_REC, DESC_REC, (PAGO_REC+AMOR_REC) AS PAGO,'); TbRelReceber.SelectSQL.Add('JURO_REC,VENC_REC,(VALO_REC+JURO_REC) as TOTAL,'); TbRelReceber.SelectSQL.Add('CRED_REC, PESSOAS.NOME_PES, DESP_REC, DESC_DES, '); TbRelReceber.SelectSQL.Add('(CASE WHEN DTPG_REC IS NULL THEN'); TbRelReceber.SelectSQL.Add('CASE WHEN CURRENT_DATE>VENC_REC THEN (CURRENT_DATE-VENC_REC)'); TbRelReceber.SelectSQL.Add('ELSE 0 END ELSE'); TbRelReceber.SelectSQL.Add('CASE WHEN VENC_REC>DTPG_REC THEN (VENC_REC-DTPG_REC)'); TbRelReceber.SelectSQL.Add('ELSE 0 END END) AS "ATRASO"'); TbRelReceber.SelectSQL.Add('FROM HONORARIO INNER JOIN PESSOAS ON CODI_PES = CRED_REC'); TbRelReceber.SelectSQL.Add('INNER JOIN DESPESAS ON CODI_DES = DESP_REC'); // filtro da data If ComboBox2.ItemIndex = 0 then begin TbRelReceber.SelectSQL.Add('where emis_rec BETWEEN :PDATA1 AND :PDATA2'); end else begin TbRelReceber.SelectSQL.Add('where venc_rec BETWEEN :PDATA1 AND :PDATA2'); end; // tipo de conta If ComboBox1.ItemIndex = 0 then begin TbRelReceber.SelectSQL.Add('and dtpg_rec is null'); end else if ComboBox1.ItemIndex = 1 then begin TbRelReceber.SelectSQL.Add('and dtpg_rec is not null'); end; // filtro cliente if eDespesa.Value>0 then begin TbRelReceber.SelectSQL.Add('and desp_rec = '+eDespesa.Text); end; if ECredor.Value>0 then begin TbRelReceber.SelectSQL.Add('and cred_rec = '+ECredor.Text); end; TbRelReceber.SelectSQL.Add('ORDER BY CRED_REC,1'); TbRelReceber.ParamByName('PDATA1').AsDate:=Dt_Inicial.Date; TbRelReceber.ParamByName('PDATA2').AsDate:=Dt_Final.Date; TbRelReceber.Open; RHonorario.Preview; FreeAndNil(RHonorario); TbRelReceber.Close; ActiveControl:=ComboBox1;
  13. Verifica se não está faltando índices na SQL. A falta de índices reduz, exponencialmente ao crescimento da tabela, a velocidade de execução do relatório (por causa da query) em questão do sql, não é, pois o sql, só busca poucos dados que serão mostrados, e no inicio eu consiguo vizualizar rapido mas depois demora muito!
  14. Bom dia pessoal, estou com problema em um cliente meu! Quando ele imprimi um relatorio, e ai em seguida quando vai pedir o outro relatorio, ele começa a ficar lento... o computador do meu cliente não é tão lento e nem tão rapido, mas na hora que pede para imprimir ele demora de 3 a 4 minutos só para gerar o relatorio, mas quando testo em caso ele não fica lento, mas isso acotence só de vez em quando. Esse relatorio é feito em tempo de execução. Ex.: <<< Antes de criar o relatorio em faço a sql>>> Aplication.CreateForm (TRelatorio, Relatorio); Relatorio.Preview; FreeandNil(Relatorio); Por favor fico aguardando resposta!
  15. Eu faço assim para conectar.... no caminho do banco de dados eu coloco como remoto, e coloco assim: 10.1.1.4:c:\teste\teste.fdb e funciona certo, o ip seria do servidor, ou ai você faz umas configuraçoes para você colocar o caminho na hora da instalação.
  16. Amigo, pesquisei no google e no primeiro que achei: Iniciar Aplicação junto com o windows <<<<<clique no link Implementação: Neste exemplo criaremos duas procedures, GravaRegistro e ApagaRegistro, para adicionar e remover o registro do windows respectivamente. Para podermos trabalhar com o registro usaremos a classe TRegistry, que se encontra na unit Registry que deveremos adicionar na cláusula uses. uses ...Windows, StdCtrls, Registry; Em seguida criaremos a procedure GravaRegistro, contendo os seguintes parâmetros: procedure GravaRegistro(Raiz: HKEY; Chave, Valor, Endereco: string); Onde: -Raiz (HKEY): Aqui definimos a chave raiz onde o registro será adicionado. As chaves que podem ser usadas no nosso exemplo são HKEY_CURRENT_USER (as alterações feitas aqui só afetarão o usuário logado), HKEY_LOCAL_MACHINE (as alterações afetarão qualquer usuário). -Chave (String): No nosso exemplo usaremos a Chave "Software\Microsoft\Windows\CurrentVersion\Run" , que é a chave onde se aplicam os programas que devem ser executados na inicialização do Windows. -Valor (String): É simplesmente o nome do valor do campo que será adicionado. -Endereço (String): É o endereço do executável que será carregado na inicialização. Segue a implementação da procedure GravaRegistro: procedure TForm1.GravaRegistro(Raiz: HKEY; Chave, Valor, Endereco: string); var Registro: TRegistry; begin Registro := TRegistry.Create(KEY_WRITE); // Chama o construtor do objeto Registro.RootKey := Raiz; //Define a chave raiz Registro.OpenKey(Chave, True); //Cria a chave Registro.WriteString(Valor, '"' + Endereco + '"'); //Grava o endereço da sua aplicação no Registro Registro.CloseKey; // Fecha a chave e o objeto Registro.Free; end; Agora implementaremos a procedure ApagaRegistro, que terá os mesmo parâmetros que GravaResgistro menos o "Endereco", que não será necessário nesse caso. procedure ApagaRegistro(Raiz: HKEY; Chave, Valor : string); Segue a implementação da procedure ApagaRegistro: procedure TForm1.ApagaRegistro(Raiz: HKEY; Chave, Valor: string); var Registro: TRegistry; begin Registro := TRegistry.Create(KEY_WRITE); // Chama o construtor do objeto Registro.RootKey := Raiz; Registro.OpenKey(Chave, True); //Cria a chave Registro.DeleteValue(Valor); //Grava o endereço da sua aplicação no Registro Registro.CloseKey; // Fecha a chave e o objeto Registro.Free; end; Agora criaremos dois botões, um para realizar a gravação no registro e outra para a remoção, respectivamente. procedure TForm1.BitBtn1Click(Sender: TObject); begin try GravaRegistro(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\Run', 'IniciarPrograma', ExtractFilePath(Application.ExeName) + 'TesteRegistro.exe'); MessageDlg('Registro gravado com sucesso!', mtInformation, [mbOk], 0); except MessageDlg('Erro ao gravar registro!', mtInformation, [mbOk], 0); end; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin try ApagaRegistro(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\Run', 'IniciarPrograma'); MessageDlg('Registro apagado com sucesso!', mtInformation, [mbOk], 0); except MessageDlg('Erro ao apagar registro!', mtInformation, [mbOk], 0); end; end; E pronto! Agora é só testar a sua aplicação. Clicando no primeiro botão iremos adicionar nosso programa à lista de inicialização do Windows, tendo feito isso você pode efetuar logoff e assim que o windows for iniciado novamente o seu programa será executado automaticamente. Para remover o registro de forma que o seu programa não seja executado na próxima inicialização basta clicar no segundo botão. Espero que este artigo tenha sido útil, o código-fonte encontra-se disponível logo abaixo. Obrigado.
  17. robinhocne

    Somar Horas

    cara deu certo sim, olha o jeito que ficou: var Total : Integer; Horas : TTime; with QryHora do begin close; sql.Clear; sql.Add('Select f.funcionario, Sum((f.HorSai1-f.HorEnt1) + (f.HorSai2-f.HorEnt2)) AS HORAS_TRABALHADAS From ponto f' +' where F.Funcionario = :Fun and (Data >= :DtInicial) and (Data <= :DtFinal) Group By Funcionario Order By Funcionario'); ParamByName('Fun').AsString := TxtCodFun.Text; ParamByName('DtInicial').AsDate := TxtDatIni.Date; ParamByName('DtFinal').AsDate := TxtDatFin.Date; open; end; Total := QryHora.FieldByName('Horas_Trabalhadas').AsInteger; Horas := Total / 86400; txthoras.Text := TimeToStr(Horas); Resolvido
  18. é uma boa ideia e acho que assim eu consiguo fazer, mas semana que vem tem um amigo programador meu que vai me ajudar, e ele disse que tem uma maneira sim, com certeza há, ai se der certo eu posto aqui, só estou esperando para fechar esse tópico, mas se não der certo vou fazer da maneira que você falou.
  19. robinhocne

    Somar Horas

    Mas não deu certo! dá esse erro: A minha tabela tem essa estrutura: Codigo Funcionario Data HorEnt1 HorSai1 HorEnt2 HorSai2 Eu utilizo o Firebird 2.0 e delphi 7
  20. Preciso somar a quantidade de horas trabalhada de um funcionario, mas é assim, na minha tabela ponto eu tenho os seguintes campos: Funcionario Data HorEnt1 HorSai1 HorEnt2 HorSai2 pois eu preciso que me em um relatorio me mostre as somas das: HorEnt1 HorSai1 HorEnt2 HorSai2 mas não sei se tem como fazer isso com instrução sql, ou por alguma função Preciso de ajuda!
  21. para colocar em ordem eu coloco assim: RxMemoryData1.SortOnFields('Nomedocampo', true, false);
  22. me passa a tela que esta mostrando bagunçado abraço vou lhe passar um exemplo que fiz, ai você pode vizualizar melhor, só que você vai ter que instalar o psvborderlabel, pois é o componente de labels, e o Rxlib provavelmente você tem ai, se não tiver tem dentro da pasta componentes, o banco de dados está ai dentro da pasta mesmo (IzaCfc), há conecta direito o banco de dados no datamodule pois o caminho que eu configurei é da minha maquina aki. >>>>>>Baixe o>>>>>Exemplo<<<<<<<<<
  23. robinhocne

    duvida simples

    Em questão do form que não posso ser minimizado, na propriedade do form tem uma chamada border acho que algo assim, ai ele está como none mas você deixa como dialog que não vai minimizar mais, e tem a ultima propriedade dele tbém está como normal ai você deixa como maximizado. é que estou sem delphi aqui. e sobre o alt tab eu não sei te dizer.... Mas só digitei no google: delphi - desabilitar o alt+tab e o primeiro link que aparece: http://www.linhadecodigo.com.br/dicas.asp?...=118&sub=14 Ativando e Desativando o ALT+TAB Desativa o ALT+TAB procedure TurnSysKeysOff; var OldVal : LongInt; begin SystemParametersInfo (97, Word (True), @OldVal, 0) end; Ativa o Alt+Tab procedure TurnSysKeysOn; var OldVal : LongInt; begin SystemParametersInfo (97, Word (False), @OldVal, 0) end; fora os links do forum: https://www.scriptbrasil.com.br/codigos/del...dados/3/titulo/
  24. robinhocne

    duvida simples

    Em questão do form que não posso ser minimizado, na propriedade do form tem uma chamada border acho que algo assim, ai ele está como none mas você deixa como dialog que não vai minimizar mais, e tem a ultima propriedade dele tbém está como normal ai você deixa como maximizado. é que estou sem delphi aqui. e sobre o alt tab eu não sei te dizer....
×
×
  • Criar Novo...