Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
ВнизЗаписи в таблице Найти похожие ветки
← →
Муслик (2008-06-27 13:48) [0]Помогите разобратся с проблемой.
Есть три таблицы.
С первой таблицы я по двойному клику добавляю во вторую позиции и количество(позиции все разные) после того как всё сделано мне нужно в третью добавить данные из второй(это без проблем)
Проблема:
после я таблицу очищаю и заполняю новую, как мне добавить кол-во товара к существующему товару если товар из второй таблицы равен третьей, если товара не существует в третьей таблице добавить новый
← →
Sergey13 © (2008-06-27 13:53) [1]> [0] Муслик (27.06.08 13:48)
> Помогите разобратся с проблемой.
Это уголовное дело. 8-)
← →
clickmaker © (2008-06-27 13:54) [2]if Table3.Locate("TovarID", TovarID, []) then
увеличить количество
else
добавить товар
← →
Муслик (2008-06-27 14:10) [3]а если товар уже есть там
← →
Palladin © (2008-06-27 14:50) [4]тогда увеличить количество
тебе с lewka-serdceed надо скооперироваться, вы с ним вдвоем горы свернете...
← →
Муслик (2008-06-27 15:02) [5]почесу не срабатывает
if form6.Table1.Locate("Naimen", "Naimen", [loPartialKey]) then
showmessage("Существует");
← →
Поросенок Винни-Пух © (2008-06-27 15:06) [6]срабатывает
← →
Поросенок Винни-Пух © (2008-06-27 15:08) [7]шоумессаджа не видишь?
это потому что локейт срабатывает как надо.
← →
Муслик (2008-06-27 15:32) [8]но если я добавляю другое наименование которое не существует он всё равно не срабатывает
← →
Поросенок Винни-Пух © (2008-06-27 15:34) [9]ты хочешь чтобы локейт всегда возвращал true вне зависимости от того, найдена запись или нет?
← →
Поросенок Винни-Пух © (2008-06-27 15:35) [10]if True or form6.Table1.Locate("Naimen", "Naimen", [loPartialKey]) then
showmessage("Существует");
← →
Игорь Шевченко © (2008-06-27 16:36) [11]Поросенок Винни-Пух © (27.06.08 15:35) [10]
locate можно смело убрать
← →
Поросенок Винни-Пух © (2008-06-27 16:38) [12]if form6.Table1.Locate("Naimen", "Naimen", [loPartialKey]) or True then
showmessage("Существует");
Вдруг по честному найдет
:)
← →
Муслик (2008-06-30 10:34) [13]в последнем случае теперь прилюбом раскладе возвращает истину, даже если нет там такой позиции:(
← →
Поросенок Винни-Пух © (2008-06-30 10:37) [14]А ты не этого хотел?
← →
Муслик (2008-06-30 10:38) [15]Ye Ну впринципе мне нужно добится того что если товар в списке уже есть то брибавить только количество а если нет прибавить и товар и количество
← →
Поросенок Винни-Пух © (2008-06-30 10:39) [16]почесу не срабатывает
if form6.Table1.Locate("Naimen", "Naimen", [loPartialKey]) then
showmessage("Существует");
Потому что локейт ничего не нашел.
← →
Муслик (2008-06-30 10:43) [17]Та колучается
if form6.Table1.Locate("Naimen", "Naimen", [loPartialKey]) or True then
showmessage("Не существует"); end;
Хотя я добавляю товар который там уже есть но всё равно пишет
← →
Поросенок Винни-Пух © (2008-06-30 10:47) [18]Если ты силой мысли определяешь, что запись там точно есть, то ты локейт зачем используешь?
Если же те программист, то используй локейт, но только верь тому что он возвращает.
Если же ты маг и волшебник то тебе локейт не нужен.
← →
Муслик (2008-06-30 10:52) [19]не ну полчается я локейтом проверку то делаю, и почему он мне возвращает что нет записи а она то есть
← →
Поросенок Винни-Пух © (2008-06-30 10:55) [20]Ну о чем я и говорю.
Зачем тебе тупой и неправильный локейт, если ты сам наперед знаешь, что запись там точно есть?
← →
Муслик (2008-06-30 10:56) [21]проблема в том:
к примеру там 3 наименования товара как мне к определённому товару добавить количество а не ко всему вот что яф не могу разобратся вот и использую локейт
← →
Поросенок Винни-Пух © (2008-06-30 10:57) [22]В той таблице есть запись, содержащая в поле "Naimen" значение "Naimen"?
Ты вне зависимости от того, что там было добавлено ранее всегда ищешь строку "Naimen" ???
Голова!
← →
Муслик (2008-06-30 11:00) [23]я предпологаю что так надо?
if form6.Table1.Locate("Naimen", table1.Fields.Fields[1].Value, [loPartialKey]) or True then
showmessage("Не Существует"); end;
← →
Поросенок Винни-Пух © (2008-06-30 11:02) [24]я предпологаю что так надо?
Надо верить локейту, если используешь локейт.
Вот это точно надо.
← →
Dennis I. Komarov © (2008-06-30 11:11) [25]Пора орешник возраждать... Соскучился я по падающим шарам :)
← →
Поросенок Винни-Пух © (2008-06-30 11:11) [26]if form6.Table1.Locate("Naimen", table1.Fields.Fields[1].Value, [loPartialKey]) then
showmessage("Не Существует");
else
with form6.Table1 do
begin
ShowMessage("Нету там такой записи");
First;
while not eof do
begin
ShowMessage("Ищу это:" + table1.Fields.Fields[1].Value + #13#10 + "а там это :" + FieldByName("Naimen").AsString)
Next;
end;
end;
← →
Dennis I. Komarov © (2008-06-30 11:13) [27]> [26] Поросенок Винни-Пух © (30.06.08 11:11)
> showmessage("Не Существует");
Тут ты погорячился :)
← →
Муслик (2008-06-30 11:17) [28]Не срабатывает, почему?
if form6.Table1.Locate("Naimen", table1.Fields.Fields[2].Value, [loPartialKey]) or True then
begin
showmessage("Ñóùåñòâóåò");
form6.Table1.Edit;
form6.Table1.Append;
form6.table1.fields.fields[2].value:=table3.fields.fields[2].value;
form6.Table1.Post;
end
else
form6.Table1.Edit;
form6.table1.fields.fields[2].value:=table3.fields.fields[2].value;
form6.table1.fields.fields[3].value:=table3.fields.fields[3].value;
form6.Table1.post;
end;
← →
Поросенок Винни-Пух © (2008-06-30 11:18) [29]Удалено модератором
← →
Муслик (2008-06-30 11:20) [30]Удалено модератором
← →
Муслик (2008-06-30 11:21) [31]Поросенок Винни-Пух ©
Спасибо за пример... вроде бы разобрался
← →
Dennis I. Komarov © (2008-06-30 11:23) [32]> [30] Муслик (30.06.08 11:20)
> в делфи нулёвый не отрицаю
Так за каким тогда тебе таблицы? Ищи букварь...
← →
Муслик (2008-06-30 11:26) [33]Dennis I. Komarov © ну вот потихоньку и учу.
Поросенок Винни-Пух ©
Скажи а почему шаумесадж показывает только слово до пробела полностью строку не показывает тоесть
"кабель силовой" покажет только кабель
← →
Муслик (2008-06-30 11:31) [34]ой извеняюсь! всё нормально
← →
Поросенок Винни-Пух © (2008-06-30 11:32) [35]потому что после пробела в строке ничего нет
← →
Dennis I. Komarov © (2008-06-30 11:39) [36]> ну вот потихоньку и учу.
не верю
← →
Муслик (2008-06-30 12:17) [37]ну почему несрабатывает вотэтот код
if form6.Table1.Locate("Naimen", table1.Fields.Fields[1].Value, [loPartialKey]) then
begin
with form6.Table1 do
begin
if form6.Table1.Fields.Fields[3].IsNull then
exit
else
begin
ShowMessage("Åñòü òàêàÿ çàïèñü");
edit;
fields[4].Value:=form1.Table3.Fields.Fields[4].Value;;
post;
end;
end;
end
else
with form6.Table1 do
begin
edit;
append;
fields[2].Value:=form1.Table3.Fields.Fields[2].Value;
fields[4].Value:=form1.Table3.Fields.Fields[4].Value;
post;
while not eof do
begin
ShowMessage("Èùó ýòî:" + form1.table3.Fields.Fields[2].Value + #13#10 + "à òàì ýòî :" + FieldByName("Naimen").AsString);
Next;
end;
end
end;
← →
Dennis I. Komarov © (2008-06-30 12:23) [38]> [37] Муслик (30.06.08 12:17)
Чем докажешь?
← →
Муслик (2008-06-30 12:24) [39]впринципе срабатывает но неправильно срабатывает а ошибку найти не могу
← →
ЮЮ © (2008-06-30 12:25) [40]поставь брэкпоинт и пройдись по коду с плмощью F8.
И что значит "не спабатывает"? Кот должен работать, а не срабатывать.
← →
Dennis I. Komarov © (2008-06-30 12:29) [41]> [39] Муслик (30.06.08 12:24)
Он "срабатывает" так как ты его написал
← →
Муслик (2008-06-30 12:40) [42]Dennis I. Komarov ©
ну да а как правильно нужноо?
← →
Dennis I. Komarov © (2008-06-30 12:51) [43]> [42] Муслик (30.06.08 12:40)
Смотря кому нужно.
← →
Муслик (2008-06-30 13:09) [44]ну мне естествеено
← →
Dennis I. Komarov © (2008-06-30 13:16) [45]> [44] Муслик (30.06.08 13:09)
Ну вот ты и написал. А написал так, потому что в букварь не смотрел
← →
Муслик (2008-06-30 13:32) [46]спасибо разобрался не в той таблице исккал
← →
Муслик (2008-06-30 13:35) [47]единственная проблема возникла как мне добавить весь список товара а не по одному
← →
Сергей М. © (2008-06-30 13:39) [48]
> как мне добавить весь список
СписокТовара.First;
while not СписокТовара.Eof do
begin
.. добавить куда-то там, куда тебе надо, текущую запись из СписокТовара
СписокТовара.Next;
end;
← →
clickmaker © (2008-06-30 13:41) [49]> добавить весь список товара
если TTable, то можно BatchMove
← →
Муслик (2008-06-30 13:51) [50]делаю так
with form6.Table1 do
begin
edit;
first;
while not Eof do
append;
fields[2].Value:=form1.Table3.Fields.Fields[2].Value;
fields[4].Value:=form1.Table3.Fields.Fields[4].Value;
next;
post;
добавляется только тот товар на котором стоит курсор, и в добавок начал выскакивать dataset not in edit insert mode
← →
clickmaker © (2008-06-30 13:54) [51]> edit;
> first;
> while not Eof do
> append;
> fields[2].Value:=form1.Table3.Fields.Fields[2].Value;
>
> fields[4].Value:=form1.Table3.Fields.Fields[4].Value;
>
> next;
> post;
прямо как в анекдоте "эрекция, эякуляция..." слова нравятся? смысл вообще всех этих edit, append, post понимаем?
← →
Муслик (2008-06-30 14:25) [52]ну да , ну без едита он не будит записывать данные в таблицу то
← →
Dennis I. Komarov © (2008-06-30 14:41) [53]> [52] Муслик (30.06.08 14:25)
а POST?
← →
clickmaker © (2008-06-30 14:48) [54]> без едита он не будит записывать данные
у тебя там Append
зачем edit-то в начале? Тем более, что first сбросит состояние датасета в dsBrowse
← →
Муслик (2008-06-30 14:50) [55]почему тогда
with form6.Table1 do
begin
first;
while not Eof do
append;
fields[2].Value:=form1.Table3.Fields.Fields[2].Value;
fields[4].Value:=form1.Table3.Fields.Fields[4].Value;
next;
post;
при водит к dataset not in edit insert mode и ничего не происходит
← →
Dennis I. Komarov © (2008-06-30 14:55) [56]> [55] Муслик (30.06.08 14:50)
Может все-таки почитаешь, а?with form6.Table1 do
begin
first;
while not Eof do begin
Edit;
fields[2].Value:=form1.Table3.Fields.Fields[2].Value;
fields[4].Value:=form1.Table3.Fields.Fields[4].Value;
post;
next;
end;
end;
Но твой код страшен как ...
← →
Игорь Шевченко © (2008-06-30 14:55) [57]Муслик (30.06.08 14:50) [55]
Книжку уже почитай, не морочь людям голову.
← →
Dennis I. Komarov © (2008-06-30 14:56) [58]> при водит к dataset not in edit insert mode и ничего не
> происходит
А вот это ты нам теперь расскажи
← →
clickmaker © (2008-06-30 14:56) [59]справку по Post читал?
Dataset methods that change the dataset state, such as Edit, Insert, or Append, or that move from one record to another, such as First, Last, Next, and Prior automatically call Post.
← →
Муслик (2008-06-30 14:57) [60]dataset not in edit insert mode всё равно
← →
Плохиш © (2008-06-30 15:01) [61]Прикольная ветка, уже 60 постов :-))
← →
Поросенок Винни-Пух © (2008-06-30 15:02) [62]dataset not in edit insert mode всё равно
спасибо разобрался не в той таблице исккал
аналагична
← →
Dennis I. Komarov © (2008-06-30 15:07) [63]> dataset not in edit insert mode всё равно
И кто в этом виноват?
← →
Муслик (2008-06-30 15:37) [64]ВСЁ заработало только к отдельно позиции щаз ваще ошабка вышеприведённая
if form6.Table1.Locate("Naimen", table3.Fields.Fields[2].Value, [loPartialKey]) then
begin
with form6.Table1 do
begin
if form6.Table1.Fields.Fields[2].IsNull then
exit
else
begin
ShowMessage("Åñòü òàêàÿ çàïèñü");
edit;
fields[4].Value:=IntToStr(StrToInt(form1.Table3.Fields.Fields[4].Value)+StrToInt(fields[4].value));
post;
end;
end;
end
else
with form6.Table1 do
begin
first;
while not Eof do
edit;
fields[2].Value:=form1.Table3.Fields.Fields[2].Value;
fields[4].Value:=form1.Table3.Fields.Fields[4].Value;
next;
post;
while not eof do
begin
ShowMessage("Èùó ýòî:" + form1.table3.Fields.Fields[2].Value + #13#10 + "à òàì ýòî :" + FieldByName("Naimen").AsString);
Next;
end;
end
end;
← →
Dennis I. Komarov © (2008-06-30 15:43) [65]Удалено модератором
← →
Муслик (2008-06-30 15:52) [66]Удалено модератором
← →
Игорь Шевченко © (2008-06-30 15:55) [67]http://ln.com.ua/~openxs/articles/smart-questions-ru.html
читать до полного и окончательного просветления.
← →
Dennis I. Komarov © (2008-06-30 15:58) [68]Удалено модератором
← →
Муслик (2008-06-30 16:04) [69]Удалено модератором
← →
Anatoly Podgoretsky © (2008-06-30 16:08) [70]Зря ты это спрашиваешь, вдруг кто то ответит.
← →
Поросенок Винни-Пух © (2008-06-30 16:08) [71]где у меня ошибка?
Вот здесь, причем много:
ВСЁ заработало только к отдельно позиции щаз ваще ошабка вышеприведённая
← →
Муслик (2008-06-30 16:09) [72]Удалено модератором
← →
Поросенок Винни-Пух © (2008-06-30 16:17) [73]ты спрашиваешь - мы отвечаем.
← →
Dennis I. Komarov © (2008-06-30 16:23) [74]Удалено модератором
← →
Муслик (2008-06-30 16:40) [75]скажите где в коде проблема ошибка
← →
Поросенок Винни-Пух © (2008-06-30 16:41) [76]например здесь:
while not Eof do
edit;
fields[2].Value:=form1.Table3.Fields.Fields[2].Value;
fields[4].Value:=form1.Table3.Fields.Fields[4].Value;
next;
post;
← →
Муслик (2008-06-30 16:44) [77]Удалено модератором
← →
Поросенок Винни-Пух © (2008-06-30 16:45) [78]Удалено модератором
← →
Муслик (2008-06-30 16:49) [79]Удалено модератором
← →
Dennis I. Komarov © (2008-06-30 16:52) [80]Удалено модератором
← →
Поросенок Винни-Пух © (2008-06-30 16:54) [81]Удалено модератором
← →
Игорь Шевченко © (2008-06-30 17:02) [82]Предлагаю автору почитать правила данного сайта и научиться их уважать.
Страницы: 1 2 3 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.009 c