View Full Version : سوال: جایگزین کردن حروف به جای عدد درکریستال ریپورت
somaiebagheri
سه شنبه 14 شهریور 1391, 17:14 عصر
سلام .من توی بانکم یه سری کد درام که میخوام به جای این اعداد توی کریستال ریپورت کلمه معادلش چاپ بشه .سعی کردم ازفرمول نویسی استفاده کنم ولی مدام خطا میده :a number is required here
مثلاتوی فرمم فیلد جنسیت رودارم و میخوام به جای عدد 1،زن وبه جای عدد2 مرد چاپ بشه . ممنون میشم راهنماییم کنید.
somaiebagheri
جمعه 17 شهریور 1391, 23:13 عصر
یعنی هیچ کس توی این زمینه اطلاعاتی نداره،من نتونستم راه حلی براش پیداکنم!
mbza11
شنبه 18 شهریور 1391, 00:26 صبح
سلام.
بهتره یه جدول دیگه داشته باشی که معادل این اعداد رو داخلش نوشته باشی و موقع درخواست اطلاعات بیای و اطلاعات رو تو همون کوئری جایگزین کنی یا اینکه یه DataTable بسازی و مقادیر رو خودت داخلش وارد کنی و بعد به کریستال ریپورت پاس بدی.
البته فکر کنم اگه می نویشتی با چه زانی داری برنامه می نویسی، بچه ها بهتر کمک می کردند.
یه نصیحیت: سعی از کریستال استفاده نکنه، من خودم از FastReport استفاده می کنم (من با C# برنامه نویسی می کنم) که همیشه کارم رو راه میندازه.
موفق باشید.
somaiebagheri
یک شنبه 19 شهریور 1391, 11:42 صبح
سلام .ازراهنماییتون ممنونم. من یه صفحه دارم که توش چندتاکمبوباکس داره ،کاربرموقعی که میخوادثبت اطلاعات کنه ازتوی هرکمبو گزینه موردنظرش روکه انتخاب میکنه به جای متن داخل کمبوکدش داخل بانک ذخیره میشه،
بعد من ازروی همین اطلاعات ثبت شده میخوام گزارش بگیرم .درموردراه حل اولتون میخواستم اطلاعات سطرموبگیرم بعد به جای هرکد متن معادلشوبذارم ولی این خیلی طولانی میشه چون من 6تاکمبوتوصفخه دارم که یکیشون بیشتراز20تاگزینه داره یعنی جایگزینی 20تاکدفقط برای یک سلول !! درموردdatatable اطلاعات زیادی ندارم میشه بیشترتوضیح بدین ،یکم مبتدیم... :ناراحت:
راستی با C#برنامه می نویسم (vs2008)
somaiebagheri
دوشنبه 20 شهریور 1391, 09:51 صبح
میشه لطفایه نفربه این پست یه نگاهی بندازه ،ممنون میشم...:افسرده:
mbza11
چهارشنبه 22 شهریور 1391, 05:10 صبح
سلام.
با فرض بر اینکه تمام کارها رو داری با استفاده از DataSet انجام میدی، پیش میریم:
1- یه جدول تو دیتابیست درست می کنی مثلا tblCombo1 بعد ستون های Num و Name رو توش تعریف می کنی.
2- حالا این جدول رو با مقادیری که داری پر می کنی: تو قسمت Num کد متن و تو قسمت Name نامش رو می نویسی.
3- یه DataTableAdapter ایجاد می کنی (یا کلیک راست روی DataSet و انتخاب DataTableAdapter از زیر منوی Add و دادن ارتباطات و کوئری های لازم یا اینکه از بخش ServerExplorer جدول رو بکشی روی DataSet و ول کنی).
4- بعد از اینکه کادر پایین رو باز کردی (اگه باز نبود) کلیک راست و انتخاب Add Query.
5- انتخاب Use SQL Statment ---> Select which returms a signle value
6- حالا این کد رو بنویس:
Select name from tblCombo1 where num =@P_num
7- بعد از اینکه Next رو زدی اسمش رو بزار GetNameByNum و بعد Finish رو انتخاب کن.
8- برای بقیه کمبوها هم می تونی همین کار رو بکنی. خوبیش اینه که می تونی مقادیر داخل کمبوها رو هم از این جدول ها بخونی و اگه یه وقت بخوای چیزی به کمبو اضافه کنی می تونی داخل همین جدول بنویسی تا توی همه کمبوهای مربوطی که تو برنامه استفاده کدی نمایش داده بشه.
9- حالا موقعی که می خوای اطلاعات رو برای چاپ بفرستی میای و با استفاده از دستور GetNameByNum(Param) مقدار Num رو به صورت پارامتر میدی و Name رو میگیری.
10- همانطور که گفتم من با کریستال گزارش نمی گیرم و از FastReport استفاده می کنم و در اینجور موقع ها میام و یه DataTable تو رم می سازم (DataTable _dt = New DataTable();) و اون رو با مقادیر لازم برای گزارش پر می کنم و بعد به فرم گزارش پاس میدم و همه چیز کامل نمایش داده میشه. تو کریستال نمی دونم همچین قابلیتی داره یا نه!
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.