Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

Сброс данных из базы в TreeView   Найти похожие ветки 

 
Xmen   (2006-12-07 10:27) [0]

Добрый ден Мастера!
Делаю прогу для библиотеки. Кое что спланировал. Если есть опыт в этом деле дайте советы, с радостью приниму. Извените отвлёкся. При разработке проги мне нужно сделат картатеку. Хотел сделат как в проводнике сначала расположит буквы алфавита от "а" до "я" и потом из базы читателей филтром извлеч фамилии и писать в подходяшую поддеректорию. Например "и" писать "Иванов" "И.." а "с" "Сидоров" итп.
Для этого хотел исползовать TreeView, но уменя не получается. Хелп читал и пару примеров посмотрел(неподходили моиму случаю) но непонятно доконца. Как можно это сделать?


 
Jeer ©   (2006-12-07 10:31) [1]


> Как можно это сделать?


По всякому.
treenode := TreeView.Items.Add(nil, "Root");
TreeView.Items.AddChild(treenode, "Child1");

"Root" в твоем случае буквы
"child" - данные из базы


 
Sergey13 ©   (2006-12-07 10:40) [2]

> [0] Xmen   (07.12.06 10:27)
Если не можешь разобраться с деревом.
1. Можно поискать готовые компоненты. Их немало.
2. Можно сделать похоже и без дерева.

В любом случае сначала надо спроектировать саму БД.

ЗЫ: Для библиотекаря у тебя просто офигительная грамотность. 8-)


 
iXT   (2006-12-07 10:42) [3]


> но непонятно доконца

Что конкретно непонятно?


 
Amoeba ©   (2006-12-07 10:53) [4]

Рекомендую для начала прочесть эти статьи:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=488
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=850


 
Xmen   (2006-12-07 12:27) [5]

Сделал базу с таблицами
1) User - читатели
2) Book - книги
3) Kartochka - формуляр читателя

В 1) базы есть поля фамили и по этому полю нужно создать картатеку, тоесть дерево.

кусок примера добовления значения поля в дерево, но неполучилось вышла ошибка.

procedure TFUserView.RefreshTree;
var Nodes : TTreeNode;
begin
 DMLibrary.dstUser.Refresh;
 with TreeView1.Items do
    begin
       BeginUpdate;
       Clear;
       DMLibrary.dstUser.First;
       while not DMLibrary.dstUser.EOF do
         begin
         Nodes := Add(TreeView1.Selected,DMLibrary.dstUser["imya"].AsString);
         DMLibrary.dstUser.Next;
         end;
       EndUpdate;
    end;
end;

Jeer ©  можеш еще дополнить свой пример.
Amoeba © спосиба за статю почитаю.
И осталным тоже спасибо за помощ.


 
Сергей М. ©   (2006-12-07 12:39) [6]


> неполучилось вышла ошибка


Какая ?


 
Xmen   (2006-12-07 12:43) [7]

invalid variant operation
наверно в этой строке
Nodes := Add(TreeView1.Selected,DMLibrary.dstUser["imya"].AsString);


 
Сергей М. ©   (2006-12-07 12:49) [8]


> наверно в этой строке


Что значит "наверно" ? Удостоверься в этом ! Отладчик-то на что дан тебе ?

И если именно на этой, то это означает только одно - значение поле "imya" в текущей записи в НД dstUser равно Null


 
Xmen   (2006-12-07 13:04) [9]

поменял это на это и кое что получилось, спасибо
Nodes := Add(TreeView1.Selected,DMLibrary.dstUser.fieldbyname("imya").AsString);


 
Xmen   (2006-12-07 13:25) [10]

Тепер мне надо сделать то что продумал сначала  расположит буквы алфавита от "а" до "я" и потом из базы читателей филтром извлеч фамилии и писать в подходяшую поддеректорию. Например "и" писать "Иванов" "И.." а "с" "Сидоров" итп.
Как это сделать. Деректоря получается, акак тепер сделать поддеректорю. и туда писать фамилю из базы
Nodes := AddChild(TreeView1.Selected,DMLibrary.dstUser.fieldbyname("familiya").AsString);
так.
А как сделат алфавит, с помощю массива или др. способ есть. и писат туда из базы.


 
Германн ©   (2006-12-07 13:30) [11]

Это развод или что?


 
Jeer ©   (2006-12-07 13:32) [12]


> Германн ©   (07.12.06 13:30) [11]
>
> Это развод или что?


Это X-мэны сейчас такие - матрица-revolution не выгорело.


 
Xmen   (2006-12-07 13:49) [13]

:)
Просто понят хочу, и сделать.


 
Xmen   (2006-12-11 08:12) [14]

Сделал вот так:
procedure TFUserView.RefreshTree;
var Nodes : TTreeNode;
   i : Integer;
   abc:string;
begin
 abc:="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЧШЭЮЯ";
 with TreeView1.Items do
    begin
     BeginUpdate;
     Clear;
      for i := 1 to 28 do
        begin
         Nodes := Add(TreeView1.Selected,copy(abc,i,1));
         with DMLibrary.qrUser do
           begin
              DisableControls;
              if Active then Close;
              Screen.Cursor := crHourGlass;
              SQL.Clear;
              SQL.Add(" SELECT * FROM user_lib");
              SQL.Add(" WHERE familiya like """+copy(abc,i,1)+"%"+"""");
              SQL.Add(" order by familiya");
              SQL.SaveToFile("sql.txt");
              try
                Open;
              except
                ShowMessage("Ошибка выполнения запроса");
                Screen.Cursor := crDefault;
                exit;
              end;
              EnableControls;
              Screen.Cursor := crDefault;
           end;
         DMLibrary.qrUser.Open;
         DMLibrary.qrUser.First;

         while not DMLibrary.qrUser.EOF do
          begin
           AddChildObject( Nodes,DMLibrary.qrUser.fieldbyname("familiya").AsString,nil);
           DMLibrary.qrUser.Next;
          end;
        end;
     EndUpdate;
    end;
end;
А можете сказат как можно сделат так чтобы при выборе фамилия из списка вышлабы данные соответствующие данние к этой фамилии.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.046 c
15-1165957334
Terre
2006-12-13 00:02
2006.12.31
Out of memory


15-1165516784
Petr V. Abramov
2006-12-07 21:39
2006.12.31
Крамольная мысль....


2-1165944609
Dmitry_177
2006-12-12 20:30
2006.12.31
Несколько окон в программе


3-1161084645
safo
2006-10-17 15:30
2006.12.31
Как трассировать sql-запросы к ODBC?


4-1156198352
h8394E
2006-08-22 02:12
2006.12.31
Перехват метода интерфейса...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский