1 ضمیمه
خطای is not a valid floating point value در Fast Report
با سلام دوستان گرامی
من تا زمانیکه از ویندوز 7 استفاده می کردم گزارشات بدون هیچ اشکالی اجرا می شود و ولی از زمانیکه ویندوز 8.1 استفاده کردم متاسفانه هنگام نمایش با خطا is not a valid floating point value رخ می دهد.
خطا زمانی رفع می شود که در تنظیمات کنترل پنل علامت اعشار"." را "/" تغییر داده شود. به نظر روش منطقی نیست.
من Delphi XE6 و Fast Report 5.3.16 استفاده می کنم.
نقل قول: خطای is not a valid floating point value در Fast Report
سلام.
به نسخه ربطی نداره، به پیش فرض مرتبطه، برای همین توصیه می کنم در برنامه این تنظیمات چک شده و بر طبق اون تبدیلات رشته به عدد انجام بشه.
یا این که هنگام ورود به برنامه برای یوزر این تنظیمات رو انجام بدید.
1 ضمیمه
نقل قول: خطای is not a valid floating point value در Fast Report
با سلام خدمت یوسف زالی
این خطا ارتباط به تبدیل رشته به عدد ندارد در واقع در زمان طراحی گزارش پیش فرض ویندوزCustomize Format\Decimal Symbol '/' باشد و در رایانه دیگر پیش فرض ویندوز '.' رخ می دهد.
http://stackoverflow.com/questions/2...rror-in-delphi
برای اینکه متوجه مشکل شوید فایل 1 , 2 را با Note Pad باز کنی متوجه منظورم می شوید .
ضمیمه 138976
1 ضمیمه
نقل قول: خطای is not a valid floating point value در Fast Report
متاسفانه در ویندوز 8 به بالا زمانیکه شما تنظیمات را Persian انتخاب می کنید پیش فرض اعشاری را '/' تبدیل می کند با به وجود آمدن مشکلات در در تعدادی از برنامه ازجمله Excel کامپوننت Fast Report می شود در حالیکه مفهوم '/' آن به '.' متفاوت می باشد . برنامه ها / را به عنوان یک عملگرا برداشت می کند.
ساده ترین را در هنگام طراجی گزارش بررسی کنیم که در کنترل پانل Customize Format\Decimal Symbol حتماً '.' باشد و در صورتی که در هنگام طراحی علامت اعشاری در ویندوز '/' بوده است. ابتدا تنظیم کنترل پانل '/' قرار می دهیم پس باز کردن فایل گزارش کنترل پانل را به '.' تغییر و مجددا ذخیره می کنیم
نقل قول: خطای is not a valid floating point value در Fast Report
سلام
به محض تغییر در تنظیم کنترل پنل باوجودی که قبلش گزارش را باز کردم باز هم پیام خطا دیده میشه و اجازه ذخیره شدن نمیده :گریه:
نقل قول: خطای is not a valid floating point value در Fast Report
با سلام
من به ترتیب زیر انجام داده ام
1- تنظیمات کنترل پانل را "/" قرار دادم.
2- فایل گزارش Fr3 را باز کردم
3- تنظیمات کنترل پانل را "." تغییر دادم.
4- برای اینکه کلید ذخیره در دسترس قرارگیرد اندازه یکی از Memo را تغییر دادم و گزارش را ذخیره کردم
روش بالا در ویندوز 10 و 7 تت کردم مشکلی پیش نیامد.
نقل قول: خطای is not a valid floating point value در Fast Report
سلام و تشکر
بمحض تغییر تنظیمات کنترل پانل از / به . فست شروع میکنه به نمایش پیام خطا و اصلا مهلت نمیده که بخوام اندازه memo را تغییر بدم:متفکر:
نقل قول: خطای is not a valid floating point value در Fast Report
ببخشید دوستان عزیز
این خطا مربوط به هیچ کدوم از موارد بالا نمیشه
این پیام مربوط به عدم سازگاری نسخه های 32 و 64 بیتی ویندوز با کامپوننت هستش
من یک گزارش در ویندوز 64 بیتی با نسخه 64 کامپایل کردم و هنگام اجرا در نسخه 32 بیتی این مشکل بوجود اومد
جالبه که دوباره تو نسخه 64 بیتی هم مجدد باز نشد
بعد از کلی کنکاش فهمیدم اون نسخه ای که با خود دلفی نصب میشه این مشکل رو داره
و وقتی نسخه کامل فست رو نصب کردم این مشکل حل شد
یا حق
نقل قول: خطای is not a valid floating point value در Fast Report
من همین مشکل رو داشتم
فایل طراحی رو با notepad باز کن و تمام / رو با . جایگزین کن
فقط دقت کن انتهای تگهای xml تغییر نکنه
نقل قول: خطای is not a valid floating point value در Fast Report
مشکل مربوط به تابع تبدیل رشته به اعداد اعشاری در فست ریپورته. شما میتونید با روش زیر مشکل رو حل کنید
1- frxutils.pas این فایل رو از پوشه fastreport باز کنید
2- اینو پیدا کنید : :function frxStrToFloat(s: String): Extended
3- حالا [',', '.'] به این [',', '.','/'] تبدیل کنید
حالا با خیال راحت تو هر ویندوزی استفاده کنید
msalahia@yahoo.com
نقل قول: خطای is not a valid floating point value در Fast Report
این مشکلات باید توسط متغیر عمومی FormatSettings حل بشه
در شروع برنامه فرمتهای دلخواه برای اعداد اعشاری و تاریخ و ... توسط این رکورد تعیین کنید تا در تمام سطح برنامه از همین فرمتها استفاده بشه و وابستگی برنامه به فرمتهای پیشفرض ویندوز از بین بره
نقل قول: خطای is not a valid floating point value در Fast Report
ممنونم از راهنمایی شما دوستان توجه داشته باشند که تو پروژه های بزرگ که یه حجمی گزارش طراحی شده و یه حجمی هم یوزر خودش گزارش طراحی کرده نمیشه بهش گفت
رجیون رو بذار روی '/' بعد گزارش رو باز کن بعد دوباره رجیون رو بذار روی '.' ما هم این مشکل رو داشتیم چون تو پروژه ما تغیین جدا کننده اعشار دست خود کاربره decimal symbol ...
ریطی هم به کامپوننت نداره فقط در سورس تولید کننده کامپوننت '/'وجود نداره ... که با راهنمایی خوب ایشون حل شد
function frxStrToFloat(s: String): Extended;
var
i: Integer;
begin
for i := 1 to Length(s) do
{$IFDEF Delphi12}
if CharInSet(s[i], [',', '.','/']) then
{$ELSE}
if s[i] in [',', '.','/'] then
{$ENDIF}
{$IFDEF Delphi16}
s[i] := FormatSettings.DecimalSeparator;
{$ELSE}
s[i] := DecimalSeparator;
{$ENDIF}
while Pos(' ', s) <> 0 do
Delete(s, Pos(' ', s), 1);
Result := StrToFloat(s);
end;
نقل قول: خطای is not a valid floating point value در Fast Report
نقل قول:
نوشته شده توسط
benyaminrahimi
ممنونم از راهنمایی شما دوستان توجه داشته باشند که تو پروژه های بزرگ که یه حجمی گزارش طراحی شده و یه حجمی هم یوزر خودش گزارش طراحی کرده نمیشه بهش گفت
رجیون رو بذار روی '/' بعد گزارش رو باز کن بعد دوباره رجیون رو بذار روی '.' ما هم این مشکل رو داشتیم چون تو پروژه ما تغیین جدا کننده اعشار دست خود کاربره decimal symbol ...
ریطی هم به کامپوننت نداره فقط در سورس تولید کننده کامپوننت '/'وجود نداره ... که با راهنمایی خوب ایشون حل شد
function frxStrToFloat(s: String): Extended;
var
i: Integer;
begin
for i := 1 to Length(s) do
{$IFDEF Delphi12}
if CharInSet(s[i], [',', '.','/']) then
{$ELSE}
if s[i] in [',', '.','/'] then
{$ENDIF}
{$IFDEF Delphi16}
s[i] := FormatSettings.DecimalSeparator;
{$ELSE}
s[i] := DecimalSeparator;
{$ENDIF}
while Pos(' ', s) <> 0 do
Delete(s, Pos(' ', s), 1);
Result := StrToFloat(s);
end;
بسیار عالی بود
مشکل از اساس حل شد
نقل قول: خطای is not a valid floating point value در Fast Report
نقل قول:
نوشته شده توسط
MASAELI
بسیار عالی بود
مشکل از اساس حل شد
مشکل از اساس حل شد، اما اساسی حل نشده.
همانطور که آقای مهری گفتند، یک متغیر Global در برنامه های دلفی هست که فرمت ها رو تعیین میکنه بنام FormatSettings .
این متغیر فیلدهایی داره که برای تعیین فرمت موارد مختلفی چون تاریخ، واحد پول و ... داره.
فقط کافیه در رویدادی چون OnCreate فرم اصلی این کد رو برای تعیین فرمت ممیز شناور بنویسید:
FormatSettings.DecimalSeparator:='.';
البته شما بجای اون نقطه هرچیز دیگه ای هم میتونید بزارید. با این روش در تمام برنامه که شامل گزارش ها هم میشه، ممیز بصورت نقطه شناخته خواهد شد.
موفق باشیم