Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Правильное сохранение при Мастер- Детаил [D7, FireBird]


Страницы:   1 2 3 4

Xmen ©   (2009-03-26 07:16:00) 

Привет мастерам.
Делаю программу для склада. Сделал таблицы для прихода товара. Установил связь мастер - детаил. Вопрос в том что если создать форму и поместит в нем 2 грида, один мастер другой детаил то при вводе мастер все нормально но в детаил таблицу ввод не получается изза того что не сохранен данные в мастер таблице. Как можно сохранит сразу и мастер и детаил без commit  таблицы мастера?


Сергей М.   (2009-03-27 13:22:00) [21]


> Xmen   (27.03.09 12:34) [52]


Смысл каждой записи в "книге движения" - тогда-то там-то на основании такого-то документа осуществлена такая-то операция над такой-то номенклатурно-учетной единицей в таком-то количестве для такой-то единицы измерения по такой-то учетной стоимости на такую-то сумму.


Sergey13   (2009-03-27 13:11:00) [22]

> [52] Xmen   (27.03.09 12:34)
> Правильно ли я создал?

Если таблицы создались - значит синтаксически правильно. Единственно не указаны внешние ключи, что важно.
Если по смыслу, то много недоработок.

> Таблица движение товаров.
Это товары в документе на движение, а не то что ты написал. Это принципиальная разница.

>   N_DOG       INTEGER,

>   SUMMMA_DOC  NUMERIC(15,2),
>   PRINIAL     VARCHAR(50),
>   SDAL        VARCHAR(50),
>   ORG         VARCHAR(100),
>   TYPE_DOC    INTEGER

Это что и зачем?

>   ID_OPER  INTEGER

Это относится к документу, а не к товару.

>   DATE_OPER  DATE

Это вообще зачем? Это маленький справочник, никаких дат там не нужно.

Ну и про то что я писал тебе в письме. Что и как учитывать будешь, определился? Без этого проектировать структуру бесполезно.


Игорь Шевченко   (2009-03-27 13:11:00) [23]


> Правильно ли я создал?


Нет


Xmen   (2009-03-27 12:34:00) [24]

почитав ваши ответы изменил структуру таблиц.
Таблица движение товаров.
CREATE TABLE TOVAR (
   ID       INTEGER NOT NULL,
   ID_DOC   INTEGER,
   NAME     VARCHAR(100),
   ED_IZ    INTEGER,
   SENA     NUMERIC(15,2),
   KOL      INTEGER,
   ID_OPER  INTEGER
);
ALTER TABLE TOVAR ADD CONSTRAINT PK_TOVAR PRIMARY KEY (ID);

Таблица документов(приход/расход)
CREATE TABLE DOCUMENT (
   ID          INTEGER NOT NULL,
   N_DOC       INTEGER,
   N_DOG       INTEGER,
   DATE_DOC    DATE,
   SUMMMA_DOC  NUMERIC(15,2),
   PRINIAL     VARCHAR(50),
   SDAL        VARCHAR(50),
   ORG         VARCHAR(100),
   TYPE_DOC    INTEGER
);
ALTER TABLE DOCUMENT ADD CONSTRAINT PK_DOCUMENT PRIMARY KEY (ID);

Операции по товарам
CREATE TABLE OPERATION (
   ID         INTEGER NOT NULL,
   ID_TOVAR   INTEGER,
   TYPE_OPER  INTEGER,
   DATE_OPER  DATE
);
ALTER TABLE OPERATION ADD CONSTRAINT PK_OPERATION PRIMARY KEY (ID);

Правильно ли я создал?


Сергей М.   (2009-03-27 09:14:00) [25]


> Скупой платит дважды


А бездумно щедрый четырежды)


Anatoly Podgoretsky   (2009-03-27 09:08:00) [26]

Не нужно, особенно с такими знаниями.


Xmen   (2009-03-27 06:46:00) [27]

А что тепер и написать программу ненужно?


Игорь Шевченко   (2009-03-27 02:31:00) [28]

Потянуло 90-ми годами, когда каждый писал свои склад, бухгалтерию и отдел кадров, преимущественно на клиппере. Я думал, за 15 лет весь этот глючный зоопарк благополучно вымер вместе с носителями идей, ан нет, кому-то лавры старины покоя не дают, когда кажется, что написать свое много дешевле, чем купить готовое.


MsGuns   (2009-03-26 22:22:00) [29]

>Сергей М. ©   (26.03.09 17:43) [46]
>Но уж больно дорог этот "топор" оказывается в приобретении, саппорте и >эксплуатации.

Скупой платит дважды (с)


Сергей М.   (2009-03-26 17:43:00) [30]


> MsGuns ©   (26.03.09 16:51) [45]


А, ну вот теперь понятно, с какой стороны "топор" рассматривается)

В целом согласен.

Но уж больно дорог этот "топор" оказывается в приобретении, саппорте и эксплуатации.


MsGuns   (2009-03-26 16:51:00) [31]

>Сергей М. ©   (26.03.09 16:02) [43]
>Что-то тебя не понять)
>То на "топорность" одноэсины сетуешь, то агитируешь народ за одноэсину как "лучшее решение")

Что поделаешь - 1с так заполонила наш мир, что приходится искать к ней подходы.
А заполонила потому еще, что над нею очень немало потрудились НЕпрограммисты (бухгалтеры, экономисты, товароведы и проч). Ей очень трудно отказать в том, что предметная область представлена очень даже полно и понятно, а схема документооборота максимально приближена к реальной. Поэтому бухгалтеры так ее полюбляют :)


Anatoly Podgoretsky   (2009-03-26 16:48:00) [32]

> Сергей М.  (26.03.2009 16:02:43)  [43]

Чего странного то, ведь по знаниям, кому то умные программы, кому то тупые.


Сергей М.   (2009-03-26 16:02:00) [33]


> MsGuns ©   (26.03.09 15:48) [40]


Что-то тебя не понять)

То на "топорность" одноэсины сетуешь, то агитируешь народ за одноэсину как "лучшее решение")


Sergey13   (2009-03-26 15:58:00) [34]

> [40] MsGuns ©   (26.03.09 15:48)

Да ладно тебе. 8-)

Мы все учились понемногу
Чему-нибудь и как-нибудь.
(с) Пушкин

ЗЫ: только наверное надо в соответствующий раздел переносить топик


Виталий Панасенко   (2009-03-26 15:57:00) [35]

Я так и не понял, почему тебе так мучительно первоначально записать мастер запись? Получишь ИД и используй его уже в детали...


MsGuns   (2009-03-26 15:48:00) [36]

>Xmen   (26.03.09 13:59) [29]

С ума застрелиться !
Товарысч не только писать, но и читать не умеет.
[19] вообще, а абзац про 1с в частности для кого писан был ?

Опять-таки прежде чем садиться писать всякие "мастер-деталы" неплохо бы поиметь какое-никакое представление о ПРЕДМЕТНОЙ ОБЛАСТИ ибо судя по ветке у автор в торговле не ухом, не рылом. Неплохо также подчитать что-нибудь по проектированию БД вообще, например про нормализацию (это к вопросу про "наименования" и т.д.)

Короче, лучшее решение - это 1С. Иначе это будет что-то страшное, а не прогроамма.

Ну а если нужно "поскорее" или "для папы", то эксель в зубы и вперед с песней


Виталий Панасенко   (2009-03-26 15:39:00) [37]

при CashedUpdates=True НИКАКИЕ ДАННЫЕ НЕ ПИШУТСЯ В БД ДО ВЫЗОВА ApplyUpdates соответствующего НД... сделай в OnNewrecord мастер НД получение ИД (отдельным реальным запросом, который "дергает" генератор (select gen_id(gen_name, 1) from rdb$database)
begin
GenQry.Open;
Master.FieldByName('ID').AsInteger := GetQry,FieldByName('GEN_ID_NAME').AsInteger;
end;
типа такого


Виталий Панасенко   (2009-03-26 15:33:00) [38]


> Xmen   (26.03.09 15:19) [35]
>
>
> > Виталий Панасенко   (26.03.09 14:54) [33]
>
> Но для этого нужно сохранить мастер таблицу

Я такого не говорил.


Виталий Панасенко   (2009-03-26 15:32:00) [39]


> Xmen   (26.03.09 15:23) [36]
>
>

См.
> Виталий Панасенко   (26.03.09 09:40) [17]


Xmen   (2009-03-26 15:23:00) [40]


> Sergey13 ©   (26.03.09 14:58) [34]
> > [30] Xmen   (26.03.09 14:05)> Вед id генерируется после
> сохранения поля в мастере.ИД не генерируется. Генерируется
> значение генератора (тафтология однако 8-) которое прописывается
> в ИД. Когда генерируется - тебе решать.

А как можно это сделать


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо