PDA

View Full Version : سوال: سال مالی در برنامه حسابداری



MS.Worm
پنج شنبه 30 شهریور 1391, 11:21 صبح
سلام و خسته نباشید
یک برنامه حسابداری طراحی کردم. در رابطه با سال مالی باید برای هر سال یک دیتابیس ساخته بشه یا روش دیگری وجود دارد؟

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

با تشکر.

ali_habibi1384
پنج شنبه 30 شهریور 1391, 11:59 صبح
سلام و خسته نباشید
یک برنامه حسابداری طراحی کردم. در رابطه با سال مالی باید برای هر سال یک دیتابیس ساخته بشه یا روش دیگری وجود دارد؟

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

با تشکر.
تحليلتون اشتباهه. بايد همه در يك ديتا بيس پياده سازي بشه

MS.Worm
پنج شنبه 30 شهریور 1391, 12:17 عصر
میشه بیشتر راهنمایی کنید که چه کار کنم. آخه اینجوری که دیتابیس خیلی سنگین میشه

ali_habibi1384
پنج شنبه 30 شهریور 1391, 12:30 عصر
درسته سنگين ميشه اما چاره اي نيست. گزارشات شما همه بايد بهم پيوسته و باشه قابل حركت از يك سال مالي به سال مالي ديگه. شما ميتونيد امكان بايگاني اطلاعات رو براي كاربر فراهم كنيد تا اطلاعات رو بعد از مدتي مثل 2-3 سال بايگاني كنه تا حجمش بياد پايين اما امكان گزارش گيري متد براي كاربر رو نبايد از دست بديد.

Arash_janusV3
پنج شنبه 30 شهریور 1391, 12:46 عصر
برای ساخت برنامه های اتوماسیون ادارای می بایست هر یک سال مالی یک دیتابیس را ایجاد کنیم
و برنامه باید این قابلیت را داشته باشه که با تعویض سال مالی به دیتابیس های سال مالی های متفاوت دسترسی پیدا کرد

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

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

Arash_janusV3
پنج شنبه 30 شهریور 1391, 12:48 عصر
درسته سنگين ميشه اما چاره اي نيست. گزارشات شما همه بايد بهم پيوسته و باشه قابل حركت از يك سال مالي به سال مالي ديگه. شما ميتونيد امكان بايگاني اطلاعات رو براي كاربر فراهم كنيد تا اطلاعات رو بعد از مدتي مثل 2-3 سال بايگاني كنه تا حجمش بياد پايين اما امكان گزارش گيري متد براي كاربر رو نبايد از دست بديد.

چرا چاره ای نیست؟

آیا شما از چنین روشی استفاده کردید؟

SharpSabre
پنج شنبه 30 شهریور 1391, 13:28 عصر
فقط یک ستون رو بعنوان شماره سال مالی باید قرار بدی و شرط این سال رو همه جا چک کنی !

MS.Worm
پنج شنبه 30 شهریور 1391, 14:02 عصر
پس این روش من درست هست یا نه؟
هر سال مالی یک دیتابیس.......
اگر کاربر خواست از هر کدوم گزارش بگیره به اون دیتابیس متصل میشه اگر هم خواست از چند سال مالی گزارش بگیره یه کوری میزنی از چند دیتابیس.
بلاخره باید چه کار کرد؟
چنتا دیتابیس یا یک دیتابیس؟

در مورد اطلاعاتی که باید در همه دیتابیس ها موجود باشه چی؟ مثلا مشتریان کاربران حق دسترسی ها و غیره. برای هر دیتابیس اینا ثبت بشه؟

SharpSabre
پنج شنبه 30 شهریور 1391, 14:11 عصر
پس این روش من درست هست یا نه؟
هر سال مالی یک دیتابیس.......
اگر کاربر خواست از هر کدوم گزارش بگیره به اون دیتابیس متصل میشه اگر هم خواست از چند سال مالی گزارش بگیره یه کوری میزنی از چند دیتابیس.
بلاخره باید چه کار کرد؟
چنتا دیتابیس یا یک دیتابیس؟
در مورد اطلاعاتی که باید در همه دیتابیس ها موجود باشه چی؟ مثلا مشتریان کاربران حق دسترسی ها و غیره. برای هر دیتابیس اینا ثبت بشه؟
یک دیتابیس ، یک ستون بساز بنام سال مالی و خودت رو خلاص کن.
شما از کجا می دونی چند سال می خواد کار کنه مثلا اگه 10 سال کار کنه 10 تا دیتابیس !!!

Mehdi Naderi
پنج شنبه 30 شهریور 1391, 14:23 عصر
هر سال مالی یک دیتابیس.......

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

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

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

Arash_janusV3
پنج شنبه 30 شهریور 1391, 14:32 عصر
در بیشتر برنامه های حسابداری پر فروش و معروق برای هر سال یک دیتابیس رو طراحی میکنن و درست هم همینه چون اگر تعداد تراکنش ها زیاد باشه جا دادن آنها در یک دیتابیس بخصوص در محیط شبکه باعث افت سرعت به صورت محسوس میشه

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

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

با نظرات موافقم

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

ali_habibi1384
پنج شنبه 30 شهریور 1391, 14:46 عصر
در بیشتر برنامه های حسابداری پر فروش و معروق برای هر سال یک دیتابیس رو طراحی میکنن و درست هم همینه چون اگر تعداد تراکنش ها زیاد باشه جا دادن آنها در یک دیتابیس بخصوص در محیط شبکه باعث افت سرعت به صورت محسوس میشه

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

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

چرا چاره ای نیست؟

آیا شما از چنین روشی استفاده کردید؟
منم مثل شما مجبور شدم از اين روش استفاده كنم به دلايل متعدد:
_كاربر ميخواد كليه اطلاعات سالهاي مالي رو بصورت يه نمودار سود و زيان ببينيه
_كاربر ميخواد پرينت گزارش كل يه مشتري رو براي 2 سال بهش بده و ميخواد همه پشت سر هم باشه نه اينكه 2 بار از ديتا بيس خارج و داخل بشه
_اتصال به ديتا بيس قديمي ملزم به دانستن كاربر و رمز عبور آن كاربر است كه در بيشتر موارد چنين چيزي مهيا نيست
...

MS.Worm
پنج شنبه 30 شهریور 1391, 14:46 عصر
ممنون از دوستان
پس تسویب شد که برای هر سال مالی یک دیتابیس ساخته بشه و اطلاعاتی که به صورت عمومی احتیاج داریم از دیتابیس قبلی به دیتابیس جدید انتقال پیدا کند.

با تشکر از همه

boysilent
پنج شنبه 30 شهریور 1391, 14:53 عصر
بسیار توضیخات بجا هستند ولی درست کردن سال مالی جدید چطوری امکان پذیره؟ممنون میشم بفرمایید ؟
چطوری با سی شارپ قسمت ساخت تمامی پایگاه داده ها را انجام بیم؟با اینکه اسکیو ال کامل مثلا نصب نیست//؟

MS.Worm
پنج شنبه 30 شهریور 1391, 14:54 عصر
در رابه با مواردی که آقای حبیبی فرمودند میشه اینجور حل کرد:
1 - کاربر میخواد اطلاعات ملی رو به صورت یالی ببینه: از هر دیتابیسی که میخوایی رکورد میگیری و نمایش میدی.
2- کاربر میخواد در رابطه با یک مشتری یا یک محصول و غیره از سالهای متفاوت اطلاعات کسب کنه بازم طبق روش بالا.
3 - برای اینکه از چند دیتابیس بخواهیم اطلاعات بگیریم لزومی نداره چند بار اتصال بر قرار کنیم و یا هر بار رمز عبور بدیم. تمام دیتابیس های ما در یک سرور هست فقط کافیه یک مرتبه به سرور متصل بشیم.

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

یک دیتابیس یا چند دیتابیس ؟

SharpSabre
پنج شنبه 30 شهریور 1391, 14:56 عصر
برنامه زمانی سنگین می شه که بخوای اطلاعات یک چیز حالا شخص یا کالا رو از بین 15 تا 30 تا جدول استخراج کنی ،، حالا 15 سال مالی رو بهش اضافه کن و باید بهم پیوند بدی و وقتی یکپارچه شد تحویل بدی.

Arash_janusV3
پنج شنبه 30 شهریور 1391, 15:07 عصر
مشکلات را تک به تک توضیح می دم

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

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

بازرس: اگر از طرف دارائی بازرس بیاد به راحتی به همه اطلاعات دسترسی داره و به طور اتفاقی می تونه موردهایی را کشف کنه
اما اگر همه اطلاعات در یک سال مالی باشه اون سراغ بقیه نمی ره

ایجاد سال مالی: از دیتابیس یک Create می سازید و آن را با دادن یک متغیر که سال مالی باشه اجرا می کنید به همین راحتی

جناب ali_habibi1384 (http://barnamenevis.org/member.php?48789-ali_habibi1384) شما مجبور نبودید از اون روش استفاده کنید
روش شما باعث محدودیتهایی هم شده
برای گزارشات کافی بود یک کوئری همه جانبه درست کنید
همون کاری که من انجام دادم من از 7 دیتابیس مختلف با سال مالی متفاوت گزارش تهیه کردم با سرعت بالا

ali_habibi1384
پنج شنبه 30 شهریور 1391, 17:40 عصر
اين حرف آقايarash_janusv3 (http://barnamenevis.org/member.php?118123-Arash_janusV3) منو به تفكر وا داشت.برام جالب شد روش فكر كردم اما اينكه چطور پياده سازي ميكنيد اين روش رو؟
ببينيد من يه ديتا بيس دارم و يه كانكشن كه به ديتا بيس اصلي متصله. حالا كاربر مياد تاريخ هايي رو ميده كه از سال مالي جاري اين ديتا بيس بيرونه حالا چطور حلش كنيم. براي حل اين سوال چندتا موضوع پيش مياد:
1- اينكه ديتا بيس بايد بقيه اطلاعات رو از كجا لود كنه؟مسير ديتا بيسهاي سالهاي ديگه كه توي اين ديتابيس نيست.
2- از كجا معلوم اصلا تاريخهاي وارد شده صحيح باشه؟
3- اطلاعات چطور به جداول ما منتقل بشه تا بشه ازش گزارش گرفت
4- اگر كدينگهاي مالي تغيير كرده باشه اونوقت چي؟ چطور اين 2 ديتابيس با داده هاي متفاوت رو يكسان كنيم
5- اگر يكسان كنيم و كاربر نخواد اين اتفاق بيفته اونوقت چي ميشه؟
چندات سوال ديگه هم هست كه اگر جواب اينا روبديد بپرسم . اميدوارم راه حلتون واقعي باشه و قابل پياده سازي واقعي

ali_habibi1384
پنج شنبه 30 شهریور 1391, 18:35 عصر
بهترین روش در حال حاضر ایجاد دیتابیس برای هرسال مالی به صورت مجزا هستش
هرچند کار دشواری به نظر می رسه اما خیلی از مسائل پیش بینی نشده را پوشش می ده
اما به نظر من اون روشي كه شما ميگيد دردسراش 100 برابر اينه!
بي صبرانه منتظر نظرات شما در باره تاپيك بالا هستم. ممنون دوست خوبم:لبخندساده:

emperor_vb6
پنج شنبه 30 شهریور 1391, 19:33 عصر
ّّّّّّّّّّّّّّّVASE MANAM JALEB SHOD PLZ J BEDID

MS.Worm
پنج شنبه 30 شهریور 1391, 20:11 عصر
خوب میشه اینجور گفت:
اول اینکه شما میایی یه کانکشن استرینگ مینویسی که به دیتابیس وصل نمیشه یعنی فقط به سرور متصل میشی.
با اینکار تمام مشکلات شما حل میشه چجوری؟
زمانی که شما میخوایی یک گزارش بگیری به صورت پیش فرض از سال مالی جاری گزارش تهیه میشه

نام دیتابیس ها یک رشته ثابت + سال که کاربر از کمبو باکس انتخاب میکنه
برای مثال دیتابیس پیش فرض test_1390
دیتابیس های دیگر میشه
test_1391
test_1392
اینا میشه دیتابیس های ما

حالا وقتی ما میخواهیم گزارش بگیریم به صورت پیش فرض میاد از سال مالی جاری گزارش تهیه میشه

اگر بخواهیم از سالهای دیگر و در بازه های زمانی گزارش تهیه کنیم میاییم از دو تا کمبو باکس سالهای مالی رو دریافت میکنیم با اینکار دیتابیس های ما داخل کوری مشخص میشه
بعد میاییم 2تا تاریخ هم برای کوری دریافت میکنیم و گزارش رو میگریم.

آیا با این کار مشکل حل نمیشه؟

تست کردم جواب داد

ali_habibi1384
پنج شنبه 30 شهریور 1391, 20:21 عصر
خوب میشه اینجور گفت:
اول اینکه شما میایی یه کانکشن استرینگ مینویسی که به دیتابیس وصل نمیشه یعنی فقط به سرور متصل میشی.
با اینکار تمام مشکلات شما حل میشه چجوری؟
زمانی که شما میخوایی یک گزارش بگیری به صورت پیش فرض از سال مالی جاری گزارش تهیه میشه

نام دیتابیس ها یک رشته ثابت + سال که کاربر از کمبو باکس انتخاب میکنه
برای مثال دیتابیس پیش فرض test_1390
دیتابیس های دیگر میشه
test_1391
test_1392
اینا میشه دیتابیس های ما

حالا وقتی ما میخواهیم گزارش بگیریم به صورت پیش فرض میاد از سال مالی جاری گزارش تهیه میشه

اگر بخواهیم از سالهای دیگر و در بازه های زمانی گزارش تهیه کنیم میاییم از دو تا کمبو باکس سالهای مالی رو دریافت میکنیم با اینکار دیتابیس های ما داخل کوری مشخص میشه
بعد میاییم 2تا تاریخ هم برای کوری دریافت میکنیم و گزارش رو میگریم.

آیا با این کار مشکل حل نمیشه؟

تست کردم جواب داد
الآن اين جواب سوال من بود؟؟؟؟
سوالت من ايناست:
1- اينكه ديتا بيس بايد بقيه اطلاعات رو از كجا لود كنه؟مسير ديتا بيسهاي سالهاي ديگه كه توي اين ديتابيس نيست.
2- از كجا معلوم اصلا تاريخهاي وارد شده صحيح باشه؟
3- اطلاعات چطور به جداول ما منتقل بشه تا بشه ازش گزارش گرفت
4- اگر كدينگهاي مالي تغيير كرده باشه اونوقت چي؟ چطور اين 2 ديتابيس با داده هاي متفاوت رو يكسان كنيم
5- اگر يكسان كنيم و كاربر نخواد اين اتفاق بيفته اونوقت چي ميشه؟
اين الآن ج هيچكدوم نبود.
داده ها چطور از اون ديتابيس مياد تو اين ديتا بيس اگر ساختارش باهم عوض شده باشه يا كدينگش تغيير كنه؟ ديتا بيسها كجا هستند؟ آقاي جانوس گفت نياز به چند بار كانكت شدن نيست كه!از اون گذشته شما همه چيزو ايده آل فرض كردي از كجا معلوم كاربر مسير ديتا بيسهاي بك آپ رو عوض نكنه يا حتي نامشو تغيير نده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟و ...
چطور تست كردي جواب گرفتي؟اين چيزايي كه ميگين شما فقط تئوريه قابل پياده سازي نيست آقا!
اونايي كه برنامه حسابداري واقعي نوشتن ميفهمن من چي ميگم.
نظر كارشناسانه بديد لطفا!

MS.Worm
پنج شنبه 30 شهریور 1391, 20:41 عصر
کارشناس عزیز شما اصلا دقت کافی نداری

شما فکر میکنی کاربر قرار نام دیتابیس بده؟ این کارشناسانه است؟

کاربر اصلا قرار نیست نام دیتابیس بده. نام دیتابیس از یک رشته ثابت که برنامه نویس تعیین میکنه تشکیل میشه + عددی که از اولین سال مالی شروع میشه.
حالا سال مالی اول از کجا شروع میشه یک دیتابیس ثابت داریم که سال مالی رو در خودش ذخیره میکنه.

خوب این از دیتابیس های ما

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

اینم از مسیر دیتابیس ها

1- اينكه ديتا بيس بايد بقيه اطلاعات رو از كجا لود كنه؟مسير ديتا بيسهاي سالهاي ديگه كه توي اين ديتابيس نيست.

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

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

3- اطلاعات چطور به جداول ما منتقل بشه تا بشه ازش گزارش گرفت

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

4- اگر كدينگهاي مالي تغيير كرده باشه اونوقت چي؟ چطور اين 2 ديتابيس با داده هاي متفاوت رو يكسان كنيم

قرار نیست کدینگ ما تغییر بکنه یا امثال این تغییرات عجیب غریبی که شما میگی (تغییر مسیر تغییر کدینگ)
در تمام دیتابیس ها برای مثال فاکتور ثبت شده.

5- اگر يكسان كنيم و كاربر نخواد اين اتفاق بيفته اونوقت چي ميشه؟

پس چیز قابل تغییری نبود که بخواد یکسان بشه !!!!

داده ها چطور از اون ديتابيس مياد تو اين ديتا بيس اگر ساختارش باهم عوض شده باشه يا كدينگش تغيير كنه؟

نه داده ای از اون دیتابیس تو این دیتا بیس میاد نه بلعکس و نه تغییر بازم میگ تغییر :گریه:

جدا از همه اینا این مشکلاتی که شما گرفتی یعین تغییر نام دیتابیس یا تغییر مسیر و امثال اینه اگر دیتابیس یکی هم باشد و کاربر نام یا مسیر یا هرچیزیش رو تغییر بده برنامه خطا میگیره

درسته؟

MS.Worm
پنج شنبه 30 شهریور 1391, 20:49 عصر
در ضمن من همینجوری رو هوا این تاپیک رو نزدم مشکل ایجاد شد که این رو مطرح کردم. یک برنامه حسابداری برای اسناد کارپردازان یکی اس ازستانداری ها نوشتم که طبق نظر شما (علی حبیبی) از یک دیتابیس استفاده کردم. هنوز یک سال نشده که میخوام دیتابیس رو تفکیک کنم.

tooraj_azizi_1035
جمعه 31 شهریور 1391, 10:35 صبح
سلام
ما در SQL Server مبحثی به نام Partitioned Tables And Indexes داریم. که میاد جداول باداده های بزرگ روی چندین Filegroup به صورت پارتیشن پارتیشن ذخیره می کنه و هنگام اجرای کوئری فقط پارتیشن مربوطه رو لود می کنه. مثلاً اگه اطلاعات 10 سال مالی رو وارد کردید و دنبال اطلاعات سال 91 هستید فقط پارتیشن سال 91 رو می خونه چون شما در WHERE کوئری تون سال مالی رو 91 درخواست کردید.

شما ابتدا باید یک Partition Function بسازی تا و رنج سال ها رو بهش بدی مثلاً 1391 تا 1400.
این یک نمونه میلادی هست:


CREATE PARTITION FUNCTION [myDateRangePF1] (datetime) AS RANGE RIGHT FOR VALUES ('20030201', '20030301', '20030401',
'20030501', '20030601', '20030701',
'20030801', '20030901', '20031001', '20031101', '20031201');


بعد بیای یک Partition Scheme تعریف کنی و این رنج ها رو به یک یا چند Filegroup نسبت بدی. و بعد در هنگام ساخت جدول فیلد تاریخ رو به Partition Function نسبت بدی.

این روی چهار پارتیشن عمل می کنه:


CREATE PARTITION SCHEME myRangePS1 AS PARTITION myRangePF1 TO (test1fg, test2fg, test3fg, test4fg);


اعمال هنگام ایجاد جدول:
CREATE TABLE PartitionTable (col1 int, col2 char(10)) ON myRangePS1 (col1) ;

و البته میشه فقط در هنگام ساخت سال مالی جدید دوباره Partition Function رو دستکاری کرد. و حتی میشه با برنامه نویسی Filegroup ای به ازای هر سال مالی ساخت. و رنج یک سال رو به اون نسبت داد.

SQL Server این قدرت داره تا حتی پارتیشن ها رو هم با هم Join کنه!

فعلاً این لینک رو نگاه کن لینک فارسی رو بعداً اضافه می کنم:
http://msdn.microsoft.com/en-us/library/ms188730%28v=sql.105%29.aspx

Arash_janusV3
جمعه 31 شهریور 1391, 13:05 عصر
اين حرف آقايarash_janusv3 (http://barnamenevis.org/member.php?118123-Arash_janusV3) منو به تفكر وا داشت.برام جالب شد روش فكر كردم اما اينكه چطور پياده سازي ميكنيد اين روش رو؟
ببينيد من يه ديتا بيس دارم و يه كانكشن كه به ديتا بيس اصلي متصله. حالا كاربر مياد تاريخ هايي رو ميده كه از سال مالي جاري اين ديتا بيس بيرونه حالا چطور حلش كنيم. براي حل اين سوال چندتا موضوع پيش مياد:
1- اينكه ديتا بيس بايد بقيه اطلاعات رو از كجا لود كنه؟مسير ديتا بيسهاي سالهاي ديگه كه توي اين ديتابيس نيست.
2- از كجا معلوم اصلا تاريخهاي وارد شده صحيح باشه؟
3- اطلاعات چطور به جداول ما منتقل بشه تا بشه ازش گزارش گرفت
4- اگر كدينگهاي مالي تغيير كرده باشه اونوقت چي؟ چطور اين 2 ديتابيس با داده هاي متفاوت رو يكسان كنيم
5- اگر يكسان كنيم و كاربر نخواد اين اتفاق بيفته اونوقت چي ميشه؟
چندات سوال ديگه هم هست كه اگر جواب اينا روبديد بپرسم . اميدوارم راه حلتون واقعي باشه و قابل پياده سازي واقعي

با سپاس از شما
پاسخ ها:
1_دو روش وجود داره
یک اینکه یک دیتابیس مدیریت در نظر بگیریم و در اون سال مالی و کاربران رو ذخیره کنیم
یعنی اطلاعاتی رو ذخیره کنیم که مربوط به همه دیتابیس ها می شه
و دیگری می تونیم هم در هر دیتابیس ذخیره کنیم که این روش مدیریت دشواری دارد
2_باید کاربر مشخص کنه که وارد کدام سال مالی می شه
فرض کنیم وارد سال مالی جاری یعنی 91 می شه
حالا برنامه نویس برای ثبت هر اطلاعاتی نباید به کاربر اجازه بده که تاریخ قبل از 91 و بعد از 91 وارد بشه
این در برنامه چک می شه و صحیح ذخیره خواهد شد
3_این سوال شما مبهم هست
گزارش را بر اساس یک select میگیریم نیازی به جدول نیست
نمی دونم منظورتون دقیقا چیه
4_خوب تغییر کنه هر دیتابیس مخصوص خودشه به صورت مجزا
می تونیم هم یک امکانی را بگذاریم در صورتی که کدی تغییر کرد همه دیتابیس ها هم تغییر کنه
این روش رو توصیه نمی کنم در اینجا قانون مجزا بودن باید رعایت بشه
5_باید به صورت دلخواه و انتخابی باشه اونم در اختیار مدیر سیستم قرار بگیره بهتره

omidamiry
جمعه 31 شهریور 1391, 17:38 عصر
باسلام بحثتون خوب بود.
من هم دچار چنین مسئله شدم و در راه حل ؟

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

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

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

نظر شما


؟

ali_habibi1384
جمعه 31 شهریور 1391, 23:23 عصر
صحبتهايي كه آقاي Tooraj_aziz_1035 (http://barnamenevis.org/member.php?41757-tooraj_azizi_1035) براي تفكيك اطلاعات مشكل شما رو براي حجم اطلاعات مرتفع ميكنه پس بحث بالا بودن حجم داده ها بعد از 10 سال بكلي منحله.
خب حالا بيايم سراغ پاسخهايي كه آقاي Ms.Worm گفتند (اكثر پاسخ هاتون هنوز قابل بحث هستند در حالت واقعي) حالا من اصلي ترينش رو ميپرسم، اينكه گفتيد اطلاعات كدينگ قرار نيست تغيير بكنه به هيچ وجه قابل حضم نيست! مثال:
مثال1: بنا به تغييراتي كه اداره دارايي روي كدينگهاش ميده در پايان سال برگه هاي اظهارنامه مالياتي پر ميشه بنابراين قطعا در پايان سال كدينگها تغيير خواهد كرد و اين امر اجتناب ناپذير است
مثال2: شركتي وجود داره كه مثلا فقط يك صندوق دار داره و در كدينگ ماليش بخش نقد و بانك يه كد معين بنام صندوق تعريف ميكنه و سندها براي اين صندوق زده ميشه. سال بعدي اون شركت تصميم ميگيره 2تا صندوق داشته باشه پس صندوق ها رو بايد تفكيك كنه به 2 تا كدينگ كه بايد 2 تا تفضيلي زير اون صندوق بخوره يا صندوق رو به 2 تا حساب جزء متصل كنه لذا چون صندوق قبلا براش سند خورده مجبوره سندها رو به كدهاي درخواستي جديد بشكنه و ناگذير كدينگها تغيير پيدا ميكنه. و اين امر هم اجتناب ناپذير است
مثال 3:فرضا شما ورژن نرم افزارت رو ميخواي بروز كني و يك سري جداول رو عوض كني خب تغييرات روي ديتا بيس جاري انجام ميشه.پس پشتيبانها چي ميشن؟
.
.
.
مشكل اصلي در پاسخهاي شما اينه كه برنامه رو در حالت ايده آل در نظر گرفتيد در حاليكه در حالت واقعي اينطور نيست و برنامه نويس بايد هميشه فكر همه جاها رو بكنه.
اينكه گفتم نظر كارشناسانه منظورم پياده سازي واقعي بود نه تئوري حرف من يكم تند بود اما ميخواستم زودتر به جواب نهايي برسيم (عذر خواهم:چشمک:) و صرفا گفتن كلمه "من انجام دادم شد" پاسخ مناسب نيست. بايد ديد در دراز مدت عملكرد سيستم چه خواهد بود؟
بحث جالب شد لطفا ادامه بديد:لبخندساده:

MS.Worm
دوشنبه 03 مهر 1391, 18:18 عصر
با سلام و خسته نباشید
آقای علی حبیبی اینکه من گفتم "انجام دادم شد" منظورم مربوط به اون حرفی بود که شما گفتی هر کاربر بخواد به هر دیتابیسی متصل بشه باید کلمه عبور و از این حرفا بده گفتم من انجام دادم و این مشکلات نیست نه اینکه کل قضیه رو بردم زیر بار و مشکلی نبوده.

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

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

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

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

البته دوستان توجه داشته باشن که یک بحثی پیش اومده و هر کسی میاد و نظرش رو میده بهتره که صبور باشیم تا به یک نتیجه خوب برسیم.

abcd_a
دوشنبه 03 مهر 1391, 18:42 عصر
سلام
تو دانشگاه و مراکز بزرگ که حجم اطلاعات زیاده ایا از چند دیتابیس استفاده میشه!؟
مثلا تو دانشگاه به از هر ورودی جدید سالانه سیستم دیتا بس جدا ایجاد می کنه ؟

ali_habibi1384
دوشنبه 03 مهر 1391, 21:17 عصر
سلام
تو دانشگاه و مراکز بزرگ که حجم اطلاعات زیاده ایا از چند دیتابیس استفاده میشه!؟
مثلا تو دانشگاه به از هر ورودی جدید سالانه سیستم دیتا بس جدا ایجاد می کنه ؟
چه سوال قشنگي رو مطرح كرديد. خب معلومه كه خير همه سالهاي مالي در يك ديتا بيس هست.اين يك نمونه از همون تغييراتي هست كه من بهش اشاره كردم (تغيير كدينگ با نيازهاي جديد)



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

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

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

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

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

البته دوستان توجه داشته باشن که یک بحثی پیش اومده و هر کسی میاد و نظرش رو میده بهتره که صبور باشیم تا به یک نتیجه خوب برسیم.
[/QUOTE] در مورد پاسخ گويي به سوالات من خب البته پاسخي بود اما نه پاسخي كه بشه پياده سازيش كرد فرض بر اينكه تمام چيزايي كه شما پاسخ داديد صحيح و فقط بحث سر اين يك مورده سوال من از شما اينكه به فرض مثال شما مشتري هستيد كه قراره يه سيستم حسابداري رو خريد كنيد بعد فروشنده بگه: نرم افزار من 99.99 درصد محاسباتش درسته . آيا شما بابت او 0.01 درصد اون نرم افزار رو خريد ميكني؟ قطع جواب شما منفيه.
توي سيستمهاي مالي بايد به 100 درصد سوالات و حالتها پاسخ داده بشه حتي 0.000001 درصد اشتباه كار شما رو بي ارزش ميكنه مثل سيستمهاي RealTime كه اشتباه 0.00000000001 درصد هم قابل قبول نيست.
حالا در مورد پاسخي كه داديد :
اينكه فرموديد ديتا بيس سال قبلي رو هم عوض ميكنيم 3 تا مشكل اساسي داره يكي اينكه مثلا در اون سال مالي كه ما داريم عوضش ميكنيم فرض بفرمايد كه يك صندوق دار بوده و حالا شما داريد 3 تا صندوقدار بهش ميديد و گزارش گيري در اين حالت داده هاي اشتباه به كاربر ميده ، و اين يعني همون خط قرمز.
دوم اينكه اصلا قرار نبود ديتا بيسهاي پشتيبان تغيير كنه اين يكي از شرايطي بود كه قرار بود لحاظ بشه و بهش اشاره كرده بودم و كلا راه حل ارائه شده شما با تناقض روبروست.
سوم اينكه تغيير در جداول ممكنه در سال مالي جاري قابل درج باشه اما در سال مالي قبل به هيچ وجه به همون دليل شماره اول.
.
.
.
من 4 ساله كه توي بحث طراحي برنامه نويسي و فروش سيستمهاي مالي و انبار داري بودم و مطالبي كه خدمتتون عرض كردم تجربيات بنده در طول اين مدت از اين سيستمها در كار واقعي هستش.
وقتي ميخواي يه قرارداد با يه حسابدار ببندي قبلش بايد يه حسابدار خبره باشي چون هم اون يه حسابداره و هم با نرم افزارهاي حسابداري زيادي كار كرده. اونها با مشتريهاي معمولي فرق دارن اونا دنبال پيدا كردن همون 0.00000001 هستن كه خدمتتون عرض كردم.
سخن كوتاه ميكنم. موفق باشيد

Mahmoud.Afrad
دوشنبه 03 مهر 1391, 22:50 عصر
با سلام.

اگر بنا بر این باشه که برای هر سال یک دیتابیس مجزا در نظر بگیریم بایستی یک دیتابیس برای اطلاعات مشترک بین همه دیتابیسها برای اطلاعات پایه داشته باشیم و دیتابیس های هر سال فقط برای درج اطلاعات مربوط به خرید و فروش و امثالهم باشه. اما با این کار یکپارچگی دیتابیس و قابلیت جابجایی به عنوان یک دیتابیس از ما صلب میشه.
به نظر من یک دیتابیس کافیه و از جواب tooraj_azizi_1035 (http://barnamenevis.org/member.php?41757-tooraj_azizi_1035) خیلی خوشم اومد.

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

emperor_vb6
جمعه 07 مهر 1391, 12:17 عصر
آفرين به آقاي حبيبي و مافا :تشویق:

علی فتحی
دوشنبه 13 آذر 1391, 00:42 صبح
فکرکنم از روش backup , restorچند دتابیس ساخته بش

Shahram_12
دوشنبه 13 آذر 1391, 04:13 صبح
یا سلام
در حسابداری کارگاهی معمولاً یک دفتر جدید میارن و اطلاعات نمانده هر سال رو به اون منتقل میکنن
ولی مشکل اصلی اینه که اونا باید در هر سال اطاعات مربوط به افراد موجود در اون دفتر قبلی رو به دفتر جدید وارد کنن
حالا اگر برنامه بخواد هر سال این اطلاعات رو منتقل کنه چطوری میشه فایل زو ساخت و مهمتر اینکه چطوری میشه بهش گفت این صفحه پایان یافته یا از سیستم خارج شده
چون کسی که با برنامه کار میکنه نمیتونه هر ساله اون دیتابیس رو خودش بسازه

behzad_fn
پنج شنبه 21 دی 1391, 08:19 صبح
من امروز مقاله ای خوندم که با چند تا از مهندسین My Space مصاحبه کرده بود ، گفته بودند که وقتی تعداد کاربرانشان به 4 میلیون نفر رسیده مشکل حجم اطلاعات را با پارتیشن بندی دیتابیس حل کرده اند و گفته اند که این منطقی ترین راهه. وقتی یه همچین مرکز عظیمی با این حجم اطلاعات از این روش استفاده میکنه پس حتما کاملا جواب میده

FastCode
پنج شنبه 21 دی 1391, 09:52 صبح
4- اگر كدينگهاي مالي تغيير كرده باشه اونوقت چي؟ چطور اين 2 ديتابيس با داده هاي متفاوت رو يكسان كنيم

قرار نیست کدینگ ما تغییر بکنه یا امثال این تغییرات عجیب غریبی که شما میگی (تغییر مسیر تغییر کدینگ)
در تمام دیتابیس ها برای مثال فاکتور ثبت شده.

یعنی اگر یه نفر سال ۸۵ یک اشتباه کرد باید تا ۹۵ ببیندش؟

من همه این مشکلات رو داشتم.
مشکلاتی که الان همه برنامه ها دارن قفل شدن برنامه نویس با چند تا طراحی غلطه که مجبورش میکنه برنامه رو تا آخر اشتباه ادامه بده
نمونش تغییر سختارهایی هست که ممکنه در سیستم حقوق و دستمزد یا حسابداری یا چارت اداری بدید.مثلاً وقتی یک Normalization انجام میدید باید توی صد تا Database نصب شده تغییرات رو اعمال کنید.
هیچ کس هم نمیتونه ادعا کنه که چنین اشتباهاتی نداشته.من خودم خیلی از این اشتباهات کردم.

میدونید آخر چیکار کردم؟
یه دیتابیش نوشتم که تغییرات Data/MetaData رو برای کلاینت مختلف به صورت همزمان به شکل seamless انجام بده.
یعنی اگر شما به
MyDatabase.a563fbf2
وصل بشید یه سری اطلاعات میبینید و اگر به
MyDatabase.92bc32f4
وصل بشید یه سری اطلاعات دیگه میبینید.(منظورم Meta هست چون محتویات یکی هستن)
ولی هر گونه تغییری در اطلاعات رو هر دو به شکل RealTime و NoDelay میبینند

حالا فکر کنید که برنامه شما قابلیت این رو داشته باشه که در حین کار دیتابیسش تغییر کنه و بعد از Update شدن ه دیتابیس, برنامه Update بشه.کاملاً Zero DownTime.
من به این میگم Version Control در سطح دیتابیس که هنوز Patent هاش رو ثبت نکردم.(اگر کسی میتونه در این مورد کمکم کنه لطفاً PM بده/چند روز دیگه تاپیکش رو ایجاد میکنم):ناراحت:

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

علی فتحی
شنبه 21 بهمن 1391, 17:44 عصر
فکر کنم بهترین روش برای ساخت سال مالی ایجاد یک بک آپ جدید بنام سال 1390 میباشد . و درپایان سال با بستن حسابها ایجاد یک بانک اطلاعاتی دیگه و پاک کردن برخی از اطلاعات جدول سال 90 مانند جدول اسناد (100%) و برخی از جداول مشتریان و... بورت اختیاری و حسابداری تارا رو ببینید.

FastCode
شنبه 21 بهمن 1391, 21:31 عصر
فکر کنم بهترین روش برای ساخت سال مالی ایجاد یک بک آپ جدید بنام سال 1390 میباشد . و درپایان سال با بستن حسابها ایجاد یک بانک اطلاعاتی دیگه و پاک کردن برخی از اطلاعات جدول سال 90 مانند جدول اسناد (100%) و برخی از جداول مشتریان و... بورت اختیاری و حسابداری تارا رو ببینید.
البته این روش نیاز به یک مقدار پیشبینی هم داره.
مثلا همه جا باید کنار مبلغ بدهی مدتش رو هم نگهداری کنید.

HadiVB
پنج شنبه 26 بهمن 1391, 01:03 صبح
دوستان دعوا نکنید
بهتره به بررسی نرم افزار موفق حال حاضر بازار ایران یه نگاه بندازید
فرزین شرکت آیکن
ERP شرکت همکاران سیستم
برید سیستم
HIS شرکت کارا سیستم

همه این ها با این که دارن حجم های بالای اطلاعات رو مدیریت میکنن دارن فقط و فقط با یه دیتا بیس کار میکنن

ولی انقدر معماری دیتا بیس دقیق و استفاده از فیلد های XML و ...
متد ها فانکشن ها استور ها و ویو های بسیار کار آمد استفاده شده


قطعا باید اطلاعات روی یک دیتا بیس ذخیره بشه
چون مدیریت یک دیتا بیس روی مثلا SQL یا Oracle هست با چند فایل کردن یک مجموعه اطلاعات حجم سربار زمان دسترسی هارد دیسک رو افزایش میده
کسی درس ذخیره داده رو تو دانشگاهشون پاس نکرده؟

علی فتحی
پنج شنبه 26 بهمن 1391, 14:48 عصر
دوستان اگه تونستید نمونه کوچک بگذارید . یک هم حسابداری پارسیان رو دانلود کنید سال مالی داره خوبم طراحی شده . برای هر سال دیتا بیس جدید درست میکنه.

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

ashkan1234
چهارشنبه 20 شهریور 1392, 11:46 صبح
سلام
ما در SQL Server مبحثی به نام Partitioned Tables And Indexes داریم. که میاد جداول باداده های بزرگ روی چندین Filegroup به صورت پارتیشن پارتیشن ذخیره می کنه و هنگام اجرای کوئری فقط پارتیشن مربوطه رو لود می کنه. مثلاً اگه اطلاعات 10 سال مالی رو وارد کردید و دنبال اطلاعات سال 91 هستید فقط پارتیشن سال 91 رو می خونه چون شما در WHERE کوئری تون سال مالی رو 91 درخواست کردید.

شما ابتدا باید یک Partition Function بسازی تا و رنج سال ها رو بهش بدی مثلاً 1391 تا 1400.
این یک نمونه میلادی هست:


CREATE PARTITION FUNCTION [myDateRangePF1] (datetime) AS RANGE RIGHT FOR VALUES ('20030201', '20030301', '20030401',
'20030501', '20030601', '20030701',
'20030801', '20030901', '20031001', '20031101', '20031201');


بعد بیای یک Partition Scheme تعریف کنی و این رنج ها رو به یک یا چند Filegroup نسبت بدی. و بعد در هنگام ساخت جدول فیلد تاریخ رو به Partition Function نسبت بدی.

این روی چهار پارتیشن عمل می کنه:


CREATE PARTITION SCHEME myRangePS1 AS PARTITION myRangePF1 TO (test1fg, test2fg, test3fg, test4fg);


اعمال هنگام ایجاد جدول:
CREATE TABLE PartitionTable (col1 int, col2 char(10)) ON myRangePS1 (col1) ;

و البته میشه فقط در هنگام ساخت سال مالی جدید دوباره Partition Function رو دستکاری کرد. و حتی میشه با برنامه نویسی Filegroup ای به ازای هر سال مالی ساخت. و رنج یک سال رو به اون نسبت داد.

SQL Server این قدرت داره تا حتی پارتیشن ها رو هم با هم Join کنه!

فعلاً این لینک رو نگاه کن لینک فارسی رو بعداً اضافه می کنم:
http://msdn.microsoft.com/en-us/library/ms188730%28v=sql.105%29.aspx

سلام!
من میخوام واسه نرم افزار کارگاه تعریف کنم و کاربر با هر کارگاهی که وارد شد فقط اطلاعاتی که برای اون کارگاه ثبت شده نمایش داده بشه و بشه توی فقط همون کارگاه اطلاعات ثبت یا ویرایش بشه!
میخوام با این روش که آقای عزیزی فرمودند عمل کنم ولی زیاد سر در نیاوردم!
دوستان کسی یه نمونه سورس با سی شارپ داره!
یا کسی میتونه توضیحات تکمیلی بده!
بد گیرم اگه کمکی از دستتون برمیاد دریغ نفرمایید!

ashkan1234
جمعه 22 شهریور 1392, 12:10 عصر
دوستان نبود مددی؟
چند وقتیه بخش سی شارپ خیلی ضعیف عمل میکنه!
برنامه نویس های حرفه ای همه رفتن از این بخش!
مثلا آقای عزیزی -آقای افراد-یه کاربر خیلی حرفه ای بود یا نام the king نمیدونم چرا اصلا نمیاد اینجا٬کارش خیلی درست بود!
بقیه ام که فعالیتشون کم شده!
تو این چند روز 6 تا تاپیک مختلف ایجاد کردم که فقط به 2تاش پاسخ داده شده...
امیدوارم یکی بداد ما کم علم ها هم برسه!:لبخند:

ali_mohajer
پنج شنبه 30 آبان 1392, 11:02 صبح
با این نظر کاملاً موافقم

علی فتحی
چهارشنبه 13 آذر 1392, 23:25 عصر
سال مالی مشکل بزرگی برای برنامه نویسهاست . پس دوستان بیایید تاپیک و به نتیجه برسونیم.من کارشناس حسابداری
دوستانی که بحث گزارش کردن .
ما در حسابداری برای هر سال یک دفتر روزنامه و یک دفتر کل داریم اطلاعات هر سال رو در ان ثبت میکنیم. این دفاتر دو تا سند کلی دارن یه یکدیگر رو بهم ربط میدن. سند افتتاحیه و سند اختتامیه.
سند افتتاحیه جدولی است که تمام اطلاعات لازم سال گذشته رو برای گزارش سال جاری دریافت میکنه و سند اختتامیه اطلاعات لازم رو برای سال اینده فراهم میکنه. پس برای هر سال یک دیتا بیس خیلی خوبه
با I/Oهرسال رو بازیابی کنی و باش کار کنی .
مثلا یک سرفصل بنام 1.حسابهای پرداختنی/مشتری/علی فتحی با شرکت بصورت نسیه خرید و فروش انجام دادم
عملیات خرید و فروش علی فتحی برای مثلا سال 90 به ریز گزارش میشه و یک مانده مثلا50000 ریال تا 29/12/1390 مانده.
آخر سال مجمع برگزار میشه مانده بدهی اون اقا تصویب میشه . برای سال جدید دیگر ریز گذارش لازم نیست
فقط در سند افتتاحیه یک مبلغ بستانکار به مبلغ 50000 بنام علی فتحی ثبت میشه

علي فتحي
پنج شنبه 14 آذر 1392, 11:25 صبح
كسي نيست اين تاپيك و به پايان برسونيم؟

davidrobert
پنج شنبه 14 آذر 1392, 21:41 عصر
دوستان عزیز این بحث امور مالی خیلی خوب هستش خواهش اگه کسی سورس شو قرار بده به همرای پشتیبان گیریش که که بیشه کلی اطلاعات سال مالی چند ساله رو بکاپ و ریستور گرفت ممنون میشم.
اگه بخواهیم موقع پشتیبان گیری فقط اطلاعات همون سال رو پشتیبان بگریم یا برگردونیم یه باگ خیلی بزرگ هستش
حساب کنید من حساب سالی مالی از 90 دارم تا 92 دارم ولی از بد شناسی ویندوز میپرم ولی از قبل نسخه پشتیبان داریم برای همون سال رو ولی سال های قبل رو باید چیکار کرد در موقع پشتیبان گیری یعین همه اطلاعات باید به پرت و دیگه به اطلاعات قدیمی دسترسی نداشته باشیم یعنی طرف بکاپ سال های پیش رو نداری و فقط نسخه پشتیبان همون سال رو داری اون رو باید چیکار کرد ممنون میشم بگید.

FastCode
پنج شنبه 14 آذر 1392, 21:57 عصر
اینجا برنامه نونوایی هم بنویسی یک نفر پیدا میشه که سورس روش مخلوط کردن خمیر رو میخواد.

علی فتحی
جمعه 25 بهمن 1392, 16:48 عصر
کسی نبود تکمیل کنه بحث رو

nathan
دوشنبه 28 بهمن 1392, 23:31 عصر
دوستانی که بحث در مورد یک دیتا بیس کردند . من میگم شاید یک شرکت بخواد دیتا بیس سالهای گذشته رو روی یک سی دی کپی کنه و دیگر نخواد اطلاعاتش روی رایانه بمونه

فرمایش این دوستمون خیلی منطقیه من هم فکر می کنم اطلاعات هر سال رو داخل یک دیتابیس بزاریم بهتره! دقیقاً عیحالت واقعیه حسابداری که هر سال دفتر خودش رو داره.

gerdioz
سه شنبه 29 بهمن 1392, 09:45 صبح
تحليلتون اشتباهه. بايد همه در يك ديتا بيس پياده سازي بشه
سلام دوست عزیز در تمامی بنامه های حسابداری سال مالی در یک بانک مجزا ثبت میشه

علی فتحی
جمعه 23 اسفند 1392, 23:09 عصر
البته با یک سند افتتاحیه و اختتامیه بانها با هم پیوند و ربط دارن. اخه در یک بانک فکرشو بنید.اطلاعات فروش یک کارخانه ارد.سالانه حداقل صد 20 هزار فاکتور داره.خوب اگه 5 سال وارد شد دیگه ردیفهای اتوماتیک هم ظرفیتشون پرمیشه چون تا 8 رقم قبول میکنه.
پس هر سال یک بانک.نگهداری بک اپ هم هیچ مکلی نداره . شما میتونید داخل یک پوشه همیشه همه رو داشته باشی.

mc_laren
شنبه 24 اسفند 1392, 17:03 عصر
البته با یک سند افتتاحیه و اختتامیه بانها با هم پیوند و ربط دارن. اخه در یک بانک فکرشو بنید.اطلاعات فروش یک کارخانه ارد.سالانه حداقل صد 20 هزار فاکتور داره.خوب اگه 5 سال وارد شد دیگه ردیفهای اتوماتیک هم ظرفیتشون پرمیشه چون تا 8 رقم قبول میکنه.
پس هر سال یک بانک.نگهداری بک اپ هم هیچ مکلی نداره . شما میتونید داخل یک پوشه همیشه همه رو داشته باشی.
دوست عزیز بر فرض اینکه فقط 8 رقم قبول کنه (که بیشتر رو هم قبول می کنه) این 8 رقم برای 800 سال کافیه.
من خودم از یک دیتابیس استفاده می کنم ، و مشکلی هم از این بابت ندارم.
شاید تنها بحثی که پیش بیاد بحث حجم پایگاه داده باشه، که اون هم در دیتابیس های حسابداری هیچ وقت تموم نمیشه. چون نوع داده ای که ذخیره میشه فقط متن هست.

علی فتحی
دوشنبه 11 فروردین 1393, 23:51 عصر
نتیجه چی شد

sm_1366
یک شنبه 08 تیر 1393, 17:17 عصر
با سلام.

اگر بنا بر این باشه که برای هر سال یک دیتابیس مجزا در نظر بگیریم بایستی یک دیتابیس برای اطلاعات مشترک بین همه دیتابیسها برای اطلاعات پایه داشته باشیم و دیتابیس های هر سال فقط برای درج اطلاعات مربوط به خرید و فروش و امثالهم باشه. اما با این کار یکپارچگی دیتابیس و قابلیت جابجایی به عنوان یک دیتابیس از ما صلب میشه.
به نظر من یک دیتابیس کافیه و از جواب tooraj_azizi_1035 (http://barnamenevis.org/member.php?41757-tooraj_azizi_1035) خیلی خوشم اومد.

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



مدیر محترم:
من میخوام دیتابیس یه سیستم حسابداری رو تنظیم کنم مثلا 3 تا جدول اصلی دارم که سال مالی توشون مهمه مثلا یکیش خرید و فروشها رو داره ... یکیش سند ها رو نگه میداره و غیره ...
حالا اگه من بخوام سال مالی ها رو جدا در جدولی تنظیم کنم باید جداولم با توجه به جداول اصلی اینطوری تغییر کنه:

tblasnad 93 , tblforosh 93,tblkharid 93
tblasnad 94, tblforosh 94,tblkharid 94
tblasnad 95, tblforosh 95,tblkharid 95

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

sm_1366
دوشنبه 09 تیر 1393, 02:14 صبح
میشه کسی که اطلاعاتی داره راهنمایی کنه؟

sm_1366
دوشنبه 09 تیر 1393, 17:00 عصر
من واقعا به پاسخ سوالم نیاز دارم کسی نیست؟

mz6488
دوشنبه 09 تیر 1393, 18:09 عصر
منطق کار به این صورته که برای هر سال مالی باید دیتابیس جدا تعریف کنید.روند برنامه پارسیان به این صورت هست که اخر سال مالی میاین یه سند افتتاحیه واسه سال بعد ایجاد میکنید و بعد سوئیچ میکنید به سال مالی بعد.میتونید سند اختتامیه هم صادر نکنید.از نظر اصولی منظقی نیست که همه اطلاعات داخل یه دیتابیس قرار میگیره.تصورش رو بکنید مثلا اطلاعات فاکتور شماره 10 رو از سال مالی 93 بگیرین.اگه فرضا 10 سال از نصب نرم افزار گذشته باشه کار رو به شدت مشکل میکنه.ولی اگه یه موسسه با جچم تراکنش کم مثل نمایشگاه ماشین باشه در اون صورت میشه همه رو تو یه دیتابیس قرار دارد ولی برای سایر موسسه ها باید دیتابیس جدا طراحی شه.هر چند مشکلات خودش رو داره ولی بهترین راه ممکن هستش

sm_1366
دوشنبه 09 تیر 1393, 21:43 عصر
خب پس من اگر برنامم 5 تا جدول داشته باشه که ئو تاش اطلاعات اولیه و کلی هستن و سه تای دیگش نیاز به فیلد تاریخ دارن (سال مالی قید شده)
باید به ازای هر سال مالی یک دیتابیسی با همین 5 تا جدول طراحی کنم؟
در سال 90 بشه db 90 و در سال 91 بشه db 91
یا فقط اون سه تا جدولی که با سال مالی و یا تاریخ کار میکنن تو دیتابیس جدید باید ساخته بشن؟ اگر جواب مثبته پس من به اون دو تا جدول که اطلاعات اولیه رو دارم چه جوری دسترسی پیدا کنم؟

sm_1366
چهارشنبه 11 تیر 1393, 12:19 عصر
خواهشا یکی جواب ما رو برده خیلی نیاز دارم ...

sm_1366
چهارشنبه 11 تیر 1393, 13:59 عصر
کسی نیست؟
:گریه::گریه:

mz6488
چهارشنبه 11 تیر 1393, 14:22 عصر
روال کار به این صورته :برای هر سال مالی یه دیتابیس.در واقع نیازی به دخیره سال مالی تو دیتابیس ندارید فقط تو setting نرم افزار ذخیره کنید.یا اینکه یه دیتابیس مثلا با اکسس درست کنید که توش اطلاعات سال مالی رو ذخیره کنه.دیگه نیازی ندارید اطلاعات سال مالی رو تو همه تیبل هاتون ثبت کنید

sm_1366
پنج شنبه 12 تیر 1393, 13:57 عصر
روال کار به این صورته :برای هر سال مالی یه دیتابیس.در واقع نیازی به دخیره سال مالی تو دیتابیس ندارید....

میشه معنی جمله فوق را یکی کامل کنه؟

ghasem110deh
چهارشنبه 08 بهمن 1393, 07:41 صبح
سلام
بالاخره بهترین روش برای سال مالی کدومه ؟
1- یه جدول با فیلد سال مالی تو جدول های سند و فاکتور و ...
2- یه بانک جدید به اسم سال ؟
یا روش دیگه ؟
.................................................. .............................
اولی که ظاهرا بدردبخور تره !!
اگه روش اول رو بری :
جدول چه فیلدایی نیاز داره ؟
و فیلد سال مالی که توی هر سند یا فاکتور و ... هست ، میتونه همون تاریخ (ثبت فاکتور یا سند) باشه ؟
.
.
.
البته من واسه برنامه انباداری میخوام نه حسابداری !

juza66
یک شنبه 27 دی 1394, 16:22 عصر
سلام میدونم این تایپیک قدیمیه ... جهت کمک به برنامه نویسان میگم (البته اگر قابل بدونن)

من یک دیتابیس sql برای اینکار ساختم
و یک فیلد گذاشتم که تاریخ سال رو وارد میکنم.

یعنی براساس یک فیلد و یک دیتابیس دارم کار میکنم و سال مالی ایجاد میکنم

vahidalvandi
جمعه 13 فروردین 1395, 16:10 عصر
شما که اینقدر نگران حجم داده ها هستید ! مشکلتون روی توانایی پایگاه داده است یا روی حجم اطلاعات ؟

اگر روی حجم باشه که چاره ای ندارید گاهی وقت ها ممکن حجم دیتابیس شما در هنگام Export گیری به 100 مگابایت برسه اما موضوعی که مهمه اینه که تا جایی که ممکنه باید اطلاعات توی یک دیتابیس باشه و با یک معماری که همه اطلاعات را خورد کنه مثلا اگر شما برای یک نوع حساب قراره در یک جدول Type تعریف کنید بهتره همون حساب یک جدول جدا داشته باشه/

البته شما اگر یه جستجویی در گوگل کنید می بینید که طرف با یک جدول با 300 میلیون رکورد درگیریه و سیستمی مثل Mysql به راحتی میتونه جستجو کنه این مسئله حل شده است ، فکر کنید دیتابیس بانک صادرات از 20 سال پیش تا الان توی یک کامپیوتر بوده ! قطعا روش هایی برای کارهای خیلی بزرگ باید وجود داشته باشه که بشه توی اطلاعات جستجو کرد.

من یک برنامه نویس تحت وب هستم و با تکنولوژی Hadoop (http://hadoop.apache.org/) شما را آشنا می کنم این تکنولوژی یک راه حل برای داده های بسیار زیاد است ، مثلا شما باید درگیر یک سرور قوی باشید اما در Hadoop (http://hadoop.apache.org/) بحث روی یک سرور نیست ! بلکه روی هزاران سرور است با یک سرعت وحشتناک بالا :شیطان::شیطان::شیطان:

اما تنها چیزی که منو درگیر میکنه اینه که حالا که سخت افزار برای محاسبه مشکلی نداره تکنولوژی هم نه نمی گه اما در هنگام بکاپ گیری از یک دیتابیس بزرگ موضوع کنترل حجم فایل پیش میاد ؟ درست نمی گم ، مثلا اگه حجم فایل شد 500 مگابایت بعد هر روز باید 500 مگابایت اطلاعات که از 20 سال پیش مثلا توش وجود داره رو باید کپی کنیم.

علی فتحی
پنج شنبه 16 فروردین 1397, 13:53 عصر
دوستان من در برنامه خودم برای هر سال یک دیتابیس ساختم با یک کمبو باکس خیلی سریع توی سالهای مورد نیاز جابجا میشم هیچ مش کلی هم ندارم اینم کد پسوند.


public readonly static string Sal = Properties.Settings.Default.Sal.ToString(); public readonly static string connString = (@"Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\" + Sal + "\\Data.mdf;Integrated Security=True;Connect Timeout=30; User Instance=True");

golbafan
شنبه 18 فروردین 1397, 13:58 عصر
سلام
تجربه 20 ساله بنده میگه بهترین راه استفاده از یک دیتابیس است که معماری استاندارد و بهینه داشته باشه.

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

علی فتحی
دوشنبه 03 اردیبهشت 1397, 00:00 صبح
نظر منم یک دیتابیس بهترینه چون در حسابداری عملیاتی به اسم بستن حساب و سال مالی جدید داریم لازم نیست عملیات سالهای قبل بیخود در دیتابیس بمونه وقتی هیچ استفاده ای برای شما نداره چرا بایگانی نشه و روی دیتابیس فعال بمونه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟

TeacherMath
دوشنبه 03 اردیبهشت 1397, 15:56 عصر
سلام. سال مالی به صورت یه ستون در جدول ها استفاده شود

علی فتحی
سه شنبه 03 اردیبهشت 1398, 15:58 عصر
باسلام : بنده حسابدار هستم یکم کد نویسی سی شارپ هم بلدم -فرمایش اکثر دوستان درست و منطقی ولی به قول بعضی از دوستان مهم سلیقه و مدیریت و درخواست خریدار یا کاربر از نرم افزار شما چیست؟ب
دیتابیس اس کیول مشکلی نداری که تمام اطلاعات روی یک دیتای واحد باشه در ضمن با یک فانکشن میتونید فقط اطلاعات یک سال رو مدیریت کنید . بنده دو جدول مربوط به سال دارم یکی جدول سالهای موجود کارشده در دیتابیس یکی هم که خیلی مهمه جدول سال مالی فعال خب وقتی سال مالی رو انتخاب میکنم دواقع سال مربوطه را در جدول فعال ویرایش میکنم.
150066
اینم کد ویرایش:



private void انتخاب سال_Click(object sender, EventArgs e)
{
SqlCommand com = new SqlCommand("UPDATE [dbo].[tfal] SET [Sal] = @Sal, [sdate] = @sdate, [edate] = @edate WHERE ([id] = @id)", con);
com.Parameters.AddWithValue("@id", 1);
com.Parameters.AddWithValue("@Sal", textBox1.Text);
com.Parameters.AddWithValue("@sdate", maskedTextBox3.Text);
com.Parameters.AddWithValue("@edate", maskedTextBox4.Text);
con.Open();
com.ExecuteNonQuery();
con.Close();
Properties.Settings.Default.Set = textBox1.Text;
Properties.Settings.Default.Save();
this.Close();
}

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

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

اگر ریز هم خواستی ارتباط همزمان با چند تا دیتابیس فراهم هست به شزطی که عرض کردم کدینگ تغییر نکند ؟

اینم ارتباط؟:
150069
ایتنم پیوند
SqlConnection con = new SqlConnection(Program.connString);
2SqlConnection con2 = new SqlConnection(Program.connString);

علی فتحی
سه شنبه 03 اردیبهشت 1398, 16:03 عصر
اینم فرم سند و نمونه سند :
150070150071
یک مطلب مهم هم عرض کنم در نرم افزار حسابداری کدینگ حسابداری خیلی خیلی خیلی مهمه :و استاندارد خواص حودش رو داره مثلا حساب کل 4 رقم و معین 6 رقم سه رقم اول کدمعین همان کد کل هستش
دراقع کد 111001 یعنی این حساب معین یک حساب کل به کد 111 داره که توسط حسابداری خیلی راخت قابل پیگیریت.
و کد تفصیل هم اختیاری معمولا 10 رقم در نظر می گیرند .
درضمن کد معین اگر 7 رقم شد یعنی این حساب معین پیوند حساب تفصیل دارد . مثلا اگر گروه تفصل 2 مربوط به سهامداران باشد کد 1110012 یعنی این کد معین یک ریز حساب بنام سهامداران دارد.
نرم افزارهای حسابداری با مشاوره حسابدار و استاندارد تهیه میشن ولی بعضی حسابدارها چون کدینگ نرم افزاری حالیشون نیست باور کنید ماهیت پیشرفته ترین نرم افزارها رو زیز سول میبرند - من یک جا رفتم حسابدارشون 30 سال خدمت بود باور کنید مثل یک دفتردار فقط یاداشت برداری کرده بود کدینگ را بدجوری سلیقه ای نوشته بود اصلا نمیشد یک گزارش ساده گرفت اون برنامه نویس بیچاره اگر میدید باور کنید ترک برنامه نویسی میکرد :قهقهه:

علی فتحی
جمعه 20 اردیبهشت 1398, 01:35 صبح
تاپیک تعطیل شد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟