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

Вниз

Вопрос по коду алгоритма   Найти похожие ветки 

 
Мария   (2008-06-09 15:12) [0]

Добрый день!
Программа по обработке заявок от клиентов сервисного отдела.
БД-Аксесс.
Есть алгоритм,который не дает записывать мастера на одно и то же время.Но в коде есть ошибка,которую не могу найти.
Кнопка "записать" не доступна только на 2-х промежутках времени(время с 10-12,12-14),а в остальных(14-16,16-18) можно заявку всё равно записать.
Что не так?
Вот кусок кода:

procedure TfmAddZ.DBLookupComboBox5Click(Sender: TObject);

begin

 fmMD.adot1.First;
 while not fmMD.adot1.Eof do
begin

  If  DBLookupComboBox5.KeyValue = fmMD.adot1["График_работы_ID"]
Then  begin
ShowMessage("Мастер занят, введите другое время");
      BitBtn3.Enabled := false;
      fmMD.adot1.Next ;

     end
else

    BitBtn3.Enabled := true;

   fmMD.adot1.Next;

   end;

      end;


 
Palladin ©   (2008-06-09 15:14) [1]

такое форматирование у меня по пьяни даже неполучится...


 
clickmaker ©   (2008-06-09 15:22) [2]

> fmMD.adot1.Next ;

при срабатывании первого условия выполнится 2 раза. Так надо?


 
Мария   (2008-06-09 15:37) [3]


> при срабатывании первого условия выполнится 2 раза. Так
> надо?

Нет,так не надо.Нужно пройти по всем записям таблицы и посмотреть удовлетворяет ли условиям значения последующие записи.


 
clickmaker ©   (2008-06-09 16:27) [4]

> [3] Мария   (09.06.08 15:37)

ну так, у тебя перескок получается тогда


 
Мария   (2008-06-09 16:29) [5]

А как исправить этот перекос не подскажите?


 
Sergey13 ©   (2008-06-09 16:53) [6]

> [5] Мария   (09.06.08 16:29)

Первый next убери.


 
Мария   (2008-06-09 17:00) [7]


> Первый next убери.

Тогда кнопка отключается только на последней записи, а на трёх предыдущих нет.


 
Мария   (2008-06-10 11:31) [8]

Всем спасиб за советы.
Код,который исправил ошибку приведен ниже:

procedure TfmAddZ.DBLookupComboBox5Click(Sender: TObject);
begin
 fmMD.adot1.First;
 while not fmMD.adot1.Eof do begin
       If  DBLookupComboBox5.KeyValue = fmMD.adot1["График_работы_ID"]
       then  begin
         ShowMessage("Мастер занят, введите другое время");
         BitBtn3.Enabled := false;
         Exit;
       end;
     fmMD.adot1.Next;
 end;
 BitBtn3.Enabled := true;
end;


 
Sergey13 ©   (2008-06-10 11:57) [9]

> [8] Мария   (10.06.08 11:31)

А зачем вообще в цикле перебирать? Есть ведь Locate.


 
MsGuns ©   (2008-06-10 13:03) [10]

procedure TfmAddZ.DBLookupComboBox5Click(Sender: TObject);
begin
   BitBtn3.Enabled :=  not fmMD.adot1.Locate("График_работы_ID"                                   ,DBLookupComboBox5.KeyValue,[]);
end;



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

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

Наверх




Память: 0.46 MB
Время: 0.007 c
3-1201969179
Lamer666
2008-02-02 19:19
2008.07.13
Записи ADOQuery


15-1211778536
AndreyV
2008-05-26 09:08
2008.07.13
Phoenix приземлился на Марс


2-1213609411
Степан
2008-06-16 13:43
2008.07.13
Программно поместить TWebBrowser


15-1212158236
dr_creigan
2008-05-30 18:37
2008.07.13
Интернет-трафик


2-1213251527
Yury
2008-06-12 10:18
2008.07.13
очистка каталога





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский