# پایگاه‌های داده > سایر پایگاه‌های داده > Foxpro >  Reports & Report designer

## kia1349

موضوعات مربوط به طراحی گزارشات را در این قسمت مطرح کنید

----------


## reza_z

با تشکر از مدیر بخش 
1)ایا esc code های بار کد مربوط به چاپگر در vfp جواب میدهد ؟
2)مشکل در اجکت کردن کاغذ بعد از چاپ 

   لطفا راهنمایی فرمایید

----------


## kia1349

توی ویندوز امتحان نکرده ام این کدها معمولا در زمان داس بکار گرفته میشدن
برای ویندوز تمام اختیارات با درایور است بهر حال میتوانید امتحان کنید

----------


## reza1357

سلام 
دوست عزیز قبلا در داس یکسری کد بود که پرینترها را کنترل می کرد الان هم زیاد در ویندوز کاربردی ندارند با توجه به امکاناتی که در ویندوز هست کسی دنبال این کدها نمی رود بعضی از این کدها در ویندوز جواب نمیدن و قابل استفاده نیستند 
به عنوان مثال قبلا در داس برای اینکه یک کلمه یا متنی در چاپ فونت ان را بزرگ کنیم از  کدی W1  و برای کوچک کردن ان از w1 که بستگی به کلمه w حروف بزرگ یا کوچک (اگر اشتباه نکنم) است

کلا در ویندوز بعد از چاپ کاغذ را اجکت می کند   :متفکر:

----------


## rezaTavak

سلام

توی ویندوز چون همه چیزها را ویندوز چک میکند شما به طور مستقیم نمیتوانید از پورتهای LPT استفاده کنید. و اگر استفاده هم بکنید اسپلر چاپ واسطه است. من این موضوع را امتحان کرده ام.

----------


## reza_z

در مورد اجکت نکردن کاغذ بعد از چاپ هم راهنمایی فرمایید

----------


## habdolah

در دستور رپورت گزینه NoEject  را بکار ببر.

----------


## rezamim

سلام
میخواستم بدانم کسی راجع به امکان پرینت کردن گزارشات با فونتهایDraft  اطلاعی دارد؟ آیا اینکار برای فونتهای فارسی امکان پذیر است؟ در فونتهای انگلیسی اینکار با گذشتن از درایور چاپگر امکانپذیر است ولی اگر اینکار را با فونتهای فارسی انجام دهیم مسلم است که کاراکترهای فارسی چاپ نمیشوند
از راهنماپی شما متشکرم

----------


## rezaTavak

مسلما منظور شما DOs است و جواب بله است به شرطی که اون فونت تعریف شده باشه من دیده ام.

----------


## reza_z

کسی نمی خواد جواب منو بده ؟؟؟؟
در باره اجکت نکردن کاغذ بعد از اتمام چاپ 
  :?:

----------


## reza1357

> میخواستم بدانم کسی راجع به امکان پرینت کردن گزارشات با فونتهایDraft اطلاعی دارد؟ آیا اینکار برای فونتهای فارسی امکان پذیر است؟ در فونتهای انگلیسی اینکار با گذشتن از درایور چاپگر امکانپذیر است ولی اگر اینکار را با فونتهای فارسی انجام دهیم مسلم است که کاراکترهای فارسی چاپ نمیشوند


اگر منظور شما در داس باشد با استفاده از فارسی ساز ایران سیستم این امکان وجود دارد

----------


## rezaTavak

در مورد اجکت کردن اگر بلد بودیم حتما جواب میدادیم.

----------


## rezamim

دوستان عزیز
منظور من در VFP است و نه در Foxpro تحت داس.
در محیط داس اینکار بسیار ساده است

----------


## reza1357

> منظور من در VFP است و نه در Foxpro تحت داس.


فکر نکنم بشه  :متفکر:

----------


## kia1349

البته اگر شما ریپورت را بصورت داینامیک (مثل زمان dos و بدون report designer ) طراحی کنید (یک فایل prg) میتوانید کدهای لازم را به پرینتر ارسال کنید

----------


## rezamim

اینطور هم نمیشود . به محض اینکه از درایور چاپگر عبور کند کار خراب میشود و اگر عبور نکند خرابتر!

----------


## reza_z

با سلا م  به همه دوستان گرامی 

من یه کامپوننت بار کد دارم که باید هنگام ساختن گزارشات به گزارشم اضافه کنم ایا راهی هست که مشکل من در vfp حل کنه ؟
ایا میشه گزارش با ACCESSباشه و تو برنامه vfp از گزارش accessاستفاده کنم ؟
اگر کسی راهی بلده لطفا من را  راهنمایی کنید

----------


## binyaz2003

بهتر است شما با crystall report  کار کنید که هم بتونید از کامپوننت بارکدتون تو کریستال استفاده کنید و از کامپوننت کریستال تو فاکس.
راستی این کامپوننت بارکد چه جوریه ؟چه فرمت هایی رو پشتیبانی میکنه ؟

----------


## binyaz2003

سلام
چطوری یک گزارش با مشخصات زیر رو طراحی کنم و همه فیلدها توی یک جدول هستند
یک فیلد سال داریم یکی هم نوع(کتاب یا مقاله یا ...) یکی هم تعداد یکی هم قیمت 
حالا می خوام بر اساس نوع و سال تعداد و مبلغ کل رو بنویسه برای همه نوع ها به ترتیب مثل زیر
کتاب
تعداد=5 قیمت=100 
نشزیات
تعداد=20 قیمت=50
جمع کل : 1500
البته همه فیلدها هم کاراکترند با group  هم کار کردم نتیجه نگرفتم  :گیج:

----------


## kia1349

راهش همون گروپه
ببین اشکال کارت در کجاست
گروپینگ توی فاکس خیلی خوب عمل میکنه مگر اینکه جداولت طوری طراحی شده باشند که دستور اس کیو ال شما درست کار نکنه
شما اول با دستورات اس کیو ال اطلاعاتتو دسته بندی و گروپینگ بکن و نتیجه اش رو توی یه کرسر یا جدول دیگه بریز هر وقت نتیجه گرفتی اونو بفرست به یه ریپورت

----------


## binyaz2003

سلام
حالا اگر بخوام اینها همه در یک سطر باشن چی؟

----------


## kia1349

باید با یه برنامه اونها رو به شکلی که میخواهی دربیاری 
یه نگاهی به cross tab هم بنداز

----------


## binyaz2003

سلام
یک مشکل من چند تا فیلد کاراکتر دارم که به وسیله val به عدد و بعد در یک محاسبه شرکت میدم و نتیج هاش باید چاپ شه اما مشکل اینه که بعد از ویرگول 3 تا صفر اضافه می کنه که من با تابع int فعلا جلوشو گرفتم اما اگر حاصل محاسبات اعشاری شد چی؟

----------


## javad_hosseiny

1 - برای تنظیم حاشیه چپ در پیش نمایش چاپ و یا خود چاپ در vfp از چه دستوری باید استفاده کرد (set margin to( برای محیط داس جواب می داد و یا استفاده از متغیرهای داخلی خود فاکس پرو ولی در vfp جواب نمی دهد چه باید کرد؟
2 - (برای رفع مشکل خرابی پیش نمایش در محیط vfp7 آیا نیازمند به نصب برنامه خاصی است؟)
با تشکر

----------


## binyaz2003

پیش نمایش خراب هست بله اما در چاپ درست خواهد بود مطمن باشید
خود دست اندرکاران فاکس هم به این موضوع اشاره کردن

----------


## javad_hosseiny

بله در چاپ درست کار می کند ولی من می خواهم که در خود پیش نمایش می خواهم سالم باشد حال آن که در vfp8 درست کار می کند من شنیدم که sp2 مخصوص vfp7 آمده که اینگونه اشکالات در آن رفع شده است.
اما سوال من همچنان بی پاسخ مانده (حاشیه چپ در پیش نمایش چاپ)

----------


## kia1349

تنظیم حاشیه به طراحی ریپورت شما ارتباط داره
vfp7 سرویس پک 2 نداره (هز کی گفته خالی بندی کرده)
از فونتهای فیکس دز طراحی زیپورت خود استفاده کنید(نمونه این فونت را محمد منتظر الظهور) توی سایت گذاشته
2 تا ریپورت طراحی کنید یکی با همین فونت فیکس و یکی با فونتهای دلخواه خودتان
وقتی کاربر خواست پیش نماش را ببیند اون ریپورت طراحی شده با فونت فیکس رو رو صفحه بیارید و دکمه چاپ اونو غیر فعال کنید و وقتی خواست چاپ بگیرد اون یکی ریپورت رو به چاپگر بفرستید

----------


## binyaz2003

> فونتهای فیکس


  :گیج:

----------


## javad_hosseiny

پس برای تغییر حاشیه چپ در چاپ گزارشات چه باید کرد؟ (به صورت پیش فرض 5. اینچ می باشد) با تشکر

----------


## javad_hosseiny

و یا تغییرات دیگری که از طریق pagesetup به هنگام طراحی ریپورت می توانیم بدهیم آیا می توان از طریق برنامه نویسی آن را فعال کرد 
و یا ریپورت خود را در زمینه سایز کاغذهای مختلف (a4,a3,a2,...) عوض کرد (البته از طریق کدنویسی و داخل برنامه و خود حاشیه چپ پیش نمایش چاپ (که همگی از طریق pagesetup) انجام می شود (البته لازم به ذکر است که در مورد تغییر کاغذ از طریق printer seting  در قسمت تنظیمات چاپگر ویندوز این تغییر انجام می شود اما ریپورت فاکس بر روی هر کاغذی باشد کار خود را انجام می دهد و به تنظیم نوع کاغذ چاپگر ویندوز کار ندارد ولی اگر از طریق همین page setup مربوط به فاکس آن را تغییر دهیم این کار انجام می شود خلاصه همه درگیرهای ختم به گزینه pagesetup  می شود ) ایا در این مورد می توانید راهنمای کنید! با تشکر

----------


## binyaz2003

البته قبلا به این سوال هم جواب داده شده
همونطور که میدونید تمام فرمها لیبلها گزارشها و ... همگی یک فایل دیگه با همون نام دارند که خودش یک جدول هست و تمام مشخصات اون رو داره و شما می تونید اون رو باز کرده و تغییرات لازم رو بدید و ببندین و گزارش بگیرین البته در این صورت دیگه باید اون گزارش مورد نظر رو exclude  و همراه برنامه قرار بدین اگر همینجا جستجو کنید اطلاعات کاملی دستگیرتون میشه

----------


## javad_hosseiny

ممنون و متشکر ولی من هنوز پاسخم را راجع به نمایش نادرست در پیش نمایش فاکس 7 (که البته در فاکس 8 اصلاح شده و فقط در محیط پیش نمایش می باشد نه در چاپ) نگرفتم (البته اگر عبارات را بصورت وسط چین  بکنیم حداقل این است که کمتر به حاشیه های اطراف فیلد (خطوط عمودی) برخورد می کند) ولی جواب مناسبی نیست ؟ 
در رابطه با چاپ نادرست (و پیش نمایش درست) در برخی فیلدها (مانند آدرس که دارای کاراکترهای بخصوص مانند خط تیره (-) در وسط عبارات فارسی هست) سبب می شود که از چپ به راست چاپ شود (یعنی براساس آن خط تیره از چپ تراز می شود) آیا می توان در این فیلد چاپی همانند textbox خود فرم از خصلت righttoleft استفاده کرد (خصلت بندی وسط چین ، چپ چین، راست چین جواب نمی دهد)

----------


## javad_hosseiny

البته با تشکر از آقای حیدری کیا (مدیر بخش) ولی فونتهای فیکس در پیش نمایش حالت خوبی ندارند (یعنی به زیبایی قلم های تروتایپ نمی رسد) و ثانیا من چگونه آیتم مربوط به چاپ را غیرفعال کنم و در کل منظورم این است که آیا امکان این است که با کپی کردن برخی از فایلها و فراخوانی آنها بصورت api پیش نمایش را از محیط فاکس 8 به محیط فاکس 7 بیاوریم

----------


## ProgrammingLove

> ... نمایش نادرست در پیش نمایش فاکس 7 (که البته در فاکس 8 اصلاح شده و فقط در محیط پیش نمایش می باشد نه در چاپ) نگرفتم


من این مشکل رو توی فاکس 8 هم دارم و اجباراٌ از فونت عرض ثابت استفاده کردم . شما توی فاکس 8 این مشکل رو ندارید مگه ؟   :گیج:

----------


## binyaz2003

چرا در 8 هم این موضوع درسته اما خیلی ضایع نیست



> در برخی فیلدها (مانند آدرس که دارای کاراکترهای بخصوص مانند خط تیره (-) در وسط عبارات فارسی هست) سبب می شود که از چپ به راست چاپ شود (یعنی براساس آن خط تیره از چپ تراز می شود) آیا می توان در این فیلد چاپی همانند textbox خود فرم از خصلت righttoleft استفاده کرد (خصلت بندی وسط چین ، چپ چین، راست چین جواب نمی دهد)


شما باید از منوی format  گزینه reading order  رو right to left  انتخاب کنید

----------


## naghdi

سلام
دوستان عزیز من یک سوال داشتم.

آیا این امکان وجود داره یک فرم در  هنگامی که active  هست با تمام اطلاعات موجود در فرم و با همام ساختار   با یک title   فرستان روی پرینتر  

یا علی

----------


## rezaTavak

سلام

منظورتون چیه؟ مثال بزنید. منظورتون فرم چاپی است؟ یا فرم ورود اطلاعات؟

----------


## naghdi

سلام
منظور من فرم ورود اطلاعات است.

یعنی یک فرم ساختیم چند textbox طراحی شده اطلاعات هم وارد شده حالا تصمیم دارم این فرم را با تمام اطلاعات وارد شده چاپ کنم.

ممنون

----------


## rezaTavak

سلام

بله

فاکس پرو این قابلیت را نداره اما توی یکی از سایتها یک برنامه هست که تبدیل Scx که همان فرم ورود اطلاعات هست را به Frx امکان پذیر ساخته است. فکر کنم اسمش Scx2frx.zip باشه. الان دقیقا نمیدونم.


اما راه درست این که فرم خروجی هم طراحی بشه.

----------


## binyaz2003

در قسمت دانلود سایت www.vug.org  یک کلاس به اسم obj2bmp  هست که از هر کدام از آبجکتهای رو فرم که بخواید می تونید یک عکس (bmp) گرفته و چاپ کنید :sunglass:

----------


## naghdi

یک فایل پیدا کردم  به نام Scx2prn  یک توضیحاتی داده ولی دقیقا متوجه نشدم آیا فرم را روی پرینتر میفرسته یا نه ؟

میتونید با google  پیدا کنید.

----------


## binyaz2003

همونطور که توضیح داده این برای فاکس داس هست
 شما اون کلاسی رو گفتم پیدا نکردین؟
اون بهترین انتخابه

----------


## naghdi

سلام
بله من اون کلاس رو گرفتم ولی  نتونستم از اون استفاده کنم. 

این  کلاس از کل فرم  bmp   میگریده   یا از یک object  خوب اگر از یک object بگیره بعد مشکل چیدن این bmp ها در کنار هم پیش میاد .

اگر راهی باشه که یک text file  رو بشه به frx تبدیل کرد تا حدودی  مشکل من حل میشه .

یا اگر بشه یک text file را   به یک bmp یا pdf تبدیل کرد  البته به شکل command  خیلی از مشکلات حل میشه . مخصوصا pdf چون امکان ویرایش اون هم تا حدودی به شکل command  وجود داره.

یا علی

----------


## binyaz2003

من استفاده کردم و مشکلی نداشتم از کل فرم هم عکس می گیره
در ضمن اگر بخواهید به pdf  تبدیل کنید باید از ابزارها و برنامه های جانبی استفاده کنید
اگر تو سایتهای www.universalthread.com  و www.vfug.org  سر زده باشید حتما چند تایی رو می بینید که مجانی هم نیستند

----------


## binyaz2003

سلام
اینم لینک یک فوروم فرانسوی که با API  این مشکل رو حل کرده
http://www.atoutfox.org/articles.asp...;ID=0000000124
البته من فرانسه بلد نیستم . لینکشو تو www.universalthread.com پیدا کردم . البته در سایت www.news2news.com هم موجود است اما با پول
 :sunglass:

----------


## naghdi

سلام
یک سوال داشتم
چرا وقتی فایل exe  میسازیم و اجرا میکنیم در قسمت report  طراحی شده از reportoutput_  اشکال میگیره و پیش نمایش report  دیده نمیشه.
ممنون

----------


## javad_hosseiny

1 - می خواستم در دستور preiveiw گزارش چاپی در toolbar‌آیکون مربوط به چاپ نمایش داده نشود 
2 - کلید ctrl+p به هنگام نمایش priview‌فعال باشد (یا به نحوی دیگر جهت چاپ صفحه ای خاص از گزارش چاپی (مثلا صفحه 10 از یک گزارش 40 صفحه ای)
3 - چگونه در priview یک فایل را نمایش دهیم و همانجا برای چاپ (در همان پیش نمایش چاپ) برای چاپ فایل ریپورت دیگری را به چاپگر بفرستیم

----------


## binyaz2003

> چرا وقتی فایل exe میسازیم و اجرا میکنیم در قسمت report طراحی شده از reportoutput_ اشکال میگیره و پیش نمایش report دیده نمیشه.


همچین مشکلی نداشتم تا حالا



> - می خواستم در دستور preiveiw گزارش چاپی در toolbar‌آیکون مربوط به چاپ نمایش داده نشود


شما باید تولبار preview رو ویرایش کنید و همراه برنامه فایلهای dbf که resource برنامه هستد را کپی کنید

----------


## naderigh

با سلام
من به یک مشکل جالب در report بر خوردم در ریپورت یک گروپ تعریف کرده ام و جمع زده میشود که مشکلی ندارد ولی در پایان صفحه جمع صفحه شامل( جمع صفحه جاری + اولین ردیف از صفحه بعد می اید)

----------


## Mohammad_Mnt

شما توی ReportDesigner توی قسمت گروه بندی باید تیک NewPage رو بردارین

----------


## naderigh

اتفاقا تیک ندارد چون جمع را فقط در یک خط میخواهم و در هرصفحه چند سطر که شامل چند گروپ باشد را نیاز دارم  :موفق:

----------


## binyaz2003

سلام
من میخوام شماره ردیف در گزارشام بزارم برای این کار یک فیلد درست می کنم و recno() رو مقدارش قرار میدم یا یک variable میسازم که یکی یکی اضافه بشه اما چون از گروپ استفاده میکنم و فقط اطلاعات گروپ رو نمایش میدم شماره سط اشتباه در میاد مثلا وقتی 3 تا رکورد رو یک گروه میکنه شماره سط رو 3 میزنه در حالیکه باید یک باشه!!!

----------


## Mohammad_Mnt

احتیاجی به Recno() نیست . توی همون گزارش یه متغیر درست کنید و قسمت Count را تیک بزنین ( همون جا که Sum و Average و .. هست )

----------


## binyaz2003

> یا یک variable میسازم که یکی یکی اضافه بشه


این و نوشتم بازم کاری رو که گفتین امتحان کردم اما شاید منظورم رو درست نگفتم من در واقع همه فیلدها رو در قسمت footer گروپ میزارم و شماره ردیف هم همونجا

----------


## kia1349

روش کارت ایراد داره
ردیف باید در detail باشه و تنظیمات مزبوط به ریست شدن اون هم انجام بشه اونوقت دیگه کاری به این نداره که ریپورت شما ساده است یا گروپ داره و یا ......

----------


## binyaz2003

ریپورت هام این شکلی هستند راه حل؟

----------


## kia1349

دلیل اینکه detail band رو خالی گذاشته ای چیه

----------


## Mohammad_Mnt

یه سوال هم من بپرسم ؟
موقع پیش نمایش ( Preview ) حروق کش نمی آد ؟

----------


## naghdi

سلام
 من می خواهم به تعداد یک متغیر که از قبل دریافت شده  همام متغیر یا متغیر دیگری را در report
طراحی و چاپ کنم 
تعداد تکرار متغیر در چاپ  از 1 الی  ... باشد.
ممنونم

----------


## binyaz2003

> دلیل اینکه detail band رو خالی گذاشته ای چیه


چون فیلدهای تکراری دارم و نباید چاپ شوند



> موقع پیش نمایش ( Preview ) حروق کش نمی آد ؟


کش نمی اد اما به هم میریزه اگر از tahoma استفاده کنم اما اگر از courier new استفاده کنم از جاشون حم نمیخورند

----------


## naderigh

با سلام
من در یک گزارش از فیلد memo استفاده کرده ام حال مشکلم این است که فاصله خطوط منظم نیست یعنی فاصله خطوط یک پاراگراف کمتر از فاصله بین دو پارگراف میباشد در صورتی که در موقع ثبت فاصله یکنواخت است

----------


## naderigh

اقایان لطفا :kaf:

----------


## rezaTavak

سلام

منظورتون را دقیقتر بگید. من منظورتون را نفهمیدم.

----------


## naderigh

من بسیار متشکرم از عنایت شما
ببینید همانطوری که گفتم در ریپورت از فیلد memo بهره بردم و همانطوری که مستحضرید فیلد memo ممکن است چندین پارگراف و هر پارگراف نیز ممکن چند خط  باشد با توجه به گزارش فاصله خطوط یک پاراگراف کمتر است از فاصله اخرین خط یک پارگراف با اولین خط از پاراگراف بعدی
یا بعبارتی دیگر
شما در فیلد memo جمله ای را ثیت نموده اید و میخواهید جمله بعدی را ثبت نماپید حال با enter خط و سطر  را جداد میکیند منظورم فاصله خطوط جمله اول کمتر است از اخرین خط جمله اول با اولین خط از جمله دوم

----------


## naderigh

من از  لطف شما کمال استفاده را ببرم اگر زحمتی نیست این جدول و ریپورت و... یک نگاهی بفرمائید و سپس به من بگید که اشکالم در کجاست
جهت اطلاع جمع پایان صفه اورده شده  که در pdf  نیز مشهود است جمه پایان صفحه جمع همان صفحه است + اولین ردیف از صفحه بعد :موفق:

----------


## rezamim

بنظر من اشکال در این است که شما ردیف مربوط به جمع کل را در page footer قرار   داده اید. اگر یک Group دیگر ایجاد کنید و این سطر را در آن قرار دهید مشکلتان حل میشود . این اشکال به این دلیل است که اندازه page footer باید ثابت بماند و به همین دلیل کمبود آنرا با امتداد دادن خط عمودی و در نتیجه عدم یکسان بودن ردیف آخر جبران میکند.

----------


## naderigh

با تشکر از عنایت شما
هدف من از بازکردن بیش از حد page footer کوچک نمودن طول صفحه بوده ولی شما امتحان نماپید اگر که فقط یک خط باشد مشکل همچنان هست
در مورد باز کردن group  جدید منظورتان چه گروپی است چون با summary band نیز همین مشکل هست

----------


## rezamim

دوست عزیز
بنظر من نحوه درست کردن جدول شما هم صحیح نیست . البته دوستان دیگر هم نظر بدهند. ولی شما برای ایجاد خطوط عمودی از یک خط که تمامی نواحی را میپیماید استفاده کرده اید.
من همان گزارش شما را بازسازی کرده ام . ببینید این بهتر نیست؟

----------


## naderigh

با تشکر
من جمع پایان هر صفحه را میخواهم :موفق:

----------


## naderigh

اقایان مدد :sorry:

----------


## rezaTavak

سلام

در قسمت Calculate  /Rest به جای End of report از End of page استفاده کنید.

----------


## rahro

چگونه میشه از یک آرایه در یک ریپورت استفاده کرده آیا فقط باید آرایه را به صورت public تعریف کرد؟

----------


## rezaTavak

سلام

میشه در قسمت Variable هم تعریف کرد.


اما هدفتون چیه از آرایه؟

----------


## rahro

> سلام
> 
> میشه در قسمت Variable هم تعریف کرد.
> 
> 
> اما هدفتون چیه از آرایه؟


سلام وقت شما بخیر
برنامه یک پروژه پرسنلیست. در فرم ثبت مرخصی روزانه من مجبورم اطلاعات را ازسه  بانک ( 1- بانک ثبت مشخصات 2- بانک ثبت واحدهای سازمانی 3- بانک کارت مرخصی) استخراج کنم و در نهایت بعد از گرفتن مدت مرخصی جدید و ثبت, امکان چاپ فرم مرخصی روزانه را فراهم کنم در فرم مرخصی روزانه هم باید دقیقا مشخصات دقیق پرسنل و نام واحد سازمانی و اطلاعات دقیق مرخصی استفاده شده و مانده و ذخیره مرخصی درج گردد .!!بنابراین میخواهم اطلاعات را به یک ریپورت بفرستم برای اولین تجربه !

----------


## kia1349

سعی کنید از امکانات گزارشگیری در فاکس 9 استفاده کنید
وظیفه مولتی دیتیل باند همین است

----------


## rahro

سلام 
من هر چه سعی کردم نتوانستم اعداد ریپورت خود را با پرینتر - فارسی چاپ کنم اشکال کار کجاست خواهش میکنم راهنمایم کنید

----------


## javad_hosseiny

اگر منظورتان انگلیسی چاپ شدن اعداد است اشکال از فونت شما است برای این کار باید شما فونتتان را دست کاری کنید و یا اینکه از فونتهای که دارای قلم اعداد فارسی هستند استفاده کنید (مانند فونت های پارسا 2001)  والبته فکر کنم دیده بودم یکی از دوستان در این سایت برای قلم tahoma نیز همچین کار کرده بود

----------


## rahro

سلام 
متشکرم !

----------


## reza_z

سلام به همه دوستان
اگه پروژه اجرایی exe شده باشه میتونیم به صورت runtime تغییراتی در page setup گزارشم  به وجود آورم؟؟
در صورت امکان راهنمایی فرمایید

----------


## m_shafizadh

reza_z  جان 
در dos  در دستور report from  ***  دستور NoEject را بگذارید 

repo form*** to file &txtfile nocon NOEJECT

----------


## m_shafizadh

reza_z جان  

در صورتی که فایل EXE  شده باشه فکر نمیکنم بتوان تغییراتی انجام داد مگر اینکه با برنامه REFOX  برنامه باز کنید و پس از تغییرات دوباره EXE کنید

----------


## پدرخوانده

مشکلی دارم بدین صورت که می خواهم محتوی یک editbox را به چاپگر بفرستم (مثلا به نام notepad.edit1.value) ولی وقتی آن را در ریپورت خودم صدا می زنم پیغام عدم شناسایی (نشناختن) را می دهد ، همین مشکل را نیز به هنگام فراخوانی این object در فرم های دیگر نیز دارم . (از دستور Public خواستم استفاده کنم نشد (پیغام داد که فقط برای متغیرها و آرایه های مورداستفاده قرار می گیرد) ) 
(در پاسکال  یا دلفی معمولا وقتی نام فرم را ما در ابتدای فرم دیگر بصورت یونیت (با دستور uses) صدا می زدیم امکان فراخوانی کلیه محتویات آن فرم را با پیشوند نام فرم برایمان فراهم می کرد . آیا در ویژوال فاکس چنین امکانی هست؟!

----------


## rezaTavak

سلام

البته!

باید فرم را به صورت Public تعریف کنید مثلا در Init بنویسید:

frmNotePad = THIS

حالا اگر frmNotePad یک Public باشد می توانید به فرم هرجا دسترسی داشته باشید.

----------


## پدرخوانده

با تشکر 
و مشکلی دیگر
در قسمت طراحی صفحات چاپی به علت ارتباط مستقیم با دیتابیس حتما باید جدولی باز باشد تا صفحه گزارش شما چاپ شود (و به تعداد رکورد موردنظر آن را تکرار می کند) 
خوب حالا اگر ما گزارش چاپی داشتیم که مثلا قرار بود آرایه ای را چاپ کند و یا اینکه محتوی یک object را چاپ کند (یعنی به جدول ارتباطی نداشته باشد) چه باید کرد؟ (اگر با select ناحیه ای که جدولی باز نیست باز کنیم اصلا گزارش چاپی عمل نمی کند) به عنوان راه حل موقت من یک جدول موقت  مثلا مثل 
CREATE CURSOR temp_rec(rec n(1)) 
ایجاد کردم و یک رکورد خالی ایجاد کردم تا گزارش دلخواه مرا داد 
حالا سوال اینکه بدون اینکه بخواهیم جدولی را باز کنیم آیا می توان گزارش چاپی گرفت (چه ریپورت و چه لیبل؟)

----------


## kia1349

اگر از ریپورت داینامیک با دستورات say @ استفاده کنید میشه ولی این روش سنخیتی با کاری که شما میخواهید بکنید
نداره و لزوما از همین روشی باید استفاده کنید که خودتان ذکر کردید

----------


## kia1349

راستی یادم رفت بگم این بخش رو حتما مطالعه کن چون ورژن 9 یه امکانات جالبی داره که ممکنه بدردت بخوره
http://msdn.microsoft.com/vfoxpro/de...P9Reports2.asp

----------


## rahro

سلام 
آیا در ویژوال فاکس میشه از یک بانک بنا به سلیقه کاربر در هر وقت گزارشی خاص را چاپ کرد
مثلا فرض کنید بانک ما شامل مشخصات کامل یک فرد باشه و کاربر بخواهد با تیک زدن بعضی از انها تنها مواد دلخواه خود را چاپ کند عملی مثل ویزارد!؟ یادتان باشد میخواهم به صورت یک برنامه ارائه دهم

----------


## rezaTavak

سلام

بله.


اما این کار به کار زیادی احتیاج داره.



من برای اینکار یک برنامه نوشته ام که از SELECT SQL استفاده میکنه و QuikReport میسازه.

----------


## javad_hosseiny

بله البته یک مورد راحتش را نیز من نوشتم بدین صورت که لیستی از فیلدهای جدول فعال را نمایش داده و فیلدهای مربوطه برای چاپ را شما انتخاب می کنید (مشابه حالت ویزارد خود ریپورت فاکس) و سپس با استفاده از دستور CREATE REPORT کلیه فیلدهای انتخاب شده را بصورت ویزارد برای چاپ آماده می کند نکته کار این است که خوب طبیعتا نام فیلدها در تیتر ستون ها نمایش داده می شود (در خود نمایش فیلدها در فرم و در انتخاب فیلدها توانسته ام با آرایه لیستی از نامهای فارسی به جای نام فیلد بگذارم (تا در حالت انتخاب فیلد فارسی (نام فیلدها) باشد) ولی در ریپورت سازی نشد (یعنی اینکه در خود ریپورت نام فیلدها (که خوب طبیعتا انگلیسی هستند) انتخاب می شود) (البته اگر بصورت SELECT SQL نیز استفاده شود نهایتا در گزینش فیلدها بصورت عبارت فارسی مشکل پیدا می شود (برخی از حروف فارسی را به عنوان نام فیلد قبول نمی کند))

و البته مشابه این کار را نیز برای ایندکس سازی نیز گذاشته ام (یعنی انتخاب فیلد جهت مرتب سازی اطلاعات یک جدول ولی آنجا که دیگری نیاز به خروجی قابل نمایش نبود چنین مشکلی نیست) 

آقای توکل اگر در ریپورت سازی شما این مشکل حل شده خوشحال میشم توضیح دهید؟!

----------


## rezaTavak

سلام

انشاء الله من این برنامه را برای شما آماده میکنم و Upload  میکنم. تا همه عزیزان روی آن کار کنند. فقط فعلا درگیر ساخت شرط هستم.

----------


## binyaz2003

آقای حسینی فایل SCT  رو نزاشتین!

----------


## javad_hosseiny

امان از عجله 
به هر حال می بخشید لینک قبلی تصحیح شد

----------


## rahro

سلام 
در ریپورت خود خواستم یک عبارت 100 کارکتری را برای جم جور کردن گزارش در 5 سطر قرار
دهم دراین عبارت کارکتری همیشه یک تاریخ در شرح وجود دارد که این تاریخ در نمایش درست دیده 
ولی در چاپ تمام شرح مربوطه را به هم میریزد فقط در صورتی که تاریخ را در بین شرح به این 
صورت بنویسم مشکل حل میشود 01_12_84 آیا این مشکل راه حلی دارد.

----------


## sassan

با سلام خدمت دوستان عزیز ... خیلی خوشحالم که این سایت را پیدا کردم و میتوانم به جمع شما بپیوندم ... مخصوصا از نظرات اساتیدی چون آقایان توکلی - کیا و حسینی بسیار لذت بردم . امیدوارم که ما را نیز در جمع خود قبول نمائید .
با این مقدمه سئوالی از دوستان داشتم که اگر بتوانند کمک کنند منون می شوم .
من برنامه های مختلفی را نوشته ام و تا کنون چند مورد پیش آمده که کاربران می خواهند فرم های گزارششان را بصورت برنامه ای در اختیارشان قرار گیرد تا با جابجایی object های مختلف توسط خود کاربر ... گزارش مورد نظر را آماده نمایند ... بطور مثال چاپ اطلاعات یک چک ... که با تغییر نوع دسته چک احتمال جابجایی objectها نیز بوجود می آید ... آیا می توان Report های تهیه شده را بدون اینکه فاکس پرو (محیط محاوره ای آن را )را لود کنیم در برنامه بصورت یک فرم در دسترس کاربر قرار داده و پس از تغییرات توسط کاربر نیز ذخیره و قابل اجرا گردد  ؟
امیدوارم که توانسته باشم منظورم را رسانده باشم و منتظر جواب شما دوستان هستم .

----------


## binyaz2003

بله منظور رو کامل رساندد
من این کار رو تجربه کردم همانطور که می دانید فرم ها و گزارشات و لیبیل ها و ... همه یک بانک اطلاعاتی هستند که شما می توانید با دستور ساده use از آنها مثل یک جدول استفاده کنید هر شی یک رکورد رو به خودش اختصاص میده و شما می توانید مشخصات هر شی را عوض کنید برای اینتر فیس هم می توانید یک فرم ایجاد و اشیا گزارش را شبیه سازی کنید و در آخر جدول را آپدیت کنید البنه در اینصورت دیگه نمی توانید گزارشها را در برنامه include کنید در حالت ایده عال می توانید یک کلاس بنویسید که فایل گزارش را باز کرده اشیا و محل آنها را تشخیص و بر روی فرم بسازد و در آخر نیز مشخصات را آپدیت کند.
در ضمن خوش آمدید

----------


## sassan

*جناب آقای بی نیاز*   

با سلام و تشکر فراوان ... کمک بسیار زیادی به من کردید ... گو اینکه قضیه قدری مشکل است ( منظور خواندن رکوردها و ایجاد یک اینترفیس بدین منظور می باشد ) ولی ایده بسیار عالی بود .   :تشویق:  

کسی از دوستان هست که در این رابطه کار کرده باشد ؟  :لبخندساده آخه ما دیگه برای این کارا پیر شدیم .

                                                                                     با تشکر مجدد

----------


## rezaTavak

> سلام 
> در ریپورت خود خواستم یک عبارت 100 کارکتری را برای جم جور کردن گزارش در 5 سطر قرار
> دهم دراین عبارت کارکتری همیشه یک تاریخ در شرح وجود دارد که این تاریخ در نمایش درست دیده 
> ولی در چاپ تمام شرح مربوطه را به هم میریزد فقط در صورتی که تاریخ را در بین شرح به این 
> صورت بنویسم مشکل حل میشود 01_12_84 آیا این مشکل راه حلی دارد.



سلام

به دلیل اینکه / و - یک کاراکتر انگلیسی است و در RTL فکر میشه که باید چپ به راست باشه. و در ضمن _ یک جدا کننده نیست اما اون دوتا جدا کننده محسوب میشه و RTL به اشتباه می افته. 

با استفاده از فاصله این را امتحان کن شاید بشه 01   /  12   /   84


یعنی بین اسلش ها فاصله بذار.

اگه نشد یک کد بود که الان یادم نیست برات میذارم تا عبارات فاسی درست بشه.

----------


## binyaz2003

البته من در چند تا برنامه خارجی که اتفاقا با فاکس بود دیدم که پنجره طراحی ریپوزت را باز می کنند برای کاربر یعنی Modify Report

----------


## sassan

:متعجب:  
فکر نمیکنم ... بدون محیط محاوره ای فاکس بشه این کار را کرد .

----------


## rezaTavak

سلام

چرا میشه.

----------


## sassan

:لبخندساده

----------


## rahro

جناب تاوک سلام 
دقیقا" گفته شد درست بود موقعی که تاریخ را با فاصله چاپ کنم مشکل حل میشه ولی این یک راه کار منطقی نیست و نمیشه به کاربر بگوئیم به این روش عمل کند شما راه کار خاصی ندارید؟
فکر کنم حرف از یک فرمول خاص زدید میشه راهنمایی کنید.
متشکرم

----------


## rezaTavak

سلام

من فکر کردم قسمتی از برنامه نویسی شما است اجازه دهید کمی فکر کنم.

----------


## binyaz2003

شما حتما عبارت مذکو را از ترکیب چند عبارت می سازید پس این کار را (فاصله گزاری) به یک تابع بسپارید و تابع را با تاریخ بعنوان پارامتر صدا بزنید.

----------


## rahro

نه جناب بی نیاز:
من فقط تکست باکس مریوطه را به چند سطر ( با کشیدن طول تکست باکس) تقسیم کردم همین وبس!؟

----------


## rezaTavak

سلام

رویداد LoatFocus را طوری تنظیم کنید که اگر به تاریخ رسید آنرا درست کند.

----------


## rahro

سلام جناب تاوک 
منظور شما اینه که حتما باید تاریخ با فاصله نوشته بشه تا در چاپ درست در بیاد!!!! یعنی هیچ راه حل دیگه ای نیست؟؟؟؟؟!

----------


## rezaTavak

سلام

خب باید با مشکلات نرم افزار کنار اومد یا اون را خرید و از میکروسافت خواست که این مشکل را حل کنه.

----------


## rahro

به نظر شما شبیه ترین حروف بین حروف به این علامت / چیه که جایگزینش کنم؟
توی کدهای اسکی آیا چینین حرفی وجود دارد؟
آیا میشه با یک نرم فزار طراحی فونت این مشکل رو حل کرد مثلا یک کد غیر استفاده رو تغییر داد؟؟

----------


## binyaz2003

Font Creator

----------


## rahro

جناب بی نیاز سلام منظورتان را نفهمیدم!؟
راستی دوستان:
چه طور میشه گنترل پرینتر رو در ویژوال در دست گرفت . جناب حسینی از توابع خطا استفاده کرده بودند ولی برای من که کار نکرد؟! منظور اینه مثل محیط داس اگر چاپگر روشن نبود به کاربر بگوید که چاپگر را اماده کند!؟
از توابع محیط داس هم استفاده کردم جواب نداد

----------


## پدرخوانده

من نسبت به پیش نمایش محیط چاپ در ویژوال مشکل دارم بدین صورت که تا هنگامی که چاپگری نصب نشده عملیات پیش نمایش چاپ به درستی کار می کند ولی پس از نصب هر گونه چاپگری فونت فارسی در حالت راست چین بیش از حد راست رفته (از کادر خارج شده) و باعث نازیبایی و عدم خواندن اطلاعات می شود
(و البته عدم راست چین شدن (از راست به چپ نوشتن مطالب) نیز به این نکته اضافه شود) 
برای این منظور چه باید کرد؟
(البته با جستجو مطالب آقای توکل را خواندم که برنامه ای جهت پیش نمایش چاپ ارائه داده بودند ولی متاسفانه لینک دان لود آن را بدست نیاوردم اگر لینک آپلود آن را مشخص کنند ممنون می شوم.
و در جایی آقای حیدری کیا اشاره به فونت با عرض ثابت کردن که جهت پیش نمایش از آن استفاده کرده و جهت چاپ از فونت های تروتایپ ولی متاسفانه مجددا بنده لینک دان لود آن را پیدا نکردم؟ 
(درضمن طبق صحبت آقای بی نیاز که گفته اند فونت courier new مشکل ندارد (جهت عدم بهم ریختن مطالب) چک کردم هنوز مشکل باقی است، (و حتی فونت جدیدی که یکی از دوستان  نیز گذاشته بودند نیز دان لود کردم (به همین نام فونت ) با اون فونت هم مشکل دارد)
و درضمن چگونه در tooltip مربوط در حالت پیش نمایش چاپ می توان بر آیکون چاپ کنترل کرد (یعنی اینکه یا disable شود و یا درصورت کلیک فایل ریپورت دیگری به پرینتر ارسال شود)
و در کل چرا مطالب فارسی با اینکه در تنظیمات گزینه right-to-left ست شده باز هم در خواندن مطالبی که دارای کاراکترهای خاص مانند : ، - هستند با مشکل مواجه هست (مثل آدرس) )

و نهایتا دوستان برای حل مشکل پیش نمایش چاپ در برنامه هاییشان از چه تکنیکی استفاده می کنند 
و آیا این مشکل در تمامی نسخه های ویژوال فاکس هست یا نه؟ (و آیا امید تصحیح آن در نسخه های آینده هست یا خیر؟)

----------


## rahro

> جناب بی نیاز سلام منظورتان را نفهمیدم!؟
> راستی دوستان:
> چه طور میشه کنترل پرینتر رو در ویژوال در دست گرفت . جناب حسینی از توابع خطا استفاده کرده بودند ولی برای من که کار نکرد؟! منظور اینه مثل محیط داس اگر چاپگر روشن نبود به کاربر بگوید که چاپگر را اماده کند!؟
> از توابع محیط داس هم استفاده کردم جواب نداد


هیچکس نمی تواند در این مورد مرا راهنمایی کند

----------


## rezaTavak

سلام

چون اینکار بر عهده ویندوز است شما نمی بایست کاری کنید.

----------


## binyaz2003

با سلام
شما 2 راه دارید اگر دقت کرده باشید استفاده از فونت courier new به جای tahoma تفاوت را کاملا احساس می کند 
راه دیگه استفاده از نسخه 9 ویژوال فاکس 9 و شی reportlistener هست که بدون هیچ مشکلی گزارشات شما را رندر می کند اما مشکل آن هم کم شدن سرعت است که در یک رایانه با پنتیوم 2 یا 3 و 10-20 صفحه گزارش به چشم می خورد
در مورد قضیه right to left باید مطالب آقای توکل را کامل بخوانید تا متوجه بشید

----------


## rezaTavak

سلام

یکی از دلاپلی که من از نگارش ۷ به بالا استفاده نمی کنم اینه که در ویندوز ۹۸ درست اینها شاید کار نکنه و من نمی تونم کاربر را مجبور به استفاده از سیستم عامل بخصوصی بکنم.

----------


## javad_hosseiny

خوب چه اشکالی در استفاده از ویژوال 8 و 9 در محیط ویندوز 98 هست (الان خروجی برنامه های بنده در هر دو محیط کار می کند) 
اگر منظورتون بحث پیش نمایش چاپ است نیز برتری 7 به 9 در چیست؟ (در هر دو یا در تمامی نسخه های با فونت های فارسی و راست چین کردن مطلب مشکل دارد)
به عنوان پیشنهاد بررسی شود آیا امکان این است که با استفاده از کدهای api به هنگام پیش نمایش عملیات چاپ کلیه چاپگرهای نصب شده حذف گردند (یا اصطلاحا disable)  شوند وبعد از پیش نمایش بازگردانی گردند (چون توجه دارید در حالتی که چاپگر نصب نیست ، مشکلی در پیش نمایش نیست) و یا اینکه در درایوهای چاپگر تغییر و تحولی داد .

----------


## rezaTavak

سلام

یک نگاهی به اینها بکنید:

System Requirements
To use Microsoft Visual FoxPro 7.0, you need:

Minimum Requirements 
Processor  PC with Pentium-class processor

Operating System  Microsoft Windows 98 or later 
Microsoft Windows NT 4.0 with Service Pack 6 or later 
Windows 2000 with Service Pack 1 or later 

Memory  64 megabytes (MB) of RAM minimum; 128 MB or higher recommended

Hard Disk  115 MB of available hard-disk space for typical installation; 200 MB maximum, 50 MB of additional hard-disk space for Microsoft Visual FoxPro 7.0 Windows Component Update 
Additional hard-disk space required for a typical install of the following options: 44 MB for Microsoft SQL Server 2000 Desktop Engine; 60 MB for MSDN Library, 1.8 GB maximum. Actual requirements will vary based on your system configuration and the features you choose to install

Drive  CD-ROM drive

Display  Super VGA 800 X 600 or higher-resolution monitor with 256 colors

Mouse  Microsoft Mouse or compatible pointing device 



فاکس 9


Computer: PC with a Pentium class processor.


Peripherals: Mouse or pointing device


Memory: 64 MB RAM (128 MB or higher recommended)


Hard disk space: 


Visual FoxPro Prerequisites: 20 MB


Visual FoxPro Typical Install: 165 MB


Visual FoxPro Maximum Install: 165 MB


Video: 800 x 600 resolution, 256 colors (High color 16-bit recommended)


Operating system: Developing applications with Visual FoxPro is supported only on Microsoft Windows 2000 Service Pack 3 or later, Windows XP and Windows Server 2003. You can create and distribute run-time applications for Windows 98, Windows Me, Windows 2000 Service Pack 3 or later, Windows XP and Windows Server 2003.


یعنی برنامه نوشته شده با فاکس 9 در 98 اجرا میشود اما خود فاکس در 98 اجرا نمیشود! 



البته چون من واقعا نمیدانم که کسی که برنامه من را استفاده میکند از چه سیستم عاملی استفاده میکند و برنامه پیش نمایشی که من ساخته ام روی ورژن 9 کار نکرد مجبورم که از نگارش 7 استفاده کنم.


البته اگر مشکل پیش نمایش حل شده باشد من از نگارش 9 استفاده خواهم کرد.

----------


## rahro

سلام دوستان 
ریپورتی که من درست کرده ام بر روی چاپگر اپسون ال کیو  به خوبی جواب میدهد ولی به محض نصب چاپگر لیزری خطای سیستماتیک ویندوز را صادر میکند . جالب اینجاست سایر گزارشات من درستند و تنها یک نمونه هست که این مشکل رو داره .
به نظر شما مشکل کار کجاست

----------


## naderigh

دوست عزیز احتمالا شما نوع کاغذ را از a4  بیشتر گرفته اید

----------


## rahro

سلام 
نه توی پروپرتیس چک کردم درست بود

----------


## rezaTavak

سلام

خطاش چیه؟ یعنی پرینتر آماده نیست؟

----------


## binyaz2003

قابل توجه آقای رهرو که می خواستناز یک آرایه ریپورت بگیرن!
در قسمت دانلود سایت www.universalthread.com کلاسی به همین منظور آپلود شده البته من امتحانش نکردم

----------


## rahro

سلام 
جناب تاوک: خیر خطای سیستماتیک ویندوز میده که میخواد این گزارش را به میکروسافت گزارش بده یا خیر 
جناب بی نیاز: از لطف شما بسیار متشکرم

----------


## kia1349

تست کنید این همون برنامه پرینت آرایه است

----------


## binyaz2003

فکر کنم این فوروم جدید مشکلاتی داره
تعداد بازدیدهای یک موضوع رو نمیزنه
تعداد دانلود ها رو هم
ایمیل ها هم بعضی هاشون نمیرسه
این کلاس هم آرایه رو به کرسر تبدیل می کنه

----------


## سعید اسلامی

میشه درخصوص reportlistener بصورت کاملتر توضیح بدهید که به چه صورت میشود استفاده کرد

----------


## binyaz2003

http://msdn.microsoft.com/vfoxpro/de...P9Reports2.asp

----------


## kia1349

دوستان یه سری به این سایت بزنید ببینید میتونید از این کلاس استفاده کنید
http://www.sweetpotatosoftware.com/S...569e2a3a3.aspx

----------


## binyaz2003

چند وقت پیش امتحانش کردم کار میکنه اما پرویوش باز هم برای فارسی مشکل داره اما رندرش مثل بقیه نه

----------


## kia1349

آره خوبه ولی چون میشه با ریفاکس بازش کرد خیلی بدرد میخوره منم امتحانش کردم رندر گزارش و گرافیکش خوبه ولی هنوز فارسی رو باهاش امتحان نکردم

----------


## پدرخوانده

می خواهم اطلاعات یک جدول که شاملی یک سری فیلد هست را در اول صفحه باشد و یک فیلد memo که دارای متنی بعضا شامل چندین صفحه باشد در صفحات بعدی باشد
بدین صورت که هر کجا صفحه که فیلد متن تمام شد شروع چاپ در سر صفحه بعد باشد 
پیشنهاد مناسب استفاده از گروپ می باشد (چطور کدنویسی کنم که گروپ وابسته به شماره رکورد باشد یعنی هر رکورد در یک مجموعه گروپ باشد تا اطلاعات فیلدها سوای متن در اول صفحه باشد) (و شروع کار گروپ در ابتدای صفحه باشد)
و دیگر اینکه اندازه صفحه برای تمامی چاپگرها ثابت باشد (اندازه a5 ) (بعضی چاپگرها اندازه a5 را در دیفالت خود ندارند) 
و بدنبال کلاس یا برنامه ایی جهت ادیت این ریپورت خود می خواهم (آقای بی نیاز اشاره کرده بودند که جدول ریپورت را بصورت external کنار فایل اجرایی قرار دهیم) ولی بدنبال برنامه ایی جهت مدیریت این جدول هستم (تبدیل به محیط طراحی ریپورت) چندین نمونه دوستان معرفی کردند ولی متاسفانه من نتونستم مورد مناسبی برای این منظور پیدا کنم

----------


## binyaz2003

برای گروپ گروه بندی رو بر اساسشماره رکورد بزارید 
اینم برای کنترل اندازه و بقیه چیزها
http://www.ml-consult.demon.co.uk/foxst-12.htm
در قسمت دانلود سایت www.universalthread.com یا جستجوی printer کلی ابزار رو نشان میدهد

----------


## پدرخوانده

با تشکر از پاسخ شما
در رابطه با صفحه راهنمایی شده جهت کنترل اندازه و ... ممنون ولیکن نیازمند وجود فایل بصورت EXTERNAL در کنار برنامه هست و .... 
(در کل حالت درخواستی بنده فکر کنم ساده باشد وآن اینکه این اندازه بر روی چاپگرهای متفاوت ثابت باشد یعنی اگر چاپگر فرم A5 ندارد بیاید در فرم A4 آن را بصورت وسط چین چاپ کند) 
و یک نکته دیگر اینکه با استفاده از SYS(1037,0)و می توان نوع چاپگر و کاغذ را کاربر پرسید ولیکن این تنظیم توسط ریپورت طراحی شده توسط ما (و یا ریپورت لیستنر) توجه نمیشود و همان کاغذ طراحی شده در ریپورت را می آورد (البته تنظیم خود پرینتر را در ریپورت ذخیره نکردم که مخصوص اون پرینتر باشه) و فکر کنم باید رکوردهای جدول ریپورت را تغییر داد (به هنگام تغییر کاغذ و چاپگر توسط کاربر) ولیکن به چه نحوه این تغییر در جدول ذخیره شود را نمی دانم؟
و باز تشکر نسبت به پاسختان

----------


## binyaz2003

اگر در آدرسی که گزاشتم می گشتید این رو پیدا می کردید
http://www.universalthread.com/wconn....dll?2,2,19616

----------


## پدرخوانده

با تشکر از پاسختون
و یک سوال دیگر 
چطور می توانید در ریپورت از برنامه نویسی استفاده کنیم (یعنی کد نویسی کنیم)
و یه سوال دیگر
می خواهم به یک فیلد memo اندازه بدهم و از گزینه stretch with overflow استفاده نکنم (یعنی به یک اندازه خاص باشد) و ادامه آن در صفحه بعد تکرار شود (این فیلد در بدنه گزارش(detail) می باشد) (در حالت عادی صفحه جدید روی رکورد جدید می باشد) 
(البته لازم به ذکر است که بنده گروپی با توجه به شماره رکورد ایجاد کرده ام)

----------


## rezaTavak

سلام

برای چی باید گزارش کد داشته باشه؟؟؟

البته فقط برای گذاشتن شرط روی فیلدها می شه برنامه نویسی کرد اما مفهموم گزارش یعنی اینکه آخر کار باشه!

----------


## پدرخوانده

با تشکر 
نسبت به سوال دوم 



> می خواهم به یک فیلد memo اندازه بدهم و از گزینه stretch with overflow استفاده نکنم (یعنی به یک اندازه خاص باشد) و ادامه آن در صفحه بعد تکرار شود (این فیلد در بدنه گزارش(detail) می باشد) (در حالت عادی صفحه جدید روی رکورد جدید می باشد) 
> (البته لازم به ذکر است که بنده گروپی با توجه به شماره رکورد ایجاد کرده ام)


راهنمایی می تونید بکنید؟! 
و یا به حالتی دیگر می خواهم به اندازه customize (دلخواه) توسط کاربر گزارش خود را چاپ کنم (نه با توجه به ارتفاع کاغذ تعیین شده توسط page setup) بلکه بصورت عددی مثلا ارتفاع گزارش چاپی خود را 10 سانت یا ... معرفی کنم

----------


## پدرخوانده

با تشکر از آقای بی نیاز نسبت به معرفی برنامه جهت کنترل تنظیمات چاپگر 
فقط یک نکته که در این برنامه امکان تغییر حاشیه ها نمی باشد (یعنی تغییر می دهیم) ولی ذخیره نمی شود (حتی بنده اصلا TEXTBOX که حالت READONLY دارد را که برداشتم کاربر می تواند تغییر دهد ولی نتیجتا حاصلی ندارد) 
در ضمن با اینکه در تنظیمات ریپورت SAVE PRINTER ENVERMENT را خالی گذاشتم ولی باز از صفحه تعیین شده در صفحه تعیین شده استفاده می کند (یعنی عرض و طول را با توجه به آن تنظیم می خواند ) و از تنظیم تعیین شده در خود چاپگر (یا برنامه فوق (معرفی شده توسط اقای بی نیاز) تبعیت نمی کند)
در ضمن بنده چندین نمونه برنامه مختلف جهت مدیریت گزارشات چاپی در سایتهای معرفی شده )NEWS2NEWS, UNIVERSIAL ) پیدا کردم ولی متاسفانه این برنامه ها فایل FRX را گرفته و فقط یک سطری تنظیمات کلی را تغییر می دهند و امکان تغییر صفحه گزارش را ندارند
در حقیقت برنامه ای مشابه خود REPORT DESIGNER خود ویژوال فاکس می خواهم آیا چنین برنامه ای هست؟ (البته با قابلیت تغییر و تنظیم آن بصورت فارسی یا ....)
و نهایتا من  برنامه FRX2ANY V10.10.01 را دان لودم کردم ولی سر ک ر ا ک آن مشکل پیدا کردم اگر دوستانی محبتی کنند ممنون می شم

----------


## binyaz2003

FRX2ANY V10.10.01
این کارا رو میکنه؟

----------


## پدرخوانده

برنامه FRX2ANY اینکار را نمی کنه - سؤال بنده نسبت به این برنامه راجع به کراک آن بود که نداشتم گفتم اگر کسی دارد لطف کند و بدهد؟
--------------------
راجع به برنامه PRINTERPROB (لینکی که شما (آقای بی نیاز) معرفی کردید) نسبت به این بود که قابلیت تنظیم حاشیه ها را ندارد (یعنی انجام نمی دهد) برای این مشکل راهنمایی می توانید بکنید؟
------------
و مطلب دیگر



> در حقیقت برنامه ای مشابه خود REPORT DESIGNER خود ویژوال فاکس می خواهم آیا چنین برنامه ای هست؟ (البته با قابلیت تغییر و تنظیم آن بصورت فارسی یا ....)

----------


## ALI RAFFIE

سلام
چطور میشه با ریپورت فاکس 8 بارکد چاپ کرد.البته من از فونت BARCOD39 استفاده میکنم که تو پیش نمایش نشون میده اما موقع چاپ سفید بیرون میده .

----------


## binyaz2003

احتمال زیاد فونت شما Trial هست

----------


## rezaTavak

شاید هم TuteType نباشه

----------


## rose5160

با سلام خدمت اعضای محترم این بخش

اگه کسی ActiveX برا چاپ بارکد داره برام میل کنه تو بخشای دیگه موجود بود ولی موفق به Download نشدم 
ممنونم
rosa3568@yahoo.com

----------


## rose5160

کسی نمی تونه به من کمک کنه؟

----------


## rezaTavak

سلام

برای بار کپ فونت استفاده میشه معمولا!
ActiveX کار باهاش سخته

----------


## mehran_337

این هم چیزی که خودم دنبالش بودم . یه app برا پیش نمایش گزارشات تازه سرچ هم می تونی بکنی . فعلا تستش نکردم.

http://193.231.249.174/Download/SearchReportPreview.zip

----------


## mostafaalizadeh

با سلام 

می خواهم لیست کاغذهایی که یک printer پشتیبانی میکنه رو دربیارم ، لطفا" راهنمایی کنید

----------


## javad_hosseiny

شما با استفاده از تابع aprinters() لیست چاپگرهای فعال بر روی سیستم را می توانید بدست آورید
مثال:
nrImprimante = APRINTERS( arrPrint )
که در آرایه مربوطه در ردیف اول نام چاپگر و ردیف دوم پورت مربوطه را می توانید مشاهده کنید
و سپس با استفاده از تابع api موجود در فایل winspool.drv می توانید با اشاره به نام چاپگر لیست کاغذهای ساپورتی توسط آن چاپگر را بدست آورد
نحوه تعریف تابع موردنظر:


    DECLARE LONG DeviceCapabilities IN "winspool.drv" ;
        STRING  lpDeviceName, ;
        STRING  lpPort, ;
        LONG    iIndex, ;
        STRING@ lpOutput, ;
        INTEGER lpDevMode


البته دقت داشته باشید که به هنگام استفاده از این تابع لیست کاغذهای ساپورتی توسط آن چاپگر در آدرس حافظه متغیر مورد اشاره ذخیره می شود.

نمونه برنامه کامل جهت مشاهده لیست کاغذهای ساپورتی توسط یک چاپگر:


DECLARE LONG DeviceCapabilities IN "winspool.drv" ;
        STRING  lpDeviceName, ;
        STRING  lpPort, ;
        LONG    iIndex, ;
        STRING@ lpOutput, ;
        INTEGER lpDevMode

nrImprimante = APRINTERS( arrPrint )
cNumeImprimanta = arrPrint( 1, 1 )
cPortImprimanta = arrPrint( 1, 2 )
nPaperTypes = DeviceCapabilities( cNumeImprimanta, cPortImprimanta, 2, 0, 0 )
cPaperNumbers = SPACE( ( nPaperTypes * 2 ) )
cPaperNames   = SPACE( ( nPaperTypes * 64 ) )
= DeviceCapabilities( cNumeImprimanta, cPortImprimanta, 16, @cPaperNames, 0)
DIMENSION arrHirtia[ nPaperTypes, 2 ]
FOR Counter = 1 TO nPaperTypes
    arrHirtia[Counter, 1] = SUBSTR(cPaperNames, ((Counter - 1)*64) + 1, 64)
    ? arrHirtia[ Counter, 1 ] 
ENDFOR


البته دقت داشته باشید که با اشاره به شماره آرایه برگردانده شده توسط تابع aprinters() می تونید چاپگر موردنظر را تغییر دهید.
که در اینجا مقدار آن به متغیرهای cNumeImprimanta  (برای نام پرینتر) و cPortImprimanta  برای پورت چاپگر موردنظر اشاره می گردد.

والبته کنترل های اضافی همچون اصلا وجود چاپگر نصبی بر روی سیستم با تعیین مقدار خروجی تابع aprinters() و یا موارد دیگر را نیز رعایت نمایید.

----------


## blacky

سلام من توی برنامه ای که نوشتم چند تا ریپورت دارم نمیدونم چرا وقتی میخواد ال کیو 300 بعضی از اونا رو چا÷ کنه وسطش است÷ میزنه و تا کلید LF/FF رو نزنم بقیه شو چاپ نمیکنه 

2 اینکه با فونت ایران سیستم دارم کار میکنم غیر از بزرگنمایی روی ÷رینتر هیچ جور دیگه ای نمیشه فونت ها رو درشت تر کرد ؟ 

و اینکه میخوام سرعت ÷رینت رو ببرم بالا درافت و ... انجام دادم نتیجه در انگلیسی چاپ کردن تند میزنه ولی وقتی !lqlser رو میزنم باز کند میشه

----------


## rahro

> سلام من توی برنامه ای که نوشتم چند تا ریپورت دارم نمیدونم چرا وقتی میخواد ال کیو 300 بعضی از اونا رو چا÷ کنه وسطش است÷ میزنه و تا کلید LF/FF رو نزنم بقیه شو چاپ نمیکنه 
> 
> 2 اینکه با فونت ایران سیستم دارم کار میکنم غیر از بزرگنمایی روی ÷رینتر هیچ جور دیگه ای نمیشه فونت ها رو درشت تر کرد ؟ 
> 
> و اینکه میخوام سرعت ÷رینت رو ببرم بالا درافت و ... انجام دادم نتیجه در انگلیسی چاپ کردن تند میزنه ولی وقتی !lqlser رو میزنم باز کند میشه


سلام 
برای مشکلت اولت میتونی کد ذیل رو در انتهای گزارش خود چاپ کنی 
_peject='AFTER'
البته اگر گزارش خود رو بصورت دستی در داس استخراج میکنی با کد ذیل نیز مشکلت حل میشه؟!  :لبخند گشاده!: 
for i=1 to 10
?
next

مسخره ست نه :لبخند گشاده!: 
برای اینکه یک فونت را درشت کنی میتونی از کد ذیل در ابتدا خط خود 
?? chr(27)+'W1'
و کد ذیل در انتهای خط خود سود ببری 
?? chr(27)+'W0'
البته اکر خواستی فونت خود را bold کنی میتونی بجای 'W1' و 'W0' از 'G' در ابتدا و 'H' در انتها کمک بگیری!
و اما برای سرعت چاپ فارسی :
تجربه البته برای حقیر ثابت کرده که اگر گزارش رو ابتدا در یک فایل تکست بفرستی و بعد فایل تکست را چاپ کنی سرعت به مراتب بیشتر از زمانیه که فرمان چاپ مستقیم چاپکر رو درگیر میکنه و مزیت دومش هم اینه که کاربر بعد از فرمان چاپ میتونه به ادامه کار خود بپردازه من برای اینکار از فانکشن ذیل استفاده میبردم
PROCEDURE chapgar_t
PARAMETER tempfile
tempstr = ''
printstr = ''
STORE FOPEN(tempfile) TO fileh
SET CONSOLE OFF
SET PRINTER ON
DO WHILE  .NOT. FEOF(fileh)
     tempstr = FGETS(fileh)
     printstr = ''
     DO stringconv WITH tempstr, printstr
     ? printstr
ENDDO
SET PRINTER OFF
SET CONSOLE ON
STORE FCLOSE(fileh) TO aaaa
RETURN
*
PROCEDURE stringconv
PARAMETER input, output
length = 0
counter = 1
output = ''
tchar = ''
length = LEN(input)
DO WHILE counter<=length
     tchar = ''
     DO charconv WITH SUBSTR(input, counter, 1), tchar
     output = output + tchar
     counter = counter + 1
ENDDO
RETURN
*
PROCEDURE charconv
PARAMETER input, output
output = ''
DO CASE
     CASE ASC(input) = 48
          output = CHR(128)
     CASE ASC(input) = 49
          output = CHR(129)
     CASE ASC(input) = 50
          output = CHR(130)
     CASE ASC(input) = 51
          output = CHR(131)
     CASE ASC(input) = 52
          output = CHR(132)
     CASE ASC(input) = 53
          output = CHR(133)
     CASE ASC(input) = 54
          output = CHR(134)
     CASE ASC(input) = 55
          output = CHR(135)
     CASE ASC(input) = 56
          output = CHR(136)
     CASE ASC(input) = 57
          output = CHR(137)
     OTHERWISE
          output = input
ENDCASE
RETURN

البته طریق فراخونی آن هم اینگونه است
SET PRINTER TO lpt1
= chapgar_t('WRODI.TXT')

در آخر برای اینکه بتوانی کنترل چاپگر خود را مستقیم و بهتر به دست بگیری از برنامه ذیل استفاده کن.
موفق باشی.

----------


## blacky

سلام
حاجی این کدهایی که دادی توی محیط ویژوال عمل میکنه دیگه نه؟>

من هنوز نتونستم بفهمم که توی ویژوال چجوری ریپورت درست کنم الان پروژه ام توی فاکس داس هستش دوست دارم ببرمش ویژوال ولی موندم 

این کد ها توی داس هم نتیجه بخش هست یا نه؟

اگه جواب مثبته میشه توی این ریپورت بگین کجا بذارم؟

فونت ها هم ایران سیستمه

----------


## rahro

> سلام
> حاجی این کدهایی که دادی توی محیط ویژوال عمل میکنه دیگه نه؟>
> 
> من هنوز نتونستم بفهمم که توی ویژوال چجوری ریپورت درست کنم الان پروژه ام توی فاکس داس هستش دوست دارم ببرمش ویژوال ولی موندم 
> 
> این کد ها توی داس هم نتیجه بخش هست یا نه؟
> 
> اگه جواب مثبته میشه توی این ریپورت بگین کجا بذارم؟
> 
> فونت ها هم ایران سیستمه


سلام 
من با توجه به کلمه lqlser و تعریف شما برداشت کردم که مشکل شما محیط داسه و این توابع نیز برای آنجا کاربرد  داره .
و در خصوص ریپورت در ویژوال باید از  report  designer  استفاده کنی
در ضمن این ضمیمه شما فایل FRT رو کم داره !

----------


## blacky

> سلام 
> من با توجه به کلمه lqlser و تعریف شما برداشت کردم که مشکل شما محیط داسه و این توابع نیز برای آنجا کاربرد داره .
> و در خصوص ریپورت در ویژوال باید از report designer استفاده کنی
> در ضمن این ضمیمه شما فایل FRT رو کم داره !


شرمنده منظور من همون lqlset بود بله من در محیط داس هستم

اینم فایل frt

----------


## rahro

دوست عزیز تا جایی که حقیر اطلاع دارم با توجه به اینکه ریپورت شما استاندارده 80 درصد کار رو خود ویژوال فاکس انجام میدهد و و دقیقا ریپورت شما رو به محیط ویژوال منتقل میکنه . میمونه یکسری تنظیمات دستی و فونت که آنها رو بصورت دستی باید انجام دهی 
اگر خواستی کپشنها رو کانورت کنی فکر میکنم یک راه وجود داره و اون اینکه فایل ریپورت خود رو use کنی بعد فیلد مموی Expr آون رو به شرطی که Objtype آن مقدارش5 باشه رو بوسیله همین تابعی که ارائه دادی (dostowin) کانورنت کن سورس این تابع رو اگر میخوای میتونی از ذیل برداری. .

----------


## blacky

کانورتش کردم این چیزایی که گفتی رو دیدم ولی متوجه نشدم چیکارش باید بکنم 

وقتی هم توی پروژه ادش میکنم ارور میده میگه File In Use

----------


## rahro

> کانورتش کردم این چیزایی که گفتی رو دیدم ولی متوجه نشدم چیکارش باید بکنم 
> وقتی هم توی پروژه ادش میکنم ارور میده میگه File In Use


منظورت بعد از باز کردن ریپورته با فرمان use 
اگر اینه که میتونی بعد از اجرای فرمان  CLOSE TABLES allدر پنجره command  به کارت ادامه بدی
در ضمن متوجه نمیشم یعنی چه کانورتش کردی ولی متوجه نشدی چکارش باید بکنی  ؟!!!
اگر کانورتش کردی که کار تمومه ! و اگر متوجه نشدی , پس چطور کانورتش کردی!!!؟ :گیج:

----------


## blacky

> اگر خواستی کپشنها رو کانورت کنی فکر میکنم یک راه وجود داره و اون اینکه فایل ریپورت خود رو use کنی بعد *فیلد مموی Expr آون رو به شرطی که Objtype آن مقدارش5 باشه رو بوسیله همین تابعی که ارائه دادی (dostowin) کانورنت کن*


اینجوری کانورت کردم یه پنجره اومد بعدش این قسمت Bold رو نمیفهمم چیکارش کنم

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

روی Modify هم که کلیک میکنم میگه

Cannot find the converter Program

----------


## rahro

> اینجوری کانورت کردم یه پنجره اومد بعدش این قسمت Bold رو نمیفهمم چیکارش کنم
> 
> حالا
> من تونستم ریپورتمو پریویوو شو ببینم ولی خیلی بهم ریخته و اون تکستهایی که توی خود ریپورت هست رو بصورت عجق وجق ببینم ولی اون قسمتهایی که از دیتا بیس میخونه رو درست نشون میده
> 
> روی Modify هم که کلیک میکنم میگه
> 
> Cannot find the converter Program


یعنی اینکه به فرمان use جدول ریپورت خود را باز کنی مثلا"
use reportname.frx
brow
و ادامه ...

----------


## blacky

خب این از این 

این جدول رو چیکار باید بکنم

----------


## blacky

ای بابا اینکه از سایز jpeg ارور میده نمیشه ما که فوتوشاپ نداریم و با Paint کار میکنیم تا 300 کیلوبایت رو بتونیم اتچ کنیم؟

----------


## rahro

> ای بابا اینکه از سایز jpeg ارور میده نمیشه ما که فوتوشاپ نداریم و با Paint کار میکنیم تا 300 کیلوبایت رو بتونیم اتچ کنیم؟


منظورت چیه !!!!!!!!!! :متعجب:

----------


## rahro

> خب این از این 
> 
> این جدول رو چیکار باید بکنم





> فیلد مموی Expr آون رو به شرطی که Objtype آن مقدارش5 باشه رو بوسیله همین تابعی که ارائه دادی (dostowin) کانورنت کن


قبلا عرض کردم دقت کن  :ناراحت:

----------


## blacky

باور کن هر چی دقت میکنم نمیشه

یه ایبوک واسه ویژوال نداریم؟

----------


## kia1349

اگر انگلیسیت خوب باشه ایبوک هم هست . تقریبا تمام دوستان قدیمی سایت دارن

----------


## rahro

ميخوام در انتهاي هر صحفه از گزارش جمع حاصله رو چاپ كنم 
اگر حاصل رو در page footer بگذارم در انتهاي صحفه نتيجه رو چاپ ميكنه در حالي من ميخوام حاصل بعد از آخرين سطر در هر صفحه چاپ بشه  نه انتهاي صفحه و اگر از summery استفاده كنم تنها يكبار در پايان گزارش اينكار رو انجام ميده . ايا اين مشكل راهي داره؟!!

----------


## mehran_337

شما از summery استفاده کن تا اگر نصف صفحه اطلاعات داشتی انتهاش بخوره اما در فوتر هم بزار بعد در فوتر و در بخش print when بزار که اگه pagetotal = pageno چاپ نکنه .

----------


## rahro

محسن جان سلام :
معلوم هست كجايي ؟!!
اين گفته شما متين ولي شرطش اينه براي تمام باكسها و لاينها و ... اين شرط رو بزارم يك روش كلي نداري ؟!

----------


## mehran_337

درگیر جشنواره مسابقات فرهنگی هنری دانشجویان کشور هستم بدجور سرم شلوغه اما کار شما هم در حال انجامه فقط آیدیم آن نیست.
من از روشی که گفتم برای همه اشیا در گزارشم استفاده می کنم . چک باکس هایی که در پروپرتیز گزارش وجود داره فکر کنم در ورژن 9 چیزهایی واسه گفتن داره اما تست نکردم

----------


## new_day

با سلام 
قابل توجه دوستاني كه پرينتر Lq300 دارند و با اون مشكل دارند از درايور lq 400 استفاده كنند

----------

