![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск в ibtable
::Hamster:: © (2002-06-18 11:25:00)Всем добрый день.
Есть две ibtable: sklad (склад) и sl (лист продаж)
к примеру в складе была позиция "телевизор"..
после "продажи" он был оттуда удален и вставлен в лист продаж..т.е перенесён.
Если его надо вернуть можно просто произвести обратные действия.
Но вот проблема - если их было три, т.е продан был всего один, а два осталось на складе.
Как при возврате сделать так чтобы проданый телевизор вернулся не отдельно а добавился к оставшимся двум на складе, шоб их снова стало 3.
В общем надо как-то огранизовать поиск в ibtable. Подскажите плз кто знает.
::Hamster:: (2002-06-18 12:59:00) [1]Sergey13,
Tyralyon прав. Товар обновляется с каждым днем, если держать остатки с 0 то в складе со временем появится много уже устаревших позиций.
У телевизора, как и у любой другой техники уникальный код это его модель.
Turalyon Спасиб, этот метод помог. С его помощью я даже сделал поиск на складе.
Я бы переделал всё на SQL но тогда придется переделать всю программу и все клиенты..а они почти все на table"ах. А учитывая нехватку времени и моих знаний SQL...;) Хотя будет время - возьмусь - перепишу. Ещё раз спасибо.
Turalyon (2002-06-18 11:59:00) [2]>>Sergey13 ©
Мне кажется, что при таком подходе через некоторое время база данных распухнет и будет содержать много "мертвых" записей. Хотя все конечно зависит от того какой ассортимент будет на складе и как он будет обновлятся...
Sergey13 (2002-06-18 11:47:00) [3]2::Hamster:: (18.06.02 11:25)
>после "продажи" он был оттуда удален и вставлен в лист >продаж..т.е перенесён.
А зачем удалять то? Поставь количество=0 и все. Потом, у "телевизора" код был какой-то уникальный (или нет???). По этому коду и ищи.
При продаже: количество=количество-х
при возврате: количество=количество+х
Turalyon (2002-06-18 11:41:00) [4]А вообще ИМХО проще и наглядней было бы пользоваться IBQuery и делать SQL запросы...
Turalyon (2002-06-18 11:40:00) [5]Используй метод Locate для таблицы склад, если он вернул False добавляй если True редактируй. Почитай Help о том как он (метод)работает...
::Hamster:: (2002-06-18 11:33:00) [6]выше я привел код продажи..т.е с sklad в sl..
::Hamster:: (2002-06-18 11:32:00) [7]
begin
salelistibtable.Insert;
salelistibtable.fieldvalues["salelist_name"]:=namedbedt.Text;
salelistibtable.fieldvalues["salelist_model"]:=modeldbedt.text;
salelistibtable.fieldvalues["salelist_firm"]:=firmdbedt.text;
salelistibtable.fieldvalues["salelist_country"]:=countrydbedt.text;
salelistibtable.fieldvalues["salelist_tnote"]:=tnotedbedt.text;
if salecolchk.Checked=false then begin
salelistibtable.fieldvalues["salelist_col"]:=1;
skladibtable.Edit;
skladibtable.FieldValues["sklad_col"]:=skladibtable.fieldvalues["sklad_col"]-1;
skladibtable.Post;
end;
if salecolchk.Checked=true then begin
salelistibtable.fieldvalues["salelist_col"]:=coledt.text;
skladibtable.Edit;
skladibtable.FieldValues["sklad_col"]:=skladibtable.fieldvalues["sklad_col"]-coledt.text;
skladibtable.Post;
end;
salelistibtable.FieldValues["salelist_cnotes"]:=cnotescbox.text;
salelistibtable.fieldvalues["salelist_person"]:=personalcbox.Text;
salelistibtable.FieldValues["salelist_time"]:=timetostr(time);
salelistibtable.FieldValues["salelist_date"]:=timetostr(date);
salelistibtable.fieldvalues["salelist_incost"]:=skladibtable.FieldValues["sklad_incost"];
salelistibtable.FieldValues["salelist_outcost"]:=statusback.Caption;
salelistibtable.Post;
if skladibtable.FieldValues["sklad_col"]=0 then skladibtable.Delete;
end;