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

amirrayaneh

Member
کد:
البته جناب amirrayaneh تلاش كردن براي پاسخ دادن اما كافي نبود و نميدونم چرا ديگه ادامه ندادن !
با سلام و احترام
من هستم و اتفاقا هرروز سر میزنم ولی چون میبینم کسی پیگیر نیست منم حرکتی نمی کنم (البته فکر کنم طرز فکرم اشتباهه)
خب لطف کنید به طور واضع البته یک بار دیگه مشکلات فرم ها را بگید تا تصحیح کنیم و به کارمون ادامه بدیم
 
  • Like
Reactions: pcj

pcj

Member
می شد پیشبینی کرد که این تایپیک اگر با همین روند پیش بره به زودی متوقف می شه
 

amirrayaneh

Member
با سلام و احترام
انشاالله بهتر باشند
بهشون بفرمائید همه بچه های مجید آنلاین برایشان آرزوی سلامتی میکنند
 

evil_gates

اين نيز بگذرد ...
با سلام و احترام
من هستم و اتفاقا هرروز سر میزنم ولی چون میبینم کسی پیگیر نیست منم حرکتی نمی کنم (البته فکر کنم طرز فکرم اشتباهه)
خب لطف کنید به طور واضع البته یک بار دیگه مشکلات فرم ها را بگید تا تصحیح کنیم و به کارمون ادامه بدیم

دوست عزيز

عذر ميخوام كه دير پاسختون رو ميدم. در مورد فرم‌ها و مشكلاتشون عرض ميكنم:

بخش ثبت كدها بخشي هست كه اطلاعات پايه (اجناس، مشتريان و حساب‌ها) رو دريافت و نگهداري ميكنه. گرچه در خروجي اين بخش ما فقط به كدي كه براي هر مورد درج ميشه احتياج داريم اما در صورتي كه نياز به اطلاعات بيشتري درباره اون كد داشتيم مراجعه به اين بخش به ما كمك ميكنه.

پس لازمه كه اطلاعات ضروري و موردنياز رو همراه با نام و كد مورد دريافت كنيم. اين به اين معني نيست كه ما فرمهاي پيچيده و بزرگي لازم داريم و به اين معني هم نيست كه ما فقط فرمي ميخوايم كه نام و كد رو داشته باشه.

به نظر شما كدوم يكي از فرم‌هايي كه بعنوان نمونه قرار داديد اين خصوصيت رو داره؟ فرمي كه اطلاعاتش نه اضافي و نه كم باشه؟
 

mostafasambalio

New Member
از آخرم هیچ چیز خاصی گیرمون نیومد متاسفانه توی حرف زدن همه اول اول هستن اما توی عمل حتی اونایی که ادعای استادی میکنن هیچ حرفی واسه گفتن ندارن .
 

evil_gates

اين نيز بگذرد ...
از آخرم هیچ چیز خاصی گیرمون نیومد متاسفانه توی حرف زدن همه اول اول هستن اما توی عمل حتی اونایی که ادعای استادی میکنن هیچ حرفی واسه گفتن ندارن .

دوست من

اگه شما هم يكي از مخاطبان اين آموزش هستيد ميشه بگيد چرا طبق راهنمايي‌هايي كه تو پست‌هاي قبلي كردم سعي نميكنيد تمرين گفته شده رو انجام بديد تا مبحث رو ادامه بديم؟

جسارتا بنده ادعاي استادي نميكنم من فقط سعي ميكنم دوستان رو راهنمايي كنم تا خودشون بتونن يك نرم افزار حسابداري بسازن.

البته تو اين انجمن دوستان زياد ديگه‌اي هستن كه دانش و تجربشون از من بيشتره و منم مثل شما دارم كنار اين اساتيد چيز ياد ميگيرم. :wink:

موفق باشيد
:rose:
 

dorryaft

New Member
سلام


بعد از 4 سال می خوام این بحث را دو باره فعال کنم.

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

برای اینکه دوستان علاقه مند واقعا این مباحث را یاد بگیرند، من فقط توضیحات لازمه را بهتون میدهم. یادگیری مباحث مربوطه درز انجمن فراوان هست. (حقیقتش تسلط زیادی به برنامه ندارم که بتونم بیش از اندازه توضیح بدهم)

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

همچنان منتظر پیشنهاد و نقد های سازندتون هستیم.

برای شروع کار:

برنامه باید شامل اموال و تعریف گروه ، هم چنین کالا ها و همچنین خدمات باشه. یک بخش دیگه کالا های ترکیبی هست که در برخی فروشگاه ها استفاده داره.

سیستم باید شامال خرید و فروش ، گزارش گیری و همچنین صندوق باشه


و در پایان مطمئنا ما با افراد مختلف سر و کار داریم، که اونها را هم باید لیست کنیم.



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


موفق باشید تا روزی دیگر و پیشرفت بیشتر
bg.png
Capture.JPG

qfnaa5hhp7elbnnxahv.png

http://uploadax.ir/images/x1bft6jq4btm42ptg5g4.png
http://uploadax.ir/images/hsplczb0ylcrbtrs9er.jpg
http://uploadax.ir/images/qfnaa5hhp7elbnnxahv.png
 
آخرین ویرایش:

dorryaft

New Member
دوباره سلام
امیدوارم که تا پایان ساخت برنامه بتونم ادامه بدهم و هر جا که با مشکل مواجه شدم دوستان عزیز یاری کنند

به هر حال باید بگویم که ساخت برنامه بیش از حدی که فکر می کردم کار می بره، که ناچار باید هر بار قسمت کوچکی از برنامه را جلو ببریم. همچنین به دلیل اینکه همراه هم پیش برویم فایل ساخته شده را هم ضمیمه می کنم.

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

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

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

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

تمام کالا ها و اموال (حتی خدمات)  جدول شامل موارد زیر دارند:

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

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

بگذریم. در این برنامه کاربر زیاد با کد درگیر نمیشه... چون ما به خواسته های کاربران احترام می گذاریم !

از بحث دور شدم.
آخرین کاری که در این روز انجام دادم در صفحه دوم کد ایجاد دیتابیس و ساخت جدول مطابق نیاز  اموال کردم. خودتون سری به  اسکریپ بزنید ، توضیح هر دستور را به زبان ساده نوشته ام. مطمئنا متوجه میشید، هرچند ممکنه دستورات اجرا نشه!

تا دو روز دیگر و پیشرفت دوباره خدانگهدار
 

پیوست ها

  • hesabsa.rar
    590 کیلوبایت · بازدیدها: 227

MahmoodM30

مدیر <A href="http://forum.majidonline.com/forums/
بابت تلاشتون ممنون ولی اینطوری برید جلو فکر نمیکنم کسی مشتاق باشه به تاپیک سر بزنه درضمن با نگاهی که به نمونه پیوستی انداختم بنظرم بیشتر باید با بیلدر کار کنید تا بتونید این اموزش رو جلو ببرید همچنینی نحوه کار با پلاگین SQLite رو هم روش کار کنید
 

aryana2500

Active Member
منم با آقا محمود کاملا موافقم برای این کار علاوه بر امکانات خود بیلدر شما باید با پلاگینهای موجود نیز آشنایی کامل داشته باشید
اینکه کار رو به صورت عملی شروع کردید شاید جذابتر باشه اما من هر بار خواستم کاری رو به صورت عملی شروع کنم بدون اینکه یه طرح اولیه و جامع از پروژه داشته باشم دچار دوباره کاری شدم.....
به هر حال آرزوی موفقیت دارم براتون
در ضمن نمونه های بسیار عالی در انجمن موجوده که میتونی از اونا ایده بگیری مخصوصا کارای آقا محمود.........
 

dorryaft

New Member
سلام
حق با شماست. هنوز آنچنان به این برنامه مسلط نیستم. البته قبلا پروژه های متوسطی باهاش انجام دادم. 

حالا هم چون کار با نرم افزار های حسابداری را کمی پیچیده دیدم (البته رهآورد برنامه ساده و خوبی بود) خواستم چیزی که نیاز هام را کاملا پوشش بده و همچنین ساده باشه را بسازم.

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

فعلا برنامه در حد تعریف گروه و نمایش گروه های ثبت شده پیشرفت کرده. حالا حالا این طور که پیش میره و فرصتی که براش می گذارم طول می کشه.

ممنون از نظرتون
 

MahmoodM30

مدیر <A href="http://forum.majidonline.com/forums/
سلام بله اشیا و ... بنظرم اصولی نیست و باید از پلاگین ها و ... استفاده بشه برای نشون دادن اطلاعات ذخیره شده در دیتابی و اینکه اگرم از ابزار خود بیلدر استفاده میکنید باید با اینکه ساده و بدون گرافیک طراحی میکنید حداقل سایز ها و اندازه ها و چیدمان و حتی نوشتن کد های داخل اسکریپت اصولی و مرتب باشه چون قصد اموزش دارید اگه غیر این بود نمیگفتم

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

dorryaft

New Member
سلام دوباره

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

به طور خلاصه قصد بر این است که بتوانیم کالا و اموال و خدمات را ذخیره کنیم. هر کدام دارای اسم، قیمت خرید . قیمت فروش، تعداد موجود، گروه خواهد بود. همچنین هر کالا یک کد داره که خود برنامه باهاش کار می کنه ما فقط می بینیمش و درگیر این کد نمی شیم.

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

برویم سراغ همین یک صفحه:

ابتدا باید ایتم های ضروری را بوجود بیاوریم:

attachment.php

id0  که با گذاشتن یک HotSpot قفلش کرده ام تا کاربر نتونه تغییرش بدهد. و gr0 که نام گروه هست. و دکمه ثبت که کاربر اسم گروه را در دیتا بیسش ذخیره می کنه.

تا اینجای کار ببینیم اسکریپ ابتدای صفحه چی باشه:
1- بررسی انکه اصلا فایل دیتا بیس وجود داره یا نه (مخصوصا اولین اجرا که وجود نداره) اگه وجود نداشت اون را بوجود بیاره. اینکار را داخل یک اسکریپ دیگه به اسم Ifsql  واگذار می کنیم.
بعد از این باید ببینیم id  اتوماتیک اضافه بشه بنابراین باید ببینیم که این دیتابیس ما چند ردیف داره. این کار را هم به اسکریپ Rows واگذار می کنیم

id این گروه از 101 شروع میشه (دلخواه است) بنابراین بعد از بدست اوردن تعداد ردیف های دیتابیس اون را با 101 جمع می کنیم تا id جدید بدست بیاید.

دکمه ثبت هم وظیفه اش قرار دادن این اطلاعات (id0 ,gr0) داخل دیتا بیس هست. و بعد از انجام موفقیت آمیز یک واحد به متغیر Rows که تعداد ردیف های دیتابیس هست اضافه می کنه.

تا اینجای کار داریم:
اسکریپ ابتدای صفحه:
کد:
** cread sql if not exist
RunScript("Ifsql")
RunScript("initialization")
RunScript("Rows")

اسکریپ
Ifsql
کد:
save$='G:\barname nevisi\mmb\hesabsa\db\Gdaraii.db'
FileExist("save$","exist")
If (exist=0) Then
  ** run plugin aql
  PluginRun("SQL_Plugin","SQLiteInit")
  ** test run
  PluginGet("SQL_Plugin","Initialized")
  ** --------------
  ** --------------
  ** send local of file
  PluginSet("SQL_Plugin","save$")
  ** it's a save file
  PluginRun("SQL_Plugin","GetDBFileName")
  ** creat databis
  PluginRun("SQL_Plugin","CreateSQLDB")
  ** test creat
  PluginGet("SQL_Plugin","Created")
  **********
  **********
  ** open DB
  PluginRun("SQL_Plugin","OpenSQLDB")
  ** test open
  PluginGet("SQL_Plugin","Opened")
  ** there are field of table
  sql_1$ = 'CREATE TABLE Gamval ('
  sql_2$ = 'id INTEGER PRIMARY KEY NOT NULL,'
  sql_3$ = 'gr CHAR NOT NULL );'
  sql_query$ = sql_1$ + sql_2$ + sql_3$
  **send pm to plugin
  PluginSet("SQL_Plugin","sql_query$")
  **run pm
  PluginRun("SQL_Plugin","Query")
  **test run (not error?!)
  PluginRun("SQL_Plugin ","DBError")
  ** result of error!
  PluginGet("SQL_Plugin","Error$")
  ** if no exist Gamval into sql
Else
End
اسکریپ Rows

کد:
** get number of grup
RunScript("initialization")
sql_query$ = 'SELECT * FROM Gamval WHERE id BETWEEN 101 AND 199;'
PluginSet("SQL_Plugin","sql_query$")
PluginRun("SQL_Plugin","Query")
**PluginGet("SQL_Plugin","Result$")
PluginGet("SQL_Plugin","Rows")

اسکریپ ثبت:

کد:
If (Rows=100) Then
  Message("","شما به حداکثر تعداد تعريف گروه رسيده ايد. در صورت نياز به گروه هاي بيشتر با پشتيباني تماس بگيريد")
  Return()
End
RunScript("initialization")
If (id0$='' | gr0$='' ) Then
  Message("","Error : You must fill all blank box")
  Return()
End
sql_query1$  = 'INSERT INTO Gamval (id,gr)'
sql_query2$  = ' VALUES ('+id0$+',"'+gr0$+'");'
query$ = sql_query1$ + sql_query2$
PluginSet("SQL_Plugin","query$")
PluginRun("SQL_Plugin","UpdateDB")
PluginGet("SQL_Plugin","update")
PluginRun("SQL_Plugin","DBError")
PluginGet("SQL_Plugin","Error$")
If (update<>0) Then
  ** Message("","Your record has been saved successfully")
  Rows=Rows+1
Else
  Message("","Error$")
  Return()
End
*****************
temp$='10'
LoadText("gr0","temp$")
 

پیوست ها

  • Capture2.JPG
    Capture2.JPG
    13.3 کیلوبایت · بازدیدها: 107

dorryaft

New Member
این فایل را هم در این پست پیوست می کنم. یک توضیح مختصر هم اضافه می کنم:

قصد داریم تعدادی از ثبت شده ها را هم نمایش دهیم. هرچند دلخواه است اما با توجه به اندازه های انتخابی ، 14 عدد مناسبی به نظر می رسد.

در مورد اسم گذاری هم نمایش ایدی ها را با اسامی 1gr1 تا 1gr14  با متغیر gr1$ تا gr14$ و نمایش گروه ها با اسامی 2gr1 تا 2gr14 و متغیر شبیه اسمشان ثبت کرده ام.
دو اسکریپ ShowG و Set0 اضافه می کنیم.

 کار Set0 تعیین ردیف شروع و پایان است و کار ShowG نمایش این ردیف هاست.

اسکریپ Set0

کد:
N=0
y=Rows
RunScript("SM")
s1=N*14
s2=M
s3=0
If (M=0) Then
  s1=s1-14
  s2=14
  s3=s1+13
Else
End

SM جز صحیح و باقی مانده Rows را بدست می آورد.

برای دیدن همه گروه ها نیاز است به صفحات دیگری برویم.
برای این کار هم دو دکمه در نظر گرفته ایم و Set1  و Set2 تا نمایشگر را تنظیم کند.


و در آخر قابلیت ویرایش گذاشته ایم به این صورت که با کلیک بر روی اسم گروه، دکمه ثبت پنهان و دکمه ویرایش نمایان می شود. تا بتوانیم دیتابیس را ویرایش کنیم.

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

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

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

یاعلی
 

پیوست ها

  • hesabsa0.0.2.rar
    592.7 کیلوبایت · بازدیدها: 132

evil_gates

اين نيز بگذرد ...
دوست عزیز جناب dorryaft

ممنون از اینکه سعی کردید این مبحث رو دوباره راه اندازی کنید و ممنون از تلاش پیگیرتون

اما جسارتاً عرض میکنم از مسیر اصلی این مبحث بسیار فاصله گرفتید.

بعد از آموزش قدم به قدم پلاگین SQLite دوستان برای کاربردی تر شدن آموزشها درخواست دادن یک برنامه خوب و پیچیده با این پلاگین بسازیم و آموزشش رو هم قرار بدیم. و بر اساس جمع بندی پیشنهادات قرار شد آموزش قدم به قدم برنامه حسابداری یک سوپرمارکت رو قرار بدیم.

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

نکته دوم قرار بود آموزش ها به صورت روان و گام به گام صورت بگیره.

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

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

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

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

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

booyebaran

Well-Known Member
دوست عزیز جناب srmm هدف از ایجاد تایپیک ساخت برنامه حسابراری آگاهی یافتن بچه ها از نحوه کار کرد برنامه توسط mmb و اینکه چگونه بتونیم یه برنامه ساده حسابداری رو با mmb طراحی کنیم نه اینکه بخوایم واسه برنامه های حسابداری تبلیغ کنیم
 

جدیدترین ارسال ها

بالا