نمایش نتایج 1 تا 5 از 5

نام تاپیک: قرار دادن تاریخ شمسی در کریستال ریپورت

  1. #1
    کاربر جدید
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    خوی
    پست
    26

    Question قرار دادن تاریخ شمسی در کریستال ریپورت

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


  2. #2

    نقل قول: قرار دادن تاریخ شمسی در کریستال ریپورت

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

    WindowsFormsApplication2.zip

  3. #3
    کاربر جدید
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    خوی
    پست
    26

    نقل قول: قرار دادن تاریخ شمسی در کریستال ریپورت

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

    WindowsFormsApplication2.zip
    میشه ازتون خواهش کنم اگه امکانش هست تو ورژن 2008 دات نت برنامه رو آپ کنی. آخه مثل اینکه این ورژن 2010 هستش و من هم 2010 تو سیستمم نصب ندارم.

    لطفا کمکم کنید.

    با تشکر فراوان

  4. #4

    نقل قول: قرار دادن تاریخ شمسی در کریستال ریپورت

    ببین این باز میشه، ممکنه Crystal reportاش هم برات باز نشه. ولی روند کار اینطوریه که وقتی یه report به برنامت اضافه می کنی در Field explorer روی parameter fields کلیک راست کرده و new رو می زنی. یه اسمی به پارامترت می دی مثلا من اینجا اسمش رو Date گذاشتم. حالا یه پارامتر جدید با اسم Date در زیر Parameter fields اضافه میشه. اون رو با موس بگیر و به هر جای گزارشت که می خوای اضافه کن. توی برنامه هم به اینصورت مقدارش رو پاس می کنی:

    crystalReportViewer1.ReportSource = CrystalReport11;
    CrystalReport11.SetParameterValue("Date", "هر تاریخی که می خواهید");


    CR.zip

  5. #5
    کاربر دائمی آواتار mohammad_2039
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    360

    نقل قول: قرار دادن تاریخ شمسی در کریستال ریپورت

    سلام

    من این کارو انجام دادم و خیلی خوب بود.
    اول یه Function تو کریستال درست کن و این کد رو توش کپی کن

    Function (datevar MyDate)
    (
    numbervar MyYear:=year(MyDate);
    numbervar MyMonth:=month(MyDate);
    numbervar MyDay:=datepart('D',MyDate);
    numbervar array DaysToMonth365 := [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 ];
    numbervar array DaysToMonth366 := [ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 ];
    numbervar array DaysToMonth := [ 0, 31, 62, 93, 124, 155, 186, 216, 246, 276, 306, 336 ];
    numbervar array LeapYears33 := [ 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 ];
    booleanvar IsLeapYear;
    if ((myyear mod 4) <> 0) then
    IsLeapYear := false
    else if ((myyear mod 100) = 0) then
    IsLeapYear := ((myyear mod 400) = 0)
    else
    IsLeapYear := true;
    numbervar array numArray1;
    if (IsLeapYear) then
    numArray1 := DaysToMonth366
    else
    numArray1 := DaysToMonth365;

    numberVar num1 := int( myyear - 1);
    numberVar num2 := int(((((((num1 * 365) + (num1 / 4)) - (num1 / 100)) + (num1 / 400)) + numArray1[mymonth]) + myday) - 1);
    numberVar num4 := num2 + 1;
    numberVar PersianYear := int((((num4 - 226894) * 33) / (12053)))+ 1;
    numberVar numtmp2 :=int( (PersianYear - 1) / 33);
    numberVar yeartmp := int((PersianYear - 1) mod 33);
    numberVar num5 := (numtmp2 * 12053) + 226894;
    while (yeartmp > 0) do
    (
    num5 := num5 + 365;
    if (LeapYears33[(yeartmp Mod 33)+1] = 1) then
    num5 := num5 + 1;
    yeartmp := yeartmp - 1
    );
    numberVar num6;
    num5;
    if (PersianYear = 9378) then
    num6 := DaysToMonth[10] + 10
    else if (LeapYears33[(PersianYear Mod 33)+1] <> 1) then
    num6 := 365
    else
    num6 := 366;
    if (num4 < num5) then
    (
    num5 := num5 - num6;
    PersianYear := PersianYear - 1;
    )
    else if (num4 = num5) then
    (
    PersianYear := PersianYear - 1;
    numberVar temp;
    if (PersianYear = 9378) then
    temp := DaysToMonth[10] + 10
    else if (LeapYears33[(PersianYear mod 33)+1] <> 1) then
    temp := 365
    else
    temp := 366;
    num5 := num5 - temp
    )
    else if (num4 > (num5 + num6)) then
    (
    num5 := num5 + num6;
    PersianYear:=PersianYear+1
    );

    num4:= num4 - num5;
    numberVar num12 := 0;
    while ((num12 < 12) and (num4 > DaysToMonth[num12+1])) do
    (
    num12:=num12+1;
    );
    numberVar num3 := int(num4) - DaysToMonth[num12];
    Stringvar Text :=Cstr( PersianYear,'0000')+'/'+Cstr(num12,'00')+'/'+Cstr(num3,'00');
    )



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

    ConvertDatetoPersianDate(CurrentDate);


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

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •