Jump to content

Recommended Posts

Posted
Good morning everyone.

I'm facing a problem with unitreeview which consists of the following:

I mount a treeview with 6 levels with only 20 records.

He assembles the tree perfectly, but when I randomly click on the tree it will simply freeze after a few clicks (usually around 12 clicks).

What can I be doing wrong? The encedeamento is by a text field of up to 20 characters.

Thank you all.

Posted

Good morning friends.

I am using the latest evaluation version downloaded by the site.

Go onchange code.

If there is a simpler way to use Treeview I am totally open to suggestions as this is the first time I use this type of component.


 

***********************************************************************************************************************************************************


procedure TMainForm.UniTreeView_libraryChange(Sender: TObject; Node: TUniTreeNode);

 

begin

 

 

   DMSql.MemData_Library.Close;

   DMSql.MemData_Library.Open;

   nusuario := DMSql.Qry_UsuariosG003_CODIGO.AsInteger;

   No1 := '';

   No2 := '';

   No3 := '';

   No4 := '';

   No5 := '';

   No6 := '';

   No7 := '';

   DMSql.Qry_Arquivos.Close;

   if (Node.Level = 0) then

   begin

 

      No1 := Node.Text;

      Caminho_Dir := caminho_database + Regist + '\' + No1 + '\';

      SetCurrentDir(caminho_database + Regist + '\' + No1);

      DMSql.Qry_Tree.Locate('Descricao_G021', No1, []);

      if (DMSql.Qry_Tree.Eof) then

      begin

         ShowMessage('Problema de posicionamento na estrutura de diretorios');

         exit;

      end;

      DMSql.Qry_Arquivos.ParamByName('DN1').AsString := Node.Text;

      DMSql.Qry_Arquivos.ParamByName('DN2').value := null;

      UniServerModule.FilesFolder := servidor + caminho_database + Regist + '\' + No1 + '\';

   end;

 

   if (Node.Level = 1) then

   begin

      No1 := Node.Parent.Text;

      No2 := Node.Text;

      Caminho_Dir := caminho_database + Regist + '\' + No1 + '\' + No2 + '\';

      SetCurrentDir(caminho_database + Regist + '\' + No1 + '\' + No2);

      DMSql.Qry_Tree.Locate('Descricao_G021;Descricao_G022', VarArrayOf([No1, No2]), []);

      if (DMSql.Qry_Tree.Eof) then

      begin

         ShowMessage('Problema de posicionamento na estrutura de diretorios');

         exit;

      end;

      DMSql.Qry_Arquivos.ParamByName('DN1').AsString := Node.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN2').AsString := Node.Text;

      DMSql.Qry_Arquivos.ParamByName('DN3').value := null;

      UniServerModule.FilesFolder := servidor + caminho_database + Regist + '\' + No1 + '\' + No2 + '\';

   end;

 

   if (Node.Level = 2) then

   begin

      No1 := Node.Parent.Parent.Text;

      No2 := Node.Parent.Text;

      No3 := Node.Text;

      SetCurrentDir(caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3);

      Caminho_Dir := caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\';

      DMSql.Qry_Tree.Locate('Descricao_G021;Descricao_G022;Descricao_G023', VarArrayOf([No1, No2, No3]), []);

      if (DMSql.Qry_Tree.Eof) then

      begin

         ShowMessage('Problema de posicionamento na estrutura de diretorios');

         exit;

      end;

      DMSql.Qry_Arquivos.ParamByName('DN1').AsString := Node.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN2').AsString := Node.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN3').AsString := Node.Text;

      DMSql.Qry_Arquivos.ParamByName('DN4').value := null;

      UniServerModule.FilesFolder := servidor + caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\';

   end;

 

   if (Node.Level = 3) then

   begin

      No1 := Node.Parent.Parent.Parent.Text;

      No2 := Node.Parent.Parent.Text;

      No3 := Node.Parent.Text;

      No4 := Node.Text;

      Caminho_Dir := caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' + No4 + '\';

      SetCurrentDir(caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' + No4);

      DMSql.Qry_Tree.Locate('Descricao_G021;Descricao_G022;Descricao_G023;Descricao_G024',

             VarArrayOf([No1, No2, No3, No4]), []);

      if (DMSql.Qry_Tree.Eof) then

      begin

         ShowMessage('Problema de posicionamento na estrutura de diretorios');

         exit;

      end;

      DMSql.Qry_Arquivos.ParamByName('DN1').AsString := Node.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN2').AsString := Node.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN3').AsString := Node.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN4').AsString := Node.Text;

      DMSql.Qry_Arquivos.ParamByName('DN5').value := null;

      UniServerModule.FilesFolder := servidor + caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' +

             No4 + '\';

   end;

 

   if (Node.Level = 4) then

   begin

      No1 := Node.Parent.Parent.Parent.Parent.Text;

      No2 := Node.Parent.Parent.Parent.Text;

      No3 := Node.Parent.Parent.Text;

      No4 := Node.Parent.Text;

      No5 := Node.Text;

      Caminho_Dir := caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' + No4 + '\' + No5 + '\';

      SetCurrentDir(caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' + No4 + '\' + No5);

      DMSql.Qry_Tree.Locate('Descricao_G021;Descricao_G022;Descricao_G023;Descricao_G024;Descricao_G025',

             VarArrayOf([No1, No2, No3, No4, No5]), []);

      if (DMSql.Qry_Tree.Eof) then

      begin

         ShowMessage('Problema de posicionamento na estrutura de diretorios');

         exit;

      end;

      DMSql.Qry_Arquivos.ParamByName('DN1').AsString := Node.Parent.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN2').AsString := Node.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN3').AsString := Node.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN4').AsString := Node.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN5').AsString := Node.Text;

      DMSql.Qry_Arquivos.ParamByName('DN6').value := null;

      UniServerModule.FilesFolder := servidor + caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' +

             No4 + '\' + No5 + '\';

   end;

 

   if (Node.Level = 5) then

   begin

      No1 := Node.Parent.Parent.Parent.Parent.Parent.Text;

      No2 := Node.Parent.Parent.Parent.Parent.Text;

      No3 := Node.Parent.Parent.Parent.Text;

      No4 := Node.Parent.Parent.Text;

      No5 := Node.Parent.Text;

      No6 := Node.Text;

      Caminho_Dir := caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' + No4 + '\' + No5 + '\' +

             No6 + '\';

      SetCurrentDir(caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' + No4 + '\' + No5 + '\' + No6);

      DMSql.Qry_Tree.Locate('Descricao_G021;Descricao_G022;Descricao_G023;Descricao_G024;Descricao_G025;Descricao_G026',

             VarArrayOf([No1, No2, No3, No4, No5, No6]), []);

      if (DMSql.Qry_Tree.Eof) then

      begin

         ShowMessage('Problema de posicionamento na estrutura de diretorios');

         exit;

      end;

      DMSql.Qry_Arquivos.ParamByName('DN1').AsString := Node.Parent.Parent.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN2').AsString := Node.Parent.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN3').AsString := Node.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN4').AsString := Node.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN5').AsString := Node.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN6').AsString := Node.Text;

      DMSql.Qry_Arquivos.ParamByName('DN7').value := null;

      UniServerModule.FilesFolder := servidor + caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' +

             No4 + '\' + No5 + '\' + No6 + '\';

   end;

 

   if (Node.Level = 6) then

   begin

 

      No1 := Node.Parent.Parent.Parent.Parent.Parent.Parent.Text;

      No2 := Node.Parent.Parent.Parent.Parent.Parent.Text;

      No3 := Node.Parent.Parent.Parent.Parent.Text;

      No4 := Node.Parent.Parent.Parent.Text;

      No5 := Node.Parent.Parent.Text;

      No6 := Node.Parent.Text;

      No7 := Node.Text;

      Caminho_Dir := caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' + No4 + '\' + No5 + '\' + No6 +

             '\' + No7 + '\';

      SetCurrentDir(caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' + No4 + '\' + No5 + '\' + No6 +

             '\' + No7);

      DMSql.Qry_Tree.Locate

             ('Descricao_G021;Descricao_G022;Descricao_G023;Descricao_G024;Descricao_G025;Descricao_G026;Descricao_G027',

             VarArrayOf([No1, No2, No3, No4, No5, No6, No7]), []);

      if (DMSql.Qry_Tree.Eof) then

      begin

         ShowMessage('Problema de posicionamento na estrutura de diretorios');

         exit;

      end;

      DMSql.Qry_Arquivos.ParamByName('DN1').AsString := Node.Parent.Parent.Parent.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN2').AsString := Node.Parent.Parent.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN3').AsString := Node.Parent.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN4').AsString := Node.Parent.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN5').AsString := Node.Parent.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN6').AsString := Node.Parent.Text;

      DMSql.Qry_Arquivos.ParamByName('DN7').AsString := Node.Text;

      UniServerModule.FilesFolder := servidor + caminho_database + Regist + '\' + No1 + '\' + No2 + '\' + No3 + '\' +

             No4 + '\' + No5 + '\' + No6 + '\' + No7 + '\';

   end;

 

   if (No1 = '') then

      ShowMessage('Erro ao encadear treeviewer');

 

 

****************************************************************

Fields of treeview file

 

******************************************************************


G026_CODIGO: TIntegerField

G027_CODIGO: TIntegerField

G025_CODIGO: TIntegerField

G024_CODIGO: TIntegerField

G023_CODIGO: TIntegerField

G022_CODIGO: TIntegerField

G021_CODIGO: TIntegerField

DESCRICAO_G021: TStringField

DESCRICAO_G022: TStringField

DESCRICAO_G023: TStringField

DESCRICAO_G024: TStringField

DESCRICAO_G025: TStringField

DESCRICAO_G026: TStringField

DESCRICAO_G027: TStringField

 

********************************************************************

Treeview query

********************************************************************


G027_CODIGO - G026_CODIGO - G025_CODIGO - G024_CODIGO - G023_CODIGO - G022_CODIGO - G021_CODIGO DESCRICAO_G021 - DESCRICAO_G022 - DESCRICAO_G023 - DESCRICAO_G024 - DESCRICAO_G025 - DESCRICAO_G026 DESCRICAO_G027

 

0   0   0   0   0     0     0    Hi Library

0   0   0   0   0     177 0    Hi Library     Compras

0   0   0   0   180 177 0    Hi Library     Compras         Nacionais

0   0   0   0   181 177 0    Hi Library     Compras         Internacionais

0   0   0   0   0     178 0    Hi Library     Vendas

0   0   0   0   182 178 0    Hi Library     Vendas            Orçamentos

0   0   0   0   183 178 0    Hi Library     Vendas            Pedidos

0   0   0   0   0     179 0    Hi Library     Faturamento

0   0   0   0   184 179 0    Hi Library     Faturamento   Entradas

0   0   0   0   185 179 0    Hi Library     Faturamento   Saidas

0   0   0   0   0     180 0    Hi Library     Financeiro

0   0   0   0   186 180 0    Hi Library     Financeiro       Recebimentos

0   0   0   0   187 180 0    Hi Library     Financeiro       Pagamentos

0   0   0   0   0     181 0    Hi Library     Produção

0   0   0   0   188 181 0    Hi Library     Produção        Engenharia

0   0   0   0   189 181 0    Hi Library     Produção        Planejamento

0   0   0   0   190 181 0    Hi Library     Produção        Chão de fábrica

0   0   0   0   191 181 0    Hi Library     Produção        Qualidade

0   0   0   0   0     0     99  Lost+Found



 

 


Thanks

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...