PDA

View Full Version : سوال: انتقال یک رکورد به صدر جدول



farzadkamali
شنبه 25 آذر 1391, 09:30 صبح
با سلام خدمت دوستان

آیا این امکان وجود داره که که یک رکورد رو پس از ثبت به اول جدول انتقال داد؟

یا اینکه از همون اول در سدر جدول ثبت بشه؟

کلاً جدول من، یه جدول لیست نوبته. به این صورت که اعضاء هر بار وامشون تسویه می شه یا جدید میان به ته این جدول اضافه میشه. و همین طور وام به افرادی تعلق میگیره که اول جدول قرار دارد.(یعنی به نفر شماره1). سپس اون نفر از جدول پاک میشه .

حالا مشکل اینجاست اگه اشتباهاً کاربر به یه نفر وام داد (مثلاً نفر شماره 9) که اوایل لیست بوده و بخواد اون وام رو پاک کنه. وام پاک میشه. ولی شخص دوباره به آخر جدول میره و حقش ضایع میشه. یعنی میشه شماره آخر. (مثلاً شماره 100).


البته این مشکل خیلی کم پیش میاد ولی خب یه ایراده دیگه.

البته جدول من یه ستون داره به نام ردیف که شماره نوبت توشه (از 1 الی...). و این ستون رو با کد نویسی در onDrawColumnCells شی Dbgrid ایجاد کردم نه مستقیماً توی جدول. اینم کدش:


begin
if DataSource1.DataSet.RecNo > 0 then
begin
if Column.Title.Caption = 'ردیف' then
DBGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top, IntToStr(DataSource1.DataSet.RecNo));

end;

یوسف زالی
شنبه 25 آذر 1391, 12:00 عصر
سلام.
این سوال مربوط به این بخش نیست. اما
برای تعیین اولویت همیشه "به صورت یک قاعده" باید یک ستون دیگه داشته باشیم.
در کد سلکت مربوطه هم بر اساس شرایط مرتب سازی صورت می گیره.
هرگز سعی نکنید مرتب سازی رو در UI انجام بدید.
در اس کیو ال مربوطه دستتون به راحتی برای هر سورتی بازه.

farzadkamali
شنبه 25 آذر 1391, 13:17 عصر
سلام.
این سوال مربوط به این بخش نیست. اما
برای تعیین اولویت همیشه "به صورت یک قاعده" باید یک ستون دیگه داشته باشیم.
در کد سلکت مربوطه هم بر اساس شرایط مرتب سازی صورت می گیره.
هرگز سعی نکنید مرتب سازی رو در UI انجام بدید.
در اس کیو ال مربوطه دستتون به راحتی برای هر سورتی بازه.

ستونی که به نام ردیف ایجاد کردم فقط برای اینه که رکوردها شماره گذاری شده باشه. همین.

با یه ستون دیگه چه طوری میشه مرتب سازی کرد؟ ( من از پایگاه اکسس استفاده میکنم).

یوسف زالی
شنبه 25 آذر 1391, 13:54 عصر
ستون ردیف اشتباهه. هرگز برای ردیف یک ستون نگیرید.
با یک فیلد calculated ردیف بدون خطا در دسترس هست.
برای مرتب سازی از گزینه Order By در آخر سلکت بر اساس نوع مرتب سازیتون استفاده کنید.
برای اطلاع بیشتر از ساختار این گزینه در تالار اس کیو ال جستجو کنید.
اون توصیه در مورد فیلد هم برای اولویت بندی هست. اگر صرفا برای مرتب سازی لازم دارید اون فیلد رو هم اضافه نکنید.
مثلا مواقعی هست که صرف نظر از جایی که ردیف داره نمایش داده می شه لازمه که اولویت بندی جداگانه ای اعمال بشه. و اون اولویت ذخیره هم بشه. مثل زمان بندی کارها. برای این مورد فکر می کنم فیلدی اضافه نکنید.
موفق باشید.