tefos666
شنبه 11 آبان 1387, 20:10 عصر
سلام دوستان
من یک فرم دارم که در نهایت باید یک کد تولید کند یک عدد ثابت دارم 6
یک کد تولید کننده سه رقمی (نهایتا 999)
یک کد محصول دو رقمی (نهایتا 99)
یک تعداد که نهایتا (9999999) میباشد یعنی هفت رقمی
حالا من باید یک کد تولید کنم
تعداد + کد محصول + کد تولید کننده + 6
http://barnamenevis.org/forum/attachment.php?attachmentid=25090&stc=1&d=1225558447
چندتا مشکل دارم امیدوارم با کمک شما دوستان برطرف بشه
من وقتی کد تولید کننده وارد میشه جدول رو فیلتر میکنم و وقتی کد محصول فیلتر بیشتر و ریزتر
اینطوری مشخص که تولید کننده A محصول B را خریداری کرده و برای سفارش مجدد باید دکمه
سفارش بعدی زده شود در غیر اینصورت سفارش جدید ثبت گردد
حالا من باید نتیجه [از] را در صورتی که آن محصول نباشد از 1 شروع کنم و با فرمت همان 10000000 در [تا] ذخیره کنم. یعنی اگر مثلا تولید کننده با کد 103 از محصولی با کد 10 به تعداد 8 عدد داشت خروجی فیلد [از] من به صورت زیر گردد
61031010000001 [فیلد از]
61031010000008 [فیلد تا]
امیدوارم تا اینجا متوجه کاری که میخوام بکنم شده باشین
حالا در سفارش بعدی این عدد باید در فیلد [از] نشسته و با تعداد جدید در فیلد [تا] ذخیره شود
من یه مقدار با تبدیل رشته و عدد مشکل دارم - فیلدها از نوع استرینگ هستش
من فرمولم اینه : (برای اینکه عدد ها از آخر به اول بیاد از 10000000 استفاده میکنم)
dm.qrmax.Close;
dm.qrmax.SQL.Clear;
dm.qrmax.SQL.Add('select max (ta)as ta from nahal where idt='+QuotedStr( Edit_id_tolid.Text)+' and idm='+QuotedStr( Edit_id_mahsol.Text)+' ');
dm.qrmax.Open;
DM.dsnahal.DataSet.Insert;
DM.dsnahal.DataSet.FieldByName('idt').AsString:=Ed it_id_tolid.TEXT;
DM.dsnahal.DataSet.FieldByName('idm').AsString:=Ed it_id_mahsol.TEXT;
DM.dsnahal .DataSet .FieldByName('tarikh').AsString :=Edit_tarikh.Text ;
DM.dsnahal .DataSet .FieldByName('mojavez').AsString :=edit_mojavez .Text ;
DM.dsnahal .DataSet .FieldByName('payeh').AsString :=Edit_payeh .Text ;
DM.dsnahal.DataSet.FieldByName('ostan').AsString:= ComboBox1.Text;
DM.dsnahal.DataSet.FieldByName('ragham').AsString: =Edit_ragham .Text;
DM.dsnahal.DataSet.FieldByName('tedad').AsString:= Edit_tedad.Text;
//az
s2:=DBGrid4.Fields[0].AsString;
dm.dsnahal.DataSet.FieldByName('az').AsString:= s2;
//ta
تو اینجا مشکل دارم هر تبدیلی هم زدم جواب نداد تو شکل معلومه جای جمع عددی جمع رشته ای میشه
dM.dsnahal.DataSet.FieldByName('ta').AsString:=s2+ Edit_tedad.Text;
//DM.dsnahal.DataSet.Post;
این کد رو برای سفارش جدید زدم درست کار کرده
var
s:Integer;
begin
DM.dsnahal.DataSet.Insert;
DM.dsnahal.DataSet.FieldByName('idt').AsString:=Ed it_id_tolid.TEXT;
DM.dsnahal.DataSet.FieldByName('idm').AsString:=Ed it_id_mahsol.TEXT;
DM.dsnahal .DataSet .FieldByName('tarikh').AsString :=Edit_tarikh.Text ;
DM.dsnahal .DataSet .FieldByName('mojavez').AsString :=edit_mojavez .Text ;
DM.dsnahal .DataSet .FieldByName('payeh').AsString :=Edit_payeh .Text ;
DM.dsnahal.DataSet.FieldByName('ostan').AsString:= ComboBox1.Text;
DM.dsnahal.DataSet.FieldByName('ragham').AsString: =Edit_ragham .Text;
DM.dsnahal.DataSet.FieldByName('tedad').AsString:= Edit_tedad.Text;
//az
dm.dsnahal.DataSet.FieldByName('az').AsString:='6' +Edit_id_tolid.Text+Edit_id_mahsol.Text+IntToStr(1 0000001);
DBGrid1.DataSource:=DM.dsnahal;
//ta
s:=10000000+StrToInt(Edit_tedad.Text);
DM.dsnahal.DataSet.FieldByName('ta').AsString:='6' +Edit_id_tolid.Text+Edit_id_mahsol.Text+IntToStr(s );
DM.dsnahal.DataSet.Post;
end;
من یک فرم دارم که در نهایت باید یک کد تولید کند یک عدد ثابت دارم 6
یک کد تولید کننده سه رقمی (نهایتا 999)
یک کد محصول دو رقمی (نهایتا 99)
یک تعداد که نهایتا (9999999) میباشد یعنی هفت رقمی
حالا من باید یک کد تولید کنم
تعداد + کد محصول + کد تولید کننده + 6
http://barnamenevis.org/forum/attachment.php?attachmentid=25090&stc=1&d=1225558447
چندتا مشکل دارم امیدوارم با کمک شما دوستان برطرف بشه
من وقتی کد تولید کننده وارد میشه جدول رو فیلتر میکنم و وقتی کد محصول فیلتر بیشتر و ریزتر
اینطوری مشخص که تولید کننده A محصول B را خریداری کرده و برای سفارش مجدد باید دکمه
سفارش بعدی زده شود در غیر اینصورت سفارش جدید ثبت گردد
حالا من باید نتیجه [از] را در صورتی که آن محصول نباشد از 1 شروع کنم و با فرمت همان 10000000 در [تا] ذخیره کنم. یعنی اگر مثلا تولید کننده با کد 103 از محصولی با کد 10 به تعداد 8 عدد داشت خروجی فیلد [از] من به صورت زیر گردد
61031010000001 [فیلد از]
61031010000008 [فیلد تا]
امیدوارم تا اینجا متوجه کاری که میخوام بکنم شده باشین
حالا در سفارش بعدی این عدد باید در فیلد [از] نشسته و با تعداد جدید در فیلد [تا] ذخیره شود
من یه مقدار با تبدیل رشته و عدد مشکل دارم - فیلدها از نوع استرینگ هستش
من فرمولم اینه : (برای اینکه عدد ها از آخر به اول بیاد از 10000000 استفاده میکنم)
dm.qrmax.Close;
dm.qrmax.SQL.Clear;
dm.qrmax.SQL.Add('select max (ta)as ta from nahal where idt='+QuotedStr( Edit_id_tolid.Text)+' and idm='+QuotedStr( Edit_id_mahsol.Text)+' ');
dm.qrmax.Open;
DM.dsnahal.DataSet.Insert;
DM.dsnahal.DataSet.FieldByName('idt').AsString:=Ed it_id_tolid.TEXT;
DM.dsnahal.DataSet.FieldByName('idm').AsString:=Ed it_id_mahsol.TEXT;
DM.dsnahal .DataSet .FieldByName('tarikh').AsString :=Edit_tarikh.Text ;
DM.dsnahal .DataSet .FieldByName('mojavez').AsString :=edit_mojavez .Text ;
DM.dsnahal .DataSet .FieldByName('payeh').AsString :=Edit_payeh .Text ;
DM.dsnahal.DataSet.FieldByName('ostan').AsString:= ComboBox1.Text;
DM.dsnahal.DataSet.FieldByName('ragham').AsString: =Edit_ragham .Text;
DM.dsnahal.DataSet.FieldByName('tedad').AsString:= Edit_tedad.Text;
//az
s2:=DBGrid4.Fields[0].AsString;
dm.dsnahal.DataSet.FieldByName('az').AsString:= s2;
//ta
تو اینجا مشکل دارم هر تبدیلی هم زدم جواب نداد تو شکل معلومه جای جمع عددی جمع رشته ای میشه
dM.dsnahal.DataSet.FieldByName('ta').AsString:=s2+ Edit_tedad.Text;
//DM.dsnahal.DataSet.Post;
این کد رو برای سفارش جدید زدم درست کار کرده
var
s:Integer;
begin
DM.dsnahal.DataSet.Insert;
DM.dsnahal.DataSet.FieldByName('idt').AsString:=Ed it_id_tolid.TEXT;
DM.dsnahal.DataSet.FieldByName('idm').AsString:=Ed it_id_mahsol.TEXT;
DM.dsnahal .DataSet .FieldByName('tarikh').AsString :=Edit_tarikh.Text ;
DM.dsnahal .DataSet .FieldByName('mojavez').AsString :=edit_mojavez .Text ;
DM.dsnahal .DataSet .FieldByName('payeh').AsString :=Edit_payeh .Text ;
DM.dsnahal.DataSet.FieldByName('ostan').AsString:= ComboBox1.Text;
DM.dsnahal.DataSet.FieldByName('ragham').AsString: =Edit_ragham .Text;
DM.dsnahal.DataSet.FieldByName('tedad').AsString:= Edit_tedad.Text;
//az
dm.dsnahal.DataSet.FieldByName('az').AsString:='6' +Edit_id_tolid.Text+Edit_id_mahsol.Text+IntToStr(1 0000001);
DBGrid1.DataSource:=DM.dsnahal;
//ta
s:=10000000+StrToInt(Edit_tedad.Text);
DM.dsnahal.DataSet.FieldByName('ta').AsString:='6' +Edit_id_tolid.Text+Edit_id_mahsol.Text+IntToStr(s );
DM.dsnahal.DataSet.Post;
end;