PDA

View Full Version : ایجاد سال مالی



sajjad1365
یک شنبه 26 خرداد 1387, 13:42 عصر
بسم الله
اگه از دوستان برنامه ای در رابطه با ایجاد سال مالی دارن لطف کنن و...

ممنون

saman_itc
یک شنبه 26 خرداد 1387, 15:00 عصر
فکر کنم برنامش خیلی سنگین باشه
منم دارم یه برنامه شالی کوبی مینوسم لازمش دارم
شما مقاله ای در این مورد دارین؟

maryamb
یک شنبه 26 خرداد 1387, 16:51 عصر
منم یه برنامه برای مدرسه می خوام بنویسم که تو قسمت سال مالی گیر کردم ، ولی فکر کنم یه فیلد برای سال در نظر بگیرید بعد تو برنامه از فیلتر استفاده بشه میشه یه کارایی کرد ، ولی مشکل من اینه که سال مدرسه فرق داره و از مهر تا شهریوره !!!
اگه کسی نمونه برنامه ای لطف کنه ممنون می شم

vbhamed
یک شنبه 26 خرداد 1387, 16:53 عصر
سلام
چيز خاصي نيست
مي تونيد يك پوشه در برنامتون به اسم همون سال مالي ايجاد كنيد و هر ديتابيسي داريد از اونجا آدرس بديد
مثلا پوشه 1386، 1387 و ...
يعني براي هر سال مالي، ديتابيسهاي جداگانه داريد

اينطوري اطلاعات برنامتون كلا از سالهاي ديگه تفكيك شده هست
به دليل حجم كمتر ديتابيس هر سال نسبت به كل سالها، سرعت برنامه هم بالاتره
پشتيبان گيري هم راحت تر ميشه


اگر هم دوست داشتيد مي تونيد يك قسمت بزاريد كه اطلاعات رو از سالهاي قبل به سال جديد وارد كنه
يا اينكه مثلا براي يك شخص يك سند بدهكاري يا بستانكاري سال قبل يا سالهاي قبل بزنيد و ديگه جزئيات رو وارد نكنيد

maryamb
یک شنبه 26 خرداد 1387, 17:08 عصر
آقای vbhamed ممنون از راهنماییتون ولی می شه این توضیحاتی که دادید رو با کد بگید ؟
چطور می شه هر سال پایگاه داده رو عوض کرد ؟
چطور می شه هر سال دیتابیس جدید ساخت ؟
چطور می شه بعضی اطلاعات رو از یه دیتا بیس به اونیکی وارد کرد در حالی که هنوز ساخته نشدن و مثلا 2 سال دیگه قراره ساخته بشن؟
ببخشید نمونه کد ندارید که بهتر متوجه بشیم؟؟

vbhamed
یک شنبه 26 خرداد 1387, 17:34 عصر
سلام

1 - اگر ديده باشين برنامه هاي اين مدلي در ابتداي ورود، مي گن سال مالي رو انتخاب كنيد
فرض كنيم شما 1387 رو انتخاب كردين و اونو در يك متغير رشته اي به نام SalMali ذخيره كرديد
يك متغير عمومي رشته اي هم در يك ماژول تعريف كنيد مثلا به اسم dbase براي ذخيره نام و مسير ديتابيس




Global dbase As String
Global SalMali As String

فرض كنيد اسم بانكتون هم MyDatabase.mdb‌ باشه

در ابتداي برنامه متغير dbase رو پس از انتخاب سال مالي مقدار دهي كنيد


dbase = app.path & "\" & SalMali & "\MyDatabase.mdb"بعد از اين به بعد همه جا از اين متغير به عنوان نام Database هاتون استفاده كنيد و در روال Form_Load هر فرمي، كنترلهاي Ado و ديتا رو با اين متغير مقداردهي كنيد كه اگر از كنترل DATA استفاده مي كنيد تو Form_Load اين دستورات رو بنويسيد


On Error Resume Next

Data1.DatabaseName = dbase
Data1.RecordSource = "Select * From Table1"
Data1.Refresh
اما اگر از ADODC استفاده مي كنيد اين دستورات رو بنويسيد


On Error Resume Next

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & dbase
Adodc1.RecordSource = "Select * From Table1"
Adodc1.Refreshاينطوري برنامه به اطلاعات اون سال مالي دسترسي داره


2 - ساخت پايگاه داده كاري نداره، نياز نيست كار سختي انجام بدين
فقط يك كپي از بانكهاي خاليتون داشته باشيد مثلا MyDatabase.Empty
بعد وقتي خواستيد سال مالي جديد ايجاد كنيد اين بانك خالي رو تو پوشه مربوطه به اسم اصلي كپي كنيد


FileCopy app.path & "\MyDatabase.Empty", app.path & "\" & SalMali & "\MyDatabase.mdb"3 - شما وقتي ديتابيس ها رو ساختين اطلاعات رو در صورت نياز وارد كنيد نه موقعي كه برنامه نصب شده
ابتداي هر سال وقتي سال مالي جديد طبق روش بالا ايجاد شد، اونموقع مي تونيد ديتا هاي مورد نياز رو از بانك قبلي با يك كنترل ديتا بخونيد و با يك كنترل ديتاي ديگه تو بانك جديد بنويسيد

اگر هم اين كار براتون سخته، مي تونيد همون بانك سال قبل رو تو پوشه سال جديد كپي كنيد و اطلاعات اضافي اون رو حذف كنيد با يك دستور Sql ساده براي هر جدول


Delete * From Table1و بعد از ايجاد سال مالي جديد و كپي ديتابيس قبلي در اون پوشه و حذف ركوردهاي اضافي، مجموعه دستورات زير رو هم بدين تا بانك به اصطلاح كامپكت بشه و فضاهاي خالي حاصل از دستور Delete دوباره احياء بشه و اندازه فايل بانك كوچك بشه



On Error Resume Next

Kill App.Path & "\" & SalMali & "\MyDatabase.mdb.compact"
CompactDatabase App.Path & "\" & SalMali & "\MyDatabase.mdb", App.Path & "\" & SalMali & "\MyDatabase.mdb.compact"

Kill App.Path & "\" & SalMali & "\MyDatabase.mdb"
Name App.Path & "\" & SalMali & "\MyDatabase.mdb.compact" As App.Path & "\" & SalMali & "\MyDatabase.mdb"

مهران رسا
یک شنبه 26 خرداد 1387, 18:59 عصر
به نظر من بیاید از یک دیتابیس به صورت عمومی استفاده کنید و به هر رکورد یک فیلد مربوط به سال جاری رو اختصاص بدید .

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

ASKaffash
یک شنبه 26 خرداد 1387, 19:05 عصر
به نظر من بیاید از یک دیتابیس به صورت عمومی استفاده کنید و به هر رکورد یک فیلد مربوط به سال جاری رو اختصاص بدید .

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

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

maryamb
یک شنبه 26 خرداد 1387, 19:15 عصر
ببخشید حالا در برنامه ی من که یه سال مالی از مهر تا شهریور هست چجوری مشخص کنم ؟

ASKaffash
یک شنبه 26 خرداد 1387, 19:45 عصر
سلام
در یک سیستم مدرسه سال مالی مفهومش از یک زمان تا زمان دیگر است حتما نباید یک سال باشد مثلا شما نامگذاری جداول مرتبط با سال را اینجوری انجام دهید :


Sal85_86
Sal86_87
........

hrj1981
یک شنبه 26 خرداد 1387, 19:51 عصر
توي برنامه هاي حسابداري معمولا از گذاشتن سال مالي در انتهاي ديتابيسها استفاده مي كنند.(البته من با نرمافزارهاي متفاوتي كار كرده ام و عموما از اين روش استفاده كرده اند)هنگامي كه كاربر سال مالي مورد نظر خود را وارد مي نمايد سيستم به دنبال ديتابيس همان سال مي گردد ؛من در برنامه ام از اين روش استفاده مي كنم و خوب هم جواب داده ؛البته در ركودهايم كه وارد ديتابيس مي شود جهت كنترل يك فيلد سال كاري قرارداده ام كه هنكام ذخيره شده ركورد را با سال مالي برنامه چك مي كند.

vbhamed
یک شنبه 26 خرداد 1387, 20:27 عصر
ببخشید حالا در برنامه ی من که یه سال مالی از مهر تا شهریور هست چجوری مشخص کنم ؟


سلام
شما فقط نام پوشه اون سال مالي رو متناسب انتخاب كنيد مثلا بزاريد 8706-8607

sh2007
دوشنبه 27 خرداد 1387, 08:51 صبح
براي سال مالي بهتر يك جدول سال مالي ساخته شود و هر جا كه از اون جدول لازم داريد آي دي اونو توي جدول دوم بكار ببريد

saman_itc
سه شنبه 28 خرداد 1387, 17:11 عصر
برای هر سال مالی باید یه جدول و در مجموع یه بانک داشته باشیم
و توی هر سال مالی یه مانده از سال قبل داشته باشیم
راه حل ساده و عملی هستش