سلام سال نو مبارک
فرض کنید چنین قراردادی دارید (لینک تصویر) و میخواهید براساس اطلاعات ثبت شده در نرم افزار ، بخش هایی که نقطه چین هستند هرکدوم براساس پارامترهای مخصوص به خودشون از دیتابیس در این قرارداد جایگزین شود.
برای اینکار اومدم این متن رو بصورت rtf در دیتابیس ذخیره کردم و برای چاپ هم همین rtf را میفرستم در فایل گزارش استیمول سافت در داخل ریچ تکست باکس تا ارایش متن حفظ بشه.
البته به جای اون نقطه چین ها هم میخواهم پارامترهایی قرار بدم مثلا برای نام بزارم > {name} و بقیه هم به این شکل.
اما مساله ای که هست اینه که ایا در استیمول سافت که متن را به ریچ تکست میفرستم چطوری این پارامترها رو بگم خودکار جایگزین بشن از دیتابیس؟؟ ظاهرا چنین امکانی ندارد چون اجازه استفاده از فقط یک متغیر را میده !
یک راه دیگر این است که بیام قبل از اینکه متن را به گزارشگیر میفرستم داخل کدنویسی این پارامترها رو replace کنم و بعد به فایل گزارش استیمول سافت بفرستم که متاسفانه در این حالت برای اینکه موقع Replac کردن استایل متن حفظ شود اومدم بدین صورت انجام دادم :
RichTextBox rtBox = new RichTextBox();
rtBox.Rtf = MyStrRTF;
rtBox.Find("{name}");
rtBox.SelectedText = "سامان بهنام";
اما متاسفانه بعد از جایگزین کردن متن موردنظر ، چون فونت مربوط به پارامتری که انگلیسی نوشته شده بود را به خود میگیرد که بنظر دیدم بهتره بیاد اخر کار کل فونت متن را به فونت موردنظر تغییر بدم :
rtBox.Font = new Font("B Nazanin", 10, FontStyle.Regular);
ناگفته نماند میتونستم خیلی راحت کل متن را داخل فایل گزارش قراربدم اما چون در اینده متن قرارداد ممکن است داخل خود نرم افزار تغییر داده بشه برای همین با این مساله روبرو شدم