PDA

View Full Version : سوال: یک پروژه کوچک انبارداری



aghaee67
پنج شنبه 18 تیر 1388, 22:49 عصر
با سلام و عرض ادب خدمت کلیه دوستان و زحمتکشان سایت برنامه نویسان

بنده مدتی است می خواهم یک پروژه ای را به عنوان پروژه پایان ترم به استاد ارائه بدم(یک پروژه کوچک انبارداری). ولی با مشکلاتی برخورد کردم. گفتم مشکلاتم را اینجا بگم تا یه با مرامی مشکل منو حل کنه...

// من از دیتابیس اکسس استفاده می کنم //

1. در دیتابیس یک جدول به نام User دارم که اطلاعات کاربران استفاده کننده در آن درج شده. مثلا نام کاربری و رمز عبور و ...
می خواهم در دلفی یک فرم طراحی کنم و در آن یوزر و پسورد را از کاربر گرفته و با دیتابیس مقایسه کنم از در جدول موجود بود به فرم 2 بره ولاغیر پیغام بده.


2. جستجوی یک سری اطلاعات و نمایش اطلاعات جستجو شده در یک DBgrid :
مثلا می خواهیم کالاهای فروشی ماه گذشته را جستجو کنیم و فرضا 100 کالا پیدا شد می خواهم آن 100 لیست را در DBgrid نمایش بده.


3. فرض کنید یه فرمی برای صدور فاکتور دارم. و کاربر در حال پر کردن مقادیر این فرم است که یک لحظه احساس نیاز به ماشین حساب می کند؟
ما در یک فرمی این ماشین حساب را طراحی کردیم. و وقتی که کاربر در فرم قبلی روی یک دکمه کلیک می کند فرم ماشین حساب ظاهر می شود و کاربر محاسبات خودش را انجام می دهد.
مشکل اینجاست که مقدار نهایی در ماشین حساب را به چه نحوی به فرم قبلی (ارسال فاکتور) بفرسته و در یک edit مقدار رو بنویسه؟


4. در یک فاکتور ممکن است تعداد لیست کالاها یک و یا 100 کالا باشد!
من برای فرمی که برای دریافت و یا ارسال فاکتور طراحی می کنم چی کار کنم که مقادیر یا edit ها نسبت به لیست کالاها در فاکتور گسترش یابد آیا باید 100 یا 200 ادیت edit در فرم بگذارم.
و جدول در اکسس به چه صورتی خواهد بود. باید 100 یا 200 فیلد برای هر یک از کالاها در فاکتور طراحی کنم. آخه تعدادش مشخص نیست امکان دارد در فاکتور 1 کالا باشد و امکان دارد 100 کالا ؟


5. من میخواهم طوری کنم که در صورت دادن اطلاعات مشابه یا تکراری جلوگیری کنم. چی کار کنم.


6. سوال ششم شاید کمی....
من یک edit دارم که مقدار (پول) در داخل آن نوشته می شود.
می خواهم هنگام نوشتن یک عدد معادل حرفی آن را در زیر Edit بنویسد.
مثلا با نوشتن 300 در پائئین بنویسه سیصد و وقتی یک 0 دیگر اضافه کردیم بنویسه سه هزار.

:متعجب::متعجب::متعجب::متعجب:

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

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

s_ammm
پنج شنبه 18 تیر 1388, 23:56 عصر
با سلام:من با تجربه نيستم ولي تا اونجا كه بتونم راهنمايي تون مي كنم!
1:بهتره از بانك اطلاعاتي اسكيوال استفاده كنيد چون بيشتر يا تمام سوالها و مشكلاتتون با اون حل ميشه (اون هم خيلي راحت تر)
2:براي سوال دو ،لطفا مشخص كنيد كه بر چه اساس مي خوايد جستجو كنيد (يعني در جدولي كه در اكسس درست كرديد اطلاعاتي داريد حالا تو برنامه تون مي خوايد بر اساس يه چيز مشخص مثل اسم جستجو كنيد؟اگه اينطوريه شما مي تونيد از فيلتر كردن و كدهاي مربوطه به اون استفاده كنيد.
3:شما مي تونيد به جاي طراحي ماشين حساب جديد از ماشين حساب خود ويندوز در برنامه تون استفاده كنيد و اين كه كاربر با زدن يه دكمه اون ماشين حساب براش باز بشه و خودش اطلاعات رو از ماشين حساب ببينه و وارد كنه و يا يه راه ديگه مي تونه اين باشه كه در ماشين حسابي كه مثلا در فرم دو طراحي كردين (كه براش يه اديت دو براي نمايش و محاسبه اعداد قرار داديد )بيايد بگيد كه مثلا اون اطلاعاتي كه در اديت دو من در فرم دو قرار داره را در اديتي كه در فرم سه هست قرار بده form3.edit3.text:=form2.deit2.text
4:براي اين سوال و سوال بعد راهي به ذهنم نمي رسه اما براي سوال چهار بايد يه فاكتور ثابت وجود داشته باشه.
اميدوارم مشكلتون حل بشه ، علي يار و ياورتون!

aghaee67
جمعه 19 تیر 1388, 01:07 صبح
سلام دوست عزیز حق با شماست...
ولی از نو شروع کنم و SQL یاد بگیرم آخه من همش 5 روز فرصت دارم یه کار یکنم.

...

davodsharif
جمعه 19 تیر 1388, 02:23 صبح
سلام دوست من
من براي login از اين كد استفاده ميكنم



s:='SELECT * FROM [tbl_login] WHERE (username = '''+ txt_user.Text +''') AND (pass = '''+txt_pass.text +''')';
DM.ADOQuery1.SQL.Clear;
DM.ADOQuery1.Active:=false;
DM.ADOQuery1.SQL.Text:= s;
DM.ADOQuery1.ExecSQL;
DM.ADOQuery1.Active:=true;
if (DM.ADOQuery1.RecordCount>0) then
begin
//===============
Btn_ok.Enabled:=false;

uname:=txt_user.text ;

frm_login.hide;
frm_main.show;




//================
end;
end;

davodsharif
جمعه 19 تیر 1388, 02:41 صبح
در مورد ماشين حساب هم بايد بگم راحت ترين گزينه ممكن براي شما استفاده از كامپوننت next suite ميباشد . calcedit يكي از كامپوننت هاي اين مجموعه است . در باره جستجوي اجناس و نمايش در گريد هم از دستور select استفاده كنيد . اگر به مشكلي برخورد كرديد ايميل من : sida2544@gmail.com

aghaee67
پنج شنبه 25 تیر 1388, 01:38 صبح
ممنون از همگی.... تست می کنم جواب میدم...

yousef_61
جمعه 26 تیر 1388, 20:28 عصر
سلام دوست عزيز

در مورد سوال اول و سوم راه حل davodsharif (http://barnamenevis.org/forum/member.php?u=35732) , s_ammm (http://barnamenevis.org/forum/member.php?u=98603) جواب ميده.

درمورد سوال دوم ميتونين يك دستور SQL نوشته و كد اونو داخل ADOQuery بزارين بعد با استفاده از يك DBgride ، Datasource رو به كوئري وصل كني و وقتي كوئري رو Execute ميكني نتيجه داخل گريد نشون داده ميشه.

درمورد سوال چهارم هم به نظر من از چند تا EDIT براي وارد كردن اطلاعات كالايي كه بايد به فاكتور اضافه بشه استفاده كن و يك دكمه "اضافه به ليست " هم بزار كه اين كالا رو به ليست اضافه ميكنه. ليستت هم با استفاده از يك گريد طراحي كن . حالا 1000 تا كالا هم كه بخواي ميتوني اضافه كني.

در مورد سوال پنجم هم ميتوني وقتي كه داري يك كالاي جديد وارد ليست ميكني چك كني كه كد كالا داخل ليست هست يا نه

و سوال آخر كه در مورد اين سوال ميتوني از اين برنامه كوچولو كه گذاشتم استفاده كني.

شاد باشي

aghaee67
شنبه 27 تیر 1388, 09:20 صبح
سلام دوست عزيز

در مورد سوال اول و سوم راه حل davodsharif (http://barnamenevis.org/forum/member.php?u=35732) , s_ammm (http://barnamenevis.org/forum/member.php?u=98603) جواب ميده.

درمورد سوال دوم ميتونين يك دستور SQL نوشته و كد اونو داخل ADOQuery بزارين بعد با استفاده از يك DBgride ، Datasource رو به كوئري وصل كني و وقتي كوئري رو Execute ميكني نتيجه داخل گريد نشون داده ميشه.

درمورد سوال چهارم هم به نظر من از چند تا EDIT براي وارد كردن اطلاعات كالايي كه بايد به فاكتور اضافه بشه استفاده كن و يك دكمه "اضافه به ليست " هم بزار كه اين كالا رو به ليست اضافه ميكنه. ليستت هم با استفاده از يك گريد طراحي كن . حالا 1000 تا كالا هم كه بخواي ميتوني اضافه كني.

در مورد سوال پنجم هم ميتوني وقتي كه داري يك كالاي جديد وارد ليست ميكني چك كني كه كد كالا داخل ليست هست يا نه

و سوال آخر كه در مورد اين سوال ميتوني از اين برنامه كوچولو كه گذاشتم استفاده كني.

شاد باشي


ممنون دوست عزیز