PDA

View Full Version : مشکل در شماره رکورد



دنی کوئیل
جمعه 16 دی 1384, 14:18 عصر
اکثریت شما دوستان می دانید که چگونه یک فیلد ردیف درست کنیم

حالا من کدش را میگم



procedure TFrmModiriatUser.ADOTable_ModiriatUserCalcFields(
DataSet: TDataSet);
begin
ADOTable_ModiriatUser.fieldbyname('Radif').AsInteg er:= ADOTable_ModiriatUser.RecNo;
end;


فقط یه مشکل اینجا است اولین رکورد را 1- می زنه دومیش را 2 می زنه
پس فقط مشکل اولین رکورد می باشد

که 1- میزنه

چکار کنم

mzjahromi
جمعه 16 دی 1384, 14:33 عصر
اکثریت شما دوستان می دانید که چگونه یک فیلد ردیف درست کنیم

حالا من کدش را میگم



procedure TFrmModiriatUser.ADOTable_ModiriatUserCalcFields(
DataSet: TDataSet);
begin
ADOTable_ModiriatUser.fieldbyname('Radif').AsInteg er:= ADOTable_ModiriatUser.RecNo;
end;


فقط یه مشکل اینجا است اولین رکورد را 1- می زنه دومیش را 2 می زنه
پس فقط مشکل اولین رکورد می باشد

که 1- میزنه

چکار کنم
من تا حالا با این مساله برخورد نکردم ولی یه راه خیلی ساده برای راحت شدن از شر این مشکل اینه


procedure TFrmModiriatUser.ADOTable_ModiriatUserCalcFields(
DataSet: TDataSet);
begin
if ADOTable_ModiriatUser.fieldbyname('Radif').AsInteg er=-1 then
ADOTable_ModiriatUser.fieldbyname('Radif').AsInteg er:=1
else
ADOTable_ModiriatUser.fieldbyname('Radif').AsInteg er:= ADOTable_ModiriatUser.RecNo;
end;

دنی کوئیل
جمعه 16 دی 1384, 14:35 عصر
آفرین
آفرین
آفرین
آفرین
آفرین
آفرین

MiRHaDi
شنبه 17 دی 1384, 02:27 صبح
سلام
عزیزم نیازی به این دردسرا نداره !
کافیه بگی = abs(adotable.recordno);
بای

دنی کوئیل
شنبه 17 دی 1384, 12:16 عصر
عالی بود آقای میرهادی

دنیای دلفی
شنبه 17 دی 1384, 12:43 عصر
ولی وقتی از اطلاعات فیلتر می گیری ترتیب ردیف بهم می خورد

دنی کوئیل
شنبه 17 دی 1384, 19:04 عصر
ولی وقتی از اطلاعات فیلتر می گیری ترتیب ردیف بهم می خورد

مشکل دیگش اینه که شما وقتی یک رکورد ایجاد می کنید به شماره ردیف 1 ثبت میشه

واقعا باید چی کار کرد ؟

دنی کوئیل
شنبه 17 دی 1384, 19:13 عصر
فهمیدم

این کد را برای dbgrid بنویسید
همین



procedure TFrmModiriatUser.DBGrid_ModiriatUserDrawColumnCell (
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin

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

end;

دنیای دلفی
یک شنبه 18 دی 1384, 22:55 عصر
کدی که نوشتید اشکال دارد جواب نمی دهد مخصوصا بعد از فیلتر گیری از Table مربوطه

دنی کوئیل
دوشنبه 19 دی 1384, 00:03 صبح
امکان ندارد
من الان دارم استفاده می کنم از این کد همه جوره جواب میدهد

باید تو رویداد DrawColumnCell بنویسی در DbGrid

OK

دنیای دلفی
دوشنبه 19 دی 1384, 21:49 عصر
من از ADO استفاده نمی کنم از DBISAM استفاده می کنم

MiRHaDi
پنج شنبه 22 دی 1384, 02:33 صبح
سلام
عزیزم فرقی نداره !
مگه DBISAM امکان CalculatedField بهت نمیده!؟
همونه دیگه
بای