الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في تنسيق عرض الأرقام

بدأه okiskar في 23 مايو 2009 · 10 رد · 1,116 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الأعضاء السادة المشرفين

بعد السلام عليكم ورحمه الله وبركاته

سؤال في كيفية تنسيق الأرقام في التكست بوكس

هل توجد دالة أو كود يجعل الرقم الصحيح الذي يظهر في التكست بوكس بجوارة علامة عشرية وصفرين

بمعنى لو الرقم على سبيل المثال 15 فيظهر في التكست بوكس 15.00 وذلك للناحية الجمالية للفورم

حيث أنه يوجد عدة تكسات أسفل بعض كل منها تظهر به عمليات حسابية ناتجة من تكسات أخرى

فمنها من تظهر الأرقام به برقم عشري والأخرى بأرقام صحيحة والمطلوب أن تظهر كالتالي :-

66.55

24.23

26.00

15.19

22.00

وللجميع منى الشكر والتقدير

مع خالص تحياتي

شادي المصري

#2

استعمل هذا الكود:

Text1.Text = Format(Text1.Text, "0.00")

يمكنك أن تضعه في حدث LostFocus مثلاً.

بالتوفيق

هذه الجملة خاطئة  :wacko: 


#3

شكراً يا أخي جزاك الله كل خير

ولكن يا أخي ما أريده أن يكون الكود لأغلب التكسات وهاهو الكود الذي أحاول فيه ولم أصل إلى نتيجة :

Public Sub formatTextBoxes(Frame1, Frame4 As Form)
    Dim z As Control
    For Each z In frm
        If TypeOf z Is TextBox Then z.Text = Format(z.Text, "##.00")
    Next z
End Sub
وذلك في الجينرال
وفي حدث الفرم لود
Call formatTextBoxes(Frame2, Frame4)

أشكرك مرة أخرى ولك مني خالص التحيات

تم تعديل هذه المشاركة بواسطة okiskar في 23 مايو 2009 في 07:55

#4

هذا السطر غريب:

Public Sub formatTextBoxes(Frame1, Frame4 As Form)

أولاً، المتغير Frame1 نوعه Variant، والمتغير Frame4 نوعه Form، أما المتغير الذي استعملته أنت في هذا السطر:

For Each z In frm

فهو المتغير frm ، فمن أين أتيت به؟

الكود غريب وغير منظم، أو أنك لم تضعه كاملاً.

أنا أفترض أنه يجب أن يكون على الشكل التالي:

Public Sub formatTextBoxes(frm As Form)

	Dim z As Control

	For Each z In frm
		If TypeOf z Is TextBox Then z.Text = Format(z.Text, "##.00")
	Next z

End Sub

إذا لم يكن هكذا فأرجو التوضيح أكثر. فالكود الذي وضعتَه غريب نوعاً ما.

بالتوفيق

هذه الجملة خاطئة  :wacko: 


#5

شكراً أستاذ / عبود

فعلاً الكود كما كتبت سيادتك ولكني حاولت أن أقوم بعمل الكود ليشمل عدد 2 فرام فقط من الفورم حيث أن به عدد 4 فرام منهم 2 لترصيد الحسابات التي في الأخرين ولكن لم ينفع الأمر معي ولهذا قمت بعرض الموضوع ، حيث أنه وفقاً للكود الذي كتبته سيادتك فإن كل التكسات التي في الفورم يتم إضافة 0.00 لها وهذا غير مرغوب فيه والمطلوب أن يتم في عدد 2 فارم من الفورم والأخرين يبقوا كما هم .

شكراً أستاذ / عبود وأنا أقوم بالمحاولات .

وبالمناسبة يا أخي تواجهنى مشكلة أخرى وهو أن المشروع به عدة نوافذ ( form ) منهم واحد متصل بقاعدة بيانات وعند الدخول فيه من الفورم الرئيسي يتم فتح قاعدة البيانات وعند العودة للفورم الرئيسي المفروض أن قاعدة البيانات يتم غلقها خاصة واني كتبت الآتي ( d1.close , unload me , form1.show ) فهل يوجد حل لهذا دون إرفاق المشروع .

ولسيادتك جزيل الشكر والأمتنان .

أخيك في الله

شادي المصري

#6

حسناً، ما رأيك بهذا:

Private Sub FormatTextBoxes(FirstFrame As Frame, SecondFrame As Frame)

	Dim txtAppliedOn As Control

	For Each txtAppliedOn In Form1
		If TypeOf txtAppliedOn Is TextBox Then
			If txtAppliedOn.Container = FirstFrame Or txtAppliedOn.Container = SecondFrame Then txtAppliedOn.Text = Format$(txtAppliedOn.Text, "##.00")
		End If
	Next

End Sub

Private Sub Form_Load()

	Call FormatTextBoxes(Frame1, Frame2)

End Sub

أرجو أن يكون هذا ما تريده.

بالنسبة للسؤال الثاني أرجو وضع كود تظن أن الخطأ يوجد فيه، فلا يمكن حل مثل هذه المشكلة نظرياً.

بالتوفيق

تم تعديل هذه المشاركة بواسطة Abboodd في 23 مايو 2009 في 20:25

هذه الجملة خاطئة  :wacko: 


#7

شكراً يا أخي على تفاعل حضرتك مع الموضوع

معلشي تعبت حضرتك

الكود الذي كتبته حضرتك لم يسفر عن شيء

وها هي الأكواد التي كتبتها أنا

في الأصل هذا الكود كان للكلير (المسح) وقمت بتعديله لعمل الفورمات


في الجينرال
Public Sub formatTextBoxes(Frm As Form)
    Dim z As Control
    For Each z In Frm
        If TypeOf z Is TextBox Then z.Text = Format(z.Text, "##.00")
    Next z
End Sub


في كوماند الحدث
Call formatTextBoxes(Form2)
أريد أن يعمل هذا الكود مع عدد 2 فرام وليس الفورم كله 

===========================================
بالنسبة لكود غلق قاعدة البيانات
قمت بعمل هذا الكود والذي قام بعمل اللازم
Private Sub Form_Unload(Cancel As Integer)
 If cnn.State = adStateOpen Then cnn.Close
Unload Me
Form1.Show

End Sub


والقاعدة تعمل 100% الإغلاق عند الخروج من الفورم والرجوع إلى الفورم الرئيسي

مع جزيل شكري وأمتناني

شادي المصري

تم تعديل هذه المشاركة بواسطة okiskar في 24 مايو 2009 في 17:20

#8

حسناً، أرفقت مثالاً يطبق هذه العملية، طبعاً هذه العملية ستتم في الحدث Form_Load فقط، يجب أن تضعه في الأحداث الأخرى أيضاً مثل Text1_LostFocus وغيره.

وما شاء الله، أردت أن أرد على مشكلة قاعدة البيانات، فوجدتها تغيرت، بدأت أشك في عقلي، لكن في النهاية اكتشفت أنك قمت بتعديله :D

FormatTextBoxes.rar

هذه الجملة خاطئة  :wacko: 


#9

جزاك الله كل خير أخي عبود وجعلك عوناً للجميع

جاري تجربة المثال والرد إن شاء الله

توجد مشاركة لي جديدة بالسؤال عن كود البحث في قاعدة البيانات دون التقيد بحقل معين

أرجو من سيادتك المساعدة فيه والرد في المشاركة المذكورة

وسوف أحاول في إيجاد الكود المذكور بالنسبة للبحث

شكراً يا أخي على اهتمام سيادتك بكافه الأعضاء

مع خالص تحياتي

شادي المصري

#10

هايل هايل هايل والله

المثال فعلاً جميل وقام بالمطلوب

واتسائل لماذا لم يعمل معي هذا الكود من قبل ؟

يجوز لعدم التركيز

مشكور جداً جداً ياأخي

شادي المصري

#11

أخي عبود جزاك الله خيراً

تم استخدام الكود بسلاسة وذلك بعد التعديل ووضع الكود

Call FormatTextBoxes(Frame1, Frame2)

في كوماند الحدث

سيادتك وضعته في الفورم لود لأستخدام سيادتك الأرقام في خاصية التكست

كما قمت بالتعديل ليشمل فرام واحد بدلاً من أثنين

والتعديل بالمرفق

وشكراً جزيلاً يا أخي

FormatTextBoxes.rar

مواضيع مشابهة