View Full Version : سوال: نحوه واکشی یک رکورد با اطلاعات فقط یک فیلد
Nima NT
پنج شنبه 26 آذر 1388, 17:33 عصر
با عرض سلام و وقت به خیر خدمت دوستان و اساتید گرامی
بنده در حال نوشتن یک برنامه فاکتور هستم ( یک برنامه صدور فاکتور ساده ) ؛ در این برنامه لازم هست که وقتی کاربر کد کالا رو وارد میکنه من باقی اطلاعات رو بخونم و در Edit هایی نشون کاربر بدم و در نهایت از روی همین کد مقدار نام و ... رو هم بخونم تا بتونم موقع پرینت در صفحه ای که برای چاپ میره نشون بدم.
حالا سوال بنده این هست که چطور میتونم این مشکل رو حل کنم ؟ ( یعنی با وارد کردن کد کالا که البته کلید اصلی برای جدول کالا هست ، اطلاعات تکمیلی مربوطه به اون رکورد رو بخونم ).
با تشکر فراوان.
سعید صابری
پنج شنبه 26 آذر 1388, 17:45 عصر
منظورت دقيق متوجه نشدم ولي فكر كنم اين بدردت بخوره.
if ADOTable1.Locate('codkala',Edit1.Text,[loPartialKey]) then
begin
خواندن ركوردها يا همون اطلاعات تكميلي خودت
end;
Tiam121
پنج شنبه 26 آذر 1388, 17:48 عصر
سلام
دستور sql به صورت زير
sql.add('select * from Tablename where Fact_ID=:id');
parameters.parambyname('id').value:=edit1.text;
براي انتقال اطلاعات يك فيلد به يك edit
edit1.text:=adoqeuery1.fieldvalues['fieldname'];
Nima NT
پنج شنبه 26 آذر 1388, 19:18 عصر
منظورت دقيق متوجه نشدم ولي فكر كنم اين بدردت بخوره.
if ADOTable1.Locate('codkala',Edit1.Text,[loPartialKey]) then
begin
خواندن ركوردها يا همون اطلاعات تكميلي خودت
end;
ممنون از پاسخ مفیدتون ، مشکل من دقیقا" در همون قسمت خواندن اطلاعات تکمیلی هستش ، بعد از اینکه فیلد کلید رو پیدا کردم ، نمیدونم چطوری اطلاعات فیلدهای دیگه اون رو بخونم ، برای مثال فرض کنید طرف کد کالا رو عدد 1002 وارد کرد ، حالا من با این روش شما میتونم رکورد 1002 رو پیدا کنم ولی نمیدونم چطوری اطلاعات مربوط به فیلدهای نام کالا و ... مربوط به این رکورد ( رکورد 1002 ) رو بخونم.
بازم ممنونم.
pezhvakco
پنج شنبه 26 آذر 1388, 19:51 عصر
برای پیدا کردن یک رکورد خاص می تونی از دو روشی که استادان عزیز گفتن استفاده کنی .
دستور locate امکانات و سرعت خوبی داره ولی برای برنامه های غیر شبکه استفاده میشه ولی روش دیگه که دستورات sql است برای همه نوع استفاده میشه .
حالا اگه از locate استفاده کردی میتونی locate را برای شرط if قرار بدی و اگه True بود، چون رکورد اشاره گر روی رکورد مربوط وایستاده، سایر موارد این رکور را مثلا با :
Edit1.Text:=ADOTable1.Fieldbyname('name').asstring
و اگه با adoqeuery پیدا کردی یه شرط پیدا کردن قرار بده و اگر پیدا کرده بود مثل دستور بالا مقدار گیری کن :
Edit1.Text:=َِADOQeuery1.Fieldbyname('name').ass tring
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.