PDA

View Full Version : جدولهای فاکتور و ریز فاکتور و ارتباطشون .......؟؟؟



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

اونجا Amir-safideh چنین مطلبایی رو عنوان کردن :


خوب جدول اول شامل:
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----->موقع ورود اطلاعات یا همون خریدهای هر شخص اون جدول ریز فاکتور باید نشون داده بشه؟؟؟ که انگه اینجوری باشه من نمیخوام اینجوری باشه .....میخوام همونجوری که گفتم باشه!
خوب اگر تمام مراحل رو بدرستی انجام داده باشی قاعدتا اطلاعات قبلی نمایش داده نمیشه .
موفق باشید .

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

mzjahromi
پنج شنبه 02 اسفند 1386, 09:22 صبح
کد چی رو؟
اینکه اول کدوم دریافت بشه بستگی به نوع طراحی شما داره
ولی قائدتا نباید جدول پیرو اول پر بشه

tik_tak
پنج شنبه 02 اسفند 1386, 09:52 صبح
ببینید خودم این جوری فک کردم :
من دوتا جدول دارم :
1- شماره فاکتور(که بهتره اگر شماره رو خودت وارد نمیکنی اون رو از نوع AutoNumber در نظر بگیری) 2-تاریخ 3- نام مشتری 4 - جمع کل
جدول دو شامل :
1-شماره فاکتور 2- آی دی کالا 3- شرح 4-تعداد 5 - فی و ....



حالت اول : جدول اول فعاله و جدول دومم غیر فعاله

حالا یه ادیت دارم برای وارد کردن نام مشتری که اگه کاربر اونو پر کنه وکلید ثبت و بزنه
جدول اول غیرفعال بشه
جدول دوم فعال بشه و بشه کالاهارو ریخت داخلش......
و همینجوری insert کنیم با همون شماره فاکتور جدول اولی
ولی چه جوری کدشو بنویسم اینکه فیلد شماره جدول 2 برابر باشه با فیلد شماره فاکتور جدول اول؟؟؟اینجوری نوشتم »


DataModule2.ADOTable2.Insert;
DataModule2.ADOTable2.FieldByName('shomareh').Valu e:=DataModule2.ADOTable1.FieldValues['shomareh'];
DataModule2.ADOTable2.FieldByName('name').Value:=e dit2.text;
DataModule2.ADOTable2.Post;


و یه کلید دیگه به اسم ثبت نهایی میخوام قیمت کل که حاصل جمع فیلدهای قیمت فاکتور شماره مثلا 1 بره ثبت بشه تو فیلد جمع کله اون جدول اولی
حالا جدول دوم غیر فعال بشه......وآماده پذیرش خریدهای شخصه جدید....

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

نمیدونم درست فک میکنم یا نه ؟؟

Amir_Safideh
پنج شنبه 02 اسفند 1386, 10:17 صبح
سلام دوست عزیز .

ولی چه جوری کدشو بنویسم اینکه فیلد شماره جدول 2 برابر باشه با فیلد شماره فاکتور جدول اول؟؟؟اینجوری نوشتم »
اصلا لازم نیست که شما به فیلد شماره در جدول دو مقدار بدی . میدونی چرا ؟ چون اگر شما خاصیت MasterSource رو همون طور که در تاپیک قبلت گفتم نتظیم کرده باشی دیگه بعد از هربار Insert در جدول دوم فیلد شماره در جدول دوم به طور خودکار شماره فیلد جدول اول رو میگیره و در فیلد شماره قرار میده .