جایگزین کردن بخش های موردنظر در متن برای چاپ
سلام سال نو مبارک
فرض کنید چنین قراردادی دارید (لینک تصویر) و میخواهید براساس اطلاعات ثبت شده در نرم افزار ، بخش هایی که نقطه چین هستند هرکدوم براساس پارامترهای مخصوص به خودشون از دیتابیس در این قرارداد جایگزین شود.
برای اینکار اومدم این متن رو بصورت 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);
ناگفته نماند میتونستم خیلی راحت کل متن را داخل فایل گزارش قراربدم اما چون در اینده متن قرارداد ممکن است داخل خود نرم افزار تغییر داده بشه برای همین با این مساله روبرو شدم
نقل قول: جایگزین کردن بخش های موردنظر در متن برای چاپ
سلام و روز و سال نو خوش
شما میتونین در خود داکیومنت ورد فیلد تعریف کنین و بعد از طریق برنامه اون داکیومنت رو باز کرده و به فیلدها مقدار بدین.
نقل قول: جایگزین کردن بخش های موردنظر در متن برای چاپ
نقل قول:
نوشته شده توسط
samiasoft
سلام فرض کنید چنین قراردادی دارید (
لینک تصویر) و میخواهید براساس اطلاعات ثبت شده در نرم افزار ، بخش هایی که نقطه چین هستند هرکدوم براساس پارامترهای مخصوص به خودشون از دیتابیس در این قرارداد جایگزین شود.
برای اینکار اومدم این متن رو بصورت 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);
ناگفته نماند میتونستم خیلی راحت کل متن را داخل فایل گزارش قراربدم اما چون در اینده متن قرارداد ممکن است داخل خود نرم افزار تغییر داده بشه برای همین با این مساله روبرو شدم
سلام.
من قبلا برای یک قرارداد ی سند چاپ ساختم. بنظر من اصلا مهم نیست با کدوم ابزاری ب چاپگر ارسال می کنی من تا حالا با استیمول سافت کار نکردم. مهم اینه که بتونی با اون ابزار راحت کار کنی هم برنامه نویس و هم کاربر.
من از کدهای HTML و web browser استفاده کردم و برای تغییرات هم، هم می تونی با id تگ رو فراخوانی کنی و مقدارشو تغییر بدی هم با replace جایگزین کنی و web browser برای پرینت هم همه ابزار مدیرت چاپ رو داره. کافیه طراحی اولیه قرارداد رو تو ی سند HTML بسازی و برای قسمت هایی که می خوای تغییر بدی ی تگ span با id مشخص تعریف کنی تا تو کدنویسی بتونی استفاده کنی.
راستشو بگم هنوزم برای چاپ از همین روش استفاده می کنم راحت، سریع، تمیز و بی دردسر خروجی هم عالی.
نقل قول: جایگزین کردن بخش های موردنظر در متن برای چاپ
نقل قول:
نوشته شده توسط
mazoolagh
سلام و روز و سال نو خوش
شما میتونین در خود داکیومنت ورد فیلد تعریف کنین و بعد از طریق برنامه اون داکیومنت رو باز کرده و به فیلدها مقدار بدین.
متشکرم همچنین
میشد همینکارو کرد اما چون فقط به متن فایل ورد نیاز داشتم به همین خاطر کل متن را کاربر داخل برنامه وارد میکنه و در ریچ تکست باکس عملیات replce را انجام دادم.
برای حل مشکل فونت هم دیدم چناچه ابتدا و انتهای فیلد موردنظر را فونتش رو فونت موردنظر کنم بعد از replace بدرستی به فونت اولیه تغییر پیدا میکند که مشکل حل شد.
نقل قول:
نوشته شده توسط
ROSTAM2
سلام.
من قبلا برای یک قرارداد ی سند چاپ ساختم. بنظر من اصلا مهم نیست با کدوم ابزاری ب چاپگر ارسال می کنی من تا حالا با استیمول سافت کار نکردم. مهم اینه که بتونی با اون ابزار راحت کار کنی هم برنامه نویس و هم کاربر.
من از کدهای HTML و web browser استفاده کردم و برای تغییرات هم، هم می تونی با id تگ رو فراخوانی کنی و مقدارشو تغییر بدی هم با replace جایگزین کنی و web browser برای پرینت هم همه ابزار مدیرت چاپ رو داره. کافیه طراحی اولیه قرارداد رو تو ی سند HTML بسازی و برای قسمت هایی که می خوای تغییر بدی ی تگ span با id مشخص تعریف کنی تا تو کدنویسی بتونی استفاده کنی.
راستشو بگم هنوزم برای چاپ از همین روش استفاده می کنم راحت، سریع، تمیز و بی دردسر خروجی هم عالی.
کار جالبی انجام دادید سعی میکنم درصورت نیاز از این روش هم استفاده کنم ... ممنونم از راهنمایی
نقل قول: جایگزین کردن بخش های موردنظر در متن برای چاپ
به ازای هر داده ای که باید جایگذاری بشه یک variable توی گزارش ، پنل dictionary ایجاد کنید و توی متن ریچتکست نام متغیر را همراه {} به کار ببرید(همون مثالی که زدید). برای ارسال مقدار متغیر از برنامه به گزارش با کد عمل کنید
https://www.stimulsoft.com/en/sample...iables-in-code
نقل قول: جایگزین کردن بخش های موردنظر در متن برای چاپ
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
به ازای هر داده ای که باید جایگذاری بشه یک variable توی گزارش ، پنل dictionary ایجاد کنید و توی متن ریچتکست نام متغیر را همراه {} به کار ببرید(همون مثالی که زدید). برای ارسال مقدار متغیر از برنامه به گزارش با کد عمل کنید
https://www.stimulsoft.com/en/sample...iables-in-code
بسیار ممنونم
درواقع کار اشتباهی که انجام میدادم در پراپرتی ریچ تکست میومدم فیلدهای متغیر را انتخاب میکردم برای همین بوده که امکان اجازه یک فیلد را میداد که با راهنمایی شما بایستی در قسمت متن این متغییرها را دستی وارد میکردم یا از سی شارپ به این میفرستادم.
نقل قول: جایگزین کردن بخش های موردنظر در متن برای چاپ
نقل قول:
نوشته شده توسط
samiasoft
متشکرم همچنین
میشد همینکارو کرد اما چون فقط به متن فایل ورد نیاز داشتم به همین خاطر کل متن را کاربر داخل برنامه وارد میکنه و در ریچ تکست باکس عملیات replce را انجام دادم.
برای حل مشکل فونت هم دیدم چناچه ابتدا و انتهای فیلد موردنظر را فونتش رو فونت موردنظر کنم بعد از replace بدرستی به فونت اولیه تغییر پیدا میکند که مشکل حل شد.
من با توجه به تصویر پیوست (که یک فایل ورد بود) تصورم این بود که چون مستقیما با این داکیومنت نمیتونین کار کنین از روی ناچاری اون رو دوباره در گزارش طراحی کردین.
به هر حال این خواسته شما خیلی شبیه mail-merge است.
نقل قول: جایگزین کردن بخش های موردنظر در متن برای چاپ
نقل قول:
نوشته شده توسط
ROSTAM2
سلام.
من قبلا برای یک قرارداد ی سند چاپ ساختم. بنظر من اصلا مهم نیست با کدوم ابزاری ب چاپگر ارسال می کنی من تا حالا با استیمول سافت کار نکردم. مهم اینه که بتونی با اون ابزار راحت کار کنی هم برنامه نویس و هم کاربر.
من از کدهای HTML و web browser استفاده کردم و برای تغییرات هم، هم می تونی با id تگ رو فراخوانی کنی و مقدارشو تغییر بدی هم با replace جایگزین کنی و web browser برای پرینت هم همه ابزار مدیرت چاپ رو داره. کافیه طراحی اولیه قرارداد رو تو ی سند HTML بسازی و برای قسمت هایی که می خوای تغییر بدی ی تگ span با id مشخص تعریف کنی تا تو کدنویسی بتونی استفاده کنی.
راستشو بگم هنوزم برای چاپ از همین روش استفاده می کنم راحت، سریع، تمیز و بی دردسر خروجی هم عالی.
لطفا بفرمایید که کنترل وب بروزر در نمایش درست مواردی مثل full justify , line spacing , تو رفتگی (indent) اول پاراگراف و ... مشکلی نداره؟
یا فقط برای داکیومنت های ساده مفید هست؟
1 ضمیمه
نقل قول: جایگزین کردن بخش های موردنظر در متن برای چاپ
html انعطاف پذیری بسیار بالایی داره. و می شه باهاش ی ویرایشگر متن قوی ساخت.
https://www.w3schools.com/html/default.asp
برای نمایش رنگ بندی کد زبانهای برنامه نویسی بهترین روش استفاده از کدهای HTML هست.
برای ایجاد سندتون از خود ویژوال استودیو استفاده کنید نوار Formatting کمک زیادی می کنه.
ضمیمه 153755
نقل قول: جایگزین کردن بخش های موردنظر در متن برای چاپ
نقل قول:
نوشته شده توسط
ROSTAM2
html انعطاف پذیری بسیار بالایی داره. و می شه باهاش ی ویرایشگر متن قوی ساخت.
https://www.w3schools.com/html/default.asp
برای نمایش رنگ بندی کد زبانهای برنامه نویسی بهترین روش استفاده از کدهای HTML هست.
برای ایجاد سندتون از خود ویژوال استودیو استفاده کنید نوار Formatting کمک زیادی می کنه.
ضمیمه 153755
ممنون،
ولی شما اصلا پرسش رو دقت نکردین!
پرسیده بودم که آیا کنترل وب بروزر در نمایش داکیومنت های پیچیده بدون مشکل هست یا نه؟
و مثال هم آوردم : مواردی مثل full justify , indent, line spacing
که مشخص شد تست نکردین، البته خیالتون راحت باشه چون اینها رو پشتیبانی میکنه.
ولی چون این کنترل بر مبنای internet explorer 7 هست و خیلی از قابلیتهای css3 و html5 رو پشتیبانی نمیکنه، ممکنه بعضی داکیومنت ها درست رندر نشن یا بعضی کدهای جاوااسکریپت اجرا نشن.
چند سالی هست که این کنترل از رده خارج محسوب میشه - بعد از اون کنترل webview اومد که برمبنای ie11 بود و الان هم که webview2 هست بر مبنای edge (کرومیوم)
https://developer.microsoft.com/en-u...edge/webview2/