PDA

View Full Version : بستن انتهای مبلغ یا وجه روی چک با کاراکترهای مختلف



RezaS_1354
جمعه 16 فروردین 1387, 19:48 عصر
سلام به دوستان عزیز
اولین تایپیک سال جدید را زدم تا آخر سال روزی یک تایپیک و یک پست تو این سایت اضافه کنم
از دوستانی که برنامه چاپ چک را کار کردند میخواستم ببینم برای بستن انتهای مبلغ حروفی و وجه و همینطور مبلغ عددی ریال با کارکترهای مختلف اطلاعاتی اگر دارند دریغ نفرمایند البته دو سه تا راه حل در نظرم هست ولی فکر نمیکنم مطلوب و استاندارد باشد یکی اندازه Width textBox یا تعداد کارکترهای داخل تکست و محدود کردن اونها یا اندازه فاصله کلمه مبلغ تا کلمه ریال و دیگر اینکه یک رشته کاراکتر بشکل مثلا ستاره (*) کلا از ابتدای کلمه مبلغ تا انتهای ان نزدیک ریال بگذارم که هر موقع تکست روی ان مبلغش تمام شد زیر اون ستاره های معلوم شود و چند چیز دیگر ولی مشکل اینجاست که اگر چک بزرگ و کوچک شد یا اینکه فونت جمله مبلغ تغییر کرد چه باید کنیم ممنون میشوم راهنمایی بفرمائید با سپاس.
رضا

vbhamed
جمعه 16 فروردین 1387, 20:56 عصر
سلام
خروجی رو با چی چاپ می‌کنید
می تونید از تابع Format استفاده کنید



Dim M As Currency

M = 12300000
MsgBox Format$(M, "#,#\*")



حالا خروجی این تابع رو به جای Msgbox می تونید تو یک متغیر رشته ای بریزید یا مستقیم چاپش کنید

RezaS_1354
جمعه 16 فروردین 1387, 22:37 عصر
دوست عزیز فکر میکنم سئوال را اشتباه مطرح کردم منظورم اینبود که چطور میشود فاصله را از مثلا کلمه در وجه تا .............................یابحواله کرد تشخیص داد که با کوچک و بزرگ شدن جمله یا چک کاراکتر (*) بیشتر از کلمه یا بحواله کرد جلوتر نرود و همانجا تمام شود و جمله را ببندد مثلا اینجوری
در وجه آقای علی صفاریان بابت تعمیر ماشین آلات ************یا بحواله کرد بپردازید
یعنی اگر جمله زیاد یا کم بود کاراکتر (*) بتعداد لازم تا کلمه یا بحواله کرد چاپ کند و بیشتر از اون جلو نرود که روی کلمه حواله کرد هم خراب شود امیدوارم درست توضیح داده باشم ممنون

vbhamed
شنبه 17 فروردین 1387, 13:53 عصر
سلام
فونت فرم یا یک PictureBox رو برابر فونت چاپی تنظیم کنید
از تابع TextWidth برای اندازه گیری طول متن با فونت تنظیم شده استفاده کنید
اگر خاصیت Scalemode رو برابر 6 بزارید بهتره چون طول متن رو به میلی متر می ده
وقتی طول متن رو به دست آوردین اینقدر بهش * اضافه کنید و هر بار طول رو به دست بیارید تا برابر طول جای خالی روی چک بشه

hrj1981
شنبه 17 فروردین 1387, 13:57 عصر
شما می تونید تعداد کاراکترهای مجاز داخل تکس باکس را تعریف کنی و سپس با کمک len مانده کارکتراها را با کاراکتر مورد نظر خودت پر کنی

dim a as long
a= len(text1.text)-255
if len(text1.text)< 255 then
text1.text=(text1.text)&String$(a, "*")
end if

RezaS_1354
شنبه 17 فروردین 1387, 17:16 عصر
اقا ممنون محبت میکنی یک مثال کاربردی تر بزنی چون من از قبل نمیدانم کاربر از چه چکی استفاده میکند که فاصله بین دو کلمه مثلا در وجه و بحواله کرد رو نمیدانم فقط یک حدود تقریبی دارم که اگر بخواهم همان مقدار طول تکست تقریبی را از قبل در نظر بگیرم که دیگر احتیاجی به کد نداره نمیدانم متوجه شدید چی میگم من تکست با مثلا 200 کاراکتر محدود میکنم و رو فرم میگذارم و سپس تو کدش مینویسم تکست یک + (هرچی کاراکتر اضافه ماند) ستاره(*) جایش بگذاره مشکل اینجاست که نمیدونم ایا همه چکها حروفشون یکجاست یا نه و
بازهم متشکرم

vbhamed
شنبه 17 فروردین 1387, 18:20 عصر
سلام
همچین ثابت هم نمیشه گذاشت
شاید مبلغ چک شما 11110000 ریال باشه یا 77778800 ریال که اینها از لحاظ تعداد حرف یکی هستن ولی بسته به فونت استفاده شده، از لحاظ عرض مختلف هستند
باید با همون تابع TextWidth عرض نوشته رو حساب کنی


مثال

L = Me.TextWidth("11110000")