برنامه حسابداری

AV_3SG

Member
سلام
من یه چند مدتی که دارم دنبال به برنامه حسابداری می گردم. از چند تا برنامه هم استفاده کردم از جمله بازاریان ، هلو و ... ولی متاسفانه به این نتیجه رسیدم که هیچ کدوم از اینها به در کار من نمی خوره .
کار من و کار همه کسانی که توی این قسمت انجمن کار می کنن ساختن اتوران هستش . خوب این مشخصه که هر اتورانی که درست می کنیم برامون یه نوع درآمد محسوب می شه و برای اینکه توی کارمون موفق بشیم و هر روز پیشرفت داشته باشیم باید حسابداری بلد باشیم.
حسابداری یا روی کاغذ یا توی کامپیوتر فرقی نمی کنه ولی برای کار ما فکر می کنم حسابداری روی کاغذ مناسب نباشه و اگه بخواییم توی کامپیوتر با نرم افزار های موجود توی بازار این کار رو انجام بدیم باز هم به نتیجه ای نمی رسیم
من خودم دانشجوی رشته مدیریت صنعتی هستم و 13 واحد اصول حسابداری پاس کردم و به این نتیجه رسیدم که اگر بخوام برای حرفه ساخت اتوران توی کامپیوتر حسابداری کنم باید خودم یه برنامه درست کنم البته درسته که من خیلی وقته که با mmb کار می کنم ولی هنوز تا حد زیادی از دستوراتش رو بلد نیستم ولی به این نتیجه رسیدم که mmb برای ساخت یه اتوران حرفه ای خیلی کامله و میشه ازش انتظار داشت که امکانات ساخت یه برنامه حسابداری ساده رو داشته باشه .
امیدوارم که شما هم با نظر من موافق باشین و بیاین با هم همکاری داشته باشیم (همکاری به معنای واقعی ) و این برنامه رو درست کنیم وبه نظر من هم نباید کار خیلی سختی باشه چون اساتید و استعداد های زیادی توی این مجموعه هستش و اگر یه تیم رو تشکیل بدیم می تونیم خیلی بهتر و سریع تر به نتیجه برسیم
البته این نظر من درحد یه پیشنهاد هستش و ممکنه هیچ کسی با نظر من موافق نباشه و نخواد همکاری کنه.
من برای اینکه موضوع رو روشن تر کنم یه محیط گرافیکی رو طراحی می کنم که شاید بتونه الهام بخش ساخت این برنامه بشه
البته اینو فراموش نکنین که این برنامه رو برای خودمون می سازیم
با تشکر
Accounting.jpg
 

Aref_Alikhani

Well-Known Member
سلام
فكر و ايده ي جالبي هست....
اما بايد دوستان حرفه اي و به خصوص مديران شما رو در اين امر همراهي كنن تا به نتيجه ي خوبي برسيد....به نظر من از اكسس به عنوان data base استفاده كنيد جالبتره(البته اين تنها يه نظر شخصي بود....)....
 

silvercover

کاربر متخصص
البته این نیاز شما راه حل های بهتری همچون استفاده از برنامه Microsoft Access داره اما به هر حال یکی از عناصر اصلی که این برنامه پیشنهادی شما نیاز داره استفاده از بانک اطلاعاتی و دیتا بیس هست اونم به زبان فارسی. مطلب بعدی این هست که ویژگی های این برنامه رو باید به طور جزئی تشریح کنید.

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

AV_3SG

Member
از توجهتون ممنونم
بله درسته ما توی این کار به یه دیتا بیس نیاز داریم تا اطلاعات رو داخل اون ذخیره کنیم
به همین دلیل باید همه کمک کنیم تا بالاخره به یه نتیجه مطلوبی برسیم و من هم از شما و هم از همه کاربران دیگه می خوام که نظرشونو راجع به برنامه بگن و اگر چیزی کم بود به اون اضافه کنیم
به نظر من باید اول تمامی نیاز هامون رو که می خواییم این برنامه در خودش داشته باشه رو جمع کنیم بعد به کمک یه رابط گرافیکی شروع به ساخت برنامه کنیم و این برنامه هم می تونه یه برنامه حسابداری باشه و هم یه برنامه ای که ما به وسیله اون می تونیم فایل های ساحته شده توسط خودمونو دسته بندی کنیم
 

silvercover

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

ubuntu

Member
من با جناب سيلورکاور موافقم. شروع کردن يه پروژه با رابط کاربري باعث مي‌شه که بعد از اتمام رابط کاربري شوق و علاقه ساخت برنامه کمرنگ بشه. چون يکي از جذاب‌ترين قسمت‌هاي کاره. تازشم! رابط کاربري هميشه قابل تغييره. پس اونو براي آواخر کار يا همگام با اسکريپت‌ها بزارين. يه پيشنهاد ديگه هم دارم. اين که قبل از اين که پروژه اصلي رو بسازين تمام قسمت ها و قابليت‌هاي مورد نياز (يا بخش مهمي از اون‌ها) رو تو چند مثال جداگانه بسازين تا موقع کار اصلي ايجاد هماهنگي بين اون‌ها راحت تر باشه.
من هر موقع بخوام يه برنامه جديد رو شروع کنم و يه پروژه جديد بسازم که به قسمت‌هاي متفاوت و هماهنگي نياز داره يه دفتر مخصوص اون پروژه مي‌گيرم و تقريباً هم هميشه دفتر تموم مي‌شه. چون تمام جزئيات رو از اسکريپت نويسي تا رابط کاربري رو توي اون پياده مي‌کنم. اين کار باعث مي‌شه سرعتتون در ساخت پروژه بالا بره و کيفيت کار هم بهتر در مياد.
فعلاً هم خودم درگير يه کار ديگه هستم و شايد وقت همکاري گسترده با شما رو نداشته باشم و فقط بتونم در حد نظر يا پيشنهاد کمک کنم. شرمنده!
 

AV_3SG

Member
از این که حتی نظر هم میدین من خوشحالم
براي روشن تر شدن موضوع من بخش هايي رو به فکرم رسيده رو توضيح مي دم
اول اينکه اين برنامه بايد از دو قسمت مجزا تشکيل بشه
1-قسمت افزودن اطلاعات
2-قسمت فراخواني اطلاعات

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

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

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
طرح و ایده ی جالبیه...
خب برای انجام اینکار باید از دیتابیس استفاده بشه، در واقع اصل کار هم همین هست، یعنی شما باید بیاد دیتابیستون رو تعریف کنید که دیتابیستون چند تا تیبل (Table) داشته باشه، و مثلاً هر تیبل شامل چه فیلدهایی باشه و ....
بنظر من این پروژه میتونه تماماً با پلاگین SQLite جناب سیلورکاور ساخته بشه، چون عملاً تمام امکاناتی که نیاز هست رو برای ما فراهم میکنه و برای گزارش گیری از دیتابیس هم مناسب هست، ولی چون این پلاگین (پلاگین که نه، در واقع MMB) کاملاً با یونیکد سازگار نیست، ترجیحاً اطلاعات نباید بزبان فارسی در دیتابیس ذخیره بشه، که البته در این پروژه هم بجز قسمت توضیحات، نیازی به ذخیره ی اطلاعات بزبان فارسی نیست.
بهرحال بنظر من، بهتره اول تعریف کنیم که دیتابیسمون چه ساختاری داشته باشه، بعد یه اینترفیس اولیه واسه پروژه بسازیم تا بهتر بتونیم قسمتهای مختلف پروژه رو پیاده سازی کنیم و بعد مراحل اسکریپت نویسی و اینترفیس نهایی.
 

AV_3SG

Member
بله درسته
جناب سیلور کاور می تونن ما رو بهتر راهنمایی کنند که آیا این پروژه باSQLite درست می شه یا نه
ودرضمن به نظر شما تمام قسمت هایی که من نوشتم کامله و تمام نیاز های ما رو در بر داره ؟
شما موارد دیگه ای رو هم پیشنهاد می کنید ؟
 
آخرین ویرایش:

silvercover

کاربر متخصص
بله این کار به راحتی با SQLite امکان پذیر هست. به نظر من مرحله بعدی کار شما همون طور که nevercom گفتن این میتونه باشه که ساختار بانک اطلاعاتی رو تدوین کنید. شما باید موارد شمابه رو دسته بندی کنید و تحت نام یک جدول به دوستان اعلام کنید. در حقیقت همون ویژگی هایی رو که در نوشته قبلی برشمردین به صورت سازمان یافته و در ساختار یک جدول معرفی کنید. به عنوان مثال ما به یک جدول برای درج اسامی گروه ها نیاز داریم و یک جدول دیگه برای درج اطلاعات فنی پروژه و...
 

AV_3SG

Member
طبق گفته شما جناب سیلور کاور من اطلاعات رو به صورت کامل دسته بندی کردم و حتی توی یه عکس که می تونه محیط برنامه باشه به صورت گرافیکی نشون دادم
حالا فقط می مونه مرحله کد نویسی که باید به کمک شما و دوستان تمومش کنیم
توی قسمت 4 ما باید دستور بدیم که تمام اطلاعات داده شده در فیلد های بالا را درون یه دیتابیس ذخیره کنه .
ولی کدوم دیتا بیس؟
به نظر من وقتی که کاربر توی گروه 1 گروه های اصلی رو تعریف کرد ، گروههای اصلی توی یه فایل تکست ذخیره بشن.(به طوری که هر خط فایل تکست بیان کننده 1 گروه اصلی باشه)
و در قسمت بعدی کاربر با انتخاب هر لاین از لیست باکس شماره 1 ، لیست باکس قسمت 2 ظاهر بشه ، و کاربر این امکان رو داره که برای اون لیست باکس ظاهر شده لاین (محصول ) تعریف کنه !!!! درست همین جاست که دیتابیس وارد عمل می شه یعنی با تعریف هر لاین در لیست باکس شماره 2 یک دیتابیس جداگانه با همون اسمی که کاربر تعریف کرده تشکیل بشه و تمام اطلاعات فنی و
دقیق مریوط به اون لاین (محصول) که در قسمت 3 کاربر وارد میکن ، توی اون دیتابیس ذخیره بشه

به نوشته های بالا همراه با تصویر ضمیمه شده نگاه کنید تا بهتر متوجه بشید

Untitled-2.jpg
 
آخرین ویرایش:

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
ببینید، ساخت این برنامه توسط پلاگین SQLite براحتی انجام پذیر هست، چون شما اول یک دیتابیس واسه پروژتون میسازید که یک قسمت مشخص برای هر داده وجود داره، یعنی شما میدونید که اطلاعات باید از کجا فراخوانی بشن و کجا نوشته بشن، و همچنین میتونید تعین کنید که چه اطلاعاتی استخراج بشن.
مرحله ی اول کار این هست که دیتابیستون رو طراحی کنید، که برای اینکار میتونید از برنامه ی SQLite Database Browser استفاده کنید
بعد از طراحی دیتابیس نوبت به کدنویسی هست که چه اطلاعاتی(و چگونه) استخراج بشن و اطلاعات استخراج شده، کجا و به چه شکلی نمایش داده بشن، توی بسته ی SQLite PlugIn یک مثال بنام Sample1 هست که خیلی میتونه کمکتون کنه.
موفق باشید.
 

AV_3SG

Member
من اون مثال دیتا بیس رو دیدم ولی نتونستم زیاد ازش چیزی بفهمم
نمی شه یه کم به من کمک کنید یا اینکه امکانش هست یه نمونه کوچک درست کنید ؟
(به طوری که اول گروه اصلی رو مشخص کنیم)
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
سلام، ببخشید که دیر جواب دادم، بخاطر امتحانات میانترم یه کمی سرم شلوغ بود.
من یه مثال ساده واستون آماده کردم، تو این مثال گروههای اصلی از دیتابیس فراخوانی میشن، و روی هر کدوم از گروههای اصلی که کلیک کنید، زیر مجموعه هاش نمایش داده میشن، همچنین قابلیت تعریف گروه اصلی جدید و زیر مجموعه ی جدید برای هر گروه هم وجود داره
دیتابیس استفاده شده در پروژه هم تو فایل RAR هست، توصیه میکنم دیتابیس رو با برنامه ی SQLite Database Browser باز کنید تا با ساختار این دیتابیس بیشتر آشنا بشید، که راحت تر کدهای استفاده شده برای هر قسمت رو متوجه بشید.
برای اینکه بهتر و بیشتر با طرز کار این مثال و مثالهای موجود در بسته ی پلاگین SQLite آشنا بشین، توصیه میکنم فایلهای زیر رو دانلود کنید:


همچنین میتونید مباحث زیر رو برای آشنایی بیشتر با پلاگین مرور کنید:


سیلور کاور عزیز، امروز که داشتم این مثال رو میساختم متوجه یه نکته شدم، مثل اینکه ورژن 1 پلاگینتون(آخرین ورژنی که ارائه کردین، همونی که دستورات MD5Data و SH1Data رو بهش اضافه کرده بودین) در دستور Updateش یه مشکلی داره، چون من وقتی از این ورژن استفاده میکردم و دیتابیس رو آپدیت میکردم، تا وقتی که برنامه رو نمیبستم نمیتونستم اطلاعات آپدیت شده و اضافه شده رو ببینم، در صورتی که وقتی (تو این پروژه) از ورژن قبلی استفاده کردم، مشکلی وجود نداشت، من دوتا فایل متنی شامل دستورات دو ورژن پلاگینتون رو پیوست کردم،این فایل مربوط به ورژنی هست که مشکل داره...
بازم ازتون بخاطر این پلاگین تشکر میکنم.
 

پیوست ها

  • accounting.rar
    200.4 کیلوبایت · بازدیدها: 92
  • _SQLite.dll.txt
    944 بایت · بازدیدها: 24
  • SQLite.dll.txt
    748 بایت · بازدیدها: 20

AV_3SG

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

silvercover

کاربر متخصص
با تشکر از دوستان خصوصا nevercom عزیز که با اشتیاق وقتشون رو صرف این مباحث می کنن. در رابطه با اون موردی که اشاره شد مبنی بر اشکال در ساختار پلاگین، باید بگم که این در حقیقت ضعف بیلدر هست و نه Plug-in. به این صورت که وقتی فایلی ضمیمه (Embed) میشه برای MMB فقط قابل خوندن میشه و اگر در فایل تغییراتی ایجاد بشه هیچ مکانیزمی وجود نداره تا فایل جدید رو دوباره در زمان اجرا ضمیمه برنامه ما بکنه. من همین نکته رو در شی اسکریپت Initialization به صورت توضیح درج کردم. پس در این حالت باید فایل دیتا بیس به صورت خارجی استفاده بشه تا امکان درج اطلاعات درش مهیا بشه. در غیر اینصورت اگر دیتابیس ما ضمیه بشه فقط قابل خودندن میشه و تغییرات به محض خاتمه برنامه از بین میره. به عنوان مثال مسیر دیتا بیس ما باید اینگونه باشه:

کد:
DBPath$ = 'C:\accounting\Accounting.db'
یا
کد:
DBPath$ = '<SrcDir>\Accounting.db'


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

خبر دیگه این هست که من یک فایل ضمیمه هم برای حل مشکل فراخوانی داده های فارسی برای این پلاگین نوشتم که هر وقت موقش شد منتشرش می کنم!

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

پیوست ها

  • SQLite.zip
    173.1 کیلوبایت · بازدیدها: 83
آخرین ویرایش:

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
خیلی ممنون از این که وقت با ارزشتون رابرای این پروژه گذاشتین
شما دقیقا منظور من رو متوجه شدید و این مثالی رو که گذاشته بودید دقیقا مرحله اول کار ما رو به صورت کامل تکمیل می کنه و نوبت مرحله اضافه کردن اطلاعات بیشتر و کامل تر می شه
کسی از دوستان هست که این مرحله رو بتونه به این مثالی آقای nevercom گذاشته اضافه کنه ؟
خواهش میکنم، شما لطف دارین.
البته بقیه مراحل هم تفاوت چندانی با این مرحله نداره، و همینطور که گفتم با مشاهده ساختار دیتابیس میتونید کد ها رو براحتی تغییر بدید
اگه هر سوالی داشتید در خدمتتون هستم.
با تشکر از دوستان خصوصا nevercom عزیز که با اشتیاق وقتشون رو صرف این مباحث می کنن. در رابطه با اون موردی که اشاره شد مبنی بر اشکال در ساختار پلاگین، باید بگم که این در حقیقت ضعف بیلدر هست و نه plug-in. به این صورت که وقتی فایلی ضمیمه (embed) میشه برای mmb فقط قابل خوندن میشه و اگر در فایل تغییراتی ایجاد بشه هیچ مکانیزمی وجود نداره تا فایل جدید رو دوباره در زمان اجرا ضمیمه برنامه ما بکنه. من همین نکته رو در شی اسکریپت initialization به صورت توضیح درج کردم. پس در این حالت باید فایل دیتا بیس به صورت خارجی استفاده بشه تا امکان درج اطلاعات درش مهیا بشه. در غیر اینصورت اگر دیتابیس ما ضمیه بشه فقط قابل خودندن میشه و تغییرات به محض خاتمه برنامه از بین میره
شما لطف دارین،
نه نه، جناب سیلورکاور منظور من این نبود، من از این موضوع اطلاع دارم ولی چیزی که من اشاره کردم مثل اینکه یک اشکال در مکانیسم پلاگین هست، البته فقط در ورژن جدید این اشکال وجود داره، به این شکل که وقتی گروه جدید رو به دیتابیس اضافه میکنیم، تغییرات تا قبل از خروج از برنامه و اجرای دوباره قابل مشاهده نیستن، و پلاگین داده های قبلی رو دوباره لود میکنه، و همچنین اطلاعات هم بدرستی نشون داده نمیشن، میتونین فایل پیوست شده رو یه نگاهی کنین، این همون مثال قبل هست ولی با استفاده از ورژن مذکور.
** الان که نسخه ی جدید پلاگینتون رو که تو پست قبل پیوست کرده بودین رو تست کردم این مشکل وجود نداشت، ممنون از شما
البته یه قابلیت این پلاگین رو که من به دلایلی مخفی نگه داشته بودم این هست که میشه همه پروسه ساخت، خواندن و نوشتن داده ها رو در حافظه صورت داد تا نیازی به فایل روی دیسک نباشه. این طوری سرعت کار 30 برابر بیشتر از حالتی میشه که دیتا بیس ما درون یک فایل بر روی دیسک قرار داره.
خیلی جالبه، واقعاً شما همیشه یه چیزی برای سورپرایز کردن دارید !!
امروز داشتم فکر میکردم که شاید بشه برای امنیت دیتابیس، دیتابیس رو انکریپت کنیم و در هنگام اجرای پروژه دیکریپتش کنیو و پس از لود شدن پاکش کنیم که در دسترس نباشه، ولی یه لحظه فکر کردم که شاید پلاگین نیاز داشته باشه تا ارتباطش رو با دیتابیس بر روی دیسک داشته باشه، یعنی شاید پلاگین برای کار با دیتابیس اون رو تو حافظه لود نکنه...اینجوری دیگه نمیشه از این روش استفاده کرد، ولی مثل اینکه اینطور نبوده و شما فکر همه جاشو کردین !!
امکانات پلاگینتون دیگه داره مثال زدنی میشه !!
خبر دیگه این هست که من یک فایل ضمیمه هم برای حل مشکل فراخوانی داده های فارسی برای این پلاگین نوشتم که هر وقت موقش شد منتشرش می کنم!
و اینم یه سورپرایز بزرگتر !
یک اشکال دیگه هم توی فراخوانی پیدا کردم که برطرفش کردم و بسته پلاگین رو به روز کردم. لطفا محبث پلاگین های بیلدر نسخه کامل و جدید رو دریافت کنید و یا تنها فایل پلاگین رو از زیر دانلود کنید.
ممنون از زحماتتون برای گسترش پلاگین، ولی، فقط برای کنجکاوی، میشه بگید این مشکل چی بوده ؟
____________________________________________
اووووووف !
بعد از نوشتن این پست اومدم تا ویرایشش کنم و این نکته رو اضافه کنم که این مشکل تو ورژنی که سیلورکاور اینجا پیوست کردن وجود نداره، ولی وقتی دکمه ی ذخیره رو زدم و صفحه دوباره لود شد، دیدم نصف پستم پریده !!
حدود بیست دقیقه مشغول درست کردن این پست بودم، ولی امان از دست این اینترنت، تا بالاخره، انگار الان دارم موفق میشم ! خدا کنه بازم پاک نشه...!
 

پیوست ها

  • Accounting_Got a Problem.rar
    180.1 کیلوبایت · بازدیدها: 80
آخرین ویرایش:

silvercover

کاربر متخصص
این مثالی که شما ضمیمش کردین از همون نسخه باگ دار قدیمی استفاده می کنه. لطفا آخرین نسخه ای رو که ضمیمه کردم در نمونه خودتون استفاده کنید.

با دیدن نمونه شما چند نکته رو باید یاد آوری کنم:

1- وقتی که تغییراتی توی دیتا بیس میدین باید بلافاصله بعدش کدی رو فراخوانی کنید تا تغییرات رو فراخوانی و منعکس کنه. مثلا باید توی دکمه Add New Group بعد از حصول اطمینان از مثبت بودن نتیجه کدی فراخوانی بشه که دیتا بیس رو دوباره پویش کنه و تغییرات جدید رو منعکس کنه. بنده همین کار رو کردم و در درج و فراخوانی داده ها مشکلی ندیدم.

2- بهتر هست که در تعریف ساختار بانک اطلاعاتی از فیلد کلید اصلی استفاده کنیم. بدین معنی که هر ردیف از داده ها ( رکوردها) با یک شناسه منحصر به فرد ( ترجیحا عدد صحیح) از هم متمایز بشند. در SQLite این امکان فراهم هست که به محض درج هر داده در جدول مقدار فیلد کلید اصلی به طور اتوماتیک یکی بهش اضاف بشه. برای آشنایی بیشتر فایل دیتا بیس درون بسته پلاگین (Sample1 ) رو با SQLite Database Browser باز کنید و در تب Database Structure به بخش Schema توجه کنید تا متوجه بشید که چطور میشه همچین فیلد هایی رو ساخت. اگر در کد نوشته شده در شی InsertData هم مشاهده کنید بنده داده ای رو برای فیلد ID وارد نکردم.

3- در تکمیل مورد شماره دو باید بگم که بهتر و استاندارد این هست که ساختار جدول هایی که شامل دسته بندی و گروه بندی هستن مطابق شکل زیر تعریف بشه تا هم فراخوانی رو راحت تر کنه و هم ساختار منطقی رو حفظ کنه و هم اینکه همه چیز در یک جدول باشه. در این مدل وابستگی ها رو با اختصاص دادن اعداد مشخص می کنیم. فیلد GroupID همون کلید اصلی ماست و فیلد ParentGroupID حاوی شماره GroupID ای خواهد بود که گروه جدید به اون تعلق داره.

ka230736vnf4wnsqps2y.png


با سپاس فراوان.
 
آخرین ویرایش:

silvercover

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

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

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

بالا