Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
ВнизPOST and IBX Найти похожие ветки
← →
softmaster (2003-05-23 12:09) [0]Вот не понимаю я!
использую IBX.
2 таблицы Главная и подчиненная.
вызываю для главной insert
некоторые поля сразу заполняю из проги.
Затем вызываю POST и сразу EDIT.
Высвечиваю окно для редактирования данных пользователем.
он их редактирует, затем POST и обновляю набор.
Прикол в том, что данные не сохраняются почему-то.
Вернее те данные, которые я не вводил до начала высвечивания
формы для редактирования- сохраняются,
а те, которые уже вводил- не сохраняются.!!!
Не пойму в чем дело
что я не так делаю.????
Помогите пожалуйста разобраться...
Еще есть прикол с заполнением подчиненной таблицы,
но об этом позже...
← →
Наталия (2003-05-23 12:13) [1]Код приведи. Отгадывать твои мысли нет возможности.
← →
softmaster (2003-05-23 12:17) [2]Пишу код
//-----------------получение значения поля DOCNum
D.Query_Ord_DocNum.Close;
D.Query_Ord_DocNum.Prepare;
D.Query_Ord_DocNum.Open;
//-----------------
D.Orders.insert; //метод Insert
D.OrdersRASPOL_RUL.AsString:="Левый";
D.OrdersYEAR_PRODUCTION.asString:=DateToStr(Date);
D.OrdersDat_.asString:=DateToStr(Date);
D.OrdersData_Ispoln.asString:=DateToStr(Date+D.paramsSrok_Isp.asInteger);
d.OrdersSPOSOB_PRIOBR.AsString:="Наличные";
d.OrdersCUSTCODE.asInteger:=d.CustomsCode.AsInteger;
D.OrdersCARMODEL.AsInteger:=d.ModeliCODE.AsInteger;
D.OrdersDOCNUM.AsInteger:=D.Query_Ord_DocNumGEN_ID.AsInteger;
d.OrdersCODE_WALUTA.asInteger:=0;
D.OrdersKURS.AsFloat:=1;
d.OrdersPREDOPLATA.asFloat:=0;
d.OrdersCODE_WALUTA_PREDOPLATA.asInteger:=0;
D.Orders.Post;/<---здесь запоминаем
D.Orders.edit; //и открываем по новой
form_Order_Edit:= TForm_Order_Edit.Create(Application);
form_Order_Edit.showModal;
if form_order_edit.ModalResult=mrOk then
begin
D.Orders.Refresh;
end
else
begin
D.orders.post;
DS.Delete_OrdItem.Close;
DS.Delete_OrdItem.Prepare;
DS.Delete_OrdItem.ParamByName("DocNum").asInteger:=D.OrdersDOCNUM.AsInteger;
DS.Delete_OrdItem.ExecSQL;
DS.Delete_Order.Close;
DS.Delete_Order.Prepare;
DS.Delete_Order.ParamByName("DocNum").asInteger:=D.OrdersDOCNUM.AsInteger;
DS.Delete_Order.ExecSQL;
d.Orders.Refresh;
end;
Form_Order_Edit.free;
← →
Johnmen (2003-05-23 12:29) [3]>>>
if form_order_edit.ModalResult=mrOk then
begin
D.Orders.Refresh;
end
else
begin
D.orders.post;
>>>
То есть эта логика правильна ? :) В отсутствии Post"а при mrOk ?
← →
softmaster (2003-05-23 15:58) [4]Нет, там POST есть
то есть если ОК, то запоминаем и обновляем
если нет- удаляем
← →
softmaster (2003-05-23 16:03) [5]все равно не работает
if form_order_edit.ModalResult=mrOk then
begin
D.orders.post;
D.Orders.Refresh;
end
else
begin
D.orders.post;
← →
Johnmen (2003-05-23 16:09) [6]Что есть Orders ?
← →
softmaster (2003-05-23 16:40) [7]Orders-ibTable
D-datamodule;
← →
Johnmen (2003-05-23 16:51) [8]Ну прям не знаю, чудеса какие-то...:)
Возможно, все дело в той волшебной динамически создаваемой форме...
← →
softmaster (2003-05-23 17:12) [9]в форме ничего нет
только набор DBEdit`ов
что за ерунда?
← →
softmaster (2003-05-23 17:17) [10]Получается бред какой-то-
те поля которые я задал по умолчанию, ну там дата документа, клиент, способ приобретения и т.п.
D.OrdersRASPOL_RUL.AsString:="Левый";
D.OrdersYEAR_PRODUCTION.asString:=DateToStr(Date);
D.OrdersDat_.asString:=DateToStr(Date);
D.OrdersData_Ispoln.asString:=DateToStr(Date+D.paramsSrok_Isp.asInteger);
d.OrdersSPOSOB_PRIOBR.AsString:="Наличные";
d.OrdersCUSTCODE.asInteger:=d.CustomsCode.AsInteger;
D.OrdersCARMODEL.AsInteger:=d.ModeliCODE.AsInteger;
D.OrdersDOCNUM.AsInteger:=D.Query_Ord_DocNumGEN_ID.AsInteger;
d.OrdersCODE_WALUTA.asInteger:=0;
D.OrdersKURS.AsFloat:=1;
d.OrdersPREDOPLATA.asFloat:=0;
d.OrdersCODE_WALUTA_PREDOPLATA.asInteger:=0;
после появления формы для редактирования не изменить.
только после закрытия формы и повторного открытия этой же записи на редактирование можно поменять значения полей.
Что еще может быть не в поряде?
← →
Johnmen (2003-05-23 17:19) [11]Тестируем :
.........
D.Orders.edit; //и открываем по новой
//form_Order_Edit:= TForm_Order_Edit.Create(Application);
//form_Order_Edit.showModal;
D.Orders.FieldByName(...).As...:=...;
//if form_order_edit.ModalResult=mrOk then
begin
D.orders.post;
D.Orders.Refresh;
end
Что получается ?
← →
softmaster (2003-05-23 17:31) [12]щас попробую
← →
softmaster (2003-05-23 17:35) [13]нет, все равно не сохраняет.
дело не в форме, черт знает что такое...
← →
Johnmen (2003-05-23 17:38) [14]А как видно, что не сохраняет ?
← →
softmaster (2003-05-23 17:46) [15]Grid ассоциированный с Orders
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c