Níveis - gt; Complexo

Delphi

21/05/2004

Pessoal ! :roll: :idea:

Não sou expert nem profissional de informática, caso alguém se aventure nesta empreitada favor detalhar, pormenorizar e se possível colocar enunciados, pois sei muito pouco e só de Delphi.

Preciso copiar dados de um grid (DBGrid) para outro (StrinGrid) e posteriormente numa segunda etapa mandarei para um relatório.

Como faço para criar um campo (auto) de ordenação por ordem de inserção.

O titulos os grupos e os subgrupos são criados manualmente no grid.

Os itens é que são inseridos no StrinGrid.

Outra questão é a seguinte, toda vez que defino uma posição, quando deletar ou inserir a arvore deve se reordenar a partir desta posição.

Claro que se deletar um DETERMINADO TITULO todos -> GRUPOS, SUBGRUPOS E ITENS SÃO EXCLUÍDOS, porém o reordenamento é necessário ASCENDENTES OU DESCENDENTES, ... e assim por diante.

O espírito da rotina é similar ao do Tree -> nódulos


1. TITULO 1.
.1 ITEM
.2 ITEM
..................
.n ITEM

1.1. GRUPO 1.1.
.1.1 ITEM
.1.2 ITEM
..................
.1.n ITEm

1.2. GRUPO 1.2.
.2.1 ITEM
..................
.2.n ITEM

2. TITULO 2.
2.1. GRUPO 2.1.
.1.1 ITEM
.1.2 ITEM
..................
.1.n ITEN

2.2. GRUPO 2.2.
.2.1 ITEM
.2.2 ITEM
..................
.2.n ITEM

2.2.1 SUBGRUPO 2.1.1.
.2.1.1 ITEM
.2.1.2 ITEM
..................
.2.1.n ITEM
..................
.2.2.1 ITEM
..................
.2.n.n ITEM

3. TITULO 3.
.1 ITEM
.2 ITEM
..................
.n ITEM
..................

n. TITULO n.
..................

n.n. GRUPO n.n.
..................

n.n.n SUBGRUPO n.n.n

Grato :D

Drozinski


Paulo Drozinski

Paulo Drozinski

Curtidas 0

Respostas

Edilcimar

Edilcimar

21/05/2004

Utilize o dbgrid, o qual deverá estar associado a uma tabela, esta tabela deverá conter um índice para poder indexar aquilo que vc quer, este índice poderá ser simples (um campo) ou múltiplo (vários campos). Para a deleção se porventura tudo estiver em uma mesma tabela é só deletar, caso contrário faça um relacionamento entre tabelas e comece apagando as tabelas dependentes da tabela principal para por último apagar a principal


GOSTEI 0
Paulo Drozinski

Paulo Drozinski

21/05/2004

Caro edilcimar :D

Primeio obrigado pela atenção.

Poderia me explicar melhor!!! Pois creio que não vai funcionar, porque nunca sei antecipadamente quantos grupos, subgrupos e itens terá cada título ? como também não sei a linha do foco da inserção e deleção cuja qual apartir daí seria necessária a reordenação. (observo ainda que existe a possibilidade de um titulo ter gurpo=0, subgrupo=0, embora tenha itens) Cada planilha terá um perfil de nó diferente da outra, nunca serão iguais.

saudações 8)

drozinski


GOSTEI 0
Edilcimar

Edilcimar

21/05/2004

Suponha tabela1 indexada por um índice o qual será composto pelos campos Grupo(a até z) e subgrupo(a1 até z100), cada vez que vc inserir um registro a ordenação será feita automaticamente
ex: inserir no Grupo R o subgrupo R25 este registro estará colocado entre RR24 e RR26. Quando deletar o registro será excluído. Segunda opção tabela1 indexada pelo índice Grupo(a até z) e tabela2 indexada pelo subgrupo (a1 a z100), estas duas tabelas deverão ficar conectadas entre si, quando vc correr a letra R na tabela1, na tabela2 aparecerão os itens constantes nesta tabela que fazem parte da letra R(da tabela1) e ao serem inseridos novos a dependência da tabela2 permecerá (através de campo chave), porém ao ser deletado algum registro o mesmo será deletado na tabela2, quanto a tabela1 a mesma só poderá ser deletado um registro se não existir na tabela2 nenhum registro dependente
ex: para deletar o R25 na tabela2 não há problema, porém para deletar o R na tabela1 só será possível se todos os registros R da tabela2 tiverem sido deletados


GOSTEI 0
Paulo Drozinski

Paulo Drozinski

21/05/2004

Caro Amigo Edilcimar
:shock: :shock: :shock:
Não entendo muito de Delphi mas a primeira vista me parece que a lógica está bem arquitetada.

Muito simples inteligente e legal a solução apresentada, sem nenhum tipo de algorítmo complicado, vou tentar e te mando um alô.

valeu. :roll:

um abraço :lol:

drozinski


GOSTEI 0
Paulo Drozinski

Paulo Drozinski

21/05/2004

´Caro Amigo Edilcimar´ :D

Creio que tua sujestão não dá pois preciso de campos autoincremento.
Abaixo procuro detalhar melhor a pergunta.
Sem esta rotina meu projeto vai para o ´brejo´.

Seria possível realizá-la utilizando tabela ou queries linkadas, mas como ? :idea:
A maneira que encontrei para reformular a pergunta foi esta:

SITUAÇÃO 1:
Tenho dois grid´s -> DBGrid1 onde tenho os itens
DBGrid2 onde crio manualmente os Titulos e insiro os Itens com um click no Dbgrid1:
Quero ordenar segundo a ordem de inserção.
Porém preciso que ocorra reordenamento quando:
Necessite posteriormente Inserir ou Deletar a partir do foco, sejam Títulos ou Itens.

SITUAÇÃO2:
Tenho dois grid´s -> DBGrid1 onde tenho os itens
DBGrid2 onde crio manualmente os Titulos + Grupos e insiro os Itens com um click no Dbgrid1:
Quero ordenar segundo a ordem de inserção.
Porém preciso que ocorra reordenamento quando:
Necessite posteriormente Inserir ou Deletar a partir do foco, sejam Títulos, Grupos ou Itens.

SITUAÇÃO3: (nessa ocorrem todas as possibilidades)
Tenho dois grid´s -> DBGrid1 onde tenho os itens
DBGrid2 onde crio manualmente os Titulos + Grupos+SubGrupos e insiro os Itens com um click no Dbgrid1:
Quero ordenar segundo a ordem de inserção.
Porém preciso que ocorra reordenamento quando:
Necessite posteriormente Inserir ou Deletar a partir do foco, sejam Títulos, Grupos, SubGrupos ou Itens.

grato

saudações 8)

drozinski


GOSTEI 0
Paulo Drozinski

Paulo Drozinski

21/05/2004

Caro Amigo Edilcimar !!! :D

Se puderes me manda teu email, para te remeter um detalhamento melhor, poi vi que errei os indices e não consigo colar no forum, pois desalinham e embaralha toda a pegunta, por favor depois tu colas a pergunta no forum para o pessoal acompanhar .

saudações :oops:

drozinski


GOSTEI 0
POSTAR