Petr,спасибо, все работает. Почему-то я код вставил в свой проект и не заработало.

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

Подскажите пожалуйста, застрял на ровном месте
Есть структура базы данных в виде таблиц:
Прибор учета (PU) - содержит поле номер прибора учета, ID таблицы тип прибора учета). Прибор учета с номером это уникальное значение.
Тип прибора учета (TipP) - содержит тип прибора учета, ID таблицы
Характеристики прибора учета (XarPU) Характеристики прибора учета


Изначально задумка такая.
1. Заполняются типы приборов учета с определенными характеристиками ( в таблице тип прибора учета содержаться ID таблицы характеристики прибора учета)
2. Добавляется прибор учета - выбирается тип прибора учета из ранее добавленных в базу и добавляется номер (в таблице прибор учета содержиться ID таблицы тип прибора учета)

На этом этапе все работает.

Цель: вывести общую таблицу всех добавленных в базу приборов учета со всеми характеристиками, т.е. все заполненные в базу приборы учета с номером.
В приложенном тестовом проекте работает как обычный поиск, так и поиск SQL запросом. Вывести данные с таблицы прибор учета и тип прибора учета проблем нет.

Не могу никак сообразить как вывести все данные с трех таблиц SQL запросом (таблица прибор учета и характеристики не связаны), или, как вариант, выводить данные по характеристикам прибора в таблице2 рядом (поиск по таблице 2 не работает)

4

(5 replies, posted in Russian)

Записи создаютсяч как обычно, чере справочник.
Поставил галочки в указанных строках. Теперь при добавлении записи через TreeView появляются плюсики.

Т.е., в случае с TreeView записи надо вносить только через саму форму TreeView, через  справочник  не получится?

5

(5 replies, posted in Russian)

Извините, не тот файл приложил. Перезалил

6

(5 replies, posted in Russian)

Подскажите, почему в tree view не появляется структура и плюсики для раскрытия? Вроде все сделал как в примере, данные появляются, но сплошняком.

7

(5 replies, posted in Russian)

Извините. Добавил.

8

(5 replies, posted in Russian)

Приветствую!
Потихоньку разбираюсь в программе, создал тестовый проект и чтобы не плодить ошибки решил попросить помощи, что-то я запутался в структуре.
В справочник добавляю потребителей (у потребителя может быть множество объектов)
Добавляю объект через форму  "объект потребителя", где выбираю потребителя.
На главной форме отображаются все объекты потребителя.

Текущая цель - реализовать удобный ввод данных.
Возникли следующие вопросы.

1. При выборе объекта потребителя на главной форме я попадаю на форму "объект потребителя", там я сделал кнопку "карточка потребителя"
В карточке потребителя есть таблица "объекты", где отображаются все объекты потребителя.  Добавить, или редактировать объекты из этой формы не получается (только удалить). Возможно ли с карточки потребителя открыть любой выбранный объект?

2. Как реализовать следующее. У объекта может смениться потребитель.  Поменять потребителя на форме "объект потребителя" не проблема, но как это реализовать, чтобы об этом была запись где-нибудь? Создать новую форму для смены потребителя?

Проект прилагаю.

9

(3 replies, posted in Russian)

k245 Спасибо!
Почему-то в наборе функций у меня такой нет. Это с программы скриншот? У совсем по другому.

10

(3 replies, posted in Russian)

procedure si_DateTimePicker1_OnChange (Sender: string);
var
     i,m,y : integer;
     c : real;
     DD, MM, YY, YYNow: word;
begin

     // проверяем корректность ввода количества дней
     try
         i := StrToInt(si.Edit5.Text); // межповерочный интервал
         c := i/12*365  // преобразуем месяци в дни
     except
         i := 0; // если например в Edit5 ввели текст, то возникла ошибка преобразования в число
     end;

     si.DateTimePicker2.Date := si.DateTimePicker1.Date + c; // прибавляем i дней

     DecodeDate(si.DateTimePicker2.DateTime, YY, MM, DD);  // декодируем дату поверки
     si.Edit6.Text := (IntToStr(MM));  // извлекаем месяц
     si.Edit8.Text := (IntToStr(YY));  // извлекаем год
     m := StrToInt (si.Edit6.Text);
     y := StrToInt (si.Edit8.Text);

     if  (m >=1) and (m <=3)  then si.Edit7.Text := '1'; // определяем квартал
     if  (m >=4) and (m <=6)  then si.Edit7.Text := '2';
     if  (m >=7) and (m <=9)  then si.Edit7.Text := '3' ;
     if  (m >=10) and (m <=12)  then si.Edit7.Text := '4';

end;

Нашел такой скрипт, считает дату следующей поверки приборов и записывает год и квартал поверки. Очень удобно, но межповерочный интервал у автора считается в днях (месяцы преобразует в дни). Мне же надо чтобы прибавлялись не дни, а месяцы, или годы. Если подредактировать этот скрипт, то это можно сделать, но так как в году не всегда 365 дней, то данные получаются некорректные.

11

(42 replies, posted in Russian)

Есть ли примеры больших проектов со скриптами и запросами? Приходится шарить по форуму в поисках обрывков решений и примеров. Понятно, что это могут быть уже какие-то коммерческие проекты, но может быть кто-то для пробы пера что-то делал.

12

(2 replies, posted in Russian)

Постоянно вылазит ошибка No such table.
Создаешь проект, таблицы и связи, закрываешь, открываешь и все, в существующих таблицах ничего поменять нельзя - No such table, новые таблицы добавить можно.