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

Вниз

Вопрос по сохранению значений   Найти похожие ветки 

 
BAX   (2006-01-16 14:11) [0]

Здравствуйте!
Подскажите пожалуйста как решить следующую проблему:

на форме есть два компонента RxDBLoocupCombo. Один из них настроен на выборку предприятий, второй на выборку цехов. Подразделения и цеха находятся в одной таблице. Различие между предприятием и цехом организовано в поле PrId. У предприятия 2 символа, а у цеха 3 символа.
После ввода данных, в эти компоненты, пользователь нажимает кнопку "сохранить" и данные сохраняются в таблице Dis. Чтобы показать пользователю, что данные введенные им есть - переоткрываем дата сет настроеный на таблицу DIS и вместе с ним переоткрываются другие дата сеты.
Вопрос: После переокрытия введеные ранее данные остаются только в компоненте отвечающем за предприятие, а в компоненте Цех они исчезают. Дата сет цеха настроен на ДатаСет предприятия. Подскажите пожалуйста как можно сохранить данные после переоткрытия в поле ввода ЦЕХ???

procedure TForm3.cmPRFKeyPress(Sender: TObject; var Key: Char);
var
 CehBookmark:TBookMark;
begin
IF KEY = #13 THEN
BEGIN
 try
 //создали закладку
  CehBookmark:=dm.Pred.GetBookmark;
  if cmCEH.KeyValue = null
   then raise EGetWarning.Create("Выберите цех!");
   if cmPRF.KeyValue = null
   then raise EGetWarning.Create("Выберите профессию!");
   try
     if DispanNew then
        begin
            DM.EFFs.Active:=true;
            DM.DISFIO.Active:=true;
            DM.Dispan.Last;
            Staj.SetFocus;
            Dm.Pred.Open;
            Dm.Ceh.Open;
        end;
   finally
   if DM.Ceh.BookmarkValid(CehBookmark) then
                 Dm.Ceh.GotoBookmark(CehBookmark);
    end;
 except
 on GW: EGetWarning do
   MessageBox(0, PChar(GW.Message), "Недостаточно информации", MB_OK + MB_ICONWARNING);
 end;


Пробовал сделать через закладки. Закладка создается. Но вот данные в компоненте RxDBLookupCombo (cmCeh) не показываются, а закладка Dm.Ceh.GotoBookmark(CehBookmark) передается. Подскажите пожалуйста в чем может быть причина?


 
Sergey13 ©   (2006-01-16 14:19) [1]

2BAX   (16.01.06 14:11)
>Различие между предприятием и цехом организовано в поле PrId. У предприятия 2 символа, а у цеха 3 символа.

ИМХО, это не есть хорощо.

Что-то непонятно, как цеха связаны в предприятием? Мастер-детайл или что?


 
BAX   (2006-01-16 14:24) [2]

В базе есть еще поле признак. В этом поле написано цех или предприятие. Да прав - Мастер-детайл. У цехов хранится ID предприятия к которому они принадлежат в поле PrId.


 
Sergey13 ©   (2006-01-16 14:36) [3]

2[2] BAX   (16.01.06 14:24)
Ну дык при переоткрытии цехов наверное надо указать нужное ИД предприятия (или просто спозиционировать датасет предприятий на нужную запись).


 
BAX   (2006-01-16 14:39) [4]

Подскажи пожалуйста как?


 
Sergey13 ©   (2006-01-16 14:41) [5]

2[4] BAX   (16.01.06 14:39)
Чего как? Спозиционироваться? Locate например.


 
BAX   (2006-01-16 14:54) [6]

А потом как спозиционировать датасет цеха?


 
Sergey13 ©   (2006-01-16 14:55) [7]

2 [6] BAX   (16.01.06 14:54)
Так же как и предприятия? В чем проблема то?


 
BAX   (2006-01-17 06:23) [8]

Дело в том что предприятие берется из той - же таблицы, что и цех. Для цеха в этой таблице есть поле PRID куда передается ID предприятия к которому он принадлежит. Как в этом случае можно спозиционироваться на Предприятие и на цех?


 
ЮЮ ©   (2006-01-17 08:48) [9]

Позиционирование в RxDBLoocupCombo, не привязанному к DataSource, осуществляется установкой KeyValue. Поэтому надо запомнить текущие значения, а после переоткрытия ListSource их восстановить:

CEHKeyValue := cmCEH.KeyValue;
PRFKeyValue := cmPRF.KeyValue;
try
 ...
finally
 cmPRF.KeyValue := CEHKeyValue;
 cmPRF.KeyValue := PRFKeyValue;
end;


 
Sergey13 ©   (2006-01-17 09:22) [10]

2 [8] BAX   (17.01.06 06:23)
Таблица (физическая) одна, а запросов (датасетов) по ней может быть сколько угодно.



Страницы: 1 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
2-1140499747
ALIES
2006-02-21 08:29
2006.03.12
Два соединения в BDE


4-1134316307
vovan_spb
2005-12-11 18:51
2006.03.12
Сообщение из sysTray


1-1139391952
Silver...
2006-02-08 12:45
2006.03.12
TPageControl + TabPosition=tpBottom + XP = зрительный глюк


15-1140446817
ArtemESC
2006-02-20 17:46
2006.03.12
Смена текстового видеорежима


15-1140431797
McSimm
2006-02-20 13:36
2006.03.12
Caret в чужих окнах в зависимости от раскладки.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский