|
|
|
| Народ, подскажите функцию, которая выводит только целую часть числа при делении чисел. Например 33/9=3,66666 Нужно что бы только 3 вывел. А то через left и instr уже задолбался запятые выводить. Есть ведь какая-то функция. | |
|
| |
|
|
|
| dim a as long
a=int(33/9)
наверное можно и так
а=33\9 | |
|
| |
|
|
|
| 33 \ 9 = 3 (возвращает наименьшее целое)
и еще для сведения:
33 / 9 = 3,66 ...
33 Mod 9 = 6 (возвр. остаток) | |
|
| |
|
|
|
| Вот. Mod - возвращает дробную часть и какая-то хрень есть, которая возвращает целую часть числа. Наименьшее - то что надо кстати.
Дело вот в чем. Допустим в одной коробке 6 деталей. Получив 10 коробок выходит 60 деталей. Далее выдача идет по коробкам - пишут 3 коробки - 18 деталей. Все бы хорошо. Но иногда получают 10 коробок и еще 2 детали. А выдают 8 деталей. Т.е. на списание должно идти автоматически 1 коробка и еще 2 детали. В принципе все работает через переменные и функцию Istr, вычисляющую где там запятая. Потом условия если одно, то другое и так далее. Вот поэтому про функцию и спросил. А про деление \ даже и не знал кстати. Спасибо. Бум пробовать. | |
|
| |
|
|
|
| переводи всё в штуки.
И нету гемороя. | |
|
| |
|
|
|
| Час правильно советует - веди учет в деталях, т.е. в штуках. Коробки вообще не храни нигде, сделай их вычисляемым полем. Отчетность-то по числу деталей, а не по тому как они были упакованы. Если юзер указывает поступление в коробках и деталях, то коробки опять-таки переводи в детали. И еще вопрос: у вас коробки одного вида, не может быть коробок на 10, 12 деталей и т.д.? Если может, то надо еще таблицу с описанием упаковки, например: PackageID, PackageName, PackageCapacity. | |
|
| |
|
|
|
|
| Все бы так. Все трое правы. И у меня бы гемора меньше было. Количество деталей.
Но задача усложняется тем, что номер коробки - это количество не деталей, а лекарств в этой коробке. И если юзеры-аптекари, получив 149 коробок под №14 в уме хорошо бы перемножали то и ладно. Прога тоже это делает. Но когда выдают 138 таблеток, а списание для финансовой проверки и инвентаризацию надо проводить в коробках и получить остаток нераспакованных коробок... В общем тут гемор появляется не только у меня.
В принципе очень помогло деление наоборот. Пусть пишут 3 коробки и 13 таблеток. Коробка под №5 и теперь автоматом перевод на 5 коробок и 3 таблетки. После чего входит в накладную и учет далее. Просто классно получилось. Самому нравится. | |
|
| |
|
|
|
|
очень помогло деление наоборот.
|
это называется целочисленное деление
http://dic.academic.ru/dic.nsf/fin_enc/31363 | |
|
| |
|
|
|
| согласен полностью с часом
учет надо вести в наименьшей неделимой единице в шт (таблетках ампулах)
и вести учет количества в упаковке т.е в твоем случае номер коробки
выдавать - для внутреннего учета бд в таблетках и ампулах
а для бухгалтерии пересчитывать в удобоваримые для них единицы
например так
Public function PrintRest(countTablet as long, countInBox as long)
'countTablet - количество таблеток на складе - табличные данные
'countInBox -количество таблеток в упаковке - табличные данные
dim asd as long
dim dfg as long
asd=countBox(countTablet, countInBox) 'количество упаковок
dfg=countTabletPlacer(countTablet, countInBox) ' количество таблеток без упаковки
if asd=0 and dfg=0 then msgbox "нету ни чего"
if asd=0 and dfg>0 then msgbox "Осталось " & dfg & " таблеток"
if asd>0 and dfg=0 then msgbox "Осталось " & asd & " упаковок"
if asd>0 and dfg>0 then msgbox "Осталось " & asd & " упаковок и " & dfg & " таблеток россыпью"
end function
Private function countBox (countTablet as long, countInBox as long) as long 'количество упаковок
countBox=countTablet \countInBox
end function
Private function countTabletPlacer (countTablet as long, countInBox as long) as long ' количество таблеток без упаковки
countTabletPlacer=countTablet-countBox(countTablet, countInBox)*countInBox
end function | |
|
| |
|
|
|
| ну собственно так и есть, только несколько иначе. Могут вписать 3 коробки №5 и 6 балеток. Прежде чем внести данные в таблицу, прога пересчитывает на 4 коробки и 1 бал.
Заранее пересчет в тал никто делать не будет, т.к. имея программу - это идиотизм. Могут вписать в количестве табл, могут указать упаковки и табл.. Как угодно, списано будет как надо.
Алгоритм почти такой же как и у вас. Несколько иначе, но итог тот же. Спасибо. | |
|
| |