PDA

View Full Version : سوال: فرستادن اطلاعات Grid به DataReport



m2011kh
شنبه 29 تیر 1392, 13:48 عصر
سلام.

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

من یه پروژه دارم که برای یه تعمیرگاه کامپیوتر هست و مراجعه رو ثبت میکنه و کد رهگیری از یک شروع میکنه میده و گزارش تهیه میکنه و قابلیت ادیت مراجعه ها رو هم داره و ...

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

یه Grid دارم که با استفاده از همین کد های SQL مرتب میکنم و جستجو پیشرفته تر و مهم تر اینکه کدوم فیلد در گرید اول و کدوم دوم باشه یا اصلا کدوما باشن دست کاربر هست.من میخوام یا گید رو برای چاپ به ریپورت بفرستم یا اینکه بتونم خصوصیات کنترل های داخل ریپورت رو کنترل کنم تا مشکل حل بشه.

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

چند تا عکس از پروژه میزارم و این که دوستان در مورد قیمت این برنامه راهنمایی کنن.روی این پروژه چقدر قیمت بزارم؟؟؟

یه سوال کوچیک دیگه هم هست تو قسمت قبت مراجعه تاریخ شمسی رو وارد میکنم و یا با زدن کلید "حالا" تاریخ روز میلادی رو به شمسی تبدیل میکنم و ثبت میکنم ولی مثلا تاریخ تو تکست این طور هست:"12/2/1392" ولی تو دیتا بیس اینطور ثبت میشه: "2/12/1392"

ممنون میشم اگه راهنمایی کنید.

موفق و سربلند باشید.

MMD

m.4.r.m
شنبه 29 تیر 1392, 14:10 عصر
توضیحات شما بیشتر برای معرفی نرم افزار بود درک مشکلات نرم افزار من دقیقا نفهمیدم چی خواستین اگه مشکل Report دارین که عکس از data Report هم گذاشتین واگه نه که سوال رو واضح بپرسین و در مورد سوال تاریخ شمسی هم

مثلا تاریخ تو تکست این طور هست:"12/2/1392" ولی تو دیتا بیس اینطور ثبت میشه: "12/2/1392"

پس می خواستی چه جوری ثبت بشه ؟ همون طوری که شما گفتی اونم ثبت کرده دیگه

m2011kh
شنبه 29 تیر 1392, 15:31 عصر
توضیحات شما بیشتر برای معرفی نرم افزار بود درک مشکلات نرم افزار من دقیقا نفهمیدم چی خواستین اگه مشکل Report دارین که عکس از data Report هم گذاشتین واگه نه که سوال رو واضح بپرسین و در مورد سوال تاریخ شمسی هم
مثلا تاریخ تو تکست این طور هست:"12/2/1392" ولی تو دیتا بیس اینطور ثبت میشه: "12/2/1392"


پس می خواستی چه جوری ثبت بشه ؟ همون طوری که شما گفتی اونم ثبت کرده دیگه
در مورد تاریخ من متأسفم اشتباه تایپی بود.پست یک رو ویرایش کردم.

اون عکسی که از ریپورت گذاشتم مسئله اصلی نیست

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

m.4.r.m
شنبه 29 تیر 1392, 16:03 عصر
در مورد سوال دوم تاریخ : نوع فیلد تاریخ رو در دیتابیس از date به text تغییر بدید درست میشه

با این کد گزارش رو به چاپ ارسال کنید ببینید مشکل حل میشه یا نه

If Adodc1.Recordset.RecordCount > 0 Then
On Error Resume Next
Set Cnn = New ADODB.Connection
Cnn.CursorLocation = adUseClient
Cnn.ConnectionString = Adodc1.ConnectionString
Cnn.Open
Adoview.Close
sqltxt = "SELECT * From Table1"
Set Adoview = New ADODB.Recordset
Adoview.Open sqltxt, Cnn, adOpenStatic, adLockPessimistic
Set DataReport2.DataSource = Adoview
DataReport2.Show 1
Else
MsgBox "هيچ رکوردی ثبت نشده است", vbExclamation, ""
End If

m2011kh
یک شنبه 30 تیر 1392, 01:22 صبح
مسئله همینجاست شما sqltext رو برابر با "SELECT * FROM Teble" قرار دادید.مشکل اینجاست که برنامه چون با استفاده از این کد(مثلا) :
SELECT ID,Name,Phone FFOM Report WHERE Name Like '%MMD%' And ID Like '%15%' ORDER BY ID ASC
داده ها را بازیابی میکنه و هر دفعه ممکنه تغییر کنه چون طبق تنظیمات کاربر تولید میشه.
مثلا ممکنه دفعه بعد که کاربر از برنامه استفاده میکنه با توجه به تنظیماتی که میده این کد تولید بشه:
SELECT ID,sys,problem FFOM Report And Sys Like '%15%' ORDER BY Problem ASC
و یا هر چیز دیگه من میخوام گزارشم نتیجه ای که این کد به من میده رو چاپ کنه.

همین الان متوجه شدم مشکل تاریخ از کجاست چون نوع فیلد رو هم به Text تغییر دادم ولی فرقی نکرد.من با یه پروژه دیگه تاریخ ویندوز رو فراخوانی کردم و این نتیجه رو به من داد: "7/21/2013" در صورتی که همچین تاریخی وجود نداره.
الان مشکل رو پیدا کردم ولی راه حلی براش به ذهنم نمیرسه
موفق و سربلند باشید.

MMD

m2011kh
یک شنبه 30 تیر 1392, 01:31 صبح
مشکل تاریخ رو حل کردم.

تو تنظیمات ویندوز فرمت تاریخ ویندوز رو Change کردم مشکل حل شد.

فقط مونده گزارش.

موفق و سربلند باشید.

MMD

m.4.r.m
یک شنبه 30 تیر 1392, 15:52 عصر
خوب شما می تونی بعد از اینکه کاربر تیک هارو انتخاب کرد و فیلد های انتخابی کاربر رو بعد از انتخاب شدن در یک جدول بریزی و اون جدول رو فراخوانی کنی در Sqltext و در دفعات بعدی جدول رو خالی کنی مثل عمل Temp

m2011kh
یک شنبه 30 تیر 1392, 16:29 عصر
این ایده ای که دادی کمک بزرگی بود.

فعلا میرم تا عملی اش کنم ببینم چی میشه.

موفق و سربلند باشید.

MMD

vbhamed
یک شنبه 30 تیر 1392, 18:58 عصر
سلام
در مورد تاريخ اون كاري كه انجام دادي راهش نيست چون ممكنه تو ويندوز مشتري باز تغيير كنه، بهتره سال و ماه و روز رو جداگانه در بياري و خودت كنار هم بچسبوني
ضمنا اينكه RightToLeft كنترلت True باشه يا نه هم در نحوه نمايش تاريخ تاثير داره

m2011kh
سه شنبه 01 مرداد 1392, 07:11 صبح
مرسی آقا حامد.

موفق و سربلند باشید.

MMD