PDA

View Full Version : ارائه یک راه حل برای یه مشکل جزئی



salman_arak
چهارشنبه 01 آذر 1385, 09:20 صبح
سلام
من یه فیلد عددی دارم که اعداد 5 رقمی توش ذخیره شده که اونو می خوام تو quickreport تو QRDBText نشون بدم اما با این تغییر که این عدد رو مثلا به صورت 45/123 (یه علامت اعشار یه جاییش بذاره و بعد نمایش بده ).
بانک : اکسس
از دستور select و کامپونت ado query استفاده کردم .
نمی دونم سوالم چقدر واضحه اما باین حال منتظر جواب هستم .
با عرض شرمندگی از دوستان اجازه می خوام یه سوال تکراری دیگه هم بپرسم اجازه هست؟
ممنون میخوام که یه شماره ردیف هم تو quickreport داشته باشم . اما راه حلهای دوستان تو تاپیک های مطرح شده برای من کار ساز نبود چون دوستان از کامپونت های دیگه استفاده کرده بودند و نتونستم بین اونها و ado query تطبیقی بدم اگه ممکنه این سوالم هم جواب بدید:اشتباه: :اشتباه:
ممنون و منتظر .:متفکر:

sarvestan
چهارشنبه 01 آذر 1385, 09:36 صبح
اگر فیلدتون در Database متنی می باشد:

select Left(stField,2)+'/'+Right(stField,3) from stTable

salman_arak
چهارشنبه 01 آذر 1385, 09:40 صبح
فیلدم عددی ه

sarvestan
چهارشنبه 01 آذر 1385, 09:55 صبح
از تقسیم استفاده کن!
یا
...
select Left(cast(stField as varchar(5)),2)+'/'+Right(cast(stField as varchar(5)),3) from stTable

salman_arak
چهارشنبه 01 آذر 1385, 10:01 صبح
SQL.Clear;
sql.Add('select a.pno,a.fname,a.lname,a.costn1,'+ sh +' from( vazeyat c inner join shakhsi b'+
' on c.id=b.id) inner join shakhsi1 a on a.pno=b.pno where '+ sh+ opr + trim(MaskEdit10.Text)+' order by '+sh);
open;


دوست عزیز دستور اس کیو الم به صورت فوق است و فیلد مورد نظر به صورت متغیر و بنام sh
است که در قیل مقدار دهی می شود . اگه محبت بفرمائی و روی این دستور توضیحاتتو بدی ممنون می شم راستی در مورد سوال دوم چی ؟
ممنون و منتظر .

sarvestan
چهارشنبه 01 آذر 1385, 10:34 صبح
sh := 'Left(cast(stField as varchar(5)),2)+'/'+Right(cast(stField as varchar(5)),3) as returnField'

salman_arak
چهارشنبه 01 آذر 1385, 10:45 صبح
sh := 'Left(cast(stField as varchar(5)),2)+'/'+Right(cast(stField as varchar(5)),3) as returnField'
دوست عزیز من درست متوجه نمی شم یعنی من این خط رو عینا بعد از مقدار گیری متغیر sh ام بنویسم . منظورت از as returnField چیه ؟
این دستور قراره چی کار بکنه ببخشیدا من یه برنامه نویس تازه کارم زیر دیپلم توضیح بده :چشمک: :تشویق: :تشویق:

sarvestan
شنبه 04 آذر 1385, 08:48 صبح
بجای StField اسم فیلد خودت را بنویس و بجای فیلد ReturnField اسمی بزار که می خواهی به اون نام به این فیلد دسترسی داشته باشی!

salman_arak
شنبه 04 آذر 1385, 10:32 صبح
سلام
من شرمندم که این موضوع رو متوجه نمی شم این یک و دوم اینکه من خیلی خیلی به حل شدن این موضوع نیاز دارم .
دوباره سوالم رو مطرح می کنم امید است راه حل اجرائی رو دو ستان تو صیه کنند :


من یه فیلد عددی دارم که اعداد 5 رقمی توش ذخیره شده که اونو می خوام تو quickreport تو QRDBText نشون بدم اما با این تغییر که این عدد رو مثلا به صورت 45/123 (یه علامت اعشار یه جاییش بذاره و بعد نمایش بده ).
بانک : اکسس
از دستور select و کامپونت ado query استفاده کردم .
نمی دونم سوالم چقدر واضحه اما باین حال منتظر جواب هستم .
با عرض شرمندگی از دوستان اجازه می خوام یه سوال تکراری دیگه هم بپرسم اجازه هست؟

سوال دوم : ممنون میخوام که یه شماره ردیف هم تو quickreport داشته باشم . اما راه حلهای دوستان تو تاپیک های مطرح شده برای من کار ساز نبود چون دوستان از کامپونت های دیگه استفاده کرده بودند و نتونستم بین اونها و ado query تطبیقی بدم اگه ممکنه این سوالم هم جواب بدید:اشتباه: :اشتباه:

ممنون و منتظر .

vcldeveloper
یک شنبه 05 آذر 1385, 02:16 صبح
از خصوصیت Mask شی QrDBText استفاده بکنید، مثلا مقدارش رو می تونید بزارید:
###/##
برای آشنایی بیشتر با فرمت بندی های مختلف می تونید به راهنمای دلفی مراجعه کنید:
Delphi Object and Component Reference -> FormatFloat function

daffy_duck376
دوشنبه 06 آذر 1385, 21:59 عصر
میتونی یه دونه qrlabel رو فرم بزاری و تو event‌ --before print مثلا در قسمت SUB DETAILS از کد زیر استفاده کنی
QRLabel1.Caption:= IntToStr(table1.recordno)
باز هم مشکل داری من در خدمتم