PDA

View Full Version : فایل XML



کاربر کوشا
چهارشنبه 01 اردیبهشت 1389, 01:36 صبح
سلام
من یک گزارش دارم که تو اون با یک کانکشن ADO.NET یک فایل XML رو به عنوان دیتاسورس معرفی کردم. موقع طراحی در قسمت preview گزارش بخوبی نمایش داده میشه ولی موقع اجرا از من یوزر پسورد میخواد. سوالم اینه که این یوزر پسورد مربوط به چیه (با توجه به اینکه گزارش داره از فایل میخونه نه دیتابیس) و چی جور میشه از شرش خلاص شد؟

ممنون از راهنمایی شما.

کاربر کوشا
چهارشنبه 01 اردیبهشت 1389, 10:49 صبح
فکر می کنم مشکلم به نحوه وارد کردن فایل XML تو گزارشم باشه. کسی از دوستان به غیر از کانکشن مستقیم ADO.Net روش دیگه ای رو برای واردکردن اطلاعات فایل XML تو کریستال پیشنهاد میکنه؟

mn_zandy63
یک شنبه 05 اردیبهشت 1389, 00:33 صبح
سلام دوست من، راهی رو که برای طراحی با استفاده از XML رفتی احتمالا درسته، و ADO.NET دقیقا همونه که باید انتخاب کنی.
اما نکته اینجاست که داخل کدت چی پاس کردی به عنوان دیتاسورس برای گزارشت؟
این تیکه رو چک کن یا اینجا بفرست.
باید احتمالا یک دیتاست خونده باشی، fill کرده باشی و Set کرده باشی. اگه چیزی جز این انجام داده باشی احتمالا ایراد از اونه.
موفق باشی.

کاربر کوشا
یک شنبه 05 اردیبهشت 1389, 11:19 صبح
ممنون دوست من،

دیتاسورس رو آدرس فایل XML گذاشته بودم که ظاهرا نمیشه مسیر فایل رو به عنوان دیتاسورس پاس داد.(؟)
الان تونستم مشکلم رو با حذف کردن کد ست کردن دیتاسورس در برنامه حل کنم. یعنی بجای ست کردن دیتاسورس گزارش اول فایل جدید XML رو جایگزین قبلی میکنم و بعد گزارش رو لود می کنم و انگار خودش بصورت خودکار خودش رو بروز میکنه. به نظر شما اینکار یعنی Replace کردن فایل XML جدید بجای قبلی و لود گزارش راه حل خوبی برای همیشه میتونه باشه یا نه؟

باتشکر از حسن توجه شما.

mn_zandy63
یک شنبه 05 اردیبهشت 1389, 18:07 عصر
سلام دوست من،
نه راه حلی که نوشتی، در حالت کلی ایرادات زیادی داره، از جمله وقتی که برنامه ات رو بردی روی سیستم هدف نصب کردی.
و بله، آدرس فایل XML رو نمیتونی به عنوان datasource بفرستی.
راه حل هم،
اگه اشتباه نکنم یه دونه dataset یا datatable داری و اونو داری به صورت XML ذخیره میکنی درسته؟
اگه اینطوره، خب همون dataset یا datatable رو به عنوان datasource بفرست.
و اگه اینطور نیست، خب یک راه اینه که فایل XML رو بخونی داخل dataset (با تابع ReadXML اگه اشتباه نکنم) و اون dataset رو به عنوان datasource بفرست.
موفق باشی

کاربر کوشا
دوشنبه 06 اردیبهشت 1389, 10:20 صبح
بازهم از راهنماییتون ممنونم،

کل داستان اینه که یک دیتاگرید دارم که با datatable پر میشه ولی کوئری اون در حین اجرا بسته به انتخاب کاربر تغییر میکنه یعنی نمیتونم یک view ثابت بسازم و اون رو دیتاسورس گزارشم کنم.
در تاپیک های قبل من از دوستان کمک خواستم که شما دوست عزیز بدرستی پیشنهاد استفاده از فایل XML رو به من دادید.

http://barnamenevis.org/forum/showthread.php?t=215325

طبق پیشنهاد شما من ابتدا یکبار با متد writexml یک فایل XML ساختم و از طریق ADO Connection در گزارشم وارد کردم.

الان با توجه به راهنمایی اخیرتون ، فکر میکنید اگه در هربار لودکردن گزارش تو برنامه دیتاسورس رو برابر datatable قرار بدم مشکل کامل حل میشه؟ ضمن اینکه بعضی وقتها بسته به نتیجه کوئری برخی فیلدها در datatable مقدار NULL دارند.

mn_zandy63
دوشنبه 06 اردیبهشت 1389, 19:13 عصر
سلام دوست من،
این تیکه رو درست متوجه نشدم، اگه اشتباه کردم بیشتر توضیح بده، فقط یادآوری میکنم که در زمان اجرا ستون های دیتاسورس یا همون فیلدها رو نمیتونی تغییر بدی، یعنی چه از XML استفاده کنی، چه از جداول دیتابیس، نمیتونی یک بار دو تا فیلد داشته باشی، یک بار سه تا فیلد.
اما اگه منظورت از اینکه کوئری در زمان اجرا تغییر میکنه فقط اینه که شرط ها یا به عبارتی رکوردها تغییر میکنه، در اینصورت مشکلی وجود نداره، در اون پست هم توضیح دادم، که فقط یک بار برای طراحی گزارشت فایل XML رو بساز و دیگه در زمان اجرا برای استفاده از گزارش نیاز به این کار نیست، این خط کد رو حذف کن از کدت. و همون dataset که اونجا متد writeXML ش رو صدا زدی، به عنوان دیتاسورس بده به گزارش.
متوجه شدی؟

موفق باشی

کاربر کوشا
دوشنبه 06 اردیبهشت 1389, 21:40 عصر
آره عزیزم، متوجه راهنمایی خوب شما شدم. منظور من همون تغییر شروط کوئری بود که نتیجه اجرای بعضی از کوئری ها با تغییرشروط ، رکوردهایی هستش که برخی فیلدهاش مقدار Null دارند (مثلا فیلد شماره تلفن نتیجه کوئری مقدار تهی داره) میخواستم مطمئن بشم که اگه بخوام دیتاتیبلی رو به گزارش پاس بدم که مقدار یک ستونش تهی باشه (ستون وجود داره ولی مقدار رکوردهاش تهی هست) مشکلی برای نشون دادن تو کریستال پیش نمیاد که ظاهرا مشکلی نداره.
درود بر شما و دیگر دوستان سایت خوب برنامه نویس که با حل مشکلات دیگران شکر نعمت دانش خودتون رو بجا میارید.
همواره پیروز باشید.

mn_zandy63
دوشنبه 06 اردیبهشت 1389, 23:20 عصر
سلام دوست من،
آره درسته ایرادی نداره یک فیلد تهی باشه.

موفق باشی