Ir para conteúdo
Fórum Script Brasil

robinhocne

Membros
  • Total de itens

    854
  • Registro em

  • Última visita

Tudo que robinhocne postou

  1. Tipo assim, é um arquivo patch(txt) que faço a conexão com o banco de dados, então gostaria de saber como eu edito esse arquivo mas primeiro queria saber como que antes de eu conectar ele verifica o caminho em que ele vai conectar ai ele vai verificar se o banco está se caso não estiver ele vai pedir para mostrar e é onde que vou procurar o caminho do bando e vou salvar no arquivo txt. alguém poderia me ajudar?
  2. Na propriedade do botão tem uma que se chama Hint pois é só colocar a mensagem que deseja nele e excuta e testa para ver!
  3. Amiga Tatiane.InterArt. Bom eu fazeria assim: With Query1 do begin close; sql.clear; sql.add('Select O.Numero, O.DataOrcto, O.CodCli, O.Cliente, P.Codigo, P.NumOrcto, P.Data, ' + 'P.Valor, P.TipoPagto from Orcto O, PagtoOrcto P where P.Data =:PDat ' + 'and O.CodCli = P.Codigo and P.Data is null'); ParamByName('PDat').AsDate := EDIT.TEXT; open; end; Mas..... Primeiro na tabela de PagtoOrcto o campo Codigo seria o codigo do cliente ? pois assim filtraria por cliente da maneira que eu te passei. Segundo o campo Data seria o campo onde será gravado a data que a pessoa pagou ?
  4. robinhocne

    Skin

    qual componente de skin é? o vclskin ?
  5. Churc! Valeu pela dica, mas não deu, deu erro de String an Integer, mas achei um na net e consegui adaptar: procedure TFrmCheques.TxtPreExit(Sender: TObject); var Dias : Single; DtIni, DtFin : TDateTime; begin DtIni := StrToDate(TxtPre.Text); DtFin := StrToDate(TxtEmi.Text); Dias := DtIni - DtFin; TxtDia.Text := IntToStr(Trunc(Dias)); end; Ok, Resolvido.
  6. Como que eu faço para extrair o total de dias entre a minha data do TxtInicial.Text com a data do TxtFinal.Text ?
  7. Bom, vamos concluir esse tópico que ficou em aberto, pesquisando e aprendendo um pouco eu com ajuda de amigos e da faculdade onde estou aprendendo e melhorando mais os conhecimentos, para mostrar esse relatorio, foi feito seguinte, foi todo montado em tempo de execução e também fiz a consulta para verificar se o aluno esta marcado a cada horario, mas tem um pequeno detalhe que não sei fazer, mas deixe eu mostrar o codigo primeiro: procedure TfrmLisRelPraSemanais.spbexiClick(Sender: TObject); var data, hora, aluno :TQRLabel; i, a, b, c:integer; SomaData : Integer; begin // Coluna das Datas for i:=1 to 7 do begin data := TQRLabel.Create(nil); data.Name := 'nome'+inttostr(i); data.Left := -40+(i*135); data.top := 50; data.Frame.DrawTop := true; data.Frame.DrawBottom := true; data.Frame.DrawLeft := true; data.Frame.DrawRight := true; data.Transparent := true; data.Width := 130; data.Font.Size := 12; data.Height := 21; data.Font.Name := 'Arial'; data.Font.Style := [fsBold]; data.AutoSize := false; data.Caption := DateToStr(DataInicial.Date-1 + i); data.Alignment := TaCenter; data.Parent := QrSemanal.QRBand1; end; // coluna de horarios for a:=1 to 15 do begin hora := TQRLabel.Create(nil); hora.Name := 'nome'+inttostr(a); hora.Left := 15; Hora.Height := 23; hora.Frame.DrawTop := true; hora.Frame.DrawBottom := true; hora.Frame.DrawLeft := true; hora.Frame.DrawRight := true; hora.Transparent := true; hora.AutoSize := false; hora.Width := 75; hora.Font.Size := 11; hora.Font.Name := 'Arial'; hora.Font.Style := [fsBold]; hora.Caption := inttostr(7+a)+':00'; hora.Alignment := TaCenter; hora.top := 50+(a*25); hora.Parent := QrSemanal.QRBand1; end; for b:=1 to 15 do // total de aluno um em baixo do outro for c := 1 to 7 do // total de coluna de aluno begin aluno := TQRLabel.Create(nil); aluno.Name := 'nome'+inttostr(b); aluno.Left := -40+(c*135); aluno.top := 50+(b*25); aluno.Frame.DrawTop := true; aluno.Frame.DrawBottom := true; aluno.Frame.DrawLeft := true; aluno.Frame.DrawRight := true; aluno.Transparent := true; aluno.AutoSize := false; aluno.Width := 130; aluno.Font.Size := 12; aluno.Font.Name := 'Courier New'; // aluno.Font.Style := [fsBold]; aluno.Parent := QrSemanal.QRBand1; with DtmIza.qryiza do begin close; sql.clear; sql.add ('Select p.aluno, p.horario, p.data, a.nome, a.codigo from praticas p, alunos a'); Sql.Add ('where p.aluno = a.codigo and p.horario = :PHora and p.data = :PDATA and p.instrutor = :PINSTRUTOR AND'); ParamByName('PHORA').asstring := inttostr(b+7)+':00'; ParamByName('PDATA').asdatetime := DataInicial.Date-1 + c; ParamByName('PINSTRUTOR').AsInteger := StrToInt (TxtInst.Text); open; end; If not DtmIza.qryiza.IsEmpty then begin aluno.Caption:= DtmIza.qryiza.FieldByName('codigo').asstring; end else begin aluno.Caption := ''; end; end; QrSemanal.Preview; close; end; então na consulta ele verifique se tem aluno mostra o codigo no qrlabel e se não tiver mostra em branco.... .....Mas tem um pequena condição, quando eu marco a aulas eu preencho o campo estatus com 1 que são aulas marcadas, e quando é o bloqueado ele preenche com o status 0 e ai eu queria que os campos de aulas que estiver com o status 0 me mostrasse assim no meu relatorio (********), mostrasse os asteristicos indicando que são horarios bloqueados.
  8. 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'); 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. Ok, estava mesmo precisando colocar um campo em que falasse que era cheque e promissoria e acabei utilizando por padrão um campo que criei, então filtrei pelo tipo cheque e tipo promissoria e utilizei a mesma data para dar baixa oou depositar. então ficou resolvido.!
  9. Estou fazendo uma instrução Sql que busca duas deterinadas datas, uma é pagamento que foi feito no dia e outra é os depositos do dia a instração está assim: 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; Mas assim dai ele busca só aqueles campos que estão preenchidos os dois com a mesma datas, mas tipo assim quando é pagamento de parcela, vai ser preenchido o campo pagamento com a data do dia, e quando é depositado e preenchido primeiramente a data de pagamento quando é lancado o cheque que ai cai no caixa e quando depositado ele preenche o campo depositado de quando esta sendo depositado o cheque, as essa intrução eu quero que aparece em um mesmo grid, mas lembrando Quando parcela só preenche o campo pagamento e quando é cheque é preenchido os dois campos e ai mostra! Como eu faço para que se buscar o deposito e pagamento que foram feitos no dia para mostrar?
  10. Ok, muito obrigado Micheus por essa dica, bou dar uma verificado nesse banco pois estou precisando de umas consultas.
  11. robinhocne, você poderia colocar aqui a SQL que estava causando o erro (com o order by e tudo o mais)? Qual a versão do Intebase que você usava? (seria 7 ou posterior) Qual a versão do Firebird? (seria a 1.5) Bom essa seria a instrução errada: With QrySoma do begin close; sql.clear; sql.add ('Select sum (L.valor), L.codigo, L.aluno, L.historico, L.valor, L.vencimento, A.Codigo from lancamento L, Alunos A'); sql.add ('where l.aluno = a.codigo order by l.vencimento, l.historico, l.aluno'); open; end; e tirei o order by l.vencimento, l.historico, l.aluno e funcionou. O InterBase é o 6. e o Firebird é o 2.0.1 mas perguntei para alguns amigos e eles me falaram que no IB você consegue fazer umas coisa que não dá erro que o FB acaba dando erro. Mas em questão de duvida seria porque em um funcionou e no outro não, se caso é isso que meus amigos me falaram então pode encerrar este tópico. Valeu mais uma vez de muitas vezes Micheus e Jhonas, espero um dia ficar bem capacitado igual à vocês para que posssa fazer parte do tópico como moderador.
  12. Em relação a respota do Micheus acho que faz sentido, mas no meu ele roda e no cliente não acabei testando agora só com o InterBase e funcionou, mas essa opção do Firebird eu não tinha testado ainda, vou verificar e espero que seja isso mesmo, pois preciso urgentemente, e a questão da tradução que o Jhonas colocou, o mais estranho é que o group by nem tem nada nesse formulario ou instrução, mas estava pesquisando e vou configurar como local host no IbDataBase que é o componente de conexão e como remoto, vou testar de noite e se der certo postarei ..... As duas dicas tanto como do Micheus e Jhonas foi otimas para pode resolver esse tópico meu, Primeiro para funcionar só com o Firebird, tentei fazer do jeito que um amigo meu me falou: Mudar a conexão do DataBase para LocalHost, fiz dessa maneira, mas só que a minha conexão com o banco de dados é feito por registro- Ok. Segundo fiz da maneira que o Micheus me passou, desistalei o Fb e Ib e exclui o gds32 da system32 e instalei o Fb de acordo com as instruções dele, Ok funcionou, consegui fazer rodar pelo Fb - Ok e Terceiro em questão de maior precisao seria o erro que estava dando, testei e continuou com o mesmo erro, mas verificando melhor a mensagem de erro e a dica que Jhonas tinha passado, a soma de valores desse relatorio eu estava colocando um Order By, foi só tirar e tudo funcionou corretamente..... Mas um duvida que me fica matutando, mesmo com esse erro na soma do Relatorio, com o InterBase ele rodou e com o Ferebir não, então porque aconteceu isso?
  13. Em relação a respota do Micheus acho que faz sentido, mas no meu ele roda e no cliente não acabei testando agora só com o InterBase e funcionou, mas essa opção do Firebird eu não tinha testado ainda, vou verificar e espero que seja isso mesmo, pois preciso urgentemente, e a questão da tradução que o Jhonas colocou, o mais estranho é que o group by nem tem nada nesse formulario ou instrução, mas estava pesquisando e vou configurar como local host no IbDataBase que é o componente de conexão e como remoto, vou testar de noite e se der certo postarei .....
  14. Estou com um problema em conflito de banco de dados, pois esta dando esse erro na hora de fazer um abusca de um relatório por periodo de data: Imagem de erro Pois esta dando esse erro no cliente meu, pois em meu pc não está dando, já estou com o banco de dados do cliente e no meu passou normal, pois no cliente esta o Firebird instalado.E no meu eu tenho o InterBase e Firebird, então desistalei os dois e instalei o FB mas não funcionou da uma mensagem de DataBase Univable, depois instalei só o IB e deu certo e mostra o relatório normal. Pois eu quero só ficar com o FB não quero o IB, como eu resolve esse conflito?
  15. Veja estes posts ... vai te dar um ideia de como fazer http://scriptbrasil.com.br/forum/index.php...st&p=274882 http://scriptbrasil.com.br/forum/index.php...st&p=457084 abraço Ok, certinho do jeito que eu queria, esse primeiro link foi otimo, ficou assim: function TFrmInformacoes.FileDate(Arquivo: String): String; {Retorna a data e a hora de um arquivo} var FHandle: integer; begin if not fileexists(Arquivo) then begin Result := 'Nome de Arquivo Inválido'; end else begin FHandle := FileOpen(Arquivo, 0); try Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle))); finally FileClose(FHandle); end; end; end; procedure TFrmInformacoes.FormShow(Sender: TObject); begin label3.Caption := FileDate('C:\IzaCfc\IzaCfc.exe'); end; Resolvido
  16. Bom dia, queria saber como eu faço para mostrar a data e hora da ultima compilação de meu programa, pois passando o mouse em cima mostra, mas eu quero colocar em um form dentro do meu programa mostrando. ??
  17. Cometi um erro ao escrever o select. Retire as aspas em soma. SELECT a.Codigo, a.Nome , a.DtCadastro, a.DtTeIni, sum(L.Valor)as SOMA FROM Alunos a INNER JOIN Lancamento L ON a.Codigo = L.Codigo WHERE a.tTeIni >= :d1 and L.tipo = 1 GROUP BY a.Codigo Sim. Aparecerão todas as linhas da tabela que contenha o maior número de registros (no seu caso parcelas) duplicando os campos das tabelas que contenham menos informações (neste caso o cadastro) O controle de exibição você deverá fazer via programação, para que fique no estilo master/detail. Resolvido: Fiz da seguinte maneira: With DtmIza.QryIza do Begin Close; Sql.Clear; Sql.Add ('Select A.Codigo, A.Nome, A.DtCadastro, A.DtTeIni, A.DtTeFin, A.Servicos, A.Categoria, sum(L.Valor) as SOMA ') Sql.Add ('FROM Alunos a INNER JOIN Lancamento L ON A.CODIGO= L.ALUNO ') Sql.Add ('WHERE A.Servicos = 1 and a.DtTeIni >= :d1') Sql.Add ('group by A.Codigo, A.Nome, A.DtCadastro, A.DtTeIni, A.DtTeFin, A.Servicos, A.Categoria') Sql.Add ('order by A.Codigo'); ParambyName('d1').value := FormatDateTime ('dd/mm/yyyy' , StrToDate (TxtData.Text)); Open; end;
  18. Amigo Denis, está dando erro nop Sum, erro dynamic sql error, testei no ibexpert é dá a mesma coisa, e tbém tipo se o aluno tem 5 parcelas aparece 5 vezes o nome dele....???
  19. Estou precisando buscar os dados dos alunos pela determinada data. with dtmiza.qryiza do begin close; sql.Clear; sql.add (Select Codigo, Nome , DtCadastro, DtTeIni From Alunos where QuoteToStr (TxtDataInicial.Text); Sql.Add('where (DtTeIni >= :d1) '); ParambyName('d1').value := FormatDateTime ('dd/mm/yyyy' , StrToDate (TxtDataInicial.Text)); open; end; Mas ai eu preciso mostrar no relatorio o valor total da cnh desse aluno(a) mas ai eu não sei como filtrar para que cada aluno que vai buscar mostrar o total da carteira dele with QryTotal do begin close; sql.Clear; sql.add ('Select sum(Valor)as "SOMA" From Lancamento where tipo = 1 and Codigo' ); open; end; Então ai como eu filtrari isso ?
  20. Nessa condição ele traria um mesmo dado, mas na hora de pintar o grid que não daria certo, mas valeu pela dica estou utilizando da ultima maneira que eu fiz. ok, resolvido
  21. Jhonas, parece-me que o problema do robinhocne não é mais com a pintura do DBGrid, mas sim com a lógica - observe as ????? no código dele. robinhocne, veja nos destaques que fiz, que é só seguir o que você mesmo citou. Vou colocar só eles aqui: fields [2] se for menor que a data corrente me mostre em marrom mas não se a data de pagamento estivesse preenchida (Field [4]) traduzindo.. pintar de marrom se fields [2] <= data atual e fields [4] for nulo. Logo... if (dbglan.Fields[2].AsDateTime <= Date) and (dbglan.Fields[4].IsNull then Begin dbglan.Canvas.Font.Color:= clMaroon; End; Fiquei curioso de onde você tirou o tal Current_Date. Ele existe no banco, mas no Delphi, você deveria usar a função Date. Abraços é eu aqui espesifiquei errado mesmo o Current_date, mas analisei muito em casa e um amigo deu uma dica, e ainda mais não presteiatenção pois estou aprendendo logica na faculdade, pois resolvi da seguinte maneira: If dbglan.Fields[5].AsString = '1' then //Se o campo 5 {Tipo} é igual a 1 então if dbglan.Fields[4].AsString <> '' Then // Se o campo 4 {Dt Pgto} é diferente de vazio, quer dizer está cheio então Begin dbglan.Canvas.Font.Color:= clgreen // pinte de verde para parcelas pagas End; if dbglan.Fields[2].AsDateTime <= Date Then // Se o campo 2 {Vencimento} é menor ou igual a data então If dbglan.Fields[4].AsString = '' then // Se o campo 4 {Dt Pgto} recebe vazio então Begin dbglan.Canvas.Font.Color:= clred; // Pinte de vermelho para parcela atrasadas End; If DbgLan.Fields[5].AsString = '2' then // Se o campo 5 {Tipo} é igual á 2 então begin DbgLan.Canvas.Font.Color := clnavy; // Pinte de azul caso contrario tudo isso não acontece nada e fica preto sua cor normal end; Como tinha mais função para fazer na hora de pintar a linha do grid mudei toda a estrutura. Resolvido :rolleyes:
  22. não consegui achar jhonas em nehum desse topicos que você me passou
  23. eu não consegui entrar nesse tópico que você me passou, pois estou acessando do meu servico e aqui tem muitas coisas que é bloqueada, principalmente tudo referido a gage, show, etc... tem como você me especificar esse codigo aqui para eu dar uma olhada......
  24. Estava tentado faz assim, que ele pegasse a fields [2] que é onde mostra os vencimentos das parcelas e checar se for menor que a data corrente e me mostre em marrom essa linha, mas também não pode mostrar a linha emmarron se se a data de pagamento estivesse preenchida, que no Field [4] que é o campo onde quando estiver pago mostra a data do dia de pagamento Acho que seria mais ou menos assim:;;;;; if dbglan.Fields[2].AsDateTime <= Current_Date Then iF dbglan.Fields[4].AsDateTime ????? then Begin dbglan.Canvas.Font.Color:= clMaroon; End;
  25. Consegui resolver com ajuda de um amigo e consegui enteder um pouco mias.... tabela := 'alunos A join Lancamento L on (L.Aluno = A.Codigo and extract(month from L.Vencimento ) <= extract(month from current_date)) group by A.Nome, A.Codigo, A.Cpf, A.Processo, A.CnhEntregue'; foi feito dessa maneira e ele agrupava todas as parcelas juntas, mas na hora de pintar as linhas do dbgrid ele não dava muito certo, ele me falou para colocar no Dbgrid de pesquisa um campo que informasse, mas ai acabamos colocando uma mensagem ao abrir o cadastro do aluno, se ele tiver debitos ai mostra a mesagem, fizemos uma função: E ai no fim de cada pesquisa ele vai verificar: ... if (retorno<> '') then begin inherited; LeRegistro(); if ver_aluno(StrToInt(txtmat.Text)) then begin SpbCanClick(Sender); Abort; end; então agora posso falar e concluir que está concluido esse tópico.... Agradeço a paciencia de todos....
×
×
  • Criar Novo...