PDA

View Full Version : اعمال شرط در فیلد مشترک فرم و سابفرم



G.hemati
جمعه 14 آبان 1400, 12:26 عصر
با سلام خدمت اساتید گرامی

من یه فیلد مشترک در فرم و سابفرم دارم

میخوام یکی از فیلدهای سابفرم رو از طریق فرم مقدار دهی کنم

ممنون میشم راهنمایی بفرمایین

mazoolagh
دوشنبه 17 آبان 1400, 12:00 عصر
سلام و روز خوش
فقط اون بخش از کد رو که مشکل دارین اینجا در تگ vb پیوست کنین و در صورت نیاز اسکرین شات هم بگذارین.

الان چند روز از پست شما گذشته و حتی یک نفر هم برنامه پیوست رو دانلود نکرده!

G.hemati
سه شنبه 18 آبان 1400, 00:35 صبح
سلام خدمت شما بزرگوار و تشکر ویژه بابت زحمت و لطفی که میکشین و یک تنه کل زحمت تالار رو متحمل میشین


الان چند روز از پست شما گذشته و حتی یک نفر هم برنامه پیوست رو دانلود نکرده!
برای خودم هم جای سوال بود ؟ :متفکر::لبخندساده:


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


Private Sub ChekBox_Click()

If Me.ChekBox = True Then

Forms![Tbl_2 subform]![Num2] = Me.TxtMeghdar

End If

End Sub

mazoolagh
سه شنبه 18 آبان 1400, 12:13 عصر
اول یک روتین برای آپدیت سابفرم بنویسین:

SUB Update_Subform(meghdar AS VARIANT)
WITH ME.Tbl_2_subform.FORM.RECORDSET
.MOVEFIRST
DO WHILE NOT .EOF
.EDIT
!Num2=meghdar
.UPDATE
.MOVENEXT
LOOP
END WITH
END SUB

mazoolagh
سه شنبه 18 آبان 1400, 12:20 عصر
حالا هر جا که نیاز داشتین این روتین رو فراخوانی کنین، میتونه در ChekBox_AFTERUPDATE باشه یا TxtMeghdar_AFTERUPDATE یا ...

IF ME.ChekBox THEN Update_Subform (ME.TxtMeghdar)

mazoolagh
سه شنبه 18 آبان 1400, 12:21 عصر
احتمالا باید یک سناریو هم برای وقتی که چک باکس FALSE هست در نظر بگیرین!

G.hemati
جمعه 21 آبان 1400, 23:55 عصر
سلام استاد عزیز

هزاران تشکر و قدر دانی از لطف و محبت شما

بسیار عالی و حرفه ای :تشویق:


احتمالا باید یک سناریو هم برای وقتی که چک باکس FALSE هست در نظر بگیرین!

من همین کد شما رو مجداٌ تکرارش کردم و این بار شرط رو برابر با صفر قرار دادم

یعنی اگه False بود برابر با 0 باشه

ولی جواب نداد و هر دو شرط داره اجرا میشه

mazoolagh
یک شنبه 23 آبان 1400, 09:52 صبح
من همین کد شما رو مجداٌ تکرارش کردم و این بار شرط رو برابر با صفر قرار دادم

یعنی اگه False بود برابر با 0 باشه

ولی جواب نداد و هر دو شرط داره اجرا میشه

باید از IF ... THEN ... ELSE استفاده کنین:
IF ME.ChekBox THEN
Update_Subform(ME.TxtMeghdar)
ELSE
Update_Subform(0)
ENDIF


همچنین باید یک سناریو برای وقتی که رکورد جدید در سابفرم اضافه میکنین داشته باشین:
آیا وضعیت ChekBox و مقدار TxtMeghdar باید بررسی بشن یا نه؟

G.hemati
یک شنبه 23 آبان 1400, 20:38 عصر
خیلی ممنونم استاد عزیز

فقط بیزحمت روش اعمال محاسبات در این روتین رو هم بگین ممنون میشم ، خیلی سعی کردم خودم انجام بدم و مزاحمتون نشم ولی متاسفانه موفق نشدم

میخوام وقتی تیک فعال میشه ، فیلد مبلغ تخفیف برابر باشه با : مبلغ کالا * درصد تخفیف / 100

و وقتی غیر فعال میشه، فیلد مبلغ تخفیف برابر با صفر باشه

mazoolagh
دوشنبه 24 آبان 1400, 11:21 صبح
1- برای محاسبه تخفیف بهتر هست فیلد تخفیف رو از نوع calculated انتخاب کنین و بهش فرمول بدین:
discount=discount_percent*price
فیلد تخفیف فعلی رو باید اول پاک کنین و یک فیلد تخفیف جدید با این شرایط که گفته شد بسازین.

2- معمولا در فاکتور تعداد و قیمت واحد هم داریم که مبلغ کالا از ضرب این دو به دست میاد - بهتر هست اینها رو اضافه کنید:
price=unit_price*quantity
فیلد قیمت هم میتونه از نوع calculated باشه

3- همچنین در فاکتور معمولا یک قیمت پس از تخفیف هم داریم (باز هم calculated و ممکنه بهش قیمت کل هم بگن که با جمع کل فاکتور نباید اشتباه بشه)

4- بجز تخفیف درصدی، تخفیف ریالی هم ممکنه برای هر یک از اقلام فاکتور داشته باشیم

5- آخر فاکتور باید تعداد اقلام و جمع کل همه موارد هم باشه

6- بهتر هست بجای چک باکس از یک باتن برای اعمال تخفیف روی همه اقلام استفاده کنین

برای وضعیت فعلی که دارین همین شماره 1 کافی هست و بقیه موارد جنبه پیشنهادی دارن

G.hemati
دوشنبه 24 آبان 1400, 14:24 عصر
سپاس فراوان از راهنمایی جامع و دقیقتون استاد عزیز

انشالله که دعای خیر بنده حقیر و اعضای تالار همیشه و همه جا پشت و پناهتون باشه

G.hemati
دوشنبه 24 آبان 1400, 21:29 عصر
1- برای محاسبه تخفیف بهتر هست فیلد تخفیف رو از نوع calculated انتخاب کنین و بهش فرمول بدین:
discount=discount_percent*price
معذرت استاد عزیز
به دلایلی نمیشه از calculated استفاده کنم چون داده های ذخیره شده قبلی این فیلد رو (حدود 4 سال ) تحت تاثیر قرار میده

من نیاز دارم که فیلد تخفیف قابل ویرایش باشه تا تخفیف ریالی رو هم تو همین فیلد اعمال کنم

mazoolagh
سه شنبه 25 آبان 1400, 12:42 عصر
به دلایلی نمیشه از calculated استفاده کنم چون داده های ذخیره شده قبلی این فیلد رو (حدود 4 سال ) تحت تاثیر قرار میده


در همون بلوک EDIT...UPDATE هر تغییری روی مقادیر فیلدها میتونین انجام بدین:
.EDIT
!Num2=meghdar
!DISCOUNT=!PRICE*meghdar/100
.UPDATE

mazoolagh
سه شنبه 25 آبان 1400, 12:50 عصر
من نیاز دارم که فیلد تخفیف قابل ویرایش باشه تا تخفیف ریالی رو هم تو همین فیلد اعمال کنم

روال این هست که تخفیف (چه درصد و چه مقدار) رو بشه روی هر قلم از کالا و یا در کل فاکتور اعمال کرد.
ممکنه شما روی بعضی اقلام فاکتور تخفیف درصدی و روی بعضی تخفیف ریالی و روی بعضی ترکیب هر دو رو داشته باشین.
جدای از این ممکنه روی کل فاکتور هم این وضعیت صادق باشه.

روش کار این هست که شما بعنوان برنامه نویس همه این حالات رو باید در نظر داشته باشین و پیش بینی کنین، اما زمان ثبت/ویرایش فاکتور طبق شرایطی که مشخص میشه هر کدوم که نیاز هست فعال میکنین.

G.hemati
سه شنبه 25 آبان 1400, 13:54 عصر
من تو برنامه های جدیدم حتما فرمایشات شما رو اعمال میکنم

ولی این برنامه برای چندین سال پیشه و به این شکل طراحی کرده بودم که تو فیلد تخفیف در صورت نیاز یکی از فیلدها رو ادیت میکردن تا تخفیف ریالی هم اعمال بشه

مثلا پس از اعمال تخفیف درصدی ، جمع کلی شده 500010 تومان

حالا برای اینکه جمع کل رند بشه ، بر روی یکی از کالاها، در همون فیلد تخفیف درصدی، مقدار 10 تومان تخیفش رو اضافه میکردن (چون قابل ویرایش هست)

به هر حال روش اصولی پیشنهاد جنابعالیه و از راهنمایی و لطف شما نهایت تشکر رو دارم

G.hemati
سه شنبه 25 آبان 1400, 21:22 عصر
در همون بلوک EDIT...UPDATE هر تغییری روی مقادیر فیلدها میتونین انجام بدین:

شرمنده استاد من زیاد با حلقه ها کار نکردم و آشنایی ندارم

مبلغ تخفیف با راهنمایی شما درست شد تنها مشکلی که هست ضرب کردن تعداد سفارش در مبلغ تخفیفه

ممنون میشم فایل ضمیمه رو ملاحظه بفرمایین

G.hemati
یک شنبه 30 آبان 1400, 11:16 صبح
در همون بلوک EDIT...UPDATE هر تغییری روی مقادیر فیلدها میتونین انجام بدین:

سلام استاد عزیز

شرمندم به خدا ، ببخشید مزاحم شدم ، همه الطافتون در این پروژه ، به پست بالا ختم میشه

خیلی تلاش کردم تا مزاحتون نشم ولی متاسفانه نتیجه نگرفتم و همش Eror میده

ممنون میشم راهنمایی بفرمایین

mazoolagh
یک شنبه 07 آذر 1400, 12:55 عصر
من زیاد با حلقه ها کار نکردم و آشنایی ندارم

مبلغ تخفیف با راهنمایی شما درست شد تنها مشکلی که هست ضرب کردن تعداد سفارش در مبلغ تخفیفه

جناب همتی،
شما در همون بلوک هر فرمول (مجاز) رو میتونین روی فیلدها پیاده کنین، ولی تعداد سفارش در قیمت واحد ضرب میشه و نه مبلغ تخفیف!
بعد باید تخفیف رو از این قیمت کم کنین.

.EDIT
!PRICE=!Quantity*!Unit_Price
!Num2=meghdar
!DISCOUNT=!PRICE*meghdar/100
.UPDATE

G.hemati
پنج شنبه 11 آذر 1400, 20:50 عصر
سلام استاد عزیز

سپاس از زحمات دلسوزانه و معرفت بی دریغتون


شما در همون بلوک هر فرمول (مجاز) رو میتونین روی فیلدها پیاده کنین، ولی تعداد سفارش در قیمت واحد ضرب میشه و نه مبلغ تخفیف!
بعد باید تخفیف رو از این قیمت کم کنین.

عرض کردم خدمتتون ، من وسط یک پروژه گیر افتاده بودم و دستم زیاد برای ویرایش جداول باز نبود چون داده ها به هم میخورد

ایرادی هم که حلقه میگرفت از نبودن فیلد جمع مبلغ کالا بود (من این فیلد رو در کویری لینک شده به فرم ایجاد کرده بودم)

در نهایت مجبور شدم این فیلد رو ایجاد و آبدیت کنم و مشکلم حل شد

خیلی خیلی لطف کردین :تشویق: