Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2007, 04:00   #1
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию Список последних записей

Вопрос такой:
1. есть таблицы в SQL Server2000
2. есть приложение в Delphi7
необходимо запомнить последние 10 сохраненные записи таблицы и вывести в меню. по аналогии в MS Word, но вместо файлов записи в таблице (например с номером акта, организации и номером записи) при нажатии на выбранном переход на эту запись.
ГОСЕАН вне форума Ответить с цитированием
Старый 03.12.2007, 16:06   #2
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

А в чем проблема-то?
Сохрани ключ нужной записи, привяжи его к соответствующему пункту меню, а потом, при выборе этого пункта меню переходи по ключу на нужную запись.
Только и всего
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 03.12.2007, 17:16   #3
Domovoy
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 254
По умолчанию

Если у тебя при добавлении новой записи есть поле с датой добавления , то делай так:
при загрузки формы считывай их : select top 10 * from tab1 order by dinput, пробегаешься по нд и пуляешь их в менюшку примерно так:
Код:
var
  item:TMenuItem;
begin
  ADOQuery1.First;
  while not ADOQuery1.Eof do
  begin
    item:=TMenuItem.Create(nil);
    item.Caption:=ADOQuery1['id'];
    mainmenu1.Items[0].Add(item);
    ADOQuery1.Next;
  end;
end;
Вариантов очень много а это всего лиш пример
Domovoy вне форума Ответить с цитированием
Старый 04.12.2007, 18:05   #4
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Domovoy Посмотреть сообщение
Если у тебя при добавлении новой записи есть поле с датой добавления , то делай так:
при загрузки формы считывай их : select top 10 * from tab1 order by dinput, пробегаешься по нд и пуляешь их в менюшку примерно так:
Код:
var
  item:TMenuItem;
begin
  ADOQuery1.First;
  while not ADOQuery1.Eof do
  begin
    item:=TMenuItem.Create(nil);
    item.Caption:=ADOQuery1['id'];
    mainmenu1.Items[0].Add(item);
    ADOQuery1.Next;
  end;
end;
Вариантов очень много а это всего лиш пример
а если из трех полей в меню?
ГОСЕАН вне форума Ответить с цитированием
Старый 04.12.2007, 18:22   #5
Domovoy
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 254
По умолчанию

Принцип тот же. Главное не забудь создать обработчика события при нажатии на менюшку.
Domovoy вне форума Ответить с цитированием
Старый 05.12.2007, 17:49   #6
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Domovoy Посмотреть сообщение
Принцип тот же. Главное не забудь создать обработчика события при нажатии на менюшку.
чот не получатся,
в меню должно отражаться следующим образом:
номер записи, номер акта, организация.
всяко разно пробовал, но больше одного параметра id не хочет брать. А обработчик события как сделать? необходимо при выборе определенной строки в меню добавленной переходило на определенную запись таблицы в открытой форме
ГОСЕАН вне форума Ответить с цитированием
Старый 05.12.2007, 18:31   #7
Domovoy
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 254
По умолчанию

Кинь свой код и сразу станет яснее.
Domovoy вне форума Ответить с цитированием
Старый 06.12.2007, 14:19   #8
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Domovoy Посмотреть сообщение
Кинь свой код и сразу станет яснее.
в том то и дело, что код я ваш использовал, только вот один момент item.Caption:=Query69['indakt' + пытаюсь присоединить NAkt и NOrg ];
как бы в одной строке меню. А вот обработчик не знаю как делать, необходимо чтобы переходило по indakt (форму открывать не надо, оно открыто, просто необходимо перейти на запись по индексному полю indakt)
ГОСЕАН вне форума Ответить с цитированием
Старый 06.12.2007, 18:35   #9
Domovoy
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 254
По умолчанию

Код:
procedure TForm1.myItem(sender: TObject);
begin
  DataSet.Locate('id',TMenuItem(sender).Tag,[loCaseInsensitive,loPartialKey]);
end;

TForm1.FormCreate(Sender: TObject);
var
  item:TMenuItem;
  id:integer;
begin
  id:=DataSet['id'];
  DataSet.First;
  while not DataSet.Eof do
  begin
    item:=TMenuItem.Create(nil);
    item.Caption:=dataset.fieldbyname('id').AsString+' '+dataset.fieldbyname('fio').AsString;
    item.Tag:=DataSet['id'];
    item.OnClick:=myItem;
    mainmenu1.Items[2].Add(item);
    DataSet.Next;
  end;
  DataSet.Locate('id',id,[loCaseInsensitive,loPartialKey]);
end;
Вместо Dataset Query и т.п. короч потомки его.
Domovoy вне форума Ответить с цитированием
Старый 10.12.2007, 19:46   #10
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Domovoy Посмотреть сообщение
Код:
procedure TForm1.myItem(sender: TObject);
begin
  DataSet.Locate('id',TMenuItem(sender).Tag,[loCaseInsensitive,loPartialKey]);
end;

TForm1.FormCreate(Sender: TObject);
var
  item:TMenuItem;
  id:integer;
begin
  id:=DataSet['id'];
  DataSet.First;
  while not DataSet.Eof do
  begin
    item:=TMenuItem.Create(nil);
    item.Caption:=dataset.fieldbyname('id').AsString+' '+dataset.fieldbyname('fio').AsString;
    item.Tag:=DataSet['id'];
    item.OnClick:=myItem;
    mainmenu1.Items[2].Add(item);
    DataSet.Next;
  end;
  DataSet.Locate('id',id,[loCaseInsensitive,loPartialKey]);
end;
Вместо Dataset Query и т.п. короч потомки его.
Спасибо огромное, получилось!
ГОСЕАН вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43
Удаление записей Blackmore БД в Delphi 2 26.05.2008 08:18
Удвоить каждый из первых пяти цифровых символов и удалить 5 последних латинских букв gred Помощь студентам 5 16.05.2008 23:20
Найти сумму последних L положительных элементов в массиве A={a[i]}. Assembler Kasim Помощь студентам 2 16.12.2007 16:12
Объединенные строки, целостность последних строк при печати/просмотри Hammerok Microsoft Office Excel 1 01.11.2007 20:59