السلام عليكم ورحمة الله وبركاته .. اني مشترك جديد بهذا المنتدى الرائع .. ولي سؤال بخصوص مشروع قمته بعمله الا وهو نظام شركات الموبايل عملت باخذا البيانات الخاصة لكل عميل من الاسم والعنوان و...الخ وعملت ازرار منها الخزن والاستعراض و... الخ سؤالي هو كيف اضع صورة شخصية لكل عميل على الفورم والتي تشبه الهوية الشخصية لقد حيرني هذا الامر وياريت لو اجد عندكم الحل واريده بالتفصيل مع الكود الخاص بذلك واين اضع الكود وماهي الخصائص التي سوف اعملها علما اني استخدم النسخة التاسعة .. ولكم مني فائق الشكر والتقدير .. اخوكم زيك زاك
اضافة صورة شخصية لكل عميل بالفورم
السلام عليكم ورجمة الله وبركاته... واهلا وسهلا بك في المنتدى
اخي العزيز...
قبل الاجابة سافترض هنا بناءا على استفسارك ان لديك نموذج جاهز لاستعراض بيانات الجداول من اسماء وارقام...الخ ، وكل ما يلزمك هو آلية استعراض الصور، وصححني ان أخطأت
كل ما عليك فعله في كلتا الحالتين هو اضافة عنصر الصورة Image للنموذج، ثم اسناد قيمة لهذه الصورة كما هو الحال مع أي عنصر أخر.
لكن اسناد هذه القيمة يعتمد على كيفية تخزين البيانات
فاذا كان الجدول لديك يحتوي على حقل معرف للصورة يتضمن اسمها وموقعها فيجب وضع الية لتحديث قيمة Picture فيها ضمن اجراء الــ Refresh المستخدم، قد تكون بالصيغة التالية:
if file(MyField) Thisform.Image1.Picture=MyField Thisform.Image1.visible=.t. Else Thisform.Image1.Picture=' ' Or Thisform.Image1.visible=.f. Endif
اما اذا كانت نفس الصورة مخزنة في الجدول ضمن حقل Blob فبامكانك اسناد قيمة للــ PictureVal
Thisform.Image1.PictureVal=MyField
وباقي الامور الخاصة بالموضوع عادية جدا قد تقتصر على ادراج كود لاخفاء عنصر الصورة أو وضع صورة افتراضية اخرى، ان لم يتم العثور عليها أو ان كان حقل Blob فارغا
مع التحية
تم تعديل هذه المشاركة بواسطة a.jallad في 6 مايو 2009 في 00:51
أستغفر الله العظيم و أتوب إليه
اني حقيقة جدا اشكرا على الرد .. حققة اني رفع للك الشروع بتاعي على هذا الرابط وياريت انو ساعدني لان هذا مشروع تخرج لي ولك مني فائق الشكر والاحترام واليك الرابط
السلام عليكــم ورحمـة الله وبركاتــه ،،
الاخ العزيز زيك زاك،،
راجع البرنامج المرفق، ستلاحظ اني اضفت عليه اجرائين هما ImgSave و ImgRefresh
الاجراء الاول يستخدم لتخزين الصورة المختارة داخل مجلد خاص يدعى Img
وسيكون اسم الصورة عند التخزين هو نفس رقم البطاقة،
علما بأن الامتداد الافتراضي للصور المستخدمة هنا هو PNG وتستطيع تغييره طبعا حسب نوع الصور المنوي استخدامها
اما الاجراء الثاني فسيقوم بعمل تحديث للصورة عن تغيير السجل
راجع النموذج والكود، ولا تتردد في طرح أي استفسار
مع ملاحظة بأن الكود قد يكون بحاجة لبعض التنقيح
مع التحية
أستغفر الله العظيم و أتوب إليه
اني ما اعرف شون اشكرك حقيقة والكود شغال وعاشت ايدك الطيبة ويارب يخليك ذخرة وعبقرية دائمة بس حبيت طلب اخير واني حقيقة تعبتك وياي هو ان تشرحلي الكود واكون شاكر جميلك ليوم الدين .. ولي سؤال لماذا عندم اطلب اضافة عميل اخرى لاياخذ الصورة الا مرة واحدة ؟ولانو راح اناقش المشروع امام الاساتذة ولازم اعرف شنو هاي الكود اني عرفت البقية بس البقية الاخرى لم اعرف تفسيرها .. مع التحية والاعتزاز الغالي .. اخوك زيك زاك
تم تعديل هذه المشاركة بواسطة زيك زاك في 8 مايو 2009 في 01:04
السلام عليكم ورحمة الله وبركاته
الاخ العزيز زيك زيك
كما قلت لك سابقا قمنا باضافة اجرائين
ImgRefresh الاجراء الاول والخاص بتحديث الصور بداية قم بازالة السطر التالي فلا داعي له هنا حيث كانت النية ان ادمج اجرائي العرض والحفظ ثم تراجعت حتى لا تتعقد الامور Lparameter ChkToSaveOrShow جملة شرطية للعودة دون اكمال الاجراء في حالة كون قيمة البطاقة اصغر من 1 if m.missndn < 1 return .f. endif تعريف بعض المطلحات لاستخدامها ضمن الاجراء الحالي فقط local lcDir, lcName, lcFile تحديد ملف الصور الافتراضي lcDir=fullpath(curdir())+[IMG] تحديد اسم الملف بناءا على رقم البطاقة وامتداد الصورة lcName=alltrim(str(m.missndn)+[.PNG]) تحديد اسم الملف مع اضافة مساره كاملا lcFile=addbs(lcDir)+lcName FullPath >> تعطينا المسار الكامل للملف المطلوب CurDir >> تعطينا اسم المجلد الذي نعمل ضمنه والتالي للتأكد من وجود الملف او العودة ان لم يكن موجودا if !file(lcFile) return .f. endif واخيرا اظهار الصورة في حالة وجود الملف thisform.Img.picture=lcFile
ImgSave الاجراء الثاني والخاص بحفظ الصور يشبه الاجراء الاول في معظم خطواته وطبعا نضيف عليه عملية حذف الملف القديم ان وجد ثم نسخ الملف الجديد واعطاؤه اسم البطاقة التأكد من ملف الصورة قبل كل شيء if !file(thisform.img.picture) return .f. endif set safety off / On لابطال خاصية اظهار رسالة لتأكيد الحذف حذف الملف ان كان موجودا if file(lcFile) delete file(lcFile) endif نسخ الملف الجديد للمجلد الافتراضي copy file(thisform.img.picture) to [Img\]+lcName set safety on
ارجو ان يكون الشرح واضحا ولا تتردد في طرح أي سؤال
مع العلم بان الكود في كلا الاجرائين قد يحتاج لمزيد من الاحكام طبعا حسب الحاجة
قمت بتجربة اضافة اكثر من بطاقة مع الصور ولم الاحظ وجود اي مشكلة، فارجو ان توضح اكثر ان ظهر لديك مشاكل
مع التحية
تم تعديل هذه المشاركة بواسطة a.jallad في 10 مايو 2009 في 01:07
أستغفر الله العظيم و أتوب إليه
والله ما اعرف شون اشكرك .. وحقيقة اني اتغلبت على بعض المشاكل من خلال تحليلي للكود والكود اشتغل وعاشت ايدك على الشرح واني جدا ممنون منك وصار الكود يشتغل مية مية والله يوفقك للخدمة الاسلام والمسلمين .. اخوك زيك زاك