Relatorio usando Rave (Multiplos Detail)
Bom Dia
Eu abri um chamado com o nome "Relatorio usando Rave", onde eu precisava fazer um relatorio master detail, onde eu tinha um relatorio com o contrato e suas respectivas faturas, bom esse chamado foi atendido perfeitamente e consegui resolver.
Agora tenho um relatorio onde tenho mais de um detail, assim, o contrato do inquilino, com seus fiadores e as faturas q o contrato tem. Para meu cliente efetuar as cobrancas.
Tambem tenho um relatorio onde eu tenho um master e 6 details, que seria a subdivisao dos lancamentos.
Tentei de toda forma mas nao consegui fazer esse relatorio. Podem me ajudar?
Jorge Trento
Curtidas 0
Respostas
Wesley Yamazack
27/04/2010
Olá amigo,
Seguindo aquela ideia que lhe passei na video, inclua quantos Band você tiver que agrupar, e configure o mesmo igual ao fornecedor. Veja o exemplo que eu tenho
Terei band Funcionario(group key Codfuncionario) / cliente(group key Codcliente) / venda(group key Codvenda)
Terei databande Itemvenda(detailkey = codvenda) esta é a unica diferença
FuncionarioA
Cliente1
Venda1
ItemVenda1
ItemVenda2
ItemVenda3
ItemVenda4
ItemVenda5
=======================================
FuncionarioB
Cliente2
Venda2
ItemVenda1
ItemVenda2
ItemVenda3
ItemVenda4
ItemVenda5
=======================================
FuncionarioC
Cliente3
Venda3
ItemVenda1
ItemVenda2
ItemVenda3
ItemVenda4
ItemVenda5
Agora você tem que preparar o teu script SQL , observe como fiz o meu.
SELECT C.IDCLIENTE CODCLIENTE, C.DESCRICAO DESCCLIENTE,
F.IDFUNCIONARIO CODFUNCIONARIO, F.DESCRICAO DESCFUNCIONARIO,
P.IDPRODUTO CODPRODUTO, P.DESCRICAO DESCPRODUTO,
V.IDVENDA, V.DATA, V.TOTAL,
VI.IDVENDAITEM, VI.QUANTIDADE, VI.VALOR
FROM CLIENTE C, FUNCIONARIO F, VENDA V, VENDAITEM VI, PRODUTO P
WHERE V.IDVENDA = VI.IDVENDA
AND V.IDFUNCIONARIO = F.IDFUNCIONARIO
AND V.IDCLIENTE = C.IDCLIENTE
AND P.IDPRODUTO = VI.IDPRODUTO
ORDER BY F.IDFUNCIONARIO, C.IDCLIENTE, V.IDVENDA, VI.IDVENDAITEM
Até aqui tranquilo certo ? Faça esta aplicação e veja se irá funcionar, qualquer coisa estamos aqui pra ajudar, se precisar me avisa que eu gravo uma vídeo pra ti.
Att,
Wesley Y
Seguindo aquela ideia que lhe passei na video, inclua quantos Band você tiver que agrupar, e configure o mesmo igual ao fornecedor. Veja o exemplo que eu tenho
Terei band Funcionario(group key Codfuncionario) / cliente(group key Codcliente) / venda(group key Codvenda)
Terei databande Itemvenda(detailkey = codvenda) esta é a unica diferença
FuncionarioA
Cliente1
Venda1
ItemVenda1
ItemVenda2
ItemVenda3
ItemVenda4
ItemVenda5
=======================================
FuncionarioB
Cliente2
Venda2
ItemVenda1
ItemVenda2
ItemVenda3
ItemVenda4
ItemVenda5
=======================================
FuncionarioC
Cliente3
Venda3
ItemVenda1
ItemVenda2
ItemVenda3
ItemVenda4
ItemVenda5
Agora você tem que preparar o teu script SQL , observe como fiz o meu.
SELECT C.IDCLIENTE CODCLIENTE, C.DESCRICAO DESCCLIENTE,
F.IDFUNCIONARIO CODFUNCIONARIO, F.DESCRICAO DESCFUNCIONARIO,
P.IDPRODUTO CODPRODUTO, P.DESCRICAO DESCPRODUTO,
V.IDVENDA, V.DATA, V.TOTAL,
VI.IDVENDAITEM, VI.QUANTIDADE, VI.VALOR
FROM CLIENTE C, FUNCIONARIO F, VENDA V, VENDAITEM VI, PRODUTO P
WHERE V.IDVENDA = VI.IDVENDA
AND V.IDFUNCIONARIO = F.IDFUNCIONARIO
AND V.IDCLIENTE = C.IDCLIENTE
AND P.IDPRODUTO = VI.IDPRODUTO
ORDER BY F.IDFUNCIONARIO, C.IDCLIENTE, V.IDVENDA, VI.IDVENDAITEM
Até aqui tranquilo certo ? Faça esta aplicação e veja se irá funcionar, qualquer coisa estamos aqui pra ajudar, se precisar me avisa que eu gravo uma vídeo pra ti.
Att,
Wesley Y
GOSTEI 0
Jorge Trento
27/04/2010
Bom Dia
Se eu fosse colocar tudo em um sql só ficaria assim a estrutura do resultado, cada contrato seria repetido em todos os fiadores e cada linha dessa seria repedido para cada fatura.
Eu 'nao estou ocnseguindo colocar os databands em ordem para q ele estruture certo, estou te mandando a estrutura do sql no Query Builder do IB Expert e como ficaria a estrutura do relatorio no rave report
http://video.devmedia.com.br/discovirtual/151708/Estrutura report-2.zip
a ideia é essa q esta em anexo, se puder me ajudar, ou como voce falou gravar um video agradeceria
GOSTEI 0
Wesley Yamazack
27/04/2010
Olá amigo, bom dia.
Para mudar a ordem das bands, você tem que clicar com o botão direito em cima da banda desejada e ir em
Order / Move.... Assim você irá consegui mudar a posição delas.
Quando a repetição é isso mesmo, veja como fica o meu resultset.
Desccliente Codfuncionario Descfuncionario CodProduto DescProduto idvenda data total idvendaitem MARCOS DA SILVA 1 JEFFERSON 1 PRODUTO 1 1 2010-01-01 100 1 MARCOS DA SILVA 1 JEFFERSON 2 PRODUTO 2 1 2010-01-01 100 2 WESLEY 1 JEFFERSON 1 PRODUTO 1 3 2010-01-01 200 3 WESLEY 1 JEFFERSON 2 PRODUTO 2 3 2010-01-01 200 4 WESLEY 1 JEFFERSON 3 PRODUTO 3 3 2010-01-01 200 5 WESLEY 1 JEFFERSON 4 PRODUTO 4 4 2010-01-02 32 6 WESLEY 1 JEFFERSON 5 PRODUTO 5 4 2010-01-02 32 7 WESLEY 1 JEFFERSON 6 PRODUTO 6 4 2010-01-02 32 8 WESLEY 1 JEFFERSON 3 PRODUTO 3 5 2010-01-02 3 9 WESLEY 1 JEFFERSON 2 PRODUTO 2 5 2010-01-02 3 10
Sacou a ideia ? Quebrar cada tabela sua em uma banda.
Um abraço
Wesley Y
Para mudar a ordem das bands, você tem que clicar com o botão direito em cima da banda desejada e ir em
Order / Move.... Assim você irá consegui mudar a posição delas.
Quando a repetição é isso mesmo, veja como fica o meu resultset.
Desccliente Codfuncionario Descfuncionario CodProduto DescProduto idvenda data total idvendaitem MARCOS DA SILVA 1 JEFFERSON 1 PRODUTO 1 1 2010-01-01 100 1 MARCOS DA SILVA 1 JEFFERSON 2 PRODUTO 2 1 2010-01-01 100 2 WESLEY 1 JEFFERSON 1 PRODUTO 1 3 2010-01-01 200 3 WESLEY 1 JEFFERSON 2 PRODUTO 2 3 2010-01-01 200 4 WESLEY 1 JEFFERSON 3 PRODUTO 3 3 2010-01-01 200 5 WESLEY 1 JEFFERSON 4 PRODUTO 4 4 2010-01-02 32 6 WESLEY 1 JEFFERSON 5 PRODUTO 5 4 2010-01-02 32 7 WESLEY 1 JEFFERSON 6 PRODUTO 6 4 2010-01-02 32 8 WESLEY 1 JEFFERSON 3 PRODUTO 3 5 2010-01-02 3 9 WESLEY 1 JEFFERSON 2 PRODUTO 2 5 2010-01-02 3 10
Sacou a ideia ? Quebrar cada tabela sua em uma banda.
Um abraço
Wesley Y
GOSTEI 0
Jorge Trento
27/04/2010
Bom Dia
Creio que nao estamos nos entendendo, a estrutura que eu preciso prove isso, dois details. O sql que estou usando esta abaixo para melhor entendimento.
Segue no link abaixo o arquivo de rave que estou usando para o teste, para entendimento do que fiz, da uma verificada ve se é isso:
http://video.devmedia.com.br/discovirtual/151708/relfaturaAtraso.zip Tenho um inquilino em um imovel, ele tem varios fiadores e varias faturas, tudo isso regido por um contrato INQUILINO 1
FIADOR 1
FIADOR 2
FIADOR 3
IMOVEL 1
FATURA 1
FATURA 2
FATURA 3
===========================
INQUILINO 2
FIADOR 1
FIADOR 2
IMOVEL 2
FATURA 1
FATURA 2 Legenda: Keyinq, nomeinq = inquilino keyfia, nomefia = fiador sincon = contato sinimo = imovel sinfat1 = fatura
select (sincad.key_cad) as keyfia, (sincad.nome_cad) as nomefia,
(sincad.ddcom_cad || sincad.fonecom_cad) as fonecomfia,
(sincad.dddres_cad || sincad.foneres_cad) as foneresfia,
(sincad1.key_cad) as keyinq, (sincad1.nome_cad) as nomeinq,
(sincad1.ddcom_cad || sincad1.fonecom_cad) as fonecominq,
(sincad1.dddres_cad || sincad1.foneres_cad) as foneresinq,
sinimo.key_seq_imo, sinimo.endere_imo, sinimo.biarro_imo,
sincon.key_sincon, sinfat1.key_sinfat, sinfat1.mescom_fat,
sinfat1.anocom_fat, sinfat1.vencin_fat, sinfat1.total_fat,
(sinfat1.mescom_fat || sinfat1.anocom_fat) as competencia,
sinfat1.vlrmulta_fat, sinfat1.totcmulta_fat, sinfat1.keyloc_fat
from sinimo inner join sincon on (sinimo.key_seq_imo = sincon.key_seq_imo_con)
inner join sinfat1 on (sincon.key_sincon = sinfat1.key_sincon_fat)
inner join sinfia on (sincon.key_sincon = sinfia.key_fia_sincon)
inner join sincad on (sinfia.key_fia_sincad = sincad.key_cad)
inner join sincad sincad1 on (sincon.key_cad_con = sincad1.key_cad)
order by sincon.key_sincon
Segue no link abaixo o arquivo de rave que estou usando para o teste, para entendimento do que fiz, da uma verificada ve se é isso:
http://video.devmedia.com.br/discovirtual/151708/relfaturaAtraso.zip Tenho um inquilino em um imovel, ele tem varios fiadores e varias faturas, tudo isso regido por um contrato INQUILINO 1
FIADOR 1
FIADOR 2
FIADOR 3
IMOVEL 1
FATURA 1
FATURA 2
FATURA 3
===========================
INQUILINO 2
FIADOR 1
FIADOR 2
IMOVEL 2
FATURA 1
FATURA 2 Legenda: Keyinq, nomeinq = inquilino keyfia, nomefia = fiador sincon = contato sinimo = imovel sinfat1 = fatura
select (sincad.key_cad) as keyfia, (sincad.nome_cad) as nomefia,
(sincad.ddcom_cad || sincad.fonecom_cad) as fonecomfia,
(sincad.dddres_cad || sincad.foneres_cad) as foneresfia,
(sincad1.key_cad) as keyinq, (sincad1.nome_cad) as nomeinq,
(sincad1.ddcom_cad || sincad1.fonecom_cad) as fonecominq,
(sincad1.dddres_cad || sincad1.foneres_cad) as foneresinq,
sinimo.key_seq_imo, sinimo.endere_imo, sinimo.biarro_imo,
sincon.key_sincon, sinfat1.key_sinfat, sinfat1.mescom_fat,
sinfat1.anocom_fat, sinfat1.vencin_fat, sinfat1.total_fat,
(sinfat1.mescom_fat || sinfat1.anocom_fat) as competencia,
sinfat1.vlrmulta_fat, sinfat1.totcmulta_fat, sinfat1.keyloc_fat
from sinimo inner join sincon on (sinimo.key_seq_imo = sincon.key_seq_imo_con)
inner join sinfat1 on (sincon.key_sincon = sinfat1.key_sincon_fat)
inner join sinfia on (sincon.key_sincon = sinfia.key_fia_sincon)
inner join sincad on (sinfia.key_fia_sincad = sincad.key_cad)
inner join sincad sincad1 on (sincon.key_cad_con = sincad1.key_cad)
order by sincon.key_sincon
GOSTEI 0
Wesley Yamazack
27/04/2010
Olá amigo, me de um tempo para poder preparar e entender melhor seu problema ok ? Vou gravar uma video para ti.
Att,
Wesley Y
Att,
Wesley Y
GOSTEI 0
Wesley Yamazack
27/04/2010
Olá amigo,
Estou aqui montando um BD para poder fazer um exemplo igual ao seu, porém estou querendo confirmar se a estrutura base das suas tabelas estão corretas, veja :
FATURA
FIADOR IDFATURA
IDFIADOR DESCRICAO
DESCRICAO IDIMOVEL
INQUILINO
IMOVEL IDINQUILO
IDIMOVEL NOME
DESCRICAO IDFIADOR
IDFIADOR
Confirme isso por favor
Um abraço
Wesley Y
Estou aqui montando um BD para poder fazer um exemplo igual ao seu, porém estou querendo confirmar se a estrutura base das suas tabelas estão corretas, veja :
FATURA
FIADOR IDFATURA
IDFIADOR DESCRICAO
DESCRICAO IDIMOVEL
INQUILINO
IMOVEL IDINQUILO
IDIMOVEL NOME
DESCRICAO IDFIADOR
IDFIADOR
Confirme isso por favor
Um abraço
Wesley Y
GOSTEI 0
Jorge Trento
27/04/2010
Bom Dia
Segue o metadata logo abaixo com o sql do banco assim ficara mais facil e tambm vai junto a descricao de cada campo:
/******************************************************************************/
/**** Generated by IBExpert 2008.08.08 30/4/2010 11:41:49 ****/
/******************************************************************************/ SET SQL DIALECT 3; SET NAMES ISO8859_1; SET CLIENTLIB 'C:\SISIMO\fbclient.dll'; CREATE DATABASE 'localhost:C:\SISIMO\BDSISIMO\SISLOC.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET ISO8859_1; /******************************************************************************/
/**** Tables ****/
/******************************************************************************/ CREATE TABLE SINCAD (
KEY_CAD KEY_DOMAIN NOT NULL,
NOME_CAD VARCHAR(50) NOT NULL,
DATNAS_CAD DATE,
SEXO_CAD CHAR(1),
CLASE_CAD CHAR(1) NOT NULL,
CNPJ_CAD VARCHAR(18),
CPF_CAD VARCHAR(15),
RG_CAD VARCHAR(14),
KEYPROF_CAD INTEGER NOT NULL,
EDIFCOM_CAD VARCHAR(30),
EMPRES_CAD VARCHAR(50),
ENDCOM_CAD VARCHAR(50),
BAICOM_CAD VARCHAR(30),
CIDCOM_CAD VARCHAR(30),
UFCOM_CAD CHAR(2),
CAICOM_CAD CHAR(5),
CEPCOM_CAD CHAR(8),
OBSCOM_CAD INTEGER,
DDCOM_CAD VARCHAR(4),
FONECOM_CAD VARCHAR(8),
RAMCOM_CAD VARCHAR(8),
DDDFAXCOM_CAD CHAR(4),
FONEFAXCOM_CAD VARCHAR(8),
EDIFRES_CAD VARCHAR(30),
ENDRES_CAD VARCHAR(50),
BAIRRES_CAD VARCHAR(30),
CIDRES_CAD VARCHAR(30),
UFRES_CAD CHAR(2),
CEPRES_CAD CHAR(8),
CAIRES_CAD CHAR(5),
OBSRES_CAD INTEGER,
DDDRES_CAD CHAR(4),
FONERES_CAD CHAR(8)
);
CREATE TABLE SINCON (
KEY_SINCON KEY_DOMAIN NOT NULL,
KEY_SEQ_IMO_CON INTEGER NOT NULL,
KEY_CAD_CON INTEGER NOT NULL
);
CREATE TABLE SINFAT1 (
KEY_SINFAT KEY_DOMAIN NOT NULL,
TIPREG_FAT CHAR(1) NOT NULL,
ANOCOM_FAT CHAR(4) NOT NULL,
MESCOM_FAT CHAR(2) NOT NULL,
KEY_SINCON_FAT INTEGER NOT NULL,
VENCIN_FAT DATE NOT NULL,
TOTAL_FAT FLOAT,
PERCMULTA_FAT FLOAT,
VLRMULTA_FAT FLOAT,
TOTCMULTA_FAT FLOAT
);
CREATE TABLE SINFIA (
KEY_FIA_SINCON INTEGER NOT NULL,
KEY_FIA_SINCAD INTEGER NOT NULL,
CAUCAO_FIA FLOAT,
BANCO_FIA INTEGER
);
CREATE TABLE SINIMO (
KEY_SEQ_IMO KEY_DOMAIN NOT NULL,
KEY_CAD_IMO KEY_DOMAIN NOT NULL,
KEY_SINSUB KEY_DOMAIN,
SITUAC_IMO CHAR(1) NOT NULL,
NOME_IMO VARCHAR(50),
KEY_CON_IMO KEY_DOMAIN,
ENDERE_IMO VARCHAR(50) NOT NULL,
BIARRO_IMO VARCHAR(50) NOT NULL
);
/******************************************************************************/
/**** Primary Keys ****/
/******************************************************************************/ ALTER TABLE SINCAD ADD CONSTRAINT PK_SINCAD PRIMARY KEY (KEY_CAD);
ALTER TABLE SINCON ADD CONSTRAINT PK_SINCON PRIMARY KEY (KEY_SINCON);
ALTER TABLE SINFAT1 ADD CONSTRAINT PK_SINFAT1 PRIMARY KEY (KEY_SINFAT);
ALTER TABLE SINFIA ADD CONSTRAINT PK_SINFIA PRIMARY KEY (KEY_FIA_SINCON, KEY_FIA_SINCAD);
ALTER TABLE SINIMO ADD CONSTRAINT PK_SINIMO PRIMARY KEY (KEY_SEQ_IMO);
/******************************************************************************/
/**** Foreign Keys ****/
/******************************************************************************/ ALTER TABLE SINCON ADD CONSTRAINT FK_SINCON_1 FOREIGN KEY (KEY_SEQ_IMO_CON) REFERENCES SINIMO (KEY_SEQ_IMO);
/* Fields descriptions */ DESCRIBE FIELD NOME_CAD TABLE SINCAD
'Nome da Pessoa a Ser CAdastrada'; DESCRIBE FIELD SEXO_CAD TABLE SINCAD
'ACEITAR SOMENTE M OU F (Não)'; DESCRIBE FIELD CLASE_CAD TABLE SINCAD
'Esste campo pode aceitar somente F ou J'; DESCRIBE FIELD KEYPROF_CAD TABLE SINCAD
'Vem a chave do Cadastro de Profissões e SubProfissões'; DESCRIBE FIELD EDIFCOM_CAD TABLE SINCAD
'Edifício do endereço comercial'; DESCRIBE FIELD EMPRES_CAD TABLE SINCAD
'Empresa Onde Trabalha'; DESCRIBE FIELD ENDCOM_CAD TABLE SINCAD
'Endereço da Empresa onde trabalha'; DESCRIBE FIELD CAICOM_CAD TABLE SINCAD
'Caixa Postal'; DESCRIBE FIELD OBSCOM_CAD TABLE SINCAD
'Ovservação do Correio'; DESCRIBE FIELD RAMCOM_CAD TABLE SINCAD
'Ramal de telefone comercial'; DESCRIBE FIELD EDIFRES_CAD TABLE SINCAD
'Edifício do endereço residecial'; DESCRIBE FIELD CAIRES_CAD TABLE SINCAD
'Caixa postal da residencia do fulano'; DESCRIBE FIELD KEY_SEQ_IMO_CON TABLE SINCON
' cHAVE DO CÓDIGO DO IMÓVEL'; DESCRIBE FIELD KEY_CAD_CON TABLE SINCON
' CHAVE DO INQUILINO PEGA NO CADASTRO SINCAD (SEQUENCIAL)'; DESCRIBE FIELD KEY_SINFAT TABLE SINFAT1
'CHAVE SEQUENCIAL - ARQUIVO CABECALHO DAS FATURAS BOLETOS DE ALUGUEL'; DESCRIBE FIELD TIPREG_FAT TABLE SINFAT1
' TIPO DE REGISTRO 1= FATURA MES 2 = FATURA FINAL'; DESCRIBE FIELD KEY_SINCON_FAT TABLE SINFAT1
'CHAVE PRIMARIA DO SINCON - PREVER UMA CHAVE PARA FATURA SEM ALUGUEL'; DESCRIBE FIELD VENCIN_FAT TABLE SINFAT1
'VENCIMENTO SERÁ O CAMPO DIAVCT_INQ_CON DA TABELA SINCON + O MESCOM_FAT +1 E O ANO ANOCOM_FAT'; DESCRIBE FIELD TOTAL_FAT TABLE SINFAT1
'TOTAL GERAL DA FATURA'; DESCRIBE FIELD PERCMULTA_FAT TABLE SINFAT1
'O CAMPO MULTA FAT SERÁ O CAMPO PERCMULTA_TAB DA SINTAB'; DESCRIBE FIELD VLRMULTA_FAT TABLE SINFAT1
'VLRMULTA_TAB = TOTAL_FAT * PERCMULTA_FAT'; DESCRIBE FIELD TOTCMULTA_FAT TABLE SINFAT1
'É IGUAL O TOTAL_FAT + VLRMULTA_FAT'; DESCRIBE FIELD KEY_SEQ_IMO TABLE SINIMO
' SEQUENCIA DA CHAVE DO IMÓVEL'; DESCRIBE FIELD KEY_CAD_IMO TABLE SINIMO
' CHAVE DO CADASTRO GERAL IDENTIFICA O PROPRIETARIO'; DESCRIBE FIELD KEY_SINSUB TABLE SINIMO
' CHAMA CHAVE DO CADASTRO DE SUB GRUPO DE IMOVEIS - CHAVE ESTRANGEIRA'; DESCRIBE FIELD SITUAC_IMO TABLE SINIMO
'SITUAÇÃO DO IMÓVEL PODE ASSUMIR 1 - OCUPADO 2 = VAGO 3 = INATIVO 9 excluido'; DESCRIBE FIELD KEY_CON_IMO TABLE SINIMO
' CHAVE DO CONTRATO QUE ESTA ATIVO NO IMÓVEL';
/**** Generated by IBExpert 2008.08.08 30/4/2010 11:41:49 ****/
/******************************************************************************/ SET SQL DIALECT 3; SET NAMES ISO8859_1; SET CLIENTLIB 'C:\SISIMO\fbclient.dll'; CREATE DATABASE 'localhost:C:\SISIMO\BDSISIMO\SISLOC.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET ISO8859_1; /******************************************************************************/
/**** Tables ****/
/******************************************************************************/ CREATE TABLE SINCAD (
KEY_CAD KEY_DOMAIN NOT NULL,
NOME_CAD VARCHAR(50) NOT NULL,
DATNAS_CAD DATE,
SEXO_CAD CHAR(1),
CLASE_CAD CHAR(1) NOT NULL,
CNPJ_CAD VARCHAR(18),
CPF_CAD VARCHAR(15),
RG_CAD VARCHAR(14),
KEYPROF_CAD INTEGER NOT NULL,
EDIFCOM_CAD VARCHAR(30),
EMPRES_CAD VARCHAR(50),
ENDCOM_CAD VARCHAR(50),
BAICOM_CAD VARCHAR(30),
CIDCOM_CAD VARCHAR(30),
UFCOM_CAD CHAR(2),
CAICOM_CAD CHAR(5),
CEPCOM_CAD CHAR(8),
OBSCOM_CAD INTEGER,
DDCOM_CAD VARCHAR(4),
FONECOM_CAD VARCHAR(8),
RAMCOM_CAD VARCHAR(8),
DDDFAXCOM_CAD CHAR(4),
FONEFAXCOM_CAD VARCHAR(8),
EDIFRES_CAD VARCHAR(30),
ENDRES_CAD VARCHAR(50),
BAIRRES_CAD VARCHAR(30),
CIDRES_CAD VARCHAR(30),
UFRES_CAD CHAR(2),
CEPRES_CAD CHAR(8),
CAIRES_CAD CHAR(5),
OBSRES_CAD INTEGER,
DDDRES_CAD CHAR(4),
FONERES_CAD CHAR(8)
);
CREATE TABLE SINCON (
KEY_SINCON KEY_DOMAIN NOT NULL,
KEY_SEQ_IMO_CON INTEGER NOT NULL,
KEY_CAD_CON INTEGER NOT NULL
);
CREATE TABLE SINFAT1 (
KEY_SINFAT KEY_DOMAIN NOT NULL,
TIPREG_FAT CHAR(1) NOT NULL,
ANOCOM_FAT CHAR(4) NOT NULL,
MESCOM_FAT CHAR(2) NOT NULL,
KEY_SINCON_FAT INTEGER NOT NULL,
VENCIN_FAT DATE NOT NULL,
TOTAL_FAT FLOAT,
PERCMULTA_FAT FLOAT,
VLRMULTA_FAT FLOAT,
TOTCMULTA_FAT FLOAT
);
CREATE TABLE SINFIA (
KEY_FIA_SINCON INTEGER NOT NULL,
KEY_FIA_SINCAD INTEGER NOT NULL,
CAUCAO_FIA FLOAT,
BANCO_FIA INTEGER
);
CREATE TABLE SINIMO (
KEY_SEQ_IMO KEY_DOMAIN NOT NULL,
KEY_CAD_IMO KEY_DOMAIN NOT NULL,
KEY_SINSUB KEY_DOMAIN,
SITUAC_IMO CHAR(1) NOT NULL,
NOME_IMO VARCHAR(50),
KEY_CON_IMO KEY_DOMAIN,
ENDERE_IMO VARCHAR(50) NOT NULL,
BIARRO_IMO VARCHAR(50) NOT NULL
);
/******************************************************************************/
/**** Primary Keys ****/
/******************************************************************************/ ALTER TABLE SINCAD ADD CONSTRAINT PK_SINCAD PRIMARY KEY (KEY_CAD);
ALTER TABLE SINCON ADD CONSTRAINT PK_SINCON PRIMARY KEY (KEY_SINCON);
ALTER TABLE SINFAT1 ADD CONSTRAINT PK_SINFAT1 PRIMARY KEY (KEY_SINFAT);
ALTER TABLE SINFIA ADD CONSTRAINT PK_SINFIA PRIMARY KEY (KEY_FIA_SINCON, KEY_FIA_SINCAD);
ALTER TABLE SINIMO ADD CONSTRAINT PK_SINIMO PRIMARY KEY (KEY_SEQ_IMO);
/******************************************************************************/
/**** Foreign Keys ****/
/******************************************************************************/ ALTER TABLE SINCON ADD CONSTRAINT FK_SINCON_1 FOREIGN KEY (KEY_SEQ_IMO_CON) REFERENCES SINIMO (KEY_SEQ_IMO);
/* Fields descriptions */ DESCRIBE FIELD NOME_CAD TABLE SINCAD
'Nome da Pessoa a Ser CAdastrada'; DESCRIBE FIELD SEXO_CAD TABLE SINCAD
'ACEITAR SOMENTE M OU F (Não)'; DESCRIBE FIELD CLASE_CAD TABLE SINCAD
'Esste campo pode aceitar somente F ou J'; DESCRIBE FIELD KEYPROF_CAD TABLE SINCAD
'Vem a chave do Cadastro de Profissões e SubProfissões'; DESCRIBE FIELD EDIFCOM_CAD TABLE SINCAD
'Edifício do endereço comercial'; DESCRIBE FIELD EMPRES_CAD TABLE SINCAD
'Empresa Onde Trabalha'; DESCRIBE FIELD ENDCOM_CAD TABLE SINCAD
'Endereço da Empresa onde trabalha'; DESCRIBE FIELD CAICOM_CAD TABLE SINCAD
'Caixa Postal'; DESCRIBE FIELD OBSCOM_CAD TABLE SINCAD
'Ovservação do Correio'; DESCRIBE FIELD RAMCOM_CAD TABLE SINCAD
'Ramal de telefone comercial'; DESCRIBE FIELD EDIFRES_CAD TABLE SINCAD
'Edifício do endereço residecial'; DESCRIBE FIELD CAIRES_CAD TABLE SINCAD
'Caixa postal da residencia do fulano'; DESCRIBE FIELD KEY_SEQ_IMO_CON TABLE SINCON
' cHAVE DO CÓDIGO DO IMÓVEL'; DESCRIBE FIELD KEY_CAD_CON TABLE SINCON
' CHAVE DO INQUILINO PEGA NO CADASTRO SINCAD (SEQUENCIAL)'; DESCRIBE FIELD KEY_SINFAT TABLE SINFAT1
'CHAVE SEQUENCIAL - ARQUIVO CABECALHO DAS FATURAS BOLETOS DE ALUGUEL'; DESCRIBE FIELD TIPREG_FAT TABLE SINFAT1
' TIPO DE REGISTRO 1= FATURA MES 2 = FATURA FINAL'; DESCRIBE FIELD KEY_SINCON_FAT TABLE SINFAT1
'CHAVE PRIMARIA DO SINCON - PREVER UMA CHAVE PARA FATURA SEM ALUGUEL'; DESCRIBE FIELD VENCIN_FAT TABLE SINFAT1
'VENCIMENTO SERÁ O CAMPO DIAVCT_INQ_CON DA TABELA SINCON + O MESCOM_FAT +1 E O ANO ANOCOM_FAT'; DESCRIBE FIELD TOTAL_FAT TABLE SINFAT1
'TOTAL GERAL DA FATURA'; DESCRIBE FIELD PERCMULTA_FAT TABLE SINFAT1
'O CAMPO MULTA FAT SERÁ O CAMPO PERCMULTA_TAB DA SINTAB'; DESCRIBE FIELD VLRMULTA_FAT TABLE SINFAT1
'VLRMULTA_TAB = TOTAL_FAT * PERCMULTA_FAT'; DESCRIBE FIELD TOTCMULTA_FAT TABLE SINFAT1
'É IGUAL O TOTAL_FAT + VLRMULTA_FAT'; DESCRIBE FIELD KEY_SEQ_IMO TABLE SINIMO
' SEQUENCIA DA CHAVE DO IMÓVEL'; DESCRIBE FIELD KEY_CAD_IMO TABLE SINIMO
' CHAVE DO CADASTRO GERAL IDENTIFICA O PROPRIETARIO'; DESCRIBE FIELD KEY_SINSUB TABLE SINIMO
' CHAMA CHAVE DO CADASTRO DE SUB GRUPO DE IMOVEIS - CHAVE ESTRANGEIRA'; DESCRIBE FIELD SITUAC_IMO TABLE SINIMO
'SITUAÇÃO DO IMÓVEL PODE ASSUMIR 1 - OCUPADO 2 = VAGO 3 = INATIVO 9 excluido'; DESCRIBE FIELD KEY_CON_IMO TABLE SINIMO
' CHAVE DO CONTRATO QUE ESTA ATIVO NO IMÓVEL';
GOSTEI 0
Wesley Yamazack
27/04/2010
Olá amigo,
Assim já ajuda, porém fica complicado ter que cadastrar os dados, assim vou perder mais tempo para montar o relatório, você não pode mandar o BD completo, ou o insert de alguns dados, que eu possa fazer o teu Select aparecer, registros e assim montar o relatório ?
Ficaria muito mais prático
Att,
Wesley Y
Assim já ajuda, porém fica complicado ter que cadastrar os dados, assim vou perder mais tempo para montar o relatório, você não pode mandar o BD completo, ou o insert de alguns dados, que eu possa fazer o teu Select aparecer, registros e assim montar o relatório ?
Ficaria muito mais prático
Att,
Wesley Y
GOSTEI 0
Wesley Yamazack
27/04/2010
Olá amigo, teria como mandar o Banco de Dados ? Que dai eu ja faria um exemplo correto em cima da tua base de dados.
Att,
Wesley Y
Att,
Wesley Y
GOSTEI 0
Wesley Yamazack
27/04/2010
Olá amigo, estou ainda no aguardo do banco de dados, como você não mandou ainda, estou analisando aqui e gostaria de lhe acrescentar uma explicação.
Você me passou isso :
INQUILINO 1 BAND1 - AGRUPADO POR INQUILINO
FIADOR 1 BAND2 - AGRUPADO POR FIADOR
FIADOR 2 BAND2 - AGRUPADO POR FIADOR
FIADOR 3 BAND2 - AGRUPADO POR FIADOR
IMOVEL 1 BAND3 - AGRUPADO POR IMÓVEL
FATURA 1 - DATABAND
FATURA 2 - DATABAND
FATURA 3 - DATABAND
===========================
INQUILINO 2 BAND1 - AGRUPADO POR INQUILINO
FIADOR 1 BAND2 - AGRUPADO POR FIADOR
FIADOR 2 BAND2 - AGRUPADO POR FIADOR
FIADOR 3 BAND2 - AGRUPADO POR FIADOR
IMOVEL 10 BAND3 - AGRUPADO POR IMÓVEL
FATURA 21 - DATABAND
FATURA 22 - DATABAND
FATURA 23 - DATABAND
A única coisa que você tem que fazer no seu select, que irá repetir diversas informações para todas as faturas que você tiver, porém com o agrupamento não tem problema, você tem que usar o order by inquilino, fiador, imovel, fatura, justamente nesta ordem, pois se no select tiver um fiador 1 para o inquilino 1, na primeira posição e na última posição tiver esta mesma sequencia o relatório irá exibir os dados separadamente. ok ?
Um abraço
Wesley Y
Você me passou isso :
INQUILINO 1 BAND1 - AGRUPADO POR INQUILINO
FIADOR 1 BAND2 - AGRUPADO POR FIADOR
FIADOR 2 BAND2 - AGRUPADO POR FIADOR
FIADOR 3 BAND2 - AGRUPADO POR FIADOR
IMOVEL 1 BAND3 - AGRUPADO POR IMÓVEL
FATURA 1 - DATABAND
FATURA 2 - DATABAND
FATURA 3 - DATABAND
===========================
INQUILINO 2 BAND1 - AGRUPADO POR INQUILINO
FIADOR 1 BAND2 - AGRUPADO POR FIADOR
FIADOR 2 BAND2 - AGRUPADO POR FIADOR
FIADOR 3 BAND2 - AGRUPADO POR FIADOR
IMOVEL 10 BAND3 - AGRUPADO POR IMÓVEL
FATURA 21 - DATABAND
FATURA 22 - DATABAND
FATURA 23 - DATABAND
A única coisa que você tem que fazer no seu select, que irá repetir diversas informações para todas as faturas que você tiver, porém com o agrupamento não tem problema, você tem que usar o order by inquilino, fiador, imovel, fatura, justamente nesta ordem, pois se no select tiver um fiador 1 para o inquilino 1, na primeira posição e na última posição tiver esta mesma sequencia o relatório irá exibir os dados separadamente. ok ?
Um abraço
Wesley Y
GOSTEI 0
Wesley Yamazack
27/04/2010
Olá amigo, estou ainda no aguardo do banco de dados, como
você não mandou ainda, estou analisando aqui e gostaria de lhe acrescentar uma
explicação.
Você me passou isso:
INQUILINO 1 BAND1 -
AGRUPADO POR INQUILINO
FIADOR 1 BAND2 - AGRUPADO POR FIADOR
FIADOR 2 BAND2 - AGRUPADO POR FIADOR
FIADOR 3 BAND2 - AGRUPADO POR FIADOR
IMOVEL
1 BAND3 - AGRUPADO POR IMÓVEL
FATURA
1 - DATABAND
FATURA
2 - DATABAND
FATURA
3 – DATABAND
===========================
INQUILINO 2 BAND1 -
AGRUPADO POR INQUILINO
FIADOR 1 BAND2 - AGRUPADO POR FIADOR
FIADOR 2 BAND2 - AGRUPADO POR FIADOR
FIADOR 3 BAND2 - AGRUPADO POR FIADOR
IMOVEL
10 BAND3 - AGRUPADO POR IMÓVEL
FATURA
21 - DATABAND
FATURA
22 - DATABAND
FATURA
23 - DATABAND
A única coisa que você tem que fazer no seu select, que irá
repetir diversas informações para todas as faturas que você tiver, porém com o
agrupamento não tem problema, você tem que usar o order by inquilino, fiador,
imovel, fatura, justamente nesta ordem, pois se no select tiver um fiador 1
para o inquilino 1, na primeira posição e na última posição tiver esta mesma
sequencia o relatório irá exibir os dados separadamente. ok ?
Um abraço
Wesley Y
Wesley Y
GOSTEI 0
Wesley Yamazack
27/04/2010
Olá amigo, estou ainda no aguardo do banco de dados, como
você não mandou ainda, estou analisando aqui e gostaria de lhe acrescentar uma
explicação.
Você me passou isso:
INQUILINO 1 BAND1 -
AGRUPADO POR INQUILINO
FIADOR 1 BAND2 - AGRUPADO POR FIADOR
FIADOR 2 BAND2 - AGRUPADO POR FIADOR
FIADOR 3 BAND2 - AGRUPADO POR FIADOR
IMOVEL
1 BAND3 - AGRUPADO POR IMÓVEL
FATURA
1 - DATABAND
FATURA
2 - DATABAND
FATURA
3 – DATABAND
===========================
INQUILINO 2 BAND1 -
AGRUPADO POR INQUILINO
FIADOR 1 BAND2 - AGRUPADO POR FIADOR
FIADOR 2 BAND2 - AGRUPADO POR FIADOR
FIADOR 3 BAND2 - AGRUPADO POR FIADOR
IMOVEL
10 BAND3 - AGRUPADO POR IMÓVEL
FATURA
21 - DATABAND
FATURA
22 - DATABAND
FATURA
23 - DATABAND
A única coisa que você tem que fazer no seu select, que irá
repetir diversas informações para todas as faturas que você tiver, porém com o
agrupamento não tem problema, você tem que usar o order by inquilino, fiador,
imovel, fatura, justamente nesta ordem, pois se no select tiver um fiador 1
para o inquilino 1, na primeira posição e na última posição tiver esta mesma
sequencia o relatório irá exibir os dados separadamente. ok ?
Um abraço
Wesley Y
Wesley Y
GOSTEI 0
Jorge Trento
27/04/2010
Boa Noite
Desculpe pela demora, é que foi uma correria os ultimos dias.
Assim para o sistema eu esta usando Rave e meu colega Quick profissional, mas estavamos tento muitos problemas. Entao após uma reuniao decidimos mudar a ferramenta de relatorio. Estamos usando Fast report.
Com alguns cliques consegui fazer esse relatorio, uma coisa que parecia tao dificil, com 20 minutos deixei pronto.
Obrigado, desculpe pelo encomodo e pode encerrar o chamado
GOSTEI 0
Wesley Yamazack
27/04/2010
Ok então amigo,
Att,
Wesley Y
Att,
Wesley Y
GOSTEI 0