Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.12;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
3-34686
AlexAvz
2003-05-22 15:41
2003.06.12
Работа с БД


3-34754
Юлия
2003-05-24 19:47
2003.06.12
DBComboBox


14-35022
sasha
2003-05-27 12:40
2003.06.12
интернет


14-34978
Knight
2003-05-25 23:03
2003.06.12
Как сделать эффект 25-го кадр?


3-34745
Юлия
2003-05-23 19:11
2003.06.12
Уникальный индекс