View Full Version : نوشتن کد در method در زمان runtime
rezaei
دوشنبه 30 مهر 1386, 17:17 عصر
چگونه می توان محتوی کد در method را در زمان runtimeتغییر داد
با تشکر
rezaTavak
سه شنبه 01 آبان 1386, 07:29 صبح
قاعدتا این کار در برنامه هایی که کمپایل می شوند ممکن نیست اما فاکس اسکریپتی است.
در زیانهای کمپایلی با استفاده از IF و select switch و... حالات مختلف را برنامه نویسی می کنند. در اینجا هم بهترین کار همین است دلیل هم معلوم است اشکال زدایی ساده تر.
اما فاکس پرو با & می تواند ماکرو یا اسکریپی را اجرا کند. به مثال زیر دقت کنید:
lcCommand = "dir"
&lcCommand
من همیشه در حالاتی که می خواهم کد نویسی کمتری داشته باشم اینکار را می کنم.
اما اگر بیشتر از یک خط بود در از فرمان DO و نام فایل prg استفاده میکنم.
توضیح کلی:
متدها بعد از ترجمه scx تمام متدهای موجود در هر Object در فیلد Objcode به صورت ترجمه شده به صورت fpx (p-CODE)در می آیند. که دیگر فاکس سراغ خود چیزی که نوشته اید نمی رود و سراغ p-code می رود. پس قاعدتا کاری که شما می کنید بسیار با استانداری که فاکس دنبال میکند متفاوت است.
پس if و مشابه آن را دنبال کنید.
rezaei
یک شنبه 06 آبان 1386, 09:03 صبح
با تشکر از توجه شما
با مثالی مشکل خود را شرح میدهم
فرض کنید در فرمی اجازه انتخاب فیلد های مختلف را به کاربر داده ایم سپس فیلدهای انتخاب شده را در گرید قرار می دهیم میخواهیم به کاربر این امکان را بدهیم که با کلیک بر روی هدر فیلد
در گرید ان ستون را مرتب(سورت) کندیا هرعمل دیگر با توجه به اینکه تعداد ستونها در زمان کد نویسی مشخص نیست در زمان اجرا می خواهم کد در متد کلیک نوشته شود
البته راهی مانند ایجاد کرید با ستونهای زیاد ونوشتن کد لازم ونهایتا invisibleکردن ستونها وجود دارد لطفا راهنمایی نمایید
rezaTavak
یک شنبه 06 آبان 1386, 11:55 صبح
در زمان اجرا فایل prg تولید کنید و آنرا با ماکرو اجرا کنید.
mehran_337
دوشنبه 07 آبان 1386, 08:07 صبح
البته آقای حسین زاده (بی نیاز) کلاس گرید ساخته اند که خودش این قابلیتها بلکه بیشتر هم داره . اونو دانلود کنید نیازی به کدنویسی هم نداره
این هم آدرسش :
http://www.binyazprograms.com/pdownloads.htm
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.