Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2010, 13:23   #1
BaiAs
Форумчанин
 
Регистрация: 20.05.2010
Сообщений: 100
Сообщение запись в дбгрид

Здраствуйте.
помогите с кодом
Код:
procedure TForm3.Button1Click(Sender: TObject);
var i :integer;
begin
DataModule1.cdsPrih.Insert;
DataModule1.cdsPrihdata.Value:=DateTimePicker1.Date;
DataModule1.cdsPrihnomer.Value:=DBEdit1nomer.Field.CurValue;
DataModule1.cdsPrihPostav.Value:=lookPOStav.ListField;
DataModule1.cdsPrihSklaD.Value:=lookSklad.listField;
DataModule1.cdsPrih.Append;
i:=DataModule1.cdsPrih.ApplyUpdates(10);
DataModule1.cdsPrih.Active:=false;
DataModule1.cdsPrih.Active:=true;
DataModule1.cdsPrihSlave.Insert;
DataModule1.cdsPrihSlavetovar.Value:=looktovar.listField;
DataModule1.cdsPrihSlavekolvo.Value:=DBEdit1kolvo.Field.AsInteger;
DataModule1.cdsPrihSlave.Append;
i:=DataModule1.cdsPrihSlave.ApplyUpdates(10);
DataModule1.cdsPrihSlave.Active:=false;
DataModule1.cdsPrihSlave.Active:=true;
close;
в новой строке добавляется только поле с датой
остальные поля добавляются тольков первую по счету строку
общее кол во строк в дбгриде растет но там нет данных других полей
BaiAs вне форума Ответить с цитированием
Старый 30.05.2010, 13:48   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

А че бы запросом не вставлять запись?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 31.05.2010, 14:50   #3
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
DataModule1.cdsPrih.Insert;
//Вставляем новую пустую запись в набор данных
DataModule1.cdsPrihdata.Value:=DateTimePicker1.Date;
//записываем в поле data этой записи дату из DateTimePicker1
DataModule1.cdsPrihnomer.Value:=DBEdit1nomer.Field.CurValue;
//записываем в поле nomer текущее значение поля подключенного к
// DBEdit1nomer с учетом изменений, внесенных другими пользователями.
//(вот ещё интересно к какому датасету этот компонент подключен)
DataModule1.cdsPrihPostav.Value:=lookPOStav.ListField;
// записываем в поле Postav Имя поля в источнике ListSource компонента
//lookPOStav (интерестно зачем?)
DataModule1.cdsPrihSklaD.Value:=lookSklad.listField;
//ну тут на предыдущеепохоже
//внимание самое интерестное
DataModule1.cdsPrih.Append;
//Добавляет новую пустую запись в конец набора данных
i:=DataModule1.cdsPrih.ApplyUpdates(10);
//Отправляет измененные данные провайдеру для записи в базу данных
DataModule1.cdsPrih.Active:=false;//закрыли
DataModule1.cdsPrih.Active:=true;//открыли
DataModule1.cdsPrihSlave.Insert;// тут не интерестно всё поновой сначала
DataModule1.cdsPrihSlavetovar.Value:=looktovar.listField;
DataModule1.cdsPrihSlavekolvo.Value:=DBEdit1kolvo.Field.AsInteger;
DataModule1.cdsPrihSlave.Append;
i:=DataModule1.cdsPrihSlave.ApplyUpdates(10);
DataModule1.cdsPrihSlave.Active:=false;
DataModule1.cdsPrihSlave.Active:=true;
close;//тут форму вроде закрыли
Итак после всех этих действий у нас в табличку добавится дата и названия 2 полей (если свойство выствавлено). И всё это произодёт 2 раза.
Кто вас этому научил? если книга выкинте немедленно.
Если уж так, то добавляем запись
Код:
ClientDataSet1.Append; //добавляем в конец пустую запись
//заполняем поля этой пустой записи
//Лучше обращатся по имени поля в наборе и нагляднее и контролируем
//тип данных (это уже имхо)
ClientDataSet1.Fields.FieldByName('data').AsDateTime:=DateTimePicker1.Date;
ClientDataSet1.Fields.FieldByName('имя поля1').AsDateTime:=<какието данные>;
ClientDataSet1.Fields.FieldByName('имя поля2').AsDateTime:=<какието данные>;
ClientDataSet1.Fields.FieldByName('имя поля3').AsDateTime:=<какието данные>;
....
ClientDataSet1.post. //сохраняем
ClientDataSet1.ApplyUpdates(-1);//
както так
vovk вне форума Ответить с цитированием
Старый 01.06.2010, 09:14   #4
BaiAs
Форумчанин
 
Регистрация: 20.05.2010
Сообщений: 100
По умолчанию

хочу сделать как в 1с ввод приходной накладной
мастер детайл знаю как связать как на один документ оформить несколько товаров?
BaiAs вне форума Ответить с цитированием
Старый 01.06.2010, 09:40   #5
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

ММ ну незнаю как у вас там с таблицами, у меня б в базе как минимум были таблицы, товаров, поставшиков,и таблицы прихода, и отпуска товара(возможно в 1 таблице) вот к примеру в таблице прихода как минимум поля № этого прихода-отпуска, № товара №, поставщика, дата, (возможно кто принимал из таблицы сотрудников), (возможно № склада куда отгрузили) и ещё много возможно в зависимости от местных условий (ну от организации для которой эта база существует).
ПРи приёме добавляем поставщика в таблицу поставщиков (если поставщик новый), добавляем товар в таблицу товаров (опять же если товар новый), добавляем количество товара в таблицу товаров(спорный вопрос надо ли) и добавляем записи в таблицу прихода ну к примеру № прихода (скорее всего должен назначатся автоматически) № товара, № поставщика, количество товара, фио кто принял, фио кто сдал, дата (и возможно ещё сопутствующая информация, предположим № путевого листа, да мало ли) если товаров несколько то добавляем все с ОДНИМ номером прихода (запросом гораздо проще поверьте). Потом по № прихода можно запросит информацию и сформировать приходный документ.. В общем както так. Если где ошибся надеюсь поправят..

Если о том что выше, то делаем добавление записи N раз а после ClientDataSet1.ApplyUpdates(-1); вот и добавятся в базу все записи

Последний раз редактировалось vovk; 01.06.2010 в 09:57.
vovk вне форума Ответить с цитированием
Старый 01.06.2010, 10:25   #6
BaiAs
Форумчанин
 
Регистрация: 20.05.2010
Сообщений: 100
По умолчанию

дело в том что у меня на сервере адо тейблы и много
если все менять то это вообще...
мои поля в табл:

таб Приходмастер с полями(все не буду переч) дата(лукап),номер(числ),поставщик(л укап),склад-получ(лукап)

таб Приходслейв с полями
товар(лукап), кол-во(числ), сумма(вычисляемое)

в форме ввода стоят дблукапкомбобоксы под лукап поля и дбедиты под числовые поля
BaiAs вне форума Ответить с цитированием
Старый 01.06.2010, 10:36   #7
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

ну и слава богу, у всех этих компонентов выбранное значение находится в свойстве Text, его и используйте..
Честно говоря всё что происходит я на 80% "телепачу" вы знаете телепат из меня так себе, устаю быстро.
непонятно ни куда записываем ни что надо записать, ни состав таблиц, ни БД в общем мой телепатор даёт сбои

Последний раз редактировалось vovk; 01.06.2010 в 10:41. Причина: ошибки правлю, люблю я их делать
vovk вне форума Ответить с цитированием
Старый 01.06.2010, 10:41   #8
BaiAs
Форумчанин
 
Регистрация: 20.05.2010
Сообщений: 100
По умолчанию

извините конечно что так изясняю
только если я все буду описывать вы поможите?
BaiAs вне форума Ответить с цитированием
Старый 01.06.2010, 10:47   #9
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Боже ж мой, а я чем занимаюсь по вашему? мои посты по информативности, и количеству символов больше ваших..
НЕ заморачивайтесь, будет понятный вопрос будут и ответы. Это очень хороший форум, тут принято помогать, по крайней мере если человек чтото сам делает, а не просит чтоб просто дали код всего что надо.
vovk вне форума Ответить с цитированием
Старый 01.06.2010, 11:03   #10
BaiAs
Форумчанин
 
Регистрация: 20.05.2010
Сообщений: 100
По умолчанию

я уже делаю много дней, в конце хочу получить как в приложениях
форму ввода удалил(хотел хоть как то сдел) теперь мышкой выбираю значенияиз дбгрида, навигаторами сохраняю(см прил "мое.джпг") код не прошу
проэкт свой могу выслать, нехватает опыта
Изображения
Тип файла: jpg начальный вид.JPG (27.6 Кб, 152 просмотров)
Тип файла: jpg создаем.JPG (34.1 Кб, 100 просмотров)
Тип файла: jpg 3 ввод.JPG (50.2 Кб, 76 просмотров)
Тип файла: jpg 4 готов док.JPG (26.0 Кб, 107 просмотров)
Тип файла: jpg МОЕ.JPG (53.6 Кб, 71 просмотров)
BaiAs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из дбгрид в sql server kate158 БД в Delphi 7 25.08.2009 16:56
Как сделать,так что бы запись в из одного ДБГрида добавлялась в другой ДБгрид Hito БД в Delphi 10 19.04.2009 21:14
Добавить строку в ДБГрид и удалить MbIJIO БД в Delphi 4 18.04.2009 12:45
буфер,дбгрид,навигация по записям kate158 БД в Delphi 0 28.10.2008 15:59
первод данных из дбГрид в СтрингГрид! ANT35 Помощь студентам 3 19.10.2008 21:08