1 (edited by kunar80 2014-12-16 15:06:06)

Topic: Проект "Закрепление имущества". Прошу помочь.

Никак не могу справиться с изображениями. Записываются в таблицу с наименованием имущества - т.е. к конкретной вещи привязано его изображение. Каждая вещь имеет перечень инвентарных номеров. В заполненной карточке сотрудника, содержащей несколько предметов, показ изображения даёт сбой: при нынешнем наличии трёх изображений на первых трёх записях показывает картинки, но не те, а в порядке добавления их в базу,  далее картинки вообще не показывает. Прошу помочь.

Post's attachments

Attachment icon Закрепление имущества.rar 73.88 kb, 428 downloads since 2014-12-16 

Не боги горшки лепят!

Re: Проект "Закрепление имущества". Прошу помочь.

Переделайте это событие, оно должно быть таким:

procedure frmNew_TableGrid1_OnCellClick (Sender: string; ACol, ARow: Integer);
var
    idImage: string;
begin
     idImage := SQLExecute ('SELECT id_name FROM fixed WHERE fixed.id=' + frmNew.TableGrid1.sqlValue);
     frmNew.DBImage1.Clear;

     if ValidInt(idImage) then frmNew.DBImage1.LoadFromDatabase( 'name', 'image', StrToInt(idImage) );
end;

вы пытались из frmNew.TableGrid1 получить идентификатор записи таблицы fixed, а вам нужен идентификатор записи из таблицы name, так как именно в ней хранится изображение.

Dmitry.

Re: Проект "Закрепление имущества". Прошу помочь.

Спасибо, Дмитрий! Уже исправил и работает!

Не боги горшки лепят!

Re: Проект "Закрепление имущества". Прошу помочь.

Добавил в проект форму frmReports, в гриде которой собрал всё вместе из предыдущих таблиц, чтобы дать возможность пользователю осуществлять отбор по любому идентификатору и формировать различные отчёты. Всё, в принципе, работает отлично, кроме одного: как только в грид формы frmReports добавляю колонку type.type, немедленно всё в таблице ломается. В прилагаемом тестовом проекте type.type нет.
И ещё есть хотелка, но не знаю пока, как воплотить: при формировании карточки сотрудника хотелось бы видеть в комбобоксе только те инвентарные номера, которые свободны, т.е. не закреплены ни за кем.

Post's attachments

Attachment icon Закрепление имущества.rar 74.89 kb, 429 downloads since 2014-12-16 

Не боги горшки лепят!

Re: Проект "Закрепление имущества". Прошу помочь.

Порой TableGrid не может правильно определить, как нужно связать таблицы, если их много, сделал в таблице fixed вычисляемое поле для Type, которое и добавил в TableGrid


Сделал фильтр для ComboBox, чтобы при создании новой записи видеть только свободные инвентарные номера (комментарии в скрипте)


Скачайте пожалуйста последнюю бета версию 1.48, исправил ошибку (не работало свойство Filter у ComboBox при использовании связанных списков)
https://www.dropbox.com/s/6rz92s72djtmv … 8.zip?dl=0



Исправленный проект приложен к сообщению.

Post's attachments

Attachment icon Закрепление имущества2.zip 117.38 kb, 438 downloads since 2014-12-17 

Dmitry.

6 (edited by kunar80 2014-12-18 15:40:30)

Re: Проект "Закрепление имущества". Прошу помочь.

СПАСИБО. Теперь бьюсь с отчётом. Ребята, кто в отчётах силён, помогите новичку! Если из грида данные в отчёт берутся, то как к этому добавить ещё данные из боксов на этой же форме (frmNew)? Ведь они принадлежат другим, причём совершенно разным таблицам!
А может быть таблицы staff и fixed объединить в одну? Думаю, стоит попробовать этот путь.

Post's attachments

Attachment icon Закрепление имущества3.rar 76.33 kb, 418 downloads since 2014-12-18 

Не боги горшки лепят!

Re: Проект "Закрепление имущества". Прошу помочь.

Изменил таблицы. Отчёт вроде бы работает. Но появилась другая проблема: появляются пустые строки в гриде при его заполнении данными. Никак не могу понять, в чём дело?

Post's attachments

Attachment icon Закрепление имущества4.rar 120.41 kb, 417 downloads since 2014-12-18 

Не боги горшки лепят!

Re: Проект "Закрепление имущества". Прошу помочь.

К сожалению такая структура таблиц думаю неверная.
На форме frmNew у вас есть компонент TableGrid, куда должны были бы добавляться дочерние записи таблицы stuff, но все добавляется опять в таблицу staff


вам необходимо пересмотреть структуру базы данных.

Dmitry.

9 (edited by kunar80 2014-12-19 10:57:42)

Re: Проект "Закрепление имущества". Прошу помочь.

DriveSoft wrote:

К сожалению такая структура таблиц думаю неверная.
На форме frmNew у вас есть компонент TableGrid, куда должны были бы добавляться дочерние записи таблицы stuff, но все добавляется опять в таблицу staff


вам необходимо пересмотреть структуру базы данных.

Переспал с проектом и понял, что котлеты должны быть отдельно, а мухи отдельно. Вариант 4 отпадает. Возвращаюсь к третьему, по которому был вопрос составления отчёта. Данные из грида в отчёт записываются правильно, а с данными из основной таблицы никак не могу справиться: одни записываются, но не корректно (не соответствуют карточке), другие (дата и ФИО) вообще не могу вывести.
Код такой (без даты карточки и ФИО):

SELECT
fixed.id,
fixed.note,
fixed.id_staff,
departament,
division,
room,
job,

type.type,
name.name,
num.num

FROM fixed


LEFT OUTER JOIN departament ON departament.id=fixed.id_staff
LEFT OUTER JOIN division ON division.id=fixed.id_staff
LEFT OUTER JOIN room ON room.id=fixed.id_staff
LEFT OUTER JOIN job ON job.id=fixed.id_staff
LEFT OUTER JOIN type ON type.id=fixed.id_type
LEFT OUTER JOIN name ON name.id=fixed.id_name
LEFT OUTER JOIN num ON num.id=fixed.id_num

WHERE fixed.id_staff={EditCounter1};

И ещё, как записать счётчик строк в отчёте. Запись [COUNT(,)] даёт ошибку.

Post's attachments

Attachment icon Закрепление имущества5.rar 76.5 kb, 417 downloads since 2014-12-19 

Не боги горшки лепят!

Re: Проект "Закрепление имущества". Прошу помочь.

Данный отчет можно сделать без использования SQL запроса, используя кнопку с действием "Отчет"
просто добавив в список необходимые поля.


Доработал ваш проект, также добавил кнопку отчета на форму Form1

Post's attachments

Attachment icon Закрепление имущества5.zip 118.85 kb, 455 downloads since 2014-12-20 

Dmitry.