با سلام
کسی کامپوننت تقویم فارسی سراغ داره که به شکل زیر کار کنه، یا یه چیز تو این مایه ها:
ممنونم و منتظر
یا علی
Printable View
با سلام
کسی کامپوننت تقویم فارسی سراغ داره که به شکل زیر کار کنه، یا یه چیز تو این مایه ها:
ممنونم و منتظر
یا علی
به آرس زیر مراجعه نماید
http://www.FarsiComponents.com
SHDATE Solutions طراحی شده توسط آقای امیر رحیمی فراهانی با امکانات فوق العاده عالی و تقریبا بدون هیچ باگی و قیمت ارزان
به این آدرس مراجعه کنید http://www.farsicomponents.com
در ضمن قبل از مطرح کردن سوال در فروم جستجو کنید.
موفق باشید
رایگان - فول سورس
با سلام
shdate - فارسی کامپونتس عالی است .فقط سوال اینجاست که با گزارشها چطور کار میکند.
باتشکر
به راحتینقل قول:
shdate - فارسی کامپونتس عالی است .فقط سوال اینجاست که با گزارشها چطور کار میکند.
من در Fast Report خیلی راحت ازش استفاده می کنم.
در کجاش مشکل داری؟
مرسی از component خوب است
آقا به شدت دستتون درد نکنه. ایشا الله کربلا بری
آقای یعقوبی
سلام
به نظر می آد یه فایل res کم باشه. چون ظاهرا قابل استفاده نیست
بله یه چیزی کم داره!!!
چون اینستال نمی شه.
بله یکی از فایل های ریسورس در مجموعه نیست.لطفا اونو اصلاح و کامل نمایید
با تشکر
سلام
موقع کامپایل کردن پکیج سوال میکنه که فایل res رو بسازه؟ پس از پاسخ مثبت یه فایل با نام calender.res ساخته میشه. اسم اونو به calendr.res تغییر دهید و دوباره کامپایل کنید. بار دوم نصب میشه.
مسیر کامپوننت shdate را در قسمت path در environment به لیست مسیر ها اضافه کنید یا کل فایل ها را به مسیر delphi\lib یا elphi\bin کپی کنید.
موفق باشید.
از من اصلا نمی پرسه که برم خودم بسازم! که من بتونم ریسورس رو ری نیم کنم!نقل قول:
نوشته شده توسط saeed_d
این کار برای چی باید انجام بشه؟نقل قول:
نوشته شده توسط nobody
داخل فایل Calender.dpk خط {$R *.res} را پاک کنید.
تو دیگه حتما ان شاالله کربلا بری/ دمت گرم/ یا علی
خیلی ساده بگم تا دلفی بدونه که فایل های مربوط به Shdate کجا هستند.نقل قول:
این کار برای چی باید انجام بشه؟
موفق باشید
ممنونم از توضیحتوننقل قول:
نوشته شده توسط nobody
سایتهای را معرفی کنید که رایگان باشند نه .......... اکثر سایتها برای منافع خودشان تبلیغ میکنند.
سلام دستت درد نکنه آقای یعقوبی
خیلی بدردم خورد
فقط می نمی دونم چطور اسم اون maskedit ویا edit ویا...که از اونجا تقویم شما رو اجرا کردیم رو چه جوری بشناسیم که تاریخ انتخابی رو مستقیما(نه از طریق متغییر) دریافت کنیم
اگه بگید ممنون می شم
جناب یعقوبی عزیز
این عکسی که شما از کامپوننتتون گذاشتید با چهره کامپوننت بعد از نصب تفاوت داره. آیا این برنامه بعدا تغییری کرده؟
نه دوست من
من این کامپوننت را روی یک فرم گزاشتم با کلیدهایی که دیدید با این توابه
//------------------------------------------------------------------------------
Procedure TFrmCalendar.BBNextMonClick(Sender: TObject);
Begin
Clndr.NextMonth;
End ;
//------------------------------------------------------------------------------
Procedure TFrmCalendar.BBPrevMonClick(Sender: TObject);
Begin
Clndr.PrevMonth;
End ;
//------------------------------------------------------------------------------
Procedure TFrmCalendar.BBNextYearClick(Sender: TObject);
Begin
Clndr.NextYear;
End ;
//------------------------------------------------------------------------------
Procedure TFrmCalendar.BBPrevYearClick(Sender: TObject);
Begin
Clndr.PrevYear;
End ;
//------------------------------------------------------------------------------
Procedure TFrmCalendar.ClndrChange(Sender: TObject);
Begin
LDate.Caption:=M2Sh(Clndr.CalendarDate);
End ;
//------------------------------------------------------------------------------
Procedure TFrmCalendar.ClndrDblClick(Sender: TObject);
Begin
ModalResult := mrOk ;
End ;
درسته ممنونم.من فکر کردم که اون کلیدها هم جز کامپوننت هستش و با گذاشتن اون روی فرم اون دگمه ها هم میاد!!!
ممنون
آقای یعقوبی
من نمی خوام برای هر بار ثبت تاریخ فرمی طراحی کنم و component تقویم رو توش بزارم والی آخر.درستش اینه که یه بار کارهای بالارو انجام بدیم و نتیجه رو به باکس انتقال بدیم.واسه همین تو صفحه قبل پرسیدم که چطور میشه بفهمیم باکس مربوطه چیه و یه دکمه تایید در فرم حاوی component تعبیه کنیم و بواسطه اون تاریخ انتخابی رو تو اون باکس بریزیم بدون اینکه متغیر تعریف کنیم یا براساس اعمال شرط باکس رو معرفی کنیم.
یک فرم طراحی کنید کامپوننت و تمام کلیدهای لازم را روی آن قرار دهید. مثل شکل
حالا یک فانکشن تعریف کنید مثلا به اسم ShowCal که این فانکش تاریخ را برمیگرداند.
این فرم یک فرم عمومی برای شما خواهد بود و شما هر کجا لارم است اینفانکش را صدا خواهید
زد و تاریخ را دریافت خواهید کرد.
با سلام
هیچ شکی نیست که بهترین کامپونت فارسی در ایران است و انشاء ا... این مشکل هم رفع شود که
با report builder مشکل دارده و اینکه در این گزارش ساز به صورت میلادی تاریخ نشان داده می شود
لطفاً راهنمایی کنید چه کار کنم
با تشکر
داود
دوست عزیز شما میتوانید در ReportBuilder فانکشنهای خود را رجیستر کنید و استفاده کنید
من یک یونیت برای خودم نوشتم که یک سری فانکشنها را رجیستر کردم
شما این یونیت نمیتوانید استفاده کنید چون یک سری از یونیتهای دیگری لازم دارد.
شما فقط نوع تعریف کردن فانکشنها و طریقه رجیستر کردن آنها را میتوانید از آن بردارید :
unit rap_Func;
interface
uses
Classes,sysutils, Forms, raFunc, ppRTTI, db, OSDB, ppUtils, Variants;
type
{ TmyDevelopersFunction }
TLibFunctions = class (TraSystemFunction)
public
class function Category: string; override;
end;
{ TmyGetDelphiComponentFunction }
TGetComponent = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TGetSysParam = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TcfValues = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
// class function HasParams: Boolean; override;
end;
TDValues = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TcfPutComaBetNumber = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TcfCalculateNumber = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TDgt2Farsi = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TCallMtd = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
{ TDeleteItem = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;}
TFarsiDate = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TChr = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TSh2M = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TM2Sh = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
TMnt2Hour = class (TLibFunctions)
public
procedure ExecuteFunction(aParams: TraParamList); override;
class function GetSignature: string; override;
end;
implementation
uses MthdIntf,Sml,ppclass,FConv,Graphics,App_Prms,GlobF unc,DateFunc,Farsi,Str_Func;
{------------------------------------------------------------------------------}
{ TmyDevelopersFunction.Category}
class function TLibFunctions.Category: string;
begin
Result := 'LibFunctions';
end;{ class function Category() }
{------------------------------------------------------------------------------}
{ TmyGetDelphiComponentFunction.ExecuteFunction}
procedure TGetComponent.ExecuteFunction(aParams: TraParamList);
var
lsString: string;
lResult: TComponent;
begin
GetParamValue(0, lsString);
lResult := Application.MainForm.FindComponent(lsString);
SetParamValue(1, lResult);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TmyGetDelphiComponentFunction.GetSignature}
class function TGetComponent.GetSignature: string;
begin
Result := 'function GetComponent(const aComponentName: String): TComponent;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
{ TmyGetDelphiComponentFunction.ExecuteFunction}
procedure TGetSysParam.ExecuteFunction(aParams: TraParamList);
var
ParamName: string;
lResult: string;
begin
GetParamValue(0, ParamName);
lResult := GetSysParam(ParamName);
SetParamValue(1, lResult);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TmyGetDelphiComponentFunction.GetSignature}
class function TGetSysParam.GetSignature: string;
begin
Result := 'function cfGetSysParam(ParamName: String): string;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
procedure TCallMtd.ExecuteFunction(aParams: TraParamList);
var
Param: variant;
MtdName:string;
Obj:TObject;
_Result: variant;
begin
GetParamValue(0, Obj);
GetParamValue(1, MtdName);
MtdName:=Uppercase(MtdName);
GetParamValue(2, Param);
_Result:=CallMethod(obj,MtdName,Param,unassigned,u nassigned,unassigned,unassigned);
SetParamValue(3, _Result);
end;
{------------------------------------------------------------------------------}
class function TCallMtd.GetSignature: string;
begin
Result := 'function CallMtd(Obj:TObject;MethodName:string;Parameter:va riant): variant;';
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
procedure TcfValues.ExecuteFunction(aParams: TraParamList);
var
_Result: String;
Index : Integer;
begin
GetParamValue(0,Index);
_Result:=Values[Index];
SetParamValue(1, _Result);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TcfValues.GetSignature: string;
begin
result := 'Function cfValues(Index:Integer) : String;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
procedure TDValues.ExecuteFunction(aParams: TraParamList);
var
_Result: String;
Index : Integer;
begin
GetParamValue(0,Index);
_Result := '';
if Index < DValues.Count then
_Result:=DValues[Index];
SetParamValue(1, _Result);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TDValues.GetSignature: string;
begin
result := 'Function DValues(Index:Integer) : String;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
procedure TcfPutComaBetNumber.ExecuteFunction(aParams: TraParamList);
var
_Result,TmpStr: String;
begin
GetParamValue(0,TmpStr);
_Result:= PutComaBetNumber(TmpStr);
SetParamValue(1, _Result);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TcfPutComaBetNumber.GetSignature: string;
begin
result := 'Function cfPutComaBetNumber(TmpStr:String) : String;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
procedure TcfCalculateNumber.ExecuteFunction(aParams: TraParamList);
var
Datep,DateCur:String;
_Result:Integer;
begin
GetParamValue(0,Datep);
GetParamValue(1,DateCur);
_Result:= CalculateNumber(Datep,DateCur);
SetParamValue(2,_Result);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TcfCalculateNumber.GetSignature: string;
begin
result :='Function cfCalculateNumber(Datep,DateCur:string):Integer;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
procedure TDgt2Farsi.ExecuteFunction(aParams: TraParamList);
var
Number:double;
_Result:string;
begin
GetParamValue(0,Number);
ConvertNumberToChar(number,_Result);
SetParamValue(1,_Result);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TDgt2Farsi.GetSignature: string;
begin
result:='Function Dgt2Farsi(Number:Double):string;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
procedure TFarsiDate.ExecuteFunction(aParams: TraParamList);
var
_Result:string;
begin
_Result:=GetServerDate;
SetParamValue(0,_Result);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TFarsiDate.GetSignature: string;
begin
result :='Function FarsiDate:String;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
procedure TChr.ExecuteFunction(aParams: TraParamList);
var
AsciiCode:integer;
_Result:char;
begin
GetParamValue(0,AsciiCode);
_Result:=chr(AsciiCode);
SetParamValue(1,_Result);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TChr.GetSignature: string;
begin
result :='Function chr(AsciiCode:integer):char;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
procedure TSh2M.ExecuteFunction(aParams: TraParamList);
var
sh,m:t_date;
begin
GetParamValue(0,sh.y);
GetParamValue(1,sh.m);
GetParamValue(2,sh.d);
shtom(sh,m);
SetParamValue(3,m.y);
SetParamValue(4,m.m);
SetParamValue(5,m.d);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TSh2M.GetSignature: string;
begin
result :='Procedure Sh2M(sh_y,sh_m,sh_d:integer;var m_y,m_m,m_d:integer);';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
procedure TM2Sh.ExecuteFunction(aParams: TraParamList);
var
sh,m:t_date;
begin
GetParamValue(0,m.y);
GetParamValue(1,m.m);
GetParamValue(2,m.d);
mtosh(m,sh);
SetParamValue(3,sh.y);
SetParamValue(4,sh.m);
SetParamValue(5,sh.d);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TM2Sh.GetSignature: string;
begin
result :='Procedure M2Sh(m_y,m_m,m_d:integer;var sh_y,sh_m,sh_d:integer);';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
{ TMnt2Hour }
procedure TMnt2Hour.ExecuteFunction(aParams: TraParamList);
var
Minute:Integer;
_Result:string;
begin
GetParamValue(0,Minute);
_Result:=Mnt2Hour(Minute);
SetParamValue(1,_Result);
end;{ procedure ExecuteFunction() }
{------------------------------------------------------------------------------}
{ TcfValues.GetSignature}
class function TMnt2Hour.GetSignature: string;
begin
result:='Function Mnt2Hour(Minute:Integer):string;';
end;{ class function GetSignature() }
{------------------------------------------------------------------------------}
Initialization
raRegisterFunction('GetComponent', TGetComponent);
raRegisterFunction('cfGetSysParam', TGetSysParam);
raRegisterFunction('CallMtd', TCallMtd);
raRegisterFunction('cfValues', TcfValues);
raRegisterFunction('DValues', TDValues);
raRegisterFunction('cfPutComaBetNumber', TcfPutComaBetNumber);
raRegisterFunction('cfCalculateNumber', TcfCalculateNumber);
raRegisterFunction('FarsiDate', TFarsiDate);
raRegisterFunction('chr', TChr);
raRegisterFunction('Dgt2Farsi', TDgt2Farsi);
raRegisterFunction('Sh2M', TSh2M);
raRegisterFunction('M2Sh', TM2Sh);
raRegisterFunction('Mnt2Hour', TMnt2Hour);
end.
کدهای خودتون رو بین تگهای Code و /code قرار دهید(ذوالقدر)
با سلام
آقای یعقوبی عزیز
لطفاً خلاصه تر بفرمائید این همه کد برای نشان دادن فارسی در گزارش سازی مانند Builder
اگر لطف کنید و خلاصه کد( فقط برای استفاده تاریخ شمسی در گزارش ساز بیلدر ) را بنویسید یا راهنمایی کنید ممنون می شم
لازم به ذکر است که در grid ها خیلی خوب جواب می دهد ومشکل ندارد و من مکاتبه ای که با آقای فراهانی نویسنده محترم داشتم ایشان اذعان داشتن که از فیلد محاسباتی استفاده کنیم که این هم فکر نکنم راه درستی باشد حال شما توضیح کامل دهید درباره یونیتی که گذاشتین.
باتشکر
داود
یونیت زیر را برداشته و آن را در برنامه خود فقط Uses کنید.
برنامه را اجرا کرده و Designer گزارش ساز را بیاورید (در حالت Design Time کار نخواهد کرد)
به عکس زیر نیز توجه کنید
یونیت را بردارید :
اتفاقا موقع طرح سوالم اینکار را کرده بودم . داخل تابع این فرم رو show کردم و راهی نبود جز اینکه در رویداد دکمه تایید (داخل این فرم) مقدار تاریخ رو به فانکشن برگردونم و لی خارج از تابع که نمی شه مقداری رو به تابع برگردوند و از طرفی داخل تابع هم که نمی شه بعد از show کردن فرم مقدار تاریخ رو دریافت کرد چون دستورات بعد از show هم بلا فاصله بعداز show اجرا می شوند ودر اینصورت هر بار مقدار تاریخ مرحله قبل رو خواهیم دید واین کار رو خراب می کنهنقل قول:
نوشته شده توسط B_YAGHOBI
نمی دونم تونستم مطلب رو درست بگم یا نه
شما فانکشن خود را بصورت زیر بنویسید :
Function ShowCalendar(Var SelectDate : String):TModalResult;
با سلام
آقای یعقوبی عزیز
من یونیت شما را برداشتم و در برنامه کپی کردم و در برنامه use کردم
حال اینکه در گزارش ساز (من report builder 10 ) کار میکنم در کجا و چگونه به قسمت cal اضافه شود.
باتشکر
عکس پیوست را ملاحضه کردم ولی نفهمیدم چطور در قسمت language چگونه mylabfunction را بسازم.
داود
این mylabfunction بصورت اتوماتیک اضافه میشود
اگر یونیت فوق را در برنامه خود Uses کنید.
من داخل این تابع پیشنهادی شما ، فرم حاوی component شما رو show کردم . بعدش چکار کنم؟نقل قول:
نوشته شده توسط B_YAGHOBI
می تونید کمی بیشتر توضیح بدید؟
دوست عزیز در مورد تقویم یک مثال برات گذاشتم :
با سلام
لطفاً روش use را بیان نمائید .شاید من اشتباهی use انجام می دهم
ضمناً نام یونیت با نامی که در عکس پیوست به گزارش ساز اضافه شده است یکی نیست.
با تشکر
داود
دوست عزیز این برنامه را بردارید
یک مثال درباره اضافه کردن کلاس به کلاسهای ReportBuilder میباشد.
با سلام میخاستم بدونم این کامپوننت تو دلفی 2006 هم کار میکنه ؟
چطوری نصب میشه ؟
چطور میشه گفت که برو به تاریخ مثلا 25 مهرماه 1386 ؟