Главная страница
    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
15-1211808659
kaif
2008-05-26 17:30
2008.07.13
Поздравляю с наступающим запуском суперколлайдера LHC в Церне.


15-1212246350
miklenew
2008-05-31 19:05
2008.07.13
Как получить экземпляр класса зная его handle


15-1211644660
@!!ex_from_browser
2008-05-24 19:57
2008.07.13
DMClient. Сдохла конференция Прочее


3-1202049109
Бэтман
2008-02-03 17:31
2008.07.13
Проблема с Acces


15-1211909535
Ega23
2008-05-27 21:32
2008.07.13
Чем читать DJVU-файлы?





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