 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Mar 16, 2012 12:38 am Assunto: Plano de Contas usando JVDBTreeView? [Resolvido] |
|
|
Ha um tempo atras um colega aqui do forum me ajudou a montar um plano de contas pelo JVTreeView, pois o modo que eu tinha elaborado antes de usar este componente do JEDI era muito lento, ai com este componente melhorou muito, porém aonde tinha estes exemplos era num computador que estragou e não consegui recuperar os dados infelizmente. Bom passado isso agora estou querendo montar um palno de contas com este componente, ai fiz um modelo aqui cfe imagem, que esta mostrando a tela do meu projeto com o jvtreeView no funco e em cima uma tabela feita no IbExpert contendo os dados do plano de contas
Só que não entendi na tabela o que vem a ser o campo CTA_MASTER, como é que vai montando a estrutura do nó da arvore, sei que é por causa deste campo, mais o pq é assim? 0,1,2,11,6,3,10,12, o que vem a ser estas sequencias, não consegui entender?
O modelo estou seguindo deste exemplo
http://acidbytes.blogspot.com/2009/08/dbtreeview-no-delphi-jvdbtreeview.html
Obrigado! _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Editado pela última vez por adriano_servitec em Dom Mar 18, 2012 4:16 pm, num total de 2 vezes |
|
| Voltar ao Topo |
|
 |
ms_nigres Experiente

Registrado: Domingo, 26 de Dezembro de 2010 Mensagens: 471
|
Enviada: Sex Mar 16, 2012 2:48 am Assunto: |
|
|
| Seria a conta pai, a conta mestre... para montar a arvore o componente precisa saber, por exemplo, que a conta 02 - DESPESAS FIXAS pertence a conta 01 - DESPESAS... ai na arvore o componente coloca a conta 02 em um nó abaixo da conta 01... |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
leogazio Colaborador


Registrado: Domingo, 18 de Fevereiro de 2007 Mensagens: 1047 Localização: Alto Paraná - PR
|
Enviada: Sex Mar 16, 2012 2:46 pm Assunto: |
|
|
| adriano_servitec escreveu: | E alguém sabe me dizer como modo de imagem no jvdbtreeview ?
Só consigo selecionar uma imagem nele. |
Fala Adriano. Fui eu mesmo quem te passou essa rotina, é exatamente o que o ms_nigres explicou. Sobre a imagem, passa pra mim aqui as propriedades do componente que eu vou lembrar e vou poder te ajudar, é que não lembro de cabeça.
Abc. _________________ Leonardo Gazio - Consultoria e Suporte a Desenvolvedores.
Suporte para todo o Brasil via;
E-mail: leonardogazio@delphimasters.com
Msn: lngsmattos@hotmail.com
Claro: (21) 7301-7243 |
|
| Voltar ao Topo |
|
 |
leogazio Colaborador


Registrado: Domingo, 18 de Fevereiro de 2007 Mensagens: 1047 Localização: Alto Paraná - PR
|
Enviada: Sex Mar 16, 2012 2:52 pm Assunto: |
|
|
Adriano só pra não esquecer; Como você tá fazendo aí pra criar um novo plano de contas? Tá criando pelo treeview mesmo? Eu tentei dar Dataset.Insert/Post e dá uma merda federal bicho, aí em consequência eu tive que fazer uma trepadeira danada pra conseguir criar o meu novo plano de conta/conta exibir na hora e selecionar o item... _________________ Leonardo Gazio - Consultoria e Suporte a Desenvolvedores.
Suporte para todo o Brasil via;
E-mail: leonardogazio@delphimasters.com
Msn: lngsmattos@hotmail.com
Claro: (21) 7301-7243 |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Mar 16, 2012 8:20 pm Assunto: |
|
|
Agora minha duvida é outra, como faço pra trazer a soma dos filhos ao seus pais?
Estou usando firebird 2.0 delphi 7 e a tabela que estou fazendo isso ainda é teste, pode haver alterações, mais como preciso chegar num resultado ja estou me antecipando cfe entendi a regra.
Aqui nesta imagem esta apenas os valores nos filhos
Mais não sei como fazer isso nos seus pais via Stored Procedure pq acho que por SQL não tem como.
Esta montagem de SQL para trazer este valores ai esta assim
| Código: | SELECT tb_planocontasx.cta_id,
tb_planocontasx.cta_master,
--CONCATENAÇÃO
tb_planocontasx.conta ||' '||' ('||
tb_planocontasx.cta_id||') : '||
tb_planocontasx.descricao||
' ['|| COALESCE(SUM(VALOR),0)||'] ' AS DESCRICAO
FROM tb_planocontasx
WHERE tb_planocontasx.cta_id = tb_planocontasx.cta_id
GROUP BY
tb_planocontasx.cta_id,
tb_planocontasx.cta_master,
tb_planocontasx.conta,
tb_planocontasx.descricao |
Até tem um modo de trazer a soma para os pais via SQL
| Código: | select substring( conta from 1 for 1) as descricao, sum(valor) valor from tb_planocontasx
where conta = conta
and valor is not null
group by substring( conta from 1 for 1)
union
select substring( conta from 1 for 3), sum(valor) valor from tb_planocontasx
where conta = conta
and valor is not null
group by substring( conta from 1 for 3)
union
select substring( conta from 1 for 5), sum(valor) valor from tb_planocontasx
where conta = conta
and valor is not null
group by substring( conta from 1 for 5)
union
select substring( conta from 1 for 8), sum(valor) valor from tb_planocontasx
where conta = conta
and valor is not null
group by substring( conta from 1 for 8)
union
select substring( conta from 1 for 12), sum(valor) valor from tb_planocontasx
where conta = conta
and valor is not null
group by substring( conta from 1 for 12) |
O resultado é este
Mais como concatenar isso? Visto que ai ja muda toda a regra no select e não vai dar certo se eu colocar o outros campos neste select.
Alguém tem alguma solução pra isso?
Obrigado. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
giquieu Novato

Registrado: Terça-Feira, 29 de Julho de 2008 Mensagens: 40
|
Enviada: Sex Mar 16, 2012 9:48 pm Assunto: |
|
|
sum(valor) vem da tb_planocontasx ?
ou vem de outra tabela?
não vi esse campo valor na imagem da tabela no ib...
se vc estivesse utilizando o fb 2.1 ou superior, vc poderia utilizar o comando
with com recursividade ou apenas ele mesmo...
ele é perfeito pra montar o que vc quer... |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Mar 16, 2012 10:02 pm Assunto: |
|
|
| giquieu escreveu: | sum(valor) vem da tb_planocontasx ?
ou vem de outra tabela?
não vi esse campo valor na imagem da tabela no ib...
se vc estivesse utilizando o fb 2.1 ou superior, vc poderia utilizar o comando
with com recursividade ou apenas ele mesmo...
ele é perfeito pra montar o que vc quer... | Olá amigo, este campo esta na mesma tabela sim.
Estou usando firebird 2.0, não posso usar o 2.1 ou 2.5 por causa de outros programas que ainda depende desta versão infelizmente.
Obrigado. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sáb Mar 17, 2012 4:09 am Assunto: |
|
|
| leogazio escreveu: | | Adriano só pra não esquecer; Como você tá fazendo aí pra criar um novo plano de contas? Tá criando pelo treeview mesmo? Eu tentei dar Dataset.Insert/Post e dá uma merda federal bicho, aí em consequência eu tive que fazer uma trepadeira danada pra conseguir criar o meu novo plano de conta/conta exibir na hora e selecionar o item... | Leonardo, então ainda não terminei mais este plano de contas que estou fazendo é bem simples só tem 5 niveis contendo apenas DESPESAS e RECEITAS, ai o cadastro também deixei bem simples, pois não é um sistema contabil este projeto.
Fiz assim a tela de cadastro de contas
Para incluir uma conta nova seleciono no treeview em qual grupo vai pertencer esta conta e ai o sistema gera a conta automático.
Fiz assim para gerar a nova conta
| Código: | procedure Tfrm_MODPlanoContas.btn_NovoClick(Sender: TObject);
var
Query: TSQLQuery;
sSQL, DV_SubConta, DV_NovaConta, DV: String;
qNumero_Conta, DV_Calc, vPos, I: Integer;
begin
inherited;
GrupoPai.Text := TreePlanoContas.Selected.Text;
ContaCorrelata.Text := Trim(Copy(GrupoPai.Text,1,(Pos('(',GrupoPai.Text)-1)));
qNumero_Conta := length(ContaCorrelata.Text);
sSQL := ' SELECT MAX(CONTA) SUBCONTA FROM TB_PLANOCONTASX '+
' WHERE CONTA LIKE :CONTA ';
Query := TSQLQuery.Create(nil);
with Query do
try
SQLConnection := FDM.SQLConnection;
Close;
SQL.Clear;
SQL.Text := sSQL;
if qNumero_Conta = 1 then
Params.ParamByName('CONTA').AsString := ContaCorrelata.Text+'._'
else if qNumero_Conta = 3 then
Params.ParamByName('CONTA').AsString := ContaCorrelata.Text+'._'
else if qNumero_Conta = 5 then
Params.ParamByName('CONTA').AsString := ContaCorrelata.Text+'.__'
else if qNumero_Conta = 8 then
Params.ParamByName('CONTA').AsString := ContaCorrelata.Text+'.___';
Open;
DV_SubConta := FieldByName('SubConta').AsString;
//Pega a ultima palavra da posição depois do ponto
vPos := Pos('.', ReverseString(DV_SubConta));
//DV_SubConta := StringReplace(DV_SubConta, '.', '',[rfReplaceAll]);
if vPos > 0 then
DV := RightStr(DV_SubConta, vPos)
else
DV := DV_SubConta;
DV := StringReplace(DV, '.', '',[rfReplaceAll]);
if Trim(DV) = EmptyStr then
DV := '0';
vPos := StrToInt(DV);
if qNumero_Conta < 5 then
DV_NovaConta := IntToStr(vPos + 1)
else if qNumero_Conta = 5 then
DV_NovaConta := Concat('0',IntToStr(vPos + 1))
else if qNumero_Conta = 8 then
DV_NovaConta := Concat('00',IntToStr(vPos + 1));
ContaNova.Text := Concat(ContaCorrelata.Text,'.',DV_NovaConta);
finally
Close;
FreeAndNil(Query);
end;
end;
|
Se tiver códigos a mais ai ou falas me deem um desconto porque estou desde 08:00 até agora 04:10 da manha trabalhando, nem fiz muitos testes ainda.
Ps: Ainda quero saber se tem como somar e mostrar o result neste treeview.
Obrigado pessoal. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
joaowicktor Aprendiz


Registrado: Segunda-Feira, 20 de Fevereiro de 2012 Mensagens: 172 Localização: Localhost :P
|
Enviada: Sáb Mar 17, 2012 8:18 am Assunto: |
|
|
| Desculpe-me mudar de assunto, mas adriano_servitec, qual o componente que utilizou para criar essa barra azul com caption no topo do form do seu aplicativo? |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
ms_nigres Experiente

Registrado: Domingo, 26 de Dezembro de 2010 Mensagens: 471
|
Enviada: Sáb Mar 17, 2012 2:34 pm Assunto: |
|
|
Adriano... para somar eu utilizei uma tabela temporária e duas procedures que populam essa tabela com os dados de receita e despesa...
Segue procedure que soma as despesas:
| Código: |
CREATE OR ALTER PROCEDURE PROC_DESPESASCONTAS (
v_empresa integer,
v_datainicial date,
v_datafinal date)
as
declare variable v_cdcontamae varchar(13);
declare variable v_valor double precision;
begin
delete from temp_despesascontas;
insert into temp_despesascontas
select b.cdempresa,
b.cdconta,
b.descricao,
b.cdcontamae,
coalesce(c.descricao,'') as descricaomae,
coalesce(c.ccount,0) as ccountmae,
b.ccount,
sum(coalesce(a.valor,0)) valor
from caixacontas b
left join caixalancamento a on a.cdcaixacontas = b.cdconta and a.data between :v_datainicial and :v_datafinal and a.cdempresa = b.cdempresa and a.cancelado = 'N'
left join caixacontas c on b.cdcontamae = c.cdconta and b.cdempresa = c.cdempresa
where b.cdconta like('2%')
and b.cdempresa = :v_empresa
group by b.cdempresa,
b.cdconta,
b.descricao,
b.cdcontamae,
c.descricao,
c.ccount,
b.ccount
order by b.cdconta;
for select cdcontamae, sum(valor) as valor from temp_despesascontas
group by cdcontamae
order by cdcontamae desc
into v_cdcontamae, v_valor do
begin
update temp_despesascontas set valor = :v_valor where cdconta = :v_cdcontamae;
end
for select cdcontamae, sum(valor) as valor from temp_despesascontas
group by cdcontamae
order by cdcontamae desc
into v_cdcontamae, v_valor do
begin
update temp_despesascontas set valor = :v_valor where cdconta = :v_cdcontamae;
end
for select cdcontamae, sum(valor) as valor from temp_despesascontas
group by cdcontamae
order by cdcontamae desc
into v_cdcontamae, v_valor do
begin
update temp_despesascontas set valor = :v_valor where cdconta = :v_cdcontamae;
end
suspend;
end;
|
|
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sáb Mar 17, 2012 3:19 pm Assunto: |
|
|
Para facilitar minha estrutura da tabel é esta
| Código: | /******************************************************************************/
/**** Generated by IBExpert 17/03/2012 15:18:17 ****/
/******************************************************************************/
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
CREATE GENERATOR GEN_TB_PLANOCONTASX_ID;
CREATE TABLE TB_PLANOCONTASX (
CTA_ID INTEGER NOT NULL,
CTA_MASTER INTEGER NOT NULL,
DESCRICAO VARCHAR(60),
CONTA VARCHAR(30),
VALOR NUMERIC(15,2),
TIPO CHAR(1),
MODULO MODULO /* MODULO = VARCHAR(20) NOT NULL */
);
/******************************************************************************/
/**** Primary Keys ****/
/******************************************************************************/
ALTER TABLE TB_PLANOCONTASX ADD CONSTRAINT PK_TB_PLANOCONTASX PRIMARY KEY (CTA_ID);
/******************************************************************************/
/**** Triggers ****/
/******************************************************************************/
SET TERM ^ ;
/******************************************************************************/
/**** Triggers for tables ****/
/******************************************************************************/
/* Trigger: TB_PLANOCONTASX_BI */
CREATE OR ALTER TRIGGER TB_PLANOCONTASX_BI FOR TB_PLANOCONTASX
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.CTA_ID IS NULL) THEN
NEW.CTA_ID = GEN_ID(GEN_TB_PLANOCONTASX_ID,1);
END
^
SET TERM ; ^
/******************************************************************************/
/**** Privileges ****/
/******************************************************************************/
|
O insert
| Código: | INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (1, 0, 'DESPESAS', '1', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (2, 1, 'DESPESAS FIXAS', '1.1', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (3, 2, 'PESSOAL', '1.1.2', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (4, 11, 'ALUGUEL', '1.1.1.01.001', 450, 'A', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (5, 11, 'CONDOMINIO', '1.1.1.01.002', 165, 'A', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (6, 0, 'RECEITAS', '2', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (7, 6, 'RECEITAS DIRETAS', '2.1', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (8, 3, 'CLT', '1.1.2.01', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (9, 3, 'FREES', '1.1.2.02', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (10, 2, 'CUSTOS DIRETOS', '1.1.1', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (11, 10, 'IMOVEIS', '1.1.1.01', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (12, 1, 'DESPESAS VARIAVEIS', '1.2', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (13, 12, 'COMBUSTIVEIS', '1.2.1', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (14, 12, 'COMISÕES', '1.2.2', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (15, 12, 'MATERIAL DE EXPEDIENTE', '1.2.3', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (16, 12, 'MANUTENÇÕES', '1.2.4', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (17, 12, 'EXAMES MEDICOS', '1.2.5', NULL, 'S', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (19, 8, 'MENSALISTA', '1.1.2.01.001', 200, 'A', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (20, 8, 'HORISTA', '1.1.2.01.002', 100, 'A', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (21, 8, 'QUINZENAL', '1.1.2.01.003', 50, 'A', 'PLANCONTAS');
INSERT INTO TB_PLANOCONTASX (CTA_ID, CTA_MASTER, DESCRICAO, CONTA, VALOR, TIPO, MODULO) VALUES (22, 9, 'POR TAREFAS', '1.1.2.02.001', 10, 'A', 'PLANCONTAS');
COMMIT WORK; |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|