ورود

View Full Version : سوال: نحوه برداشت از صندوق - كمك كردن عدد از مجموع كل



hentjanson
سه شنبه 25 تیر 1387, 17:51 عصر
سلام من دارم يك برنامه حسابداري مينويسم .
يك سوال برام پيش اومده من در فرم ثبت كالا ، مشخصات بار وارد ميشه و ثبت ميشه 1000 پاكت برنج و اين عدد در فيلد kala ذخيره ميشه . table1
يك فرم ديگه هم دارم كه براي قسمت فروش هستش حالا اگه 100 پاكت فروش بره چطور اين 100 عدد رو از اون 1000 پاكت كم كنم ؟
اين عدد 100 در فيلد kharid ذخيره ميشه table2
در اين رابطه ميتونيد راهنمايي كنيد ؟

اصغر (پآچ)
سه شنبه 25 تیر 1387, 17:58 عصر
سلام دوست من

تو باید توی بانکت یه فیلد جدید اضافه کنی که موجودی انبارت رو مشخص کنه وقتی در فرم فروشت چیزی رو می فروشی و وارد جدولت می کنه بیاد مقدارفروش رفته رو از موجودی کم کنه که اگه از صفر کوچکتر بود پیغام بده این مقدار کالا در انبار موجود نیست و در صورت صفر شده موجودی بیاد یه اخطار جهت خرید کالا برای انبار رو به نمایش بذاره بازم اگه کمک خواستی بگو

موفق و موید باشی

hentjanson
سه شنبه 25 تیر 1387, 21:19 عصر
ببين من مجموع كل ندارم .
مثلا ميگم كتاب احسان و نيكوكاري 100 تا دارم و اين عدد رو در فيلد number مي زارم حالا مي خوام از اين فيلد كن كنم ميشه يك مثال بزني از همين كم كردن

etedali
سه شنبه 25 تیر 1387, 21:40 عصر
باسلام و خسته نباشید به همه دوستان.
شما برای کم کردن باید ابتدا مقدار کلی را داشته باشی حتما که مثلا چند تا موجودی داخل انبار دارید همانجور که دوستمان اشاره فرمودند حالا باید مقدار کسری را از کل کم کنی مثلا شما فرض کن در جدول 1 فیلدی داری به نام تعداد که تعداد کل داخل این قسمت است و مقدار کسری را درون متغیر i قرار میدی حالا به این روش میتونی کم کنی

Table1.Fieldvalues['Tedad']:= Table1.fieldvalues['tedad']-i;
بقیه شرطها که اگر مقدار موجودی کمتر بود را دوستمان اشاره کردند.

hentjanson
سه شنبه 25 تیر 1387, 22:14 عصر
بايد مشخصات فروش رو در يك بان جديد ثبت كنم ؟
يا در همان بانك قبلي ثبت بشن ؟

etedali
سه شنبه 25 تیر 1387, 22:31 عصر
بايد مشخصات فروش رو در يك بان جديد ثبت كنم ؟
يا در همان بانك قبلي ثبت بشن ؟
شما برای فروش اگر فاکتور فروش صادر کنی پس مشخص است که چه تعداد فروش انجام شده و به چه شخصی بوده برای همین می توانید در بانک قبلی بریزید.

hentjanson
سه شنبه 25 تیر 1387, 22:47 عصر
دوست من به نظر من بايد دو جدول داشت .
و اينكه همزمان با عمل ذخيره از مقدار كل كم كنيم در اين رابطه كمك مي خوام البته برنامه رو براي نمايش تا چند لحظه ديگه ميزارم

hentjanson
سه شنبه 25 تیر 1387, 23:24 عصر
سلام من برنامه خودمو گزاشتم متوجه نشدم چطور عمل كم كردن رو صورت بدم .
سوال من اينه موقع ثبت چطور تعداد رو از تعداد ثبت اوليه كم كنيم موقع فروش . كه در برنامه كاملا واضح هستش در صورت امكان نگاهي به برنامه بيندازيد .

vahid64
چهارشنبه 26 تیر 1387, 04:18 صبح
ببین عزیز فرقی نمی کنی تهش اینه که Table اولیه خودت رو used می کنی و اون فیلدی که توش تعداد رو زدی یکی ازش کم می کنی دقیقاً همین کدی که دوستمون نوشتن رو باید بنویسی مثال :

table1.edit;
Table1.Fieldvalues['Tedad']:= Table1.fieldvalues['tedad']-1;
table1.refresh;

use کردن table شما هم بستگی داره که برنامه رو چه مدلی به دیتابیس متصل کرده باشی(مطمئناً خودت بلد هستی)


پ.ن
جوابهای دوستانمون که زودتر از من گفته بودن نکات بسیار مفیدی بود اگه می خوای برنامت کاملتر بشه حتماً به توصیه هاشون عمل کن


موفق و موید باشید

SYNDROME
چهارشنبه 26 تیر 1387, 06:31 صبح
برای ورود و خروج کالاهاتون از یک جدول Headو یک جدول Detail استفاده کنید.
حالا اگر مقدار ورودی یک کالا و مقدار خروجی آن را از هم کم کنید موجودی به دست می آید.
با استفاده از یک فیلد Kindمی توانید نوع حواله و یا رسید را مشخص کنید.
موفق باشید

acilios
چهارشنبه 26 تیر 1387, 07:28 صبح
with dm.ADOQuery1 do
begin
Close;
sql.Clear;
SQL.Add('update anbar set svazn='+''''+inttostr(vazn-strtoint(edit3.Text))+''' where');
sql.Add('sname='+''''+edit1.Text+'''');
ExecSQL;
end;
در کد بالا مقدار وزن فروخته شده از یک کالا رو از موجودی کل کم میکنه.
البته مقدار فروش در ادیت 3 قرار داره و vazn هم مقدار فیلد مورد نظر ماست.
موفق باشید.

hentjanson
چهارشنبه 26 تیر 1387, 07:29 صبح
سلام دوست من من 2 جدول ساختم به اسم هاي table1 كه اطلاعات اصلي تو اونه . و جدول table2 براي فروش .
در هر دو جدول فيلد tedad وجود داره . حالا اينكه مي خوام وقتي روي دكمه ذخيره button1 كليك ميشه مقدار تعداد tedad جدول table2 رو از table1 كم كنه اينو متوجه نشدم ؟‌

etedali
چهارشنبه 26 تیر 1387, 09:28 صبح
برای مدیریت فاکتور فروش یا خرید باید نکات زیر را رعایت کنی در برنامه شما فرستادی به نظر من برای زدن فاکتور فروش مناسب نیست.
یک فاکتور از سه قسمت تشکیل شده 1- اطلاعات مشتری 2- جزئیات فاکتور 3- اطلاعات مربوط به فاکتور اصلی.
شما باید دو جدول ایجاد کنی به نام مثلا Factor و دیگری Sub_Factor که در جدول دوم کد فاکتور را قرار می دهید و همیشه در طی کار باید اطلاعات جدول جزئیات را براساس کد فاکتور فیلتر کنی سپس اگر شما میخواهید یک مداد را فاکتور بزنید اطلاعات زیر را در جزئیات نگه دارید مثل کد فاکتور اصلی - نام کالا به فروش رسیده - تعداد کالا فروش رسده - فی کالا-کد ردیف تا اطلاعات در دی بی گرید با کد ردیف به صورت دستی کد داده شوند و نمایش می دهیم اما در جدول فاکتور باید اطلاعات زیر را نگه داری کنی تاریخ فروش- کد خریدار - نام خریدار- جمع کل کالا -تخفیف کل کالا- هزینه مازاد بر کالا از قبیل حمل و نقل -جمع کل مبلغی که باید پرداخت شود و شرح فاکتور.
با RelationShips می تونی پس از ثبت تاثیر این روش را متوجه بشی
در ضمن برای کم کردن تعداد کالا از کل پس از وارد کردن تعداد خریداری شده باید توسط کد کالا به جدول کالا Locate کنی و سپس تعداد وارد شده در Edit مربوط به کالای به فروش رسیده کم کنی.
موفق باشی.

hentjanson
چهارشنبه 26 تیر 1387, 11:07 صبح
تشكر دوست من توضيحات شما عالي بودن .
من در اين مرحله نيازم اينه كه بتونم اين عدد رو كم كنم اينو متوجه نشدم هنوز

acilios
پنج شنبه 27 تیر 1387, 08:10 صبح
while not(dm.ADOQuery1.Eof) do
begin
if dm.ADOQuery1.FieldByName('sname').Asstring = edit1.Text then
begin
vazn:=dm.ADOQuery1.FieldByName('svazn').asinteger;
break;
end;
dm.ADOQuery1.Next;
end;
with dm.ADOQuery1 do
begin
Close;
sql.Clear;
SQL.Add('update anbar set svazn='+''''+inttostr(vazn-strtoint(edit3.Text))+''' where');
sql.Add('sname='+''''+edit1.Text+'''');
ExecSQL;
end;
این کد ابتدا فیلد مورد نظرتون رو پیدا میکنه و مقدارش رو میریزه توی VAZN .
در مرحله بعدی مقدار فروش رو از کاربر میگیره و از کل موجودی کم میکنه.

fahimi
سه شنبه 21 آبان 1387, 22:09 عصر
با سلام
جواب های دوستان شاید کوتا ه مدت بتوان استفاده کرد ولی در بلند مدت به دلیل اینکه معمولا به آخرین موجودی در خرید مقدار خرید اضافه و در فروش مقدار فروش کسر می شود برنامه دچار مشکل میشود به نظر من باید ازسه جدول استفاده کرد -جدول اول ودوم به عنوان سابقه خرید و آرشیو جهت مراجعات بعدی به عنوان های جدول khrid ,frosh جدول سوم جهت ثبت تغییرات و باعلاوه رکوردهای توضیحی مانند کد کالا و کد اشخاص از فیلد تعداد استفاده کرده در خرید عدد بصورت مثبت ذخیره شده و فروش بصورت منفی ذخیره می شود در گزارشات با کوئری ساده با استفاده از تابع ()sum و در انتها کوئری group by code_kalموجودست یافت و از طرفی میتوان کاردکس کالا را به راحتی استخراج کرد