PDA

View Full Version : چاپ تعداد مشخصی از رکوردها



Tarrah
سه شنبه 04 مرداد 1384, 14:03 عصر
سلام
من تا حالا با adoquery کار نکردم . می خوام یه گزارش داشته باشم کاربر انتخاب کنه از شماره m تا n چاپ بشه . آیا باید یه adoquery درست کنم و ابزارهای qreport رو به اون متصل کنم ؟
اگه بله .کدی که باید بنویسم به صورت زیره ؟بازم اگه بله کجا باید بنویسمش؟اگه نه کجاش مشکل داره ؟برا اینکار index هم لازم هست؟
adoquery رو می تونم به یه dbgrid ربط بدم ؟برا اینکار آیا اگه مثل table عمل کنم کافیه ؟
AdoQuery1.sql.clear;z
AdoQuery1.sql.Add('select * from MY_Table where');z
AdoQuery1.sql.Add('pass between m and n');z
AdoQuery1.Parameters.ParamByName('m').Value:=edit1 .text;z
AdoQuery1.Parameters.ParamByName('n').Value:=edit2 .text;z
AdoQuery1.Open;z
عنایت داشته باشید z ها فقط برا درست دیدن کد هستند.
ببخشید اگه تعداد سوالها زیاد شد

m-khorsandi
سه شنبه 04 مرداد 1384, 14:56 عصر
درود

برای این گزارش از Query هم میتونید استفاده کنید و باید اون رو به QuickRep متصل
کنید.

من Query شما رو خوندم ظاهرا" که مشکلی نداره..

Tarrah
سه شنبه 04 مرداد 1384, 17:18 عصر
از qury چه جوری می تونم استفاده کنم ؟
مگه مشکل ado چیه ؟

MToloo
سه شنبه 04 مرداد 1384, 17:27 عصر
کدی که شما نوشتی به نظر من اصلا ایراد داره. یعنی نباید اجرا بشه. باید قاعدتا خطا بگیره.
چون الان m و n به عنوان پارامتر شناخته نمیشن. برای اینکه پارامتر بشن باید قبلشون دو نقطه بزاری. اینطوری:
AdoQuery1.sql.clear;z
AdoQuery1.sql.Add('select * from MY_Table where');z
AdoQuery1.sql.Add('pass between :m and: n');z
AdoQuery1.Parameters.ParamByName('m').Value:=edit1 .text;z
AdoQuery1.Parameters.ParamByName('n').Value:=edit2 .text;z
AdoQuery1.Open;z

Tarrah
سه شنبه 04 مرداد 1384, 17:40 عصر
حق با شماست نشد.اینجوریش کردم درست شد.
controlform.AdoQuery1.sql.clear;z
controlform.AdoQuery1.sql.Add('select * from tblPassword where');z
controlform.AdoQuery1.sql.Add('PassId BETWEEN 1 AND 3');z
controlform.AdoQuery1.Open;z
ولی خوب چیزی که می خوام این نیست .
می خوام هر عددی به جای 1و3 چیزی باشه که کاربر تو edit ها وارد می کنه.حالا کد شمارو هم امتحان می کنم ممنون.
یه خاصیت datasource هست تو خواص adoquery که کلیه DataSource ها غیر از datasource خود adoquery رو لیست می کنه . واسه چیه این ؟

Tarrah
سه شنبه 04 مرداد 1384, 18:17 عصر
سلام مجدد
مشکل کد حل شد.ممنون از دوستان
حالا باید فقط یه فیلد رو چاپ کنم . یه qrep می ذارم رو فرم و یه qrdblabel می ذارم وdataset اون رو datasource مربوط به adoquery انتخاب می کنم . وقتی میام datafield انتخاب کنم می گه sql خالیه . آوردم تو قسمت sql مربوط به adoquery کد رو وارد کردم.کار درستیه که کد تو دو قسمت باشه ؟ چون قبلا تو دستورات یه button هم نوشتم .
حالا اینها به کنار .وقتی میارم preview کنم هیچی تو label نشون داده نمی شه .اتصالاتم اشتباهه؟
شرمنده . ولی به qrep هم کار نکردم . اگه کمکم کنین این رنج پسورد که به وسیله adoquery به دست میاد با qrep قابل چاپ بشه خیلی ازتون ممنون می شم .

Tarrah
چهارشنبه 05 مرداد 1384, 00:15 صبح
لطفا کمکم کنید .

s_mm99
چهارشنبه 05 مرداد 1384, 09:44 صبح
ببین تو داخل فرم گزارش ditail band میذاری ودر ضمن وقتی در کد button دوباره sql را مقدار میدی قبل از اون sql رو clear کن

Tarrah
چهارشنبه 05 مرداد 1384, 10:19 صبح
detail band رو واسه چی بذارم . میشه یه کم بیشتر توضیح بدین ؟ وقتی در کد button دوباره sql را مقدار میدم قبل از اون sql رو clear می کنم .تو کد بالا هم هست دیگه .

s_mm99
شنبه 08 مرداد 1384, 07:21 صبح
نتیجه این گزارش فقط یه رکورده در این صورت نیاز بهditail band نداریم در ضمن qrdblable همونqrdbtext است و datasetانو خودadoquery قرار بده

MToloo
شنبه 08 مرداد 1384, 12:16 عصر
یه خاصیت datasource هست تو خواص adoquery که کلیه DataSource ها غیر از datasource خود adoquery رو لیست می کنه . واسه چیه این ؟

اون برای درست کردن Master/Detail هست. مثلا سند حسابداری رو تصور کن. هر رکود سند حسابداری یک سری detail داره. با عوض کردن رکورد جاری سند (Master) باید Detailهای مربوط به اون نشون داده باشه. حالا اگه MasterSource یا تو بعضی کامپوننتها DataSource ش و بذاری دیتاسورس یک دیتاست دیگه و MasterField ش و تنظیم کنی، خودش این کار و برات میکنه.

Tarrah
شنبه 08 مرداد 1384, 16:51 عصر
ممنون از راهنمائیتون