View Full Version : تعیین نوع فیلد برای ذخیره مقادیر داخل Maskedit
pop123
جمعه 04 شهریور 1390, 15:22 عصر
دوستان من جستجو کردن ولی مطلب جامعی پیدا نکردم
دیتابیس اس کیوال 2008 هست
می خوام موقعی که اعداد رو در edit وارد میکنم سه رقم سه رقم جدا کنم ولی در جدول به صورت معمولی یا به همون صورت ذخیره بشه ؟
از maskedit استفاده کردم ولی نمیدونم فیلدم رو از چه نوعی تعریف کنم تا بتونم ذخیره کنم ؟
البته تنطیماتی که بتونم در DBGIRID اعداد رو به صورت جدا شده نمایش بدم رو انجام دادم و لی میخوام هنگام وارد کردن هم به صورت جدا شده نمایش بدم
سعید صابری
جمعه 04 شهریور 1390, 20:58 عصر
میتونی کاراکتری باهاش اعداد جداسازی کردی(مثلا /) از داخل رشته پاک کنی
ReplaceStr(MaskEdit1.Text,'/','')
اگه از کامپوننتها مثل TMS هم استفاده کنی کارت راحت تره
pop123
جمعه 04 شهریور 1390, 21:06 عصر
منظورتون دقیقا کدوم کامپوننتشه ؟
سعید صابری
جمعه 04 شهریور 1390, 21:16 عصر
منظورتون دقیقا کدوم کامپوننتشه ؟
کامپوننت از این مجموعه Advedit
pop123
جمعه 04 شهریور 1390, 21:28 عصر
خوب کدوم قسمتشو تنظیم برای حل این مشکل؟لطفا کامل توضیح بدید ممنون میشم
سعید صابری
جمعه 04 شهریور 1390, 21:46 عصر
برای جدا کردن سه رقم سه رقم edittype اونو(advedit ) برابر etMoney قرار بده. موقعی که می خوای مقدار اون استفاده کنی اینجوری استفاده کنی مقدار به صورت عددی خواهد بود (بدون کاراکترهای جداسازی و ...).
ADOTable1.FieldByName('x').AsInteger:=AdvEdit1.Int Value
اگر بصورت AdvEdit1.Text استفاده کنی مقدارش برابر خواهد بود همون چیزی که در داخل اون نمایش داده میشه
pop123
جمعه 04 شهریور 1390, 22:03 عصر
پس منظورتون اینه که اگه باروش اول پیش بریم AdvEdit1.text اونوقت مقادیر رو درجدول به صورت جدا جدا ذخیره میکنه ؟
و اگه از روش دوم پیش بریم AdvEdit1.int مقادیر رو به صورت جدا جدا نشون میده ولی بدون کاراکتر جدا کننده در جدول ذخیره میکنه ؟
سعید صابری
جمعه 04 شهریور 1390, 22:09 عصر
بله درسته.
اگه داشته باشیم 5555
مقدارش در AdvEdit1.Text برابر با 5,555 است یعنی مقدارش از نوع رشته ای خواهد بود
با AdvEdit1.IntValue مقدارش 5555 است در واقع مقدار عددی بر می گردونه
pop123
جمعه 04 شهریور 1390, 22:11 عصر
ADOTable1.FieldByName('mablagh_kol').AsString := advedit1.IntValue; خوب به اینصورت که به کار میبرم پیغام خطا میده
سعید صابری
جمعه 04 شهریور 1390, 22:16 عصر
ADOTable1.FieldByName('mablagh_kol').AsString := advedit1.IntValue; خوب به اینصورت که به کار میبرم پیغام خطا میده
خوب مشخصه. شما مقدار نوع عدد صحیح میخواین بریزین توی یک فیلد از نوع رشته ای.
میتونی اینجوری بنویسیی
ADOTable1.FieldByName('x').AsString:=IntToStr(AdvE dit1.IntValue)
یا
ADOTable1.FieldByName('x').AsString:=AsVariant:=Ad vEdit1.IntValue;
pop123
جمعه 04 شهریور 1390, 22:21 عصر
وای .....حق باشماست اصلا حواسم نبود دارم چی کار میکنم از خستگی دیگه فکرم کار نمیکنه خیلی ممنون از کمکتون
اگه به مشکلی برخوردم میتونم مزاحمتون بشم ؟
سعید صابری
جمعه 04 شهریور 1390, 22:25 عصر
خوشحال میشم بتونم کمکتون کنم. در ضمن پست قبلیو اصلاح کردم
pop123
شنبه 05 شهریور 1390, 15:17 عصر
حالا یه اشکال دیگه هست وقتی تو فرم ویرایش می خوام اطلاعات رو ویرایش کنم...پیغام خطا میده
کدها به این صورت است
karchange.Parameters[5].Value:=variant(advedit3.IntValue);
advedit3.IntValue:=variant(AdoQuery2.FieldByName(' mablagh_kol').Text);
سعید صابری
شنبه 05 شهریور 1390, 20:46 عصر
اشکال از این خطه
advedit3.IntValue:=variant(AdoQuery2.FieldByName(' mablagh_kol').Text);
باید بنویسی
advedit3.text:=AdoQuery2.FieldByName(' mablagh_kol').Text;
pop123
شنبه 05 شهریور 1390, 20:59 عصر
مشکل از تعییین نوع فیلد توی فسمت پارامتر بود ...
راستی من یه استورد پروسیجر نوشتم برای پاک کردن رکورد در هنگام ویرایش ولی وقتی یک سطر رو انتخاب می کنم تمام سطر هایی که کد اشتراکشون یکی هست پاک میشه ......
سعید صابری
شنبه 05 شهریور 1390, 22:29 عصر
مشکل از تعییین نوع فیلد توی فسمت پارامتر بود ...
راستی من یه استورد پروسیجر نوشتم برای پاک کردن رکورد در هنگام ویرایش ولی وقتی یک سطر رو انتخاب می کنم تمام سطر هایی که کد اشتراکشون یکی هست پاک میشه ......
باید اول توی یک تاپیک جدید مطرح کنی.
rezaghahremani
یک شنبه 20 شهریور 1390, 11:24 صبح
اگر بخواهید درون ماسک ادیت این کار کنید سخت میشه زیرا باید کد بنویسید تا اولا سه رقم سه رقم جدا کنه ثانیا در هنگام ذخیره در جدول دوباره باید این ویلگول ها را بردارید تا جدول به نوع صحیح بودن اعداد ایراد نگیرد به نظر من میتوانید در جدول ado table کلیک کرده و از گزینه ها display format را انتخاب نمایید سپس مقدار 0;;,# را وارد کنید تا هنگام نمایش در جدول و در گرید به صورت سه رقم سه رقم نمایش میدهد
pop123
یک شنبه 20 شهریور 1390, 12:22 عصر
1. دوست عزیز ممنون که جواب دادید ولی من همه راه هارو تست کردم و بهترینش همون کامپوننت Tms هست...
2. بدون استفاده از کامپوننت بانوشتن یه کد کوچیک راهت میشه موقع وارد کردن ارقام جدا بشن . و در هنگام ذخبره سازی چدا کننده ها برداشته شن
3. این روش شما فقط برای مشاهده خوبه ولی قصد ما جداسازی در هنگام وارد کردن ارقام بود
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.