Текущий архив: 2002.07.15;
Скачать: CL | DM;
ВнизПоиск в ibtable Найти похожие ветки
← →
::Hamster:: (2002-06-18 11:25) [0]Всем добрый день.
Есть две ibtable: sklad (склад) и sl (лист продаж)
к примеру в складе была позиция "телевизор"..
после "продажи" он был оттуда удален и вставлен в лист продаж..т.е перенесён.
Если его надо вернуть можно просто произвести обратные действия.
Но вот проблема - если их было три, т.е продан был всего один, а два осталось на складе.
Как при возврате сделать так чтобы проданый телевизор вернулся не отдельно а добавился к оставшимся двум на складе, шоб их снова стало 3.
В общем надо как-то огранизовать поиск в ibtable. Подскажите плз кто знает.
← →
::Hamster:: (2002-06-18 11:32) [1]
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;
← →
::Hamster:: (2002-06-18 11:33) [2]выше я привел код продажи..т.е с sklad в sl..
← →
Turalyon (2002-06-18 11:40) [3]Используй метод Locate для таблицы склад, если он вернул False добавляй если True редактируй. Почитай Help о том как он (метод)работает...
← →
Turalyon (2002-06-18 11:41) [4]А вообще ИМХО проще и наглядней было бы пользоваться IBQuery и делать SQL запросы...
← →
Sergey13 (2002-06-18 11:47) [5]2::Hamster:: (18.06.02 11:25)
>после "продажи" он был оттуда удален и вставлен в лист >продаж..т.е перенесён.
А зачем удалять то? Поставь количество=0 и все. Потом, у "телевизора" код был какой-то уникальный (или нет???). По этому коду и ищи.
При продаже: количество=количество-х
при возврате: количество=количество+х
← →
Turalyon (2002-06-18 11:59) [6]>>Sergey13 ©
Мне кажется, что при таком подходе через некоторое время база данных распухнет и будет содержать много "мертвых" записей. Хотя все конечно зависит от того какой ассортимент будет на складе и как он будет обновлятся...
← →
::Hamster:: (2002-06-18 12:59) [7]Sergey13,
Tyralyon прав. Товар обновляется с каждым днем, если держать остатки с 0 то в складе со временем появится много уже устаревших позиций.
У телевизора, как и у любой другой техники уникальный код это его модель.
Turalyon Спасиб, этот метод помог. С его помощью я даже сделал поиск на складе.
Я бы переделал всё на SQL но тогда придется переделать всю программу и все клиенты..а они почти все на table"ах. А учитывая нехватку времени и моих знаний SQL...;) Хотя будет время - возьмусь - перепишу. Ещё раз спасибо.
Страницы: 1 вся ветка
Текущий архив: 2002.07.15;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.017 c