Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.10.2013, 21:19
darkghostnt darkghostnt вне форума
Прохожий
 
Регистрация: 31.10.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
Вопрос Delphi 7 + MS SQL Server

Программа: Регистратура в поликлиннике.
БД MS-SQL: Таблица_1 - Пациенты, Таблица_2 - Врачи, Таблица_3 - Талоны. Возможно таблица_4 для справки по времени.

Вопрос: Как организовать таблицу для справки? (зелёная зона на схеме)
Изображения
Тип файла: jpg Схема.jpg (94.4 Кбайт, 32 просмотров)
Ответить с цитированием
  #2  
Старый 07.11.2013, 21:26
darkghostnt darkghostnt вне форума
Прохожий
 
Регистрация: 31.10.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Код:
//Выбрали Смену выбрали дату
procedure TCT.DTPChange(Sender: TObject);
  var
    myDate : TDateTime;
    mY, mM, mD, D : word;
  begin
    //Оперделили чётность даты
    myDate :=DTP.DateTime;
    DecodeDate (MyDate, mY, mM, mD);
    IF odd(mD) THEN D := 0 ELSE D :=1;

    //Проверяем работу врача
	  IF D=0 THEN
		  IF CB.ItemIndex = 0 THEN     //Если Дата_Чётная и Смена первая,
			  Lab1.Caption := 'Утро'     //То работа утром
		  ELSE
			  Lab1.Caption := 'Вечер'    //Иначе вечером
	  ELSE
		  IF CB.ItemIndex = 0 THEN     //Если Дата_Нечётная и Смена первая,
			  Lab1.Caption := 'Вечер'    //То работа Вечером
		  ELSE
			  Lab1.Caption := 'Утро';    //Иначе утром
  end;

Как сделать условия я разобрался.
Главный вопрос как добавить записи c "индексом один/два" из таблицы SQL Server в ComboBox?
Ответить с цитированием
  #3  
Старый 07.11.2013, 22:54
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

може все-таки DBLookupComboBox ?
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #4  
Старый 08.11.2013, 00:41
darkghostnt darkghostnt вне форума
Прохожий
 
Регистрация: 31.10.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Yurk@
може все-таки DBLookupComboBox ?

Где он находится?
Ответить с цитированием
  #5  
Старый 08.11.2013, 09:19
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

там ----------------->
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
Этот пользователь сказал Спасибо Mrak за это полезное сообщение:
darkghostnt (16.11.2013)
  #6  
Старый 16.11.2013, 13:55
darkghostnt darkghostnt вне форума
Прохожий
 
Регистрация: 31.10.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Осталось оформить отчёт, остальное всё сделал.

Отчёт делал через QuickReport, но он выводит все строки из таблицы.

Как сделать, чтобы: Выбрал нужную строку нажал печать, и вышла на печать только эта строка, оформленная в QuickReport?
Ответить с цитированием
  #7  
Старый 16.11.2013, 14:05
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от darkghostnt
Осталось оформить отчёт, остальное всё сделал.

Отчёт делал через QuickReport, но он выводит все строки из таблицы.

Как сделать, чтобы: Выбрал нужную строку нажал печать, и вышла на печать только эта строка, оформленная в QuickReport?
Лучше в таком случае привязывать QuickReport не к Table, а к Query в котором можно запросом выбрать только нужную запись или записи.
Либо же обрабатывай событие BeforePrint в котором устанавливай параметр PrintBand в False если очередную запись не нужно выводить на печать.
Ответить с цитированием
  #8  
Старый 16.11.2013, 23:32
darkghostnt darkghostnt вне форума
Прохожий
 
Регистрация: 31.10.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Лучше в таком случае привязывать QuickReport не к Table, а к Query в котором можно запросом выбрать только нужную запись или записи.
Либо же обрабатывай событие BeforePrint в котором устанавливай параметр PrintBand в False если очередную запись не нужно выводить на печать.

QReport привязан на ADOQuery в котором прописано
в SQL: SELECT * FROM T.
В Кнопке на "Просмотр печати" прописано просто
Код:
procedure Tf_TAL.Button1Click(Sender: TObject);
  begin
    f_print.QuickRep1.PreviewModal;
  end;

end.
Что добавить на кнопку, чтобы печатал только выбранную запись DBGrid (ту которая отмечена стрелкой)?
в данный момент выводит все записи (картика)
Изображения
Тип файла: jpg Талон.jpg (63.0 Кбайт, 6 просмотров)
Ответить с цитированием
  #9  
Старый 17.11.2013, 12:56
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от darkghostnt
QReport привязан на ADOQuery в котором прописано
в SQL: SELECT * FROM T.
В Кнопке на "Просмотр печати" прописано просто
Код:
procedure Tf_TAL.Button1Click(Sender: TObject);
  begin
    f_print.QuickRep1.PreviewModal;
  end;

end.
Что добавить на кнопку, чтобы печатал только выбранную запись DBGrid (ту которая отмечена стрелкой)?
в данный момент выводит все записи (картика)
Нет. DBGrid и QReport у тебя должны быть привязаны к разным ADOQuery.
Допустим DBGrid привязан к ADOQuery1, а QReport привязан к ADOQuery2.
Пользователь выбирает нужную ему запись в ADOQuery1 (посредством DBGrid) и нажимает кнопку Button1 для формирования отчёта, в которой делаем примерно так:
Код:
procedure Tf_TAL.Button1Click(Sender: TObject);
begin
  ADOQuery2.Close;
  ADOQuery2.SQL.Text := 'SELECT * FROM T WHERE id='+ADOQuery1.FieldByName('id').AsString;
  ADOQuery2.Open;
  f_print.QuickRep1.PreviewModal;
end;
Здесь "id" - это ключевое поле. Если у тебя это поле называется по-другому то исправь здесь.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
darkghostnt (17.11.2013)
  #10  
Старый 17.11.2013, 18:34
darkghostnt darkghostnt вне форума
Прохожий
 
Регистрация: 31.10.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Подскажите пожалуйста как настроить Print Preview?

Он при запуске открывается на полный экран и делает страницу по ширине, а она у меня 7х11см.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:47.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter