PDA

View Full Version : سوال: نحوه کنترل محدوده دو فیلد Text



G.hemati
جمعه 11 مرداد 1392, 12:16 عصر
با سلام خدمت دوستان و اساتید گرامی
من در برنامم، وقتی محصول رو به مشتری تحویل میدیم باید ترتیب سریال محصول رو حفظ کنیم

یعنی اگه ما اولین سریالمون 0250 باشه و تعداد محصولمون 6 پالت، پس آخرین سریالمون باید 0255 باشه و در غیر اینصورت یعنی در این بین یکی از سریالها تکیمل نشده پس کل محموله قابل تحویل به مشتری نیست

چطوری میشه این محدوده رو کنترل کرد و متوجه ناقص بودن محموله شد

در ضمن بعضی مواقع این سریال به این شکل نیز میشود . E-001 الی E-006 به تعداد 6 پالت

ممنون و سپاسگذار

saeed1234n
جمعه 11 مرداد 1392, 12:22 عصر
با سلام
دوست عزیز یک راه ساده آن استفاده از دو فیلد ردیف و شماره سریال است که در برنامه چک می شود که مقدار این دو با هم برابر باشد
در غیر اینصورت کاربر را مطلع نماید .:لبخندساده::لبخندساده::لبخن دساده:

G.hemati
جمعه 11 مرداد 1392, 12:36 عصر
ممنون دوست گرامی
ولی ما هیچ گونه ردیف و سریال ثبت شده ای نداریم
این اطلاعات را هم بخش انبار در موجودیش اعلام میکند که از محصول x مثلاً سریال E-001 الی E-006 به تعداد 6 پالت موجود است

در بسیاری از موارد این ترتیب برقرار نیست و موجودی انبار جهت ارسال ناقص است که باید از همین اطلاعات انبار متوجه شویم

حالا من ابتدا و انتهای سریالها رو در دو فیلد ریختم تا بشه محاسبات انجام داد . ولی چطوری ؟ موندم !

Abbas Amiri
جمعه 11 مرداد 1392, 13:12 عصر
ممنون دوست گرامی
ولی ما هیچ گونه ردیف و سریال ثبت شده ای نداریم
این اطلاعات را هم بخش انبار در موجودیش اعلام میکند که از محصول x مثلاً سریال E-001 الی E-006 به تعداد 6 پالت موجود است

در بسیاری از موارد این ترتیب برقرار نیست و موجودی انبار جهت ارسال ناقص است که باید از همین اطلاعات انبار متوجه شویم

حالا من ابتدا و انتهای سریالها رو در دو فیلد ریختم تا بشه محاسبات انجام داد . ولی چطوری ؟ موندم !


شما باید حتما اولین سریال ، و بین دو مورد تعداد جنس و یا آخرین شماره یکی را داشته باشید. اگر این موارد در یک جدول ثبت شده باشد براحتی می توان این مورد را مشخص کرد .

G.hemati
جمعه 11 مرداد 1392, 15:21 عصر
ممنونم جناب امیری عزیز

شما باید حتما اولین سریال ، و بین دو مورد تعداد جنس و یا آخرین شماره یکی را داشته باشید. اگر این موارد در یک جدول ثبت شده باشد براحتی می توان این مورد را مشخص کرد .من در نمونه زیر فرمایشات شما رو انجام دادم . ممنون میشم نحوه کنترل رو توضیح بفرمایین

Abbas Amiri
جمعه 11 مرداد 1392, 18:28 عصر
ممنونم جناب امیری عزیز
من در نمونه زیر فرمایشات شما رو انجام دادم . ممنون میشم نحوه کنترل رو توضیح بفرمایین

با توضیحات شما فایل اصلاح زیر جواب شما خواهد بود:

G.hemati
جمعه 11 مرداد 1392, 19:06 عصر
ممنونم استاد گرامی
فکر کنم منظورم رو نتونستم بخوبی عنوان کنم

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

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

-مثلاً مشتری x سفارش داده که از سریال 1 تا 15 از قرارداد منعقد شده y برام جنس بفرستین و تاکید کرده هر وقت 5 تا سریال اولم آماده شد (یعنی سریال 1 الی 5) بدلیل نیازی که داره منتظر تکمیل شدن کل سفارش نباشین و در مرحله اول همین 5 تا رو ارسال کنین . پس امکان داره یه سفارش در چندین مرحله به دست مشتری برسه و این بعنوان مشکل تلقی نمیشه

حالا مشکل اینجاست . انبار گزارش میکنه که مشتری x از قرارداد Y سریال 1 تا 6 به تعداد 5 پالت آمادست . این به این معنی است که در این بین یه سریال آماده نیست و این محموله نباید ارسال بشه و در صورت ارسال واقعاً ضایع بازی بار میاد

اینجاست که ما باید حواسمون باشه و پیگیر اون سریال جا مونده باشیم .

اگه بشه فاصله بین اولین سریال و آخرین سریال رو بدست آورد ، (مثلاً همین سریال 1 تا 6 ، عدد 6 رو برگردونه )میشه اون رو با تعداد پالت وارد شده (مثلاً همین 5 مثال بالا) سنجید و در صورت یکی نبودن هشدار لازم رو برگردوند

چون بدلیل فرمت بعضی سریالها مجبورم نوع فیلدم رو تکس انتخاب کنم نمیتونم به هدفم برسم . اگه فیلدم نامبر باشه آخرین سریال رو از اولین سریال کم کرده و حاصل اونهارو با 1 جمع میکنم .

ممنون

G.hemati
شنبه 12 مرداد 1392, 19:29 عصر
چون بدلیل فرمت بعضی سریالها مجبورم نوع فیلدم رو تکس انتخاب کنم نمیتونم به هدفم برسم . اگه فیلدم نامبر باشه آخرین سریال رو از اولین سریال کم کرده و حاصل اونهارو با 1 جمع میکنم .


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

Abbas Amiri
شنبه 12 مرداد 1392, 20:07 عصر
دوستان اگه لطف کنن راهنمایی بفرماین که چطوری دو فیلد از نوع تکست رو از هم کم کنم ، مشکل حله

توابع زیر رو در یک ماژول کپی کنید :


Function NumInString(Expr As String) As Integer
Dim i As Integer, n As Integer
n = Len(Expr)
For i = 1 To n
If IsNumeric(Mid(Expr, i, 1)) Then
NumInString = CInt(Right(Expr, n - i))
Exit Function
End If
Next
End Function

Function StringDiff(str1 As String, str2 As String) As Integer
Dim n1 As Integer, n2 As Integer
n1 = NumInString(str1)
n2 = NumInString(str2)
StringDiff = Abs(n1 - n2)
End Function

مثال:
MyVar = StringDiff(FirstSerial_Tahvili, EndSerial_Tahvili)