PDA

View Full Version : درخواست کمک برای نرم افزار Code Generator



حامد فراست
شنبه 20 مهر 1387, 20:20 عصر
:گریه:سلام دوستان:گریه:
یه برنامه دارم که تولید کد میکنه.این برنامه یه رشته با 3 کاراکتر را از یه جدول و یه کد 8 رقمی را از یه جدول دیگه میخونه و کد تولید شده یه قطعه را میسازه که روی این قطعه یه سری عملیات انجام میشه و دو رقمی که تعداد تکرار عملیات روی قطعه را مشخص میکنه در آخر کد اضافه میشه پس در کل کد من 13 کاراکتری(ABC-12345678-01 و ABC-12345678-02 و ...) مشکل من تو تعداد تکرار یه عملیات مشخص روی یه قطعه است. چطوری این کدهای همشکل که فقط توی قسمت آخر یکی با هم اختلاف دارن را به DataGrid بفرستم. لازمه بگم تعداد تکرار عملیات هیچ فیلدی توی جدولم نداره و از کاربر هم پرسیده نمیشه و خط تیره ها هم قسمت های مختلف کد تولیدی را جدا میکنن.
تو را خدا کمکم کنین

SMRAH1
یک شنبه 21 مهر 1387, 17:36 عصر
یک مثال عددی بزن تا کامل متوجه موضوغ بشیم!!!مثلا منظور از تعداد تکرار چیه و مشکل افزودن توی DataGrid چیه (چرا همین عبارت ABC-12345678-02 رو اضافه نمی کنی) و ...

حامد فراست
یک شنبه 21 مهر 1387, 21:45 عصر
با انتخاب نام قطعه از یه جدول کد اون قرار میگیره مثله 12345678، با انتخاب عملیات از یه جدول دیگه قسمت حرفی می آد مثل ABC. و هر بار که کاربر دکمه تولید کد را میزنه دو رقم به ته کد میچسبه که نشاندهنده تعداد تکرار عملیاته. حالا اگر روی یه قطعه 3 تا عملیات یکسان انجام بشه دو قسمت اول کد یه شکله و فقط دو رقم آخر در هر بار اجرا عوض میشه و کد توی بانک ذخیره میشه

SMRAH1
یک شنبه 21 مهر 1387, 22:26 عصر
ببخشید،هر چی سعی می کنم،منظورتون رو متوجه نمی شم.
شما سه تا عبارت دارید که یکی کد قطعه،یکی کد عملیاتی و یکی تعداد تکرار که همه رو هم دارید! باید همه را به هم بچسبانید (به همان ترتیب مذکور) البته با افزودن یک کاراکتر Dash در بین هر دو کد متوالی.بعد هم در جدول اضافه کنید (کجای جدول و کدوم جدول؟)
با این توصیفات (اگر درست است)،پس مشکل کجاست؟

afsharm
دوشنبه 22 مهر 1387, 08:35 صبح
اصلا کاربرد این کد و برنامه چیست و به چه درد می‌خورد؟

حامد فراست
دوشنبه 22 مهر 1387, 12:17 عصر
عزیزم اگه تعداد تکرار را داشتم که درخواست کمک نمی کردم. ممکنه عملیات روی قطعه انجام بشه و یه کد تولید بشه اما چند روز بعد همان عملیات دوباره روی قطعه تکرار بشه و اینبار بجای 01 باید 02 آخر کد بیاد. تعداد عملیات روی یه قطعه را کاربر انتخاب نمیکنه.
ممنون از لطفتون

SMRAH1
دوشنبه 22 مهر 1387, 13:08 عصر
خوب در هر بار کار کاربر(افزودن یک عملیات)،رشته رو از پایگاه بازیابی می کنی،بعد با توجه به کاراکتر Dash اون رو میشکنی و آخرین قسمتش رو به عدد تبدیل می کنی،یکی بهش اضافه می کنی و دوباره عبارات رو بهم میچسبونی.
مشکل چیه؟
اگر میشه یک کد ساده بگذار و دقیقا جایی که باید این اتفاق بیفته رو با پیغام مشخص کن و بگو باید نتیجه چی باشه تا بهتر متوجه بشیم!

موفق باشی

حامد فراست
سه شنبه 23 مهر 1387, 16:54 عصر
کاربر قطعه را انتخاب میکنه که کد 8 رقمی اون وارد میشه مثلا 12345678 بعد عملیات روی قطعه را انتخاب میکنه که عبارت اختصاری مثلا AB به اول کد اضافه میشه(AB12345678) بعد کلید ثبت زده میشه که با زدن اون باید کد حاصل(AB-12345678-01) تولید و در جدول ثبت بشه. حالا اگه دوباره کاربر همون قطعه و عملیات را انتخاب کرد و کلید ثبت را زد اینبار باید کد AB-12345678-02 ثبت بشه و در مرحله سوم باید کد AB-12345678-03 ثبت بشه و به همین ترتیب تا آخر.تعداد عملیات یعنی 01و02و03 آخر کد را کاربر انتخاب نمیکنه و هربار که کاربر دکمه ثبت را میزنه یکی به اون اضافه میشه و ته کد نهایی میچسبه.
اگه بازم نامفهومه بگید تا توضیح بدم...ممنون که لطف دارین..

حامد فراست
چهارشنبه 24 مهر 1387, 06:32 صبح
نیست یاری دهنده ای...!

SMRAH1
چهارشنبه 24 مهر 1387, 06:43 صبح
سلام دوست من

برای اینکار کافیه در هنگام ثبت ابتدا در پایگاه داده دنبال رکوردهایی بگدی که فیلد مورد نظرش

AB-12345678-%
باشه(تمام رکود هایی که با عبارت -AB-12345678 شروع می شوند).اگر پیدا نشد ،یعنی مرحله اوله و باید 01 اضافه شه،اگر پیدا شد،باید بزرگترین شماره رو پیداش کنی (اگر اطلاعات روی هم قرار می گیرند- یعنی اطلاعات مرحله دوم روی مرحله اول هستند- فقط یک رکورد بر میگردونه و کار راحته ولی اگر برای هر مرحله یک رکود داری باید روی تک تک عملیات رو انجام بدی البته در این حالت هم می تونی از پایگاه داده بخواهی اطلاعات رو به شکل نزولی برات بفرسته که بزرگترین شماره در اولین رکود قرار بگیره)،می تونی رشته رو بشکنی،بعد عدد مرحله قبل رو پیدا کنی و در نهایت یکی بهش اضافه کنی.تا عدد مرحله جدید بدست بیاد

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

موفق و پیروز باشید

حامد فراست
چهارشنبه 24 مهر 1387, 07:21 صبح
ممنون از توجهتون میشه کد مربوط به اون را بذارین.

SMRAH1
چهارشنبه 24 مهر 1387, 07:27 صبح
سلام

لطفا مشخص کنید که اطلاعات رو هم قرارمی گیره یا هر تکرار یک ردیف داره،تا انشاءا... آخر امشب یا فردا صبح براتون بگذارم

موفق باشید

حامد فراست
چهارشنبه 24 مهر 1387, 14:33 عصر
ممنون که توجه میکنین. با هربار زدن دکمه ثبت یه رکورد به جدول اضافه میشه که با رکورد قبلی فقط تو دو رقم آخر تفاوت داره. البته اگه قطعه و عملیاتی که روی اون انجام میشه تکراری باشه.
خیلی لطف میکنین

حامد فراست
چهارشنبه 24 مهر 1387, 22:26 عصر
سوزنده است آتش جهنم ولی نیست سوزنده تر از سایه دیوار انتظار...

SMRAH1
پنج شنبه 25 مهر 1387, 17:01 عصر
سلام

يوسف گمگشته باز آيد به کنعان غم مخور
کلبه احزان شود روزي گلستان غم مخور

از اينکه دير جواب مي دهم ،معذرت مي خوام.راستش تا امروز ظهر سرم خيلي شلوغ بود(فرصت جمع کردن اين برنامه رو نداشتم فقط مي تونستم به سايت يه سري بزنم و برم).
بگذريم!برنامه اي که قول دادم رو براتون مي فرستم.به نظرم اونقدر ساده است که نياز به توضيح خوده برنامه نباشه.فقط در مورد DataBase برنامه کمي بايد توصيه کنم.با توجه به اينکه سيستم من به يک ويروس VBA مبتلاست (هنوز نتونستم دقيقا متوجه نوعش بشم) ،اکيدا توصيه مي کنم که فايل Access همراه برنامه رو باز نکنيد (حتي پاک کنيد).البته اين ويروس فقط روي فايلهاي Access عمل ميکنه و به بقيه ويندوز کاري نداره.در ضمن تا حالا که بي خطر بوده.با اين حال خودتون مي تونيد پايگاه داده مورد نياز برنامه رو بسازيد.براي اين کار يک فايل Access جديد درست کنيد که در اون يک جدول به نام Ghate باشه.در اين جدول دو فيلد داريم.يکي Name که از نوع Text است (بهتر است تنظيمات پيشفرض رو قبول کنيد).دوم فيلد ID که از نوع عدد صحيح است (Number) .فيلد Name رو هم بايد به عنوان Primary Key انتخاب کنيد.توجه کنيد که ID از نوع AutoNumber نباشد.اين فيلد فقط براي اينه که متوجه باشيد که چطور داده هاي قديمي رو در رکورد مرحله جديد وارد مي کنم.در ضمن اگر قطعه-عمليات براي بار اول وارد جدول بشه،برنامه خودش به شکل خودکار يک عدد به اين ID نسبت مي ده و در مراحل بعد (از همين قطعه-عمليات) اين عدد رو حفظ مي کنه.نام فايل Access رو هم حتما Ghate.mdb بگذاريد و در کنار فايل اجرايي باشه تا برنامه اجرا بشه.
برنامه تست شده و با «آنچه شما خواسته ايد:بامزه:» (البته اونطور که من فهميدم) هماهنگ است.

موفق باشيد.

حامد فراست
پنج شنبه 25 مهر 1387, 18:04 عصر
ممنون گلم...