
lucy4000
Membros-
Total de itens
14 -
Registro em
-
Última visita
Tudo que lucy4000 postou
-
ai gente desculpa....esqueci q eu tinha colocado a função como shortstring :P valeu
-
Oi pessoal, Eu estou usando um dbrichedit para um campo memo do banco de dados..o problema é q ele aceita apenas 255 caracteres... eu achava q ele era que nem o componente dbmemo, só que formatável. E tb tem outro problema: As vezes quando gravo umas 5 linhas de texto, com menos de 255 caracteres, e quando mando fazer uma busca nesse campo digitando a primeira letra em diante, ele só busca o texto pela metade, tipo, mostra umas 3 linhas apenas... por que isso acontece? olha só, no campo change dele, ele chama o seguinte codigo Function TFORM1.Procura1(tabela:ShortString ; CAMPO:ShorTString ; ABUSCA:TDBRichEdit; ordem:string) : ShortString; begin IF (Trim(abusca.Text)='') OR (NOR_SET=0) then Begin Result:='';exit; End; With dm.QConsultas do Begin ParamCheck :=True; Active:=False; Close; SQL.Clear; SQL.add('Select '+CAMPO+' From '+TABELA+' Where '+CAMPO+' like '+#39+''+COPY(ABUSCA.TEXT,1,ABUSCA.SelStart)+'%'+#39 + ' order by ' + ordem + ' desc'); open; if tecla = true then RESULT:=ABusca.Text else RESULT:=COPY(ABUSCA.TEXT,0,ABUSCA.SelStart)+COPY(Fieldbyname(CAMPO).AsString,ABUSCA.SelStart+1,255); End; IF NOR_SET=0 THEN NOR_SET:=1 ELSE NOR_SET:=0; END; Eu acho q o problema ta nessa linha: RESULT:=COPY(ABUSCA.TEXT,0,ABUSCA.SelStart)+COPY(Fieldbyname(CAMPO).AsString,ABUSCA.SelStart+1,255) já tentei substituir o 255 por 500 mas continua só aceitando 255...serah q é algum problema nesse copy? Obrigada
-
ai meu Deus...hauhauhauhauhau obrigada daniel...eu pensando q era algo como "label.controls...." valeu ^^
-
Olá eu gostaria de saber se alguém sabe via codigo, como trazer o TQRLabel para a frente de um outro componente. O mesmo que clicar com o direito nele e escolher = control->bringtofront obrigada
-
O titulo tem que estar no proprio QRGroup ( Group Header) ... os dados serão levados a proxima pagina pela banda Detail linkada ao QRGroup e o titulo se repetirá na proxima pagina abraço Obrigada Jhonas, mas eu não tenho detail...imaginei q funcionasse somente com detail :( são tres groupheader, um dependente do outro... serah q devo fazer um groupheader, detail e subdetail....na epoca eu não fiz isso mas não lembro o motivo :P tentarei fazer dessa forma..
-
oi pessoal, eu tenho as seguintes bandas groupheader groupheader groupheader groupfooter chieldband groupfooter o primeiro groupheader eu coloco o tipo. Ex.: despesas o segundo groupheader eu coloco o subtipo1. Ex.:desp administrativas o terceiro groupheader eu coloco o subtipo2. Ex.: aluguel o primeiro groupfooter, é do subtipo1, que faz o total de todas as despesas administrativas o chieldband é só para dar um certo espaço o segundos groupfooter, é do tipo, que faz o total de todas as despesas... Exemplo: Despesas ** Administrativas ****aluguel ****agua ****luz ****impressos ****serviços de comunicação ****condominio ****seguro ****telefone total Administrativas - x total Despesas - x o negocio é, que se não couber na folha pelo menos os dois grupos (subtipo1-Administrativas e subtipo2 - Aluguel, agua, etc) e passar para a outra folha o restante, eu gostaria que ele fosse com o titulo ( administrativas). Ex (folha 1) Despesas **Administrativas ****aluguel ****agua ****luz ****impressos ****serviços de comunicação (fim da folha-quebra de pagina) (folha 2) - gostaria que repetisse o titulo (administrativas) e o restante. **Administrativas ****condominio ****seguro ****telefone total Administrativas - x total Despesas - x Tentei usar o linkband, ligando a banda anterior com a proxima e assim sucessivamente, mas não deu certo não, ele continua levando para a outra folha apenas o restante e não copia o titulo... alguém sabe a solução? obrigada a todos =)
-
Oi Micheus, são sobre o mesmo relatorio..mas são problemas diferentes. Esse eu já resolvi em 70% digamos...mas ainda tah faltando alguma coisa:P Obrigada pela sua explicação no outro tópico, muito bom.. fique com Deus
-
lucy4000, faça select's separados um para cada tipo (filtre eles na cláusula where), depois, no relatório você usa 3 subdetails onde você link na propriedade DataSet coloca o respectivo dataset na ordem desejada. Outra opção, seria usar 3 select's com union. Cada select filtra o tipo específico, na ordem que você precisa. Para garantir a ordenação que você possa precisar (além do tipo) você pode cria uma coluna com valor sequencial fixo onde este campo é usado na cláusula order by. Por ex.: select 1 as Ordem, campo1, campo2, ... from LivroCaixa where tipo = Receitas union select 2 as Ordem, campo1, campo2, ... from LivroCaixa where tipo = Despesa union select 3 as Ordem, campo1, campo2, ... from LivroCaixa where tipo = Movimentacao order by 1, 2, ...os números na cláusula order by, correspondem as colunas da consulta pelo qual queremos ordenar o resultado. Acho que é isso. Abraços PERFEITOOO MICHEUS ... eu vou fazer desse jeito com union ... =) Obrigada, Deus abençoe.
-
Oi pessoal, tennho uma outra duvida... meu cliente quer um relatorio que ordene os dados da seguinte maneira: Receitas (dados da receita) Despesas (dados da despesa) Movimentação financeira e outros (outros dados) ele tah querendo tudo q é receita em cima...depois obrigatoriamente tem q vir despesas e o resto q tiver, poe por ultimo... se fizer uma consulta sql ordenando por tipo da forma desc ficaria : Receitas, movimentacao financeira, Despesas. se fizer ordenado por tipo de forma asc ficaria : Despesas, Movimentacao, Receitas e nenhuma das opções ele quer... como eu vou ordenar dessa maneira: Receitas, Despesas, Movimentacao financeira? allguem pode me dar uma luz? valeu
-
galera, eu estou com um problema serio... não sei como resolver e preciso entregar esse trabalho logoo... eu tennho a seguinte sintaxe Code: SELECT L.cod_tipo, L.operacao, S1.Subtipo1, S2.Subtipo2, FORMAT(sum(L.total_operacao),"###,##0.00") AS total FROM Subtipo1 AS S1 RIGHT JOIN (lancamentos AS L LEFT JOIN subtipo2 AS S2 ON L.cod_subtipo2=S2.Cod_Subtipo2) ON S1.Cod_Subtipo1=L.cod_subtipo1 WHERE L.Data Between #1/14/2009# And #11/2/2009# GROUP BY L.cod_tipo,subtipo1, subtipo2, operacao ORDER BY L.cod_tipo DESC , subtipo1, subtipo2; quando vejo no banco essa consulta ele mostra o seguinte resultado: (primeiro registro) Cod_tipo: 3 operacao: ENTRADA subtipo1: transferencias entre contas subtipo2: (nesse caso não tem) total: 100 (segundo registro) Cod_tipo: 3 operacao: SAIDA subtipo1: transferencias entre contas subtipo2: (nesse caso não tem) total: 200 (eu agrupei por operacao(entrada e saida)..caso contrario ele mostraria apenas um registro com o total = 300) no relatorio q eu fiz no delphi com essa instrução sql, ele mostra apenas o primeiro valor e eu gostaria q aparecessem os dois... ele estah mostrando assim: subtipo1: Transferencias Entrada: 100,00 Saida: (não mostra nada) ele teria q aparecer a saida tb... não sei o q acontece...eu mandei ele agrupar ppor operacao(entrada e saida) mas tb mandei agrupar por subtipo1 =S quando é o mesmo subtipo1(transferencias) E tem os dois tipos(entrada e tb saida), ele só mostra o primeiro q vier(nesse caso é entrada - 100,00)... e eu gostaria q ele mostrasse os dois. no relatorio eu coloquei 3 groupheaders para agrupar o tipo, subtipo1 e subtipo2 e dois groupfooters para colocar o total das bandas. ele funciona muito bem quando um registro não tem as duas operações(entrada e saida - o que é raro acontecer). O problema não sei se estah no sql ou na montagem do relatorio... se alguém puder me ajudar... obrigada =)
-
Oi Jhonas, obrigada pela ajuda mas não funcionou..:( fiz assim em cada saida: ex: if optcliente.Checked then begin varsql:='SELECT Format(IIf([operacao]="Entrada",[total_operacao],""),"#####0.00") AS Entrada, Format(IIf([operacao]="Saída",[total_operacao],""),"#####0.00") AS Saida, L.Cod_lancamento, L.data, L.historico, L.operacao, '+ 'Format(L.total_operacao,"###,##0.00") AS Expr1, S2.Subtipo2, S1.Subtipo, L.NF FROM (Subtipo1 AS S1 INNER JOIN (lancamentos AS L LEFT JOIN subtipo2 AS S2 ON L.cod_subtipo2 = S2.Cod_Subtipo2) ON S1.Cod_Subtipo1 = L.cod_subtipo1) INNER JOIN Tipo '+ 'ON S1.Cod_tipo = Tipo.Cod_tipo WHERE (((L.data) Between #'+datainicial+'# And #'+datafinal+'#) AND ((L.historico) Like "'+edtnome.Text+'%")) ORDER BY L.data, L.Cod_lancamento'; flag:=1; FRelatSint.QuickRep1.Preview exit; // sair aqui end
-
Esse erro acontece por falta ou excesso de parametros passados .... poste o seu codigo que fica mais facil te ajudar abraço if ValidarDAta(mskdatainicial, mskdatafinal) then begin decodedate(strtodate(mskdatainicial.Text), ano, mes, dia); datainicial:= inttostr(mes) +'/'+ inttostr(dia) +'/'+ inttostr(ano); decodedate(strtodate(mskdatafinal.text), ano, mes, dia); datafinal:= inttostr(mes) +'/'+ inttostr(dia) +'/'+ inttostr(ano); if chktipos.Checked then begin if (cosub1.Text <>'') and (cosub2.Text='') then begin if optcliente.Checked then begin varsql:='SELECT Format(IIf([operacao]="Entrada",[total_operacao],""),"#####0.00") AS Entrada, Format(IIf([operacao]="Saída",[total_operacao],""),"#####0.00") AS Saida, L.Cod_lancamento, L.data, L.historico, L.operacao, Format(L.total_operacao,"###,##0.00"), '+ 'S2.Subtipo2, L.NF, S1.Subtipo FROM Subtipo1 as S1 INNER JOIN (lancamentos as L LEFT JOIN subtipo2 as S2 ON L.cod_subtipo2=S2.Cod_Subtipo2) ON S1.Cod_Subtipo1=L.cod_subtipo1 WHERE (((L.data) Between #'+datainicial+'# And #'+datafinal+'#) AND ((L.historico) Like "'+edtnome.Text+'%") '+ 'AND ((S1.Subtipo)="'+cosub1.text+'")) ORDER BY L.data, L.Cod_lancamento'; flag:=2; end else begin varsql:='SELECT FORMAT(IIf([operacao]="Entrada",total_operacao,""),"#####0.00") AS Entrada, FORMAT(IIf([operacao]="Saída",total_operacao,""),"#####0.00") AS Saida, lancamentos.cod_lancamento, lancamentos.data, lancamentos.historico,Lancamentos.NF, '+ 'lancamentos.operacao,FORMAT(lancamentos.total_operacao, "###,##0.00"), Subtipo2.Subtipo2 FROM (Subtipo1 INNER JOIN (lancamentos LEFT JOIN subtipo2 ON lancamentos.cod_subtipo2 = subtipo2.Cod_Subtipo2) ON Subtipo1.Cod_Subtipo1 = lancamentos.cod_subtipo1) ' + 'WHERE (Lancamentos.Data Between #'+datainicial+'# And #'+datafinal+'#) and (subtipo1.subtipo = "'+cosub1.Text+'") ORDER BY Lancamentos.Data, Lancamentos.Cod_lancamento'; flag:=2; end end else begin if (cosub1.Text<>'') and (cosub2.Text<>'') then begin if optcliente.Checked then begin varsql:='SELECT Format(IIf([operacao]="Entrada",[total_operacao],""),"#####0.00") AS Entrada, Format(IIf([operacao]="Saída",[total_operacao],""),"#####0.00") AS Saida, L.Cod_lancamento, L.data, L.historico, L.operacao, Format(L.total_operacao,"###,##0.00"), '+ 'S2.Subtipo2, L.NF, S1.Subtipo FROM Subtipo1 as S1 INNER JOIN (lancamentos as L LEFT JOIN subtipo2 as S2 ON L.cod_subtipo2=S2.Cod_Subtipo2) ON S1.Cod_Subtipo1=L.cod_subtipo1 WHERE (((L.data) Between #1/7/2008# And #7/30/2008#) AND ((L.historico) Like "'+edtnome.Text+'%") '+ 'AND ((S1.Subtipo)="'+cosub1.Text+'") AND ((S2.Subtipo2)="'+cosub2.Text+'")) ORDER BY L.data, L.Cod_lancamento'; flag:=3; end else begin varsql:='SELECT FORMAT(IIf([operacao]="Entrada",total_operacao,""),"#####0.00") AS Entrada, FORMAT(IIf([operacao]="Saída",total_operacao,""),"#####0.00") AS Saida, L.cod_lancamento, L.data, L.historico, '+ 'L.operacao, L.NF, FORMAT(L.total_operacao, "###,##0.00") FROM (Subtipo1 as S1 INNER JOIN (lancamentos as L LEFT JOIN subtipo2 as S2 ON L.cod_subtipo2 = S2.Cod_Subtipo2) ON S1.Cod_Subtipo1 = L.cod_subtipo1) '+ 'WHERE (L.Data Between #'+datainicial+'# And #'+datafinal+'#) and (S1.subtipo = "'+cosub1.Text+'") and (S2.subtipo2 = "'+cosub2.Text+'") ORDER BY L.Data, L.Cod_lancamento'; flag:=3; end; end else begin if cotipo.Text <> '' then begin if optcliente.Checked then begin varsql:='SELECT Format(IIf([operacao]="Entrada",[total_operacao],""),"#####0.00") AS Entrada, Format(IIf([operacao]="Saída",[total_operacao],""),"#####0.00") AS Saida, L.Cod_lancamento, L.data, L.historico, L.operacao, '+ 'Format(L.total_operacao,"###,##0.00") AS Expr1, S2.Subtipo2, S1.Subtipo, S2.Subtipo2, Tipo.Tipo FROM (Subtipo1 AS S1 INNER JOIN (lancamentos AS L LEFT JOIN subtipo2 AS S2 ON L.cod_subtipo2 = S2.Cod_Subtipo2) ON S1.Cod_Subtipo1 = L.cod_subtipo1) '+ 'INNER JOIN Tipo ON S1.Cod_tipo = Tipo.Cod_tipo WHERE (((L.data) Between #'+datainicial+'# And #'+datafinal+'#) AND ((L.historico) Like "'+edtnome.Text+'%") AND ((Tipo.Tipo)="'+cotipo.Text+'")) ORDER BY L.data, L.Cod_lancamento'; flag:=1; end else begin varsql:='SELECT Format(IIf([operacao]="Entrada",[total_operacao],""),"#####0.00") AS Entrada, Format(IIf([operacao]="Saída",[total_operacao],""),"#####0.00") AS Saida, L.Cod_lancamento, L.data, L.historico, L.operacao, '+ 'Format(L.total_operacao,"###,##0.00") AS Expr1, S2.Subtipo2, S1.Subtipo, L.NF, Tipo.Tipo FROM (Subtipo1 AS S1 INNER JOIN (lancamentos AS L LEFT JOIN subtipo2 AS S2 ON L.cod_subtipo2 = S2.Cod_Subtipo2) ON S1.Cod_Subtipo1 = L.cod_subtipo1) '+ 'INNER JOIN Tipo ON S1.Cod_tipo = Tipo.Cod_tipo WHERE (((L.data) Between #'+datainicial+'# And #'+datafinal+'#) AND ((Tipo.Tipo)="'+cotipo.Text+'")) ORDER BY L.data, L.Cod_lancamento;'; flag:=1; end; end else begin showmessage('Escolha um tipo ou desmarque a opção'); exit; end; end end end else begin if optcliente.Checked then begin varsql:='SELECT Format(IIf([operacao]="Entrada",[total_operacao],""),"#####0.00") AS Entrada, Format(IIf([operacao]="Saída",[total_operacao],""),"#####0.00") AS Saida, L.Cod_lancamento, L.data, L.historico, L.operacao, '+ 'Format(L.total_operacao,"###,##0.00") AS Expr1, S2.Subtipo2, S1.Subtipo, L.NF FROM (Subtipo1 AS S1 INNER JOIN (lancamentos AS L LEFT JOIN subtipo2 AS S2 ON L.cod_subtipo2 = S2.Cod_Subtipo2) ON S1.Cod_Subtipo1 = L.cod_subtipo1) INNER JOIN Tipo '+ 'ON S1.Cod_tipo = Tipo.Cod_tipo WHERE (((L.data) Between #'+datainicial+'# And #'+datafinal+'#) AND ((L.historico) Like "'+edtnome.Text+'%")) ORDER BY L.data, L.Cod_lancamento'; flag:=1; end else begin varsql:='SELECT Format(IIf([operacao]="Entrada",[total_operacao],""),"#####0.00") AS Entrada, Format(IIf([operacao]="Saída",[total_operacao],""),"#####0.00") AS Saida, L.Cod_lancamento, L.data, L.historico, L.operacao, '+ 'Format(L.total_operacao,"###,##0.00") AS Expr1, S2.Subtipo2, S1.Subtipo, L.NF FROM (Subtipo1 AS S1 INNER JOIN (lancamentos AS L LEFT JOIN subtipo2 AS S2 ON L.cod_subtipo2 = S2.Cod_Subtipo2) ON S1.Cod_Subtipo1 = L.cod_subtipo1) INNER JOIN Tipo '+ 'ON S1.Cod_tipo = Tipo.Cod_tipo WHERE (((L.data) Between #'+datainicial+'# And #'+datafinal+'#)) ORDER BY L.data, L.Cod_lancamento'; flag:=1; end; end; FRelatSint.QuickRep1.Preview; end; obrigada jhonas:) esse flag eu uso para posicionamento dos dbedits e outros controles..porque difere dependendo da consulta
-
oi pessoal, estou com um um problema quando executo minhas buscas.. tenho um form, e nele deixo a opcao do usuario fazer a pesquisa do jeito q ele quer: tipos, subtipos, cliente, data, todos..enfim..só que em algum momento, ele dá esse erro. é estranho porque quando eu mando procurar(primeira vez) por data, tipo, subtipo1 e subtipo2 ele busca normal, sem erros, mas se eu faço por partes ele da erro...tipo assim: eu mando procurar por data, ele busca sem erro, depois eu mando buscar por data e tipo, sem erro novamente, depois por data e subtipo1, sem erros... dae quando mando por subtipo2 ele dá esse erro =S sendo q quando eu mando procurar por data, tipo, subtipo1 e subtipo2 na primeira vez q abro o form ele busca sem erros, mas se é na segunda consulta em diante, ele da o erro: "list index out of bounds(8)" não consigo entender...alguém sabe q erro é esse? e o porque dá esse erro?valeu
-
Micheus Obrigada amigo, quebrou um galhao...mas eu queria saber se dava para deixar o pagefooter logo abaixo do ultimo registro na impressao, tipo, se os registros acabarem na metade da folha, queria q o total aparecesse logo abaixo, na metade da folha e não la no rodapeh..tentei usar o top, mas não deu certo :S então, a estrutura tah assim : pageheader, columnheader, groupheader(dados da tabela lançamentos), detail(dados da tabela descricao_lançamentos), groupfooter(soma os dados de detail e estah ligado com o groupheader), summary, pagefooter. No caso do registro ser muito grande.....o cliente disse q poderia ir para a outra folha, contanto q repetisse o total dos registros da pagina anterior, na pagina nova...tipo assim: lançamento1 det1 = 10,00 det2 = 20,00 det3 = 50,00 -------------------(fim da folha1) (começo da segunda folha) 80,00 (valor a ser transportado da folha1 - soma dos detalhes) det4=20,00 det5=30,00 ______________ 130(groupfooter) Para o registro ir para a outra pagina inteiro, é no caso de um registro pequeno, tipo...umas 8 linhas... para registros maiores, pode ser desse jeito q coloquei ae em cima, quebrar ele, mas transportar o valor da soma dos detalhes da primeira pagina para segunda, e la continuar calculando. Obrigada mais uma vez Micheus =)