مهمترین کاربرد پرنیان ارائهی تقویم شمسی در محیط نرماقزار مایکروسافت پراجکت بوده است.و اینک برای ما افتخار برانگیز است که نسخهی 6 این نرمافزار را برای استفاده در آفیس 2010 ارائه میکنیم. پرنیان در نسخهها و ویرایشهای متفاوتی ارائه میشود، نسخهی سبک این نرمافزار به صورت رایگان ارائه میشود، و نسخههای پیشرفتهتر آن فروخته میشود،
جملات بالا از وب سایت شرکت گستره نگار می باشد.ازاینجا و اینجا.
اما با تست هایی که انجام دادم نتوانستم تقویم شمسی project 2010 را فعال کنم.چون در هنگام اجرا Project 2010 پیغام خطای قفل سخت افزاری نمایش داده می شود.ولی لینک آن را برای شما کاربران قرار می دهم تا اگر دوست داشتید ان را دانلود و تست کنید.و چنانچه موفق شدید اطلاع دهید تا این مطلب اصلاح شود.
لینک دانلود تقویم شمسی برای Project 2010 نسخه 32 بیتی
لینک دانلود تقویم شمسی برای Project 2010 نسخه ۶۴ بیتی
پسورد:www.office-learning.ir
اما در ادامه مطلب دو روش دیگر که با ماکرو انجام می شود ذکر می شود:
============================================
روش اول
از اینجا دانلود کنید.
این روش از این وب سایت برداشت شده است.
============================================
روش دوم:(این مطلب از این لینک برداشت شده است)
یکی از روشهایی که می توان تاریخها را در Microsoft Project به صورت شمسی نمایش داد با استفاد از Macro می باشد . در این روش باید برنامه ای با فرمت Visual Basic که تاریخ میلادی را به شمسی تبدیل نماید وجود داشته باشد و این برنامه به صورت یک ماجول در برنامه تعریف شود و با استفاده از یک ماکرو این ماجول را روی یکی از فیلدهای انتخابی اجرا نمود.
در ادامه به توضیح این روش خواهیم پرداخت
نخست از بخشهای Tools> Macro > Visual Basic Editor را انتخاب نمایید . در قسمت چپ صفحه با زدن کلیک راست Insert > module را انتخاب نمایید. پس از ایجاد ماجولی به نام module1کد های زیر را در این ماجول کپی نمایید .
Option Base 0 Public Const SHBaseYear = 1278 Public Const SHBaseMonth = 12 Public Const SHBaseDay = 29 Function SHIsLeap_Year(ByVal ShYear As Long) As Boolean Dim LEAP1 As Single SHIsLeap_Year = False LEAP1 = (8 * ShYear + 22) / 33 - 0.001 LEAP1 = LEAP1 - Int(LEAP1) If (LEAP1 > 0.77) Or (LEAP1 = 0) Then SHIsLeap_Year = True End Function Function SHLeap_Count(ByVal ShYear As Long) As Integer Dim LEAP1 As Integer, LEAP2 As Integer, LEAP3 As Integer LEAP1 = (ShYear - 22) \ 33 LEAP2 = ((ShYear - 22) Mod 33) \ 4 If ShYear >= 22 Then LEAP3 = 6 + (8 * LEAP1) + LEAP2 '6=(22 \ 4) + 1) leap days til Shyear=22 Else LEAP3 = (ShYear + 3) \ 4 'the first leap year as Shyear=1 End If If (ShYear - 21) Mod 33 = 0 Then LEAP3 = LEAP3 - 1 SHLeap_Count = LEAP3 End Function Sub CH_To_SH(ByVal CHDate As Date, Year As Long, Month As Long, Day As Long) Dim DayNum As Long, ReminderDay As Long Dim NewYear As Long, NewMonth As Long, NewDay As Long NewYear = 0 NewMonth = 0 NewDay = 0 DayNum = Round(CHDate) - 80 NewYear = (DayNum \ 365) + SHBaseYear + 1 ReminderDay = (DayNum Mod 365) - (SHLeap_Count(NewYear - 1) - SHLeap_Count(SHBaseYear)) If ReminderDay <= 0 Then NewYear = NewYear - 1 ReminderDay = 365 + (DayNum Mod 365) ReminderDay = ReminderDay - (SHLeap_Count(NewYear - 1) - SHLeap_Count(SHBaseYear)) End If If ReminderDay <= 0 Then NewYear = NewYear - 1 If SHIsLeap_Year(NewYear) Then ReminderDay = 366 Else ReminderDay = 365 End If End If NewMonth = ((ReminderDay - 1) \ 31) + 1 NewDay = ReminderDay Mod 31 If NewDay = 0 Then NewDay = 31 If NewMonth > 6 Then NewDay = NewDay + (NewMonth - 7) NewMonth = NewMonth + ((NewDay - 1) \ 30) NewDay = (NewDay Mod 30) If NewDay = 0 Then NewDay = 30 End If Year = NewYear Month = NewMonth Day = NewDay End Sub Function FDate(ADate As String, Zero As Boolean, Optional Four As Boolean = False) As String Dim Y As Long, M As Long, D As Long Dim ys As String, ms As String, ds As String CH_To_SH CDate(ADate), Y, M, D If Four Then ys = Str(Y) Else ys = Right$(Str(Y), 2) End If If Zero Then If Len(Trim(Str(M))) < 2 Then ms = "0" + Trim(Str(M)) Else ms = Trim(Str(M)) End If If Len(Trim(Str(D))) < 2 Then ds = "0" + Trim(Str(D)) Else ds = Trim(Str(D)) End If Else ms = Trim(Str(M)) ds = Trim(Str(D)) End If FDate = ys & "/" & ms & "/" & ds End Function
سپس مجدداً ماجول جدیدی ایجاد و پس از ایجاد module2 کدهای زیر را در این ماجول کپی نمایید.
Public Sub Shamsi_date() Dim tskProjTask As Task 'Reference to a task object. Dim tsksProjTasks As Tasks Set tsksProjTasks = ActiveProject.Tasks For Each tskProjTask In tsksProjTasks If Not (tskProjTask Is Nothing) Then 'Check to see if task exists and that is not a external task. If Not tskProjTask.ExternalTask Then tskProjTask.Text1 = FDate(Format(tskProjTask.Start, "yyyy/mm/dd"), True) tskProjTask.Text2 = FDate(Format(tskProjTask.Finish, "yyyy/mm/dd"), True) End If End If Next tskProjTask End Sub
پس از این مراحل به شکل زیر باشد .
این ماجولها ماکرویی را به نام shamsi_date بوجود می آورند که با اجرای این ماکرو تاریخهای شمسی به ترتیب زیر در ستونهای Text1 و Text2 کپی میگردند. تاریخ شروع شمسی در Text1 و تاریخ پایان شمسی در Text2 که جهت رویت تاریخ های شمسی می بایست این دو ستون کنار ستونهای دیگر اضافه گردند ، بدین ترتیب پس از هر بار تغییر می بایست این ماکروی Shamsi_date را اجرا نمایید. نتیجه این عمل در شکل زیر قابل مشاهده می باشد . البته می توانید نام ستونها را به shamsi Start Date و Shamsi Finish Date تغییر دهید.
جهت مشاهده روش پیاده سازی و اجرای ماکروها این فایل را دانلود کنید و به ترتیب عکس ها پیش بروید:(لینک ها در وبلاگ مرجع قابل دیدن نبودند به همین علت در یک فایل ذخیره و اینجا قرار داده شد)
1- ایجاد یک پروژه جدید در نرم افزار مایکروسافت پروجکت
2- وارد شدن به محیط ویژوال
3- ایجاد یک ماجول در محیط ویژوال
4- کپی کردن کدهای موجود در فایل Ms Project shamsi_date_Module1.txt در ماجول 1
5- ایجاد یک ماجول دیگر در محیط ویژوال
6- کپی کردن کدهای موجود در فایل Ms Project shamsi_date_Module2.txt در ماجول 2
7- راهنمای مسیر اجرای ماکروها
8- اجرای ماکروی shamsi_date
9- ایجاد ستون با کلیک راست
10- نامگذاری ستون تاریخ شمسی شروع فعالیت
11- نامگذاری ستون تاریخ شمسی خاتمه فعالیت
12- نمایش تاریخ شروع و خاتمه در دو ستون متنی ( text )
سلام برای project 2019 هم جواب میده؟
سلام
من هم نصب کردم پیغام قفل نرم افزاری داد متاسفانه.
سلام من قفل پرنیا را برای ام اس 2010 به مبلغ 195 هزار خریدم و بعد وقتی قفل اشکال برخورد با پرنیا تماس گرفتم گفتند باید 150 هزار تومان بدهید تا ما ام اس 2013 ارتقا دهیم حالا اگر ما نخواهیم ارتقا بدهیم شرکت پرنیا ( گستره نگار) نباید خدمات درست ارائه کند
در پروجکت 2010 روشهایی که فرمودید کار نکرد!
روش اول که پیداش نکرم گزینه هایی که گفتید.
در روش دوم هی میره رو ماکروی ویژوال بیسیک.
پس چرا می نویسید تقویم شمسی.این تقویمش قمریه.
عجبا….
لطفا روش های اول و دوم رو امتحان بفرمایید
سلام
این لینک فقط تاریخ قمری داره. شمسی کجاست؟
با تشکر
باسلام وتشکر
من فایل شما رو نصب کردم اما فقط تقویم قمری رو نشون میده و تقویم شمسی اجرا نمیشه
ممنون میشم راهنمایی کنید
ممنون از سایت خوبتون
با سلام و تشکر
من رویه شما را اجرا کردم اما با پیغام خطای زیر مواجه شدم
Compile error
Invalid outside procedure
در ضمن نرم افزار پرنیان هم تجاری است و برای استفاده از نسخ شش که در سایت شما معرفی شده باید یک قفل سخت افزاری خریداری شود که برای هر کاربر 270000 تومان قیمت دارد. نسخههای بعدی این نرم افزار هم بالای 300000 تومان قیمت دارند.
با سلام
فایل روش اول در لینک مبدا مشکل داشت که اصلاح و جایگزین شد.
ممنون از شما