![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте. Такой вопрос. Какое условие нужно, чтобы при закрытии приложения запись либо добавилась если таковой не было , либо изменилась старая без добавления новой строки.
|
|
#2
|
|||
|
|||
|
Какая запись? Куда запись?
Ты бы подробнее описал... |
|
#3
|
|||
|
|||
|
Цитата:
Затем нажимаю кнопку расчета и получаются результирующие данные. Далее при закрытии приложения исходные данные сохраняются в таблице исходн. данных, а результаты в таблице результатов. Вот так добавляются данные в таблицу : Код:
if not (ComboBox1.Text='') then
begin
if not Table1.Locate('Projname',ComboBox1.Text,[]) then
begin
Table1.Insert;
Table1.FieldByname('Projname').AsString:=ComboBox1.Text;
Form1.Caption:=Table1.FieldByname('Projname').AsString;
Table1.Post;- если проект не найден, то в табл 2 и табл 3 вводится новая запись. А -если найден , то записи в табл 2 и табл 3 редактируются. Каким условием задать будут ли записи в табл 2 и табл 3 добавляться или редактироваться старые? Вообще как сделать, что если не было никаких действий то просто без вызова соответствующего диалогового окна? Я сначала думал сравнивать количество строк в табл 1 в момент запуска приложения с колич. строк в табл 1 в момент закрытия, но тут может быть так, пользователь создал новый проект , но расчет не сделал и нажал кнопку выйти, а дальше сохранить. В результате в табл 3 записались нули. |
|
#4
|
|||
|
|||
|
нифига не понял...
В принципе, у тебя в коде почти все есть. Пусть будет так: Если пользователь ничего не сделал, то в ComboBox1 ничего не введено, соотв. делать ничего не надо. Если пользователь все-таки что-то делал, то в ComboBox1 есть текст и надо принять решение о том надо ли добавлять запись или редактировать существующую. Т.О. получаем примерно такой код (на закрытие приложения?): Код:
if not (ComboBox1.Text='') then
begin
if not Table1.Locate('Projname',ComboBox1.Text,[])
then
begin
Table1.Insert;
Table2.Insert;
Table3.Insert;
end
else
begin
Table1.Edit;
Table2.Edit;
Table3.Edit;
end;
Table1.FieldByname('Projname').AsString:=ComboBox1.Text;
Form1.Caption:=Table1.FieldByname('Projname').AsString;
Table2.FieldByName('...').AsString := ...
Table3.FieldByName('...').AsInteger := StrToInt(...);
Table1.Post;
Table2.Post;
Table3.Post;
end; |
|
#5
|
|||
|
|||
|
Что не понятно?
|
|
#6
|
|||
|
|||
|
Цитата:
У меня 1 обработчик добавляет запись в таб 1. Второй когда закрывается приложение. |
|
#7
|
|||
|
|||
|
ну, я так понимаю, что это для обработчика на закрытие приложения.
|