PDA

View Full Version : پاک شدن دی بی گرید به این صورت که...............؟؟



tik_tak
چهارشنبه 01 اسفند 1386, 13:14 عصر
با سلام
میشه دی بی گرید وقتی داریم برنامه مون رو اجرا میکنیم هیچ کدوم از داده هایی که
درون جدول هست رو نشون نده (به غیر از همون عنوان ستونها ) وووووووو وقتی دادهای رو بهش اضافه میکنیم و داخل جدول ثبت میشه رو نشون بده که داخل دی بی گرید ریخته شده وووووو یک باتون در فرم داشته باشیم که وقتی روش کلیک میکنیم این داده هایی که داخل دی بی گرید هست رو به اصطلاح پا ک کنه یعنی دوباره هیچ داده ای نشون نده

خلاصه بگم : این حالت رو داشته باشه مثلا اطلاعات خرید های یک نفر که درونش ریخته شد و با دکمه ثبت ، ثبت شد
با کلیک رویه دکمه 2، دی بی گرید پاک بشه دوباره نفر بعدی از اولین سطر شروع بشه؟؟؟؟؟؟/
ممنونم پیشاپیش

rmb_ali
چهارشنبه 01 اسفند 1386, 13:27 عصر
شما میتونید تو جدولتون یه فیلد به نام مثلا new داشته باشید و وقتی رکوردی رو روی جدول اینسرت میکنید این فیلد رو true کنید و جدولتون رو هم روی فیلد new فیلتر کنید (new=True) و سپس وقتی کلید دوم رو میزنید فیلد هایی که new آنها true هستند رو false کنید

Amir_Safideh
چهارشنبه 01 اسفند 1386, 13:46 عصر
ببین دوست عزیز البته این روشی که جناب rmb_ali فرمودند هم ممکنه که کار شما رو راه بندازه ولی چیزی که من از توضیحات شما فهمیدم اینه که شما چیزی شبیه فاکتور فروش لازم دارید که این روش زیاد برای این کار جالب نیست بهتره که شما دوتا جدول داشته باشید که یکی شماره سندها رو نگه داره و جدول دوم که به جدول اول براساس شماره سند لینک شده باید جزئیات هر سند رو ذخیره کنه .
یعنی به این صورت که مثلا شما یک سند فروش ایجاد میکنید که با این کار در جدول اصلی یک شماره (مثلا 1)به این سند داده میشه و حالا نوبت میرسه به اقلام فروش که ممکنه یک یا چندین قلم کالا فروخته شود که تمام این جزئیات با این شماره سند(شماره 1) ذخیره میشن و حالا باید تویه برنامه MasteSource مربوط به جدولی که جزئیات رو ذخیره میکنه رو برابر با جدول اول قرار بدی و خاصیت MasterFields آن رو نیز برابر با فیلد متناظر بین اونها(همون فیلد که این دوتا جدول براساس اون لینک شدن)قرار بدی و حالا میبینی که با حرکت کردن بر روی شماره سندها در جدول اول فقط اطلاعات مربوط به اون فاکتور فروش نمایش داده میشه نه بیشتر و نه کمتر و وقتی هم که شما یه سند فروش جدید میزنی فقط اطلاعات مربوط به اون نمایش داده میشه . این روش رو امتحان کن اگه مشکل داشتی بگو تا حد توان کمک خواهیم کرد .
موفق باشید.

Mah6447
چهارشنبه 01 اسفند 1386, 14:08 عصر
علاوه بر مطالبی را که دوستان گفتند یک راه دیگر این است :
1- یک جدول برای ذخیره کل اطلاعات
2- یک جدول برای نمایش اطلاعات جاری
برای درج اطلاعات جدید ابتدا جدول (2) را خالی و اطلاعات جدید را در آن ثبت می کنید . نمایش و چاپ را با آن انجام دهید و با فشردن کلید ثبت اطلاعات این جدول را به جدول اصلی (1) منتقل کنید .

tik_tak
چهارشنبه 01 اسفند 1386, 16:36 عصر
سلام اول از همه تشکر میکنم ...بی نهایت
روش rmb_ali جالب بود برام ممنونم......
ماه 6447 هم خوب بود....متشکر

amir_safideh راه شما همون راهی بود که باید انجامش بدم ولی بلد نیستم....!!
*ارتباط بین جداول
منظور شما همون داشتن یه جدول برای فاکتور ویه جدول دیگه برای ریز فاکتور....درسته!!؟
یه جدول که شامله : کد-نام خریدار-قیمت کل خرید-تاریخ ....کلید اصلی ام =کد
ویه جدول دیگه که شامل :کد_جنس-تعداد-قیمت هر جنس....فک نکنم هم نیاز به کلید اصلی داشته باشه !
واین جدولم باید به جدول داده که شامل قیمت هر جنس و قیمتش هست ارتباط داده شد
س0------>یعنی هر تغییری روی جدول بدیم رو اونایی هم که ارتباطشون دادیم این تغییر اعمال میشه؟؟

خب من از پایه و اولش مشکل دارم اگه کمکم کنید بتونم انجامش بدم خیلی خوب میشه :
س1-----> این 2 تا جدول رو تو اکسس باید به هم ربطشون بدیم درسته؟؟
س2----->در دلفی چی؟؟؟؟ چه طوری باید ربط داد؟؟؟
س3----->اول اطلاعات در ریز فاکتور قرار میگیرند و بعد در فاکتور درسته؟؟
س4----->موقع ورود اطلاعات یا همون خریدهای هر شخص اون جدول ریز فاکتور باید نشون داده بشه؟؟؟ که انگه اینجوری باشه من نمیخوام اینجوری باشه .....میخوام همونجوری که گفتم باشه!
یعنی وقتی اون کاربر داره داده هارو وارد میکنه خریدهای نفرات قبلی نشون داده نشه...


میبینید که من بلد نیستم اگه کمکم کنید تا بتونم بنویسمش یه دنیا ممنونم
منتظـــــــــــــــــــــ ــــــرم

rmb_ali
چهارشنبه 01 اسفند 1386, 17:19 عصر
Master -Detail

Amir_Safideh
چهارشنبه 01 اسفند 1386, 18:03 عصر
خوب جدول اول شامل:
1- شماره فاکتور(که بهتره اگر شماره رو خودت وارد نمیکنی اون رو از نوع AutoNumber در نظر بگیری) 2-تاریخ 3- نام مشتری 4 - جمع کل
جدول دو شامل :
1-شماره فاکتور 2- آی دی کالا 3- شرح 4-تعداد 5 - فی و ....
خوب بعد از این شما باید فیلد شماره 1 از جدول دو رو ارتباط بدی به فیلد شماره 1 از جدول یک . بعد در قسمت خواص مربوط به این لینک شما خاصیت UpDate رو هم فعال کن که اگر احیانا تغییری روی مقدار این فیلد در جدول اصلی بود به صورت خودکار به جدول دو هم اعمال بشه خوب این شد ارتباط بین جدولهات .

س1-----> این 2 تا جدول رو تو اکسس باید به هم ربطشون بدیم درسته؟؟
خوب اگر از اکسس استفاده میکنید بله باید در اکسس این کار رو بکنید .

س2----->در دلفی چی؟؟؟؟ چه طوری باید ربط داد؟؟؟
خوب در دلفی شما باید به ازای هر جدول یک ADOTable و یک DataSource قرار داشته باشی یعنی درنهایت دوتا ADOTable و دوتا DataSource که اونها رو میتونی در تب ADO و DataAccess پیدا کنی .
خوب حالا شما باید خاصیت Connection مربوط به هردوی ADOTable ها رو به نام کانکشن خودتون تغییر بدید . حالا خاصیت TableName مربوط به ADOTable1 رو برابر با نام جدول یک و خاصیت TableName مربوط به ADOTable2 رو به نام جدول دو تغییر بده .(امیدوارم که متوجه شده باشی).
خوب حالا روی ADOTableها به ترتیب دابل کلیک کن و بعد توی صفحه ای کع باز میشه راست کلیک و گزینه Add Fields روی جدول دوم هم همین کار رو بکن .
خوب حالا خاصیت DataSet مربوط به DataSource1 رو به نام ADOTable1 و خاصیت DataSet مربوط به DataSource2 رو به نام ADOTable2 تغییر بده .
خوب حالا ADOTable1 شما به جدول شماره یک(جدول اصلی) و ADOTable2 شما به جدول دوم (جدول جزئیات مرتبط شدن) . حالا شما ADOTable2 رو انتخاب کنید و خاصیت MasterSource اون رو برابر ADOTable1 قرار بده و حالا خاصت MasterFields رو هم با دقت تنظیم کن برای تنظیم MasterFields باید در پنجره باز شده نامی که برای شماره فاکتور در نظر گرفتی رو در هر دو قسمت (در لیست فیلدهای دو جدول که الان باید ببینیشون) انتخاب میکنی بعد از انتخاب دکمه Add فعال میشه و میتونی دکمه Add رو بزنی به همین راحتی این مرحله هم تموم شد .

س3----->اول اطلاعات در ریز فاکتور قرار میگیرند و بعد در فاکتور درسته؟؟
نه اشتباه میکنید اول باید در جدول اصلی سند فروش شما ثبت بشه تا آماده بشید که جزئیات رو وارد کنید . ابتدا شما در جدول اصلی Insert میکنید که بعد از این که این کار رو کردید بلا فاصله جدول جزئیات خالی میشه و آماده میشه که پس از ذخیره کردن سند اصلی جزئیات سند رو وارد کنید .
حتما فراموش نکنید که با کنترلهائی که تو برنامتون قرار میدید به کاربر اجازه ندید که قبل از اینکه تغییرات جدول اول رو ذخیره کنه بتونه در جدول دوم اطلاعات وارد کنه یعنی زمانی که جدول اول در حال Insert یا Edit باشه نباید کاربر بتونه در جدول دوم تغییری انجام بده . حالا بعد از اینکه تغییرات جدول اول ذخیره شد شما میتونید جزئیات مربوط به سند رو به راحتی وارد کنید و میبینید که اطلاعات قبلی نمایش داده نمیشه .

س4----->موقع ورود اطلاعات یا همون خریدهای هر شخص اون جدول ریز فاکتور باید نشون داده بشه؟؟؟ که انگه اینجوری باشه من نمیخوام اینجوری باشه .....میخوام همونجوری که گفتم باشه!
خوب اگر تمام مراحل رو بدرستی انجام داده باشی قاعدتا اطلاعات قبلی نمایش داده نمیشه .
موفق باشید .

tik_tak
چهارشنبه 01 اسفند 1386, 19:48 عصر
سلام
واقعا ممنونم از بابت توضیحاتتون ...خیلی خوب گفته بودین ..
من 2 تا سوال داشتم (همین جوری اگه پیش بره انگاری سوالاتم بیشتر میشه)
ببیند این مراحلی رو که گفتین دونه دونه رفتم .....اینجا که گفتین:


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


منظورتون از این قسمت تو اکسسه ؟ واگه اونجاست من پیداش نکردم ؟؟؟



حالا شما ADOTable2 رو انتخاب کنید و خاصیت MasterSource اون رو برابر ADOTable1 قرار بده

اینجا من adosource1 دیدم adotable1 ندیدم و adosourc1 رو انتخاب کردم !



نه اشتباه میکنید اول باید در جدول اصلی سند فروش شما ثبت بشه تا آماده بشید که جزئیات رو وارد کنید . ابتدا شما در جدول اصلی Insert میکنید که بعد از این که این کار رو کردید بلا فاصله جدول جزئیات خالی میشه و آماده میشه که پس از ذخیره کردن سند اصلی جزئیات سند رو وارد کنید

اینجاشم نفهمیدم مگه میشه تا خریدی صورت نگرفته ثبت بشه ...یعنی اولین خریدار وقتی وارد میشه هنوز چیزی نخریده که تا فیلد جمع کل ش پر بشه !!اینو میشه توضیح بدین ؟



کنترلهائی که تو برنامتون قرار میدید به کاربر اجازه ندید که قبل از اینکه تغییرات جدول اول رو ذخیره کنه بتونه در جدول دوم اطلاعات وارد کنه یعنی زمانی که جدول اول در حال Insert یا Edit باشه نباید کاربر بتونه در جدول دوم تغییری انجام بده .

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

tik_tak
پنج شنبه 02 اسفند 1386, 08:39 صبح
سلام
چرا ادامه ندادین ؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!
من چون وقت کم دارم مجبورم یه تاپیک ایجاد کنم
آخه میبینم این بحثمون به عنوان اینجا نمیخوره ...
اگه خواستین اونجا ادامه بدین..
بازم ازتون ممنوم بابت اون توضیحاتتون
فعلا

Amir_Safideh
پنج شنبه 02 اسفند 1386, 10:36 صبح
ببین زمانی که توی اکسس ارتباط رو برقرار کردی این دوتا جدول یک لینکی مثل یک خط برقرار میشه فقط لازمه که روش راست کلیک کنی و Properties رو انتخاب کنی و در اونجا UpDate رو انتخاب کنی . البته الان اکسس دم دستم نیست که دقیقا بهت بگم شاید خیلی دقیق نتونم بهت بگم.

اینجا من adosource1 دیدم adotable1 ندیدم و adosourc1 رو انتخاب کردم !
حق با شماست شما همون ADOSourc1 رو انتخاب کنید درسته .

اینجاشم نفهمیدم مگه میشه تا خریدی صورت نگرفته ثبت بشه ...یعنی اولین خریدار وقتی وارد میشه هنوز چیزی نخریده که تا فیلد جمع کل ش پر بشه !!اینو میشه توضیح بدین ؟
خوب ببین بیا از یه جهت دیگه به قضیه نگاه کنیم . شما میخواهید که یکسری کالا به یه مشتری بفروشید خوب شما در ابتدا باید فاکتور رو ایجاد کنید یعنی بگید بسم الله میریم که یه چیزی بفروشیم خوب اول فاکتور رو ایجاد میکنید و بعد از ذخیره کردن فاکتور حالا میگید که ما یه فاکتور داریم که باید اجناس فروخته شده رو توش بنویسیم . ببنید شما باید اول کمد رو بسازید بعد توش لباس آویزون کنید . خوب اما بریم سر مشکل شما که همون فیلد مجموع در جدول اصلیه خوب این کار ساده اییه . فقط شما باید هر بار که یک جنس جدید رو در جدول دوم ذخیره میکنید مقدار فیلد مجموع رو در جدول اول UpDate کنید . به همین سادگی .
خوب این کلیت کاره .

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

tik_tak
پنج شنبه 02 اسفند 1386, 11:25 صبح
سلام
ممنونم ..بازم زحمت کشیدین
ماجرایه اون update حل نشد ها ! با راست کلیک رویه اون خط لینک پروپرتیزی نبود ؟؟
پیداش نکردم م م ..
با اون توضیحاتی که درمورد فروشنده و بسم الله و کمد لباس ، دادین کاملا متوجه شدم مرسی
فیلد مجموع در جدول اصلیه خوب این کار ساده اییه . فقط شما باید هر بار که یک جنس جدید رو در جدول دوم ذخیره میکنید مقدار فیلد مجموع رو در جدول اول UpDate کنید
خب نمیشه این کارو کرد .. البته نمیدونم چقد درسته:
کاربر وقتی کلید ثبت نهایی رو زد یعنی کالاهای خریده شده مشتری اول تموم شد وجمعش بره در فیلد جمع کل جدول اول ...
یعنی یه بار اطلاعات قرار بگیره آپ دیت نشه؟؟؟
ها اینجوری درست نیست؟

Amir_Safideh
پنج شنبه 02 اسفند 1386, 13:19 عصر
ماجرایه اون update حل نشد ها ! با راست کلیک رویه اون خط لینک پروپرتیزی نبود ؟؟
من این قسمت رو با SQL Server اشتباه گرفته بودم . من الان اکسس دم دستم نیست ولی شاید اصلا این خاصیت در اکسس وجود نداره . پس این مورد رو فعلا فراموش کن و لازم نیست .

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