Форум: "Базы";
Текущий архив: 2007.10.28;
Скачать: [xml.tar.bz2];
ВнизTreeView и данные из таблицы Найти похожие ветки
← →
Xmen (2007-06-21 09:16) [0]У меня такой вопрос я в своей проге исползую TreeView и даю значения ему так:
procedure TFUserView.RefreshTree;
var Nodes : TTreeNode;
i : Integer;
abc:string;
PK :^Integer;
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.dstUser do
begin
DisableControls;
if Active then Close;
Screen.Cursor := crHourGlass;
SelectSQL.Clear;
SelectSQL.Add(" SELECT * FROM user_lib");
SelectSQL.Add(" WHERE familiya like """+copy(abc,i,1)+"%"+"""");
SelectSQL.Add(" order by familiya");
try
Open;
except
ShowMessage("Ошибка выполнения запроса");
Screen.Cursor := crDefault;
exit;
end;
EnableControls;
Screen.Cursor := crDefault;
end;
DMLibrary.dstUser.Open;
DMLibrary.dstUser.First;
while not DMLibrary.dstUser.EOF do
begin
new(PK);
PK^ := DMLibrary.dstUser.fieldbyname("ID").AsInteger;
AddChildObject( Nodes,DMLibrary.dstUser.fieldbyname("fio").AsString,PK);
DMLibrary.dstUser.Next;
end;
end;
EndUpdate;
end;
end;
И так у меня получается дерево фамилей по алфавиту.
И когда выбераю фамилию из списка то в форме есть таблица и там должен появится данные из базы соответствуюшие этой фамилии. Уменя это получается но с одной загвоздкой если однофамилци есть то после запроса показывается для первого чела по этой фамили. А запрос такой:
procedure TFUserView.TreeView1Click(Sender: TObject);
var
s,i,v:string;
begin
s:=copy(TreeView1.Selected.Text,1,pos(" ",TreeView1.Selected.Text));
if s = "" then
begin
DMLibrary.dstUser.Close;
DMLibrary.dstKartochka.Close;
end;
with TreeView1 do
if Selected.Level = 1 then
begin
with DMLibrary.dstUser do
begin
DisableControls;
if Active then Close;
Screen.Cursor := crHourGlass;
SelectSQL.Clear;
SelectSQL.Add(" SELECT * FROM user_lib");
SelectSQL.Add(" WHERE familiya = """+s+"""");
try
Open;
except
ShowMessage("Ошибка выполнения запроса");
Screen.Cursor := crDefault;
exit;
end;
EnableControls;
Screen.Cursor := crDefault;
end;
DMLibrary.dstUser.Open;
DMLibrary.dstKartochka.Close;
DMLibrary.dstKartochka.ParamByName("UserId").Value:= DMLibrary.dstUser.fieldbyname("ID").AsVariant;
DMLibrary.dstKartochka.Open;
exit;
end;
end;
Знаю что мои коды неидиалные, могут быт гдето ошибки. Если я чтото пропустил при написания вопроса то можете спросить могу дать уточнения.
← →
ЮЮ © (2007-06-21 09:43) [1]> SelectSQL.Add(" SELECT * FROM user_lib");
> SelectSQL.Add(" WHERE familiya = """+s+"""");
Это лищнее. Ты же его сохранил значение ключевого поля при построении дерева. Вот его и поставляй в
DMLibrary.dstKartochka.ParamByName("UserId").Value:= ...
← →
Johnmen © (2007-06-21 10:05) [2]Ищу ошибки в логике программы на Delphi. Качественно. Недорого.
тел. 123-45-67 спросить СуперДельфина
← →
ЮЮ © (2007-06-21 10:12) [3]> Ищу ошибки в логике программы
Найдещь, звони 234-56-78. Или сообщи в данной ветке.
← →
Xmen (2007-06-21 10:23) [4]:) А я прывик таким насмешкам, потомущто я признаю свою неопытность.
А тепер по вопросу Если увас пример по ТриВю в котором исползуются данные из базы и получения значений из ТриВю или др. Если есть то сбрости на rustam@netman.ru. Спасибо за помощ.
← →
Jeer © (2007-06-21 10:33) [5]
>Если есть то сбрости на rustam@netman.ru Спасибо за помощ.
Спасибо за предложение - стоить это тебе будет всего 3 тыс руб.
← →
ЮЮ © (2007-06-21 10:38) [6]> :) А я прывик таким насмешкам, потомущто я признаю свою
> неопытность.
поэтому читаешь исключительно [2], игнорируя [1]?
new(PK);
PK^ := DMLibrary.dstUser.fieldbyname("ID").AsInteger;
AddChildObject( Nodes,DMLibrary.dstUser.fieldbyname("fio").AsString,PK);
Лишние манипуляции. Для хранений целого хватит и Data:
AddChildObject( Nodes,DMLibrary.dstUser.fieldbyname("fio").AsString, TObject(DMLibrary.dstUser.fieldbyname("ID").AsInteger));
Используем:
DMLibrary.dstKartochka.Close;
DMLibrary.dstKartochka.ParamByName("UserId").Value:= Integer(Selected.Data);
DMLibrary.dstKartochka.Open;
← →
Xmen (2007-06-21 11:35) [7]Спасибо за совет ЮЮ.
А как можна чтобы хранит там 2 значения 1 как видити Фамилия а второй должен быт невидыми и должен хранит в себя ID поля в котором расположена эта фамилия. Например
ID Familiya
1 Иванов
2 Николаев
3 Чумаков
и в дереве отображался бы толь фамилия а когда сделан двойной клик по ТриВю чтобы на таблице вводился записи из базы по зопросу по ID. А то у меня получается запрос по фамилию а там уменя однофамилсев много.
← →
ЮЮ © (2007-06-21 11:52) [8][7] Xmen (21.06.07 11:35)
Ты издеваещься или код не твой?
AddChildObject(
Nodes,
DMLibrary.dstUser.fieldbyname("fio").AsString,
// разве это не фамилия, отображаемая визуально компонентом
TObject(DMLibrary.dstUser.fieldbyname("ID").AsInteger)
// разве это не Id, используемый в дальнейшем для точной, а не по фамилии, идентификации??
);
> А то у меня получается запрос по фамилию а там уменя однофамилсев
> много.
DMLibrary.dstKartochka.ParamByName("UserId").Value:= Integer(Selected.Data);
И где здесь фамилия?
← →
Xmen (2007-06-21 14:31) [9]не в моём запросе есть это.
Не издеваюсь просто я неразбираюсь в ТриВю код составил сам но из др примера но полностю не понял пример.
← →
Xmen (2007-06-21 14:33) [10]>>TObject(DMLibrary.dstUser.fieldbyname("ID").AsInteger)
а как его использовать? в далнейшем
← →
zz 5 © (2007-06-21 20:41) [11]
> >>TObject(DMLibrary.dstUser.fieldbyname("ID").AsInteger)а
> как его использовать? в далнейшем
Например, так для выделенной ветки можно получить значение первичного ключаInteger(Tree.Selected.Data)
← →
ЮЮ © (2007-06-22 02:47) [12]> Не издеваюсь
> а как его использовать? в далнейшем
Уверен, что не издеваешься? В [6] даже слово написано "Используем:"! Или, чукча - не читатель, чукча - писатель?
> но полностю не понял пример.
Зачем тогда "Если увас пример по ТриВю в котором исползуются данные из базы и получения значений из ТриВю или др. Если есть то сбрости на rustam@netman.ru."? У всех код написан теми же непонятными буквами :)
← →
Xmen (2007-06-22 08:15) [13]
> Зачем тогда "Если увас пример по ТриВю в котором исползуются
> данные из базы и получения значений из ТриВю или др. Если
> есть то сбрости на rustam@netman.ru."? У всех код написан
> теми же непонятными буквами :)
Думаю у вас будет другой код :) непохоже на этот пример, вед программисты все пишут по разному у всех есть свой стиль.
> Уверен, что не издеваешься? В [6] даже слово написано "Используем:
> "! Или, чукча - не читатель, чукча - писатель?
Этого я не понял, если имеете введу что я пишу с ошибками то это ктому что русскому языку нас неоченто учили, по этому я много допускаю ошибок сорри
← →
Xmen (2007-06-22 08:18) [14]
> Уверен, что не издеваешься? В [6] даже слово написано "Используем:
> "! Или, чукча - не читатель, чукча - писатель?
А понял на что намикаеш :) я этого пропустил
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.10.28;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.046 c