المشاركات : 429
المواضيع 28
:
: 0
الإنتساب : May 2008
إذا أردت أن أعتمد عددين بعد الفاصلة للــ Edt مثلا:
كود :
Edt.text:=formatfloat('0.00',strtofloat(Edt.text));
لديا جدول به حقل عددي يعرض في DBgrid ، يأخذ الحقل العددي قيمته من Edt ، بعددين بعد الفاصلة ، انطلاقا من الكود المذكور .
السؤال:
إذا كان الناتج مثلا 3.123 فإنه سيكون 3.12 ،أما إذا كان 3.10 فإنه يعرض في DBgrid على شكل 3.1
- كيف أجعله يعرض 3.10 ؟
-
كيف ( أجمع الأعداد ) يعني أفرق بين كل 3 أرقام بفراغ مثلا: 1325874.12 يكون : 847.12 325 1
رغم أنني اطلعت على هذه المشاركة إلا أني لم أستفد منها في حل الإشكال.
المشاركات : 60
المواضيع 18
:
: 0
الإنتساب : Nov 2008
في البداية السلام عليكم
بالنسبة لاستعمال الدالة FormatFloat
يكون المثال الأول كالاتي
كود :
Edit2.Text:= FormatFloat('0.00', StrToFloat(Edit1.Text));
و المثال الثاني
كود :
Edit2.Text:= FormatFloat('### ### ###.00', StrToFloat(Edit1.Text));
لمزيد من الأمثلة لكيفية استعمالها, يمكن زيارة هذا الرابط
كود :
hxxp://www.delphibasics.co.uk/RTL.asp?Name=FormatFloat
بالنسبة لك تتعامل مع DBGrid لذلك وجب عليك التأكد من أن الحقل الموجود في الجدول ذو نوعية عددي و منه تحدد عدد الأرقام بعد الفاصل
و السلام.
المشاركات : 429
المواضيع 28
:
: 0
الإنتساب : May 2008
شكرا على المســاعدة .
فيما يخص السؤال الأول :
إقتباس :لذلك وجب عليك التأكد من أن الحقل الموجود في الجدول ذو نوعية عددي و منه تحدد عدد الأرقام بعد الفاصل
كيف ذلك
؟ لأن هذا هو المطلوب أخي ، نحدد عدد الأرقام بعد الفاصلة في Edt مثلا ، بواسطة الدالة FormatFloat هذا معلوم و تم طرحه ، و لكن عند تخزين القيمة 3.10 بالجدول تعرض 3.1 بــ DBgrid
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
السلام عليكم
في الحقيقة لم أفهم المشكلة بالضبط
هذه بعض الملاحظات التي قد تفيدك:
- كما ذكر أخي MjIrIm يمكن كتابةرمز فاصل الآلاف بشكل أفضل:
كود :
Edit2.Text:= FormatFloat('#,##.0', StrToFloat(Edit1.Text));
وهكذا سيظهر بشكل عاد مهما كان طول العدد، ولتفادي مشكلة رمز فاصلا الآلاف يمكن تحديده في البداية:
كود :
ThousandSeparator := ' ';
- نصيحتي حاول استعمال DecimalSeparator بشكل ديناميكي لأن الرمز قد يتغير من مستعمل لآخر، أكتب شيء مثل:
كود :
Edit2.Text := '3'+DecimalSeparator+'1';
-أيضا راجع أمثلة Delphi:
كود :
Format string- 1234 -1234 0.5 0
1234 -1234 0.5 0
0 1234 -1234 1 0
0.00 1234.00 -1234.00 0.50 0.00
#.## 1234 -1234 .5
#,##0.00 1,234.00 -1,234.00 0.50 0.00
#,##0.00;(#,##0.00) 1,234.00 (1,234.00) 0.50 0.00
#,##0.00;;Zero 1,234.00 -1,234.00 0.50 Zero
0.000E+00 1.234E+03 -1.234E+03 5.000E-01 0.000E+00
#.###E-0 1.234E3 -1.234E3 5E-1 0E0
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
المشاركات : 429
المواضيع 28
:
: 0
الإنتساب : May 2008
الاشكال يتمثل في :
جدول به حقل عددي ، نريد تخزين قيمة Edt بهذا الحقل على شكل عددين بعد الفاصلة+تفريق الأعداد بفراغ.
الغاية :
1- لتظهر بشكل مقروء و متعارف عليه1، في DbGrid
2-الطباعة (ِQrDBtext مربوط بالحقل )
و لكن مثالا حول الدالة FormatFloat تقدمت به ، و المثال نفسه المطروح تقدمت به أنا أولا ، لكي لا يغوص الأصدقاء هنا و هناك دون أن أنتفع أنا صاحب السؤال.
- نستطيع أن نكتب عدد معين برقمين بعد الفاصلة في Edit مثلا(FormatFloat) ، كذلك نستطيع تخزين قيمة الــ Edit في جدول (في حقل معين) كما هي إذا كان نوع الحقل نصي .
لكن إذا كان النوع عددي (مثل الذي عندي _ و هو المطلوب) و كانت قيمة Edit أولا 12 مثلا ، فستصبح 12.00 ثم تخزن في الجدول ، و لن تبق 12.00 بل ستصبح 12 ، لأن الحقل عددي : 12=12.00 .
و لو كانت مثلا 12.1 ، فستصبح 12.10 ثم تخزن 12.1
كيف الحل (حفظ العدد برقمين بعد الفاصلة ) دون تغيير نوع الحقل (عددي) ؟
المشاركات : 429
المواضيع 28
:
: 0
الإنتساب : May 2008
يعني لا داعي لكل ما سبق من الكلام حول np و تعريف np ، لا شيء من هذا القبيل سيحل المشكل.
الحل : ببساطة : display format 00.00 للحقل اللعددي
هذا ينفع.
المشاركات : 19
المواضيع 10
:
: 0
الإنتساب : May 2008
السلام عليكم
تحية للجميع
لم تفصل في الامر اخي nabilkeb كيف تستعمل هذه display format 00.00
المشاركات : 48
المواضيع 13
:
: 0
الإنتساب : Aug 2011
السلام عليكم ورحمة الله تعالى وبركاته
اضغط على table1 بيمين الفأرة ثم بعذ ذلك الى editeur de champs
ثم بعد ذلك ادرج الحقول التابعة للجدول من قاعدة البيانات
وبعدها ضع المؤشر على الحقل العددي
بعدها الى خصائص الحقل في l'inspecteur d'objet
اذهب الى DisplayFormat
ضع هذا
وا
هذا لإظهار المبلغ كما طلبت في DBGrid وفي كل المكونات المتعلقة بقاعدة البيانات
وبالتوفيق
المشاركات : 136
المواضيع 20
:
: 0
الإنتساب : Feb 2008
إقتباس :2-الطباعة (ِQrDBtext مربوط بالحقل )
في الحدث من OnPrint اكتب الكود التالي
Value:=FormatFloat('0.00',StrToFloat(Value));