comand tree
Enviado: 16 Dez 2016 12:34
ola pessoal
alguém pode me ajudar como entender o TREE
DEFINE TREE ....
o que preciso:
tenho o cadastro de produto, e alguns produtos tem componentes que são acoplados neste produtos, então gostaria de criar um TREE mostrando o produto x mais seus componentes y e destes quais o cliente comprou, um exemplo
produto 30217685 possui os seguintes componentes 30179006, 303207848, 30173870 então quero mostrar o que o cliente tal comprou
estou varrendo a tabela de produto procurando pelo produto que tenha seus componentes, guardo em um vetor, depois procuro por cada componente, e depois procuro se tal cliente comprou.
a estrutura deveria ficar +- assim
+---30217685 TOALHEIRO PRISOL
|
+---30179006 TOALHA 20 MTS SIMPLES
| |---PEDIDO.: 4569 QUANTIDADE.: 20 FATURADO.: 18/09/2016
| |---PEDIDO.: 4865 QUANTIDADE.: 11 FATURADO.: 16/10/2016
+---303207848 - TOALHA 20 MTS DUPLA FACE
|---PEDIDO.: 2856 QUANTIDADE.: 8 FATURADO.: 05/06/2016
e por ai vai, só que não consigo montar esta estrutura, alguém tem ideia ou algum material para leitura, abaixo mostro como estava montando só que não da certo.
alguém pode me ajudar como entender o TREE
DEFINE TREE ....
o que preciso:
tenho o cadastro de produto, e alguns produtos tem componentes que são acoplados neste produtos, então gostaria de criar um TREE mostrando o produto x mais seus componentes y e destes quais o cliente comprou, um exemplo
produto 30217685 possui os seguintes componentes 30179006, 303207848, 30173870 então quero mostrar o que o cliente tal comprou
estou varrendo a tabela de produto procurando pelo produto que tenha seus componentes, guardo em um vetor, depois procuro por cada componente, e depois procuro se tal cliente comprou.
a estrutura deveria ficar +- assim
+---30217685 TOALHEIRO PRISOL
|
+---30179006 TOALHA 20 MTS SIMPLES
| |---PEDIDO.: 4569 QUANTIDADE.: 20 FATURADO.: 18/09/2016
| |---PEDIDO.: 4865 QUANTIDADE.: 11 FATURADO.: 16/10/2016
+---303207848 - TOALHA 20 MTS DUPLA FACE
|---PEDIDO.: 2856 QUANTIDADE.: 8 FATURADO.: 05/06/2016
e por ai vai, só que não consigo montar esta estrutura, alguém tem ideia ou algum material para leitura, abaixo mostro como estava montando só que não da certo.
Código: Selecionar todos
COMODATO->( ORDERBY( "CODIGO" ) )
COMODATO->( ORDSCOPE( TOPSCOPE , CLIENTES->CODIGO ) )
COMODATO->( ORDSCOPE( BOTTOMSCOPE, CLIENTES->CODIGO ) )
COMODATO->( DBGOTOP() )
IF COMODATO->( KEYCOUNT() ) > 0
FRM_PEDIDOS.TREE_COMODATO.DeleteAllItems
* FRM_PEDIDOS.TREE_COMODATO.AddItem( "EQUIPAMENTOS EM COMODATO" , 0 )
DO WHILE !COMODATO->( EOF() )
IF EMPTY( COMODATO->DTFIM )
PRODUTOS->( ORDSETFOCUS( "CODIGO" ) )
PRODUTOS->( DBGOTOP() )
PRODUTOS->( DBSEEK( COMODATO->PRODUTO ) )
AADD( ITENS_COMO, { ;
COMODATO->PRODUTO ,;
SUBSTR( PRODUTOS->DESCRICAO,1,50 ) ,;
TRANSFORM( COMODATO->QUANTIDADE, "9999" ) ,;
DTOC( COMODATO->DTINICIO ) ,;
DTOC( COMODATO->DTFIM ) } )
ENDIF
COMODATO->( DBSKIP() )
ENDDO
SETPROPERTY( "FRM_PEDIDOS","FRCOMO","VISIBLE",.T. )
SETPROPERTY( "FRM_PEDIDOS","TREE_COMODATO","VISIBLE",.T. )
PRODUTOS->( ORDSETFOCUS( SvOrdPROD ) )
PRODUTOS->( DBGOTO( SvRecPROD ) )
FOR I = 1 TO LEN( ITENS_COMO )
AADD( SEQUE_COMO, { "NODE", ALLTRIM( ITENS_COMO[I,1] ) + "-" + ALLTRIM( ITENS_COMO[I,2] ) } )
PRODUTOS->( ORDSETFOCUS( "CODIGO" ) )
PRODUTOS->( DBGOTOP() )
PRODUTOS->( DBSEEK( ALLTRIM( ITENS_COMO[I,1] ) + SPACE( 20 - LEN( ALLTRIM( ITENS_COMO[I,1] ) ) ) ) )
REFE_ITEN := MONTAVETOR( PRODUTOS->NOTAS )
FOR X = 1 TO LEN( REFE_ITEN )
PRODUTOS->( ORDSETFOCUS( "CODIGO" ) )
PRODUTOS->( DBGOTOP() )
PRODUTOS->( DBSEEK( REFE_ITEN[X] + SPACE( 20-LEN( REFE_ITEN[X] ) ) ) )
AADD( SEQUE_COMO, { "NODE1", ALLTRIM( REFE_ITEN[X] ) + "-" + SUBSTR( PRODUTOS->DESCRICAO,1,40 ) } )
ESTOQUE->( ORDSETFOCUS( "CLIPRODUTO" ) )
ESTOQUE->( DBGOTOP() )
IF ESTOQUE->( DBSEEK( CLIENTES->CODIGO + REFE_ITEN[X] + SPACE( 20-LEN( REFE_ITEN[X] ) ) ) )
PRODUTOS->( DBGOTOP() )
PRODUTOS->( DBSEEK( ESTOQUE->PRODUTO ) )
DO WHILE !ESTOQUE->( EOF() ) .AND. ;
( CLIENTES->CODIGO + REFE_ITEN[X] + SPACE( 20-LEN( REFE_ITEN[X] ) ) ) = ;
( ESTOQUE->EMPRESA + ESTOQUE->PRODUTO)
IF DTOS( ESTOQUE->DATA ) >= DTOS( DATE()-90 )
OITEM := "PEDIDO.: " + ALLTRIM( ESTOQUE->PEDIDO ) + " - " +;
"PRODUTO.: " + ALLTRIM( ESTOQUE->PRODUTO ) + " - " +;
"DESCRIÇÃO.: " + SUBSTR( PRODUTOS->DESCRICAO,1,50 ) + " - " +;
"QTDE.: " + STRZERO( ESTOQUE->QUANTIDADE,5 ) + " - " +;
"DT COMPRA.: " + DTOC( ESTOQUE->D_FATURA )
AADD( SEQUE_COMO, { "TREE", OITEM } )
ENDIF
ESTOQUE->( DBSKIP() )
ENDDO
ENDIF
NEXT X
ESTOQUE->( OrdSetFocus( SvOrdESTO ) )
ESTOQUE->( ORDSCOPE( TOPSCOPE, NIL ) )
ESTOQUE->( ORDSCOPE( BOTTOMSCOPE, NIL ) )
ESTOQUE->( DBGOTO( SvRecESTO ) )
NEXT I
PRODUTOS->( ORDSETFOCUS( SvOrdPROD ) )
PRODUTOS->( DBGOTO( SvRecPROD ) )
ENDIF
BEGIN SEQUENCE
FOR X = 1 TO LEN( SEQUE_COMO )
DO EVENTS
IF SEQUE_COMO[X,1] == "NODE"
FRM_PEDIDOS.TREE_COMODATO.AddItem( SEQUE_COMO[X,2] , 0 )
* DEFINE NODE SEQUE_COMO[X,2] ID nItemID++
* END NODE
ELSEIF SEQUE_COMO[X,1] == "NODE1"
FRM_PEDIDOS.TREE_COMODATO.AddItem( SEQUE_COMO[X,2] , 1 )
ELSE
FRM_PEDIDOS.TREE_COMODATO.AddItem( SEQUE_COMO[X,2] , 2 )
* TREEITEM SEQUE_COMO[X,2] ID nItemID++
ENDIF
NEXT X
END SEQUENCE