ورود

View Full Version : مبتدی: سفارشی سازی فونت ها و رنگ فونت



mehdipormaye
پنج شنبه 25 آبان 1402, 12:32 عصر
با سلام خدمت اساتی گرامی
چجور می شود رنگ فونت ها در فرمها یا گزارشات را سفارشی کنیم ؟
یعنی کاربر امکان تغییر فونت در گزارش یا فرمها را داشته باشد( در زمانی که برنامه در حالت دیزاین نباشه)
با تشکر از اساتید گرامی

eb_1345
پنج شنبه 25 آبان 1402, 15:10 عصر
با سلام خدمت اساتی گرامی
چجور می شود رنگ فونت ها در فرمها یا گزارشات را سفارشی کنیم ؟
یعنی کاربر امکان تغییر فونت در گزارش یا فرمها را داشته باشد( در زمانی که برنامه در حالت دیزاین نباشه)
با تشکر از اساتید گرامی
سلام
تغییر خصوصیات فونت در حالت ران تایم در فرم ها براحتی امکان پذیره ولی در گزارش ها در حالت Preview تغییرات باید در حالت دیزاین صورت بگیره
راهکاری که برای تغییر خصوصیات فونت کنترل های گزارش در حالت اجرا میشه بکار برد اینست که ابتدا گزارش رو بصورت دیزاین و در عین حال مخفی اجرا کنیم بعد کد یا کدهای مربوط به تغییرات فونت سپس ذخیره تغییرات و در مرحله آخر بستن و اجرای مجدد گزارش در حال Preview

به کدهای زیر دقت بفرمائید!



DoCmd.OpenReport "R1", acViewDesign, , , acHidden
Reports!R1.B.ForeColor = 255
DoCmd.Save acReport, "R1"
DoCmd.Close acReport, "R1"
DoCmd.OpenReport "R1", acViewPreview


در کدهای بالا فرض شده که نام گزارش شما R1 و نام کنترلی که قرار است رنگ آن بصورت قرمز تغییر پیدا کنه B
در خط اول گزارش بصورت دیزاین و مخفی اجرا میشه
در خط دوم رنگ کنترل B به قرمز تغییر پیدا میکنه
در خط سوم تغییرات گزارش ذخیره میشه
در خط چهارم گزارش بسته میشه
و در خط آخر گزارش بصورت Preview (پیش نمایش) اجرا میشه

ولی اگر در نظر داشته باشی قبل از اجرای گزارش تغییرات فونت صورت بگیره کار راحت تره

mehdipormaye
پنج شنبه 25 آبان 1402, 16:55 عصر
سلام و ممنون از شما استاد گرامی
خیلی کاربردی و مفید فرمودید
فکر کنم نتونستم منظورم رو درست بیان کنم
میشه در گزارش دکمه ای استفاده کرد که رنگ و نوع فونت را انخخاب کرد و بعد با اون فونت و رنگ گزارش رو چاپ کنیم؟




سلام
تغییر خصوصیات فونت در حالت ران تایم در فرم ها براحتی امکان پذیره ولی در گزارش ها در حالت Preview تغییرات باید در حالت دیزاین صورت بگیره
راهکاری که برای تغییر خصوصیات فونت کنترل های گزارش در حالت اجرا میشه بکار برد اینست که ابتدا گزارش رو بصورت دیزاین و در عین حال مخفی اجرا کنیم بعد کد یا کدهای مربوط به تغییرات فونت سپس ذخیره تغییرات و در مرحله آخر بستن و اجرای مجدد گزارش در حال Preview

به کدهای زیر دقت بفرمائید!



DoCmd.OpenReport "R1", acViewDesign, , , acHidden
Reports!R1.B.ForeColor = 255
DoCmd.Save acReport, "R1"
DoCmd.Close acReport, "R1"
DoCmd.OpenReport "R1", acViewPreview


در کدهای بالا فرض شده که نام گزارش شما R1 و نام کنترلی که قرار است رنگ آن بصورت قرمز تغییر پیدا کنه B
در خط اول گزارش بصورت دیزاین و مخفی اجرا میشه
در خط دوم رنگ کنترل B به قرمز تغییر پیدا میکنه
در خط سوم تغییرات گزارش ذخیره میشه
در خط چهارم گزارش بسته میشه
و در خط آخر گزارش بصورت Preview (پیش نمایش) اجرا میشه

ولی اگر در نظر داشته باشی قبل از اجرای گزارش تغییرات فونت صورت بگیره کار راحت تره

eb_1345
پنج شنبه 25 آبان 1402, 18:01 عصر
میشه در گزارش دکمه ای استفاده کرد که رنگ و نوع فونت را انخخاب کرد و بعد با اون فونت و رنگ گزارش رو چاپ کنیم؟

آیا منظور شما اینست که مستقیماً میخواهی بر روی گزارش دکمه ای تعبیه کنی که از طریق اون فونت گزارش رو تغییر بدهی ؟
در اینصورت باید حالت Default view گزارش بر روی Report View تنظیم شود نه Print Preview چون در حالت Print Preview همونطور که قبلاً عرض کردم مستقیماً تغییرات بر روی ساختار گزارشی که در حال اجرا است امکان پذیر نیست مگر در حالت دیزاین

بنابراین اگر در نظر داری دکمه ای بر روی گزارش ایجاد کنی و نسبت به تغییرات فونت گزارش اقدام کنی حالت Default view گزارش رو روی Report View تنظیم کن در این صورت مشکل خاصی وجود نداره
در این حالت میتوانی در رویداد کلیک دکمه مورد نظر بطور مثال فونت تکست1 گزارش رو بصورت زیر تغییر بدهی:


Text1.ForeColor = 255
Text1.FontName = "B Nazanin"


علی ایحال اگر منظور شما غیر از این مطالبیست که ارائه شد نمونه ای رو تهیه و ضمیمه کن تا بهتر و زودتر نتیجه گیری شود

eb_1345
پنج شنبه 25 آبان 1402, 18:51 عصر
البته یک راه ساده تر هم وجود داره و اون اینکه فرض کن میخواهی از روی فرمی خاص اقدام به تغییرات فونت گزارشی بکنی که هم اکنون در هر حالت Print Preview در حال اجراست
در اینصورت بطور نمونه از کدهای زیر استفاده می کنی:



DoCmd.OpenReport "R1", acViewReport, , , acHidden
Reports!R1.B.ForeColor = 255
DoCmd.OpenReport "R1", acViewPreview


در کدهای بالا حالت اجرای گزارش بصورت Report View ومخفی تغییر می کنه و بعد کدهای مربوط به تغییرات فونت گزارش رو وارد می کنیم و در نهایت حالت گزارش رو بصورت Print Preview تغییر میدهیم
بنظرم این راهکار ساده تر و بدون دردسرتره

mehdipormaye
جمعه 26 آبان 1402, 22:23 عصر
با سلام و سپاس
خیلی خیلی عالی
مممنون از شما استاد گرامی

البته یک راه ساده تر هم وجود داره و اون اینکه فرض کن میخواهی از روی فرمی خاص اقدام به تغییرات فونت گزارشی بکنی که هم اکنون در هر حالت Print Preview در حال اجراست
در اینصورت بطور نمونه از کدهای زیر استفاده می کنی:



DoCmd.OpenReport "R1", acViewReport, , , acHidden
Reports!R1.B.ForeColor = 255
DoCmd.OpenReport "R1", acViewPreview


در کدهای بالا حالت اجرای گزارش بصورت Report View ومخفی تغییر می کنه و بعد کدهای مربوط به تغییرات فونت گزارش رو وارد می کنیم و در نهایت حالت گزارش رو بصورت Print Preview تغییر میدهیم
بنظرم این راهکار ساده تر و بدون دردسرتره