مجتبی جوادی
پنج شنبه 16 فروردین 1386, 00:13 صبح
دوستان عزیز سلام
من یک جدول در sql ساخته ام که یکی از فیلدهای آن شماره ترتیب بر اساس سال جاری میباشد مثلاً در سال 86 ترتیب شماره بصورت 860001 و 860002 و ... میباشد و در سال های بعدی بجاری 86 آن سال مورد نظر قرار می گیرد . حال در دلفی فرمی ساخته ام که با جدول فوق در ارتباط بوده و یک کلید در داخل فرم قرار داده ام که با زدن این کلید می خواهم بطور اتوماتیک برای هر رکورد شماره مورد نظر ایجاد گردد . البته بنده کد مورد نظر را نوشته ام فقط یک مشکل دارد و آن اینکه اولین شماره در اول هر سال مورد نظر را نمی تواند ایجاد کند و برنامه خطا می دهد . لطفا اگر متوجه شده اید راهنمایی کنید
با تشکر
var
a:String;
begin
a:=Copy(MainForm.EDYear.Text,3,2)+'0001';
TFactorMain.Insert;
EDFactCode.SetFocus;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT MAX(FactCode) as FMax FROM FactorMain Where DYear='+
QuotedStr(MainForm.EDYear.Text) + '');
Open;
FCode.DataField:='FMax';
if AdoQuery1.RecordCount>0 then
EDFactCode.Text:=inttostr(strtoint(FCode.Text)+1)
else if AdoQuery1.RecordCount=0 then
EDFactCode.Text:=a;
EDDYear.Text:=MainForm.EDYear.Text;
end;
//FCode:=strtoint(FcCod.Text)+1;
//EDFactCode.Text:=inttostr(FCode);
end;
من یک جدول در sql ساخته ام که یکی از فیلدهای آن شماره ترتیب بر اساس سال جاری میباشد مثلاً در سال 86 ترتیب شماره بصورت 860001 و 860002 و ... میباشد و در سال های بعدی بجاری 86 آن سال مورد نظر قرار می گیرد . حال در دلفی فرمی ساخته ام که با جدول فوق در ارتباط بوده و یک کلید در داخل فرم قرار داده ام که با زدن این کلید می خواهم بطور اتوماتیک برای هر رکورد شماره مورد نظر ایجاد گردد . البته بنده کد مورد نظر را نوشته ام فقط یک مشکل دارد و آن اینکه اولین شماره در اول هر سال مورد نظر را نمی تواند ایجاد کند و برنامه خطا می دهد . لطفا اگر متوجه شده اید راهنمایی کنید
با تشکر
var
a:String;
begin
a:=Copy(MainForm.EDYear.Text,3,2)+'0001';
TFactorMain.Insert;
EDFactCode.SetFocus;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT MAX(FactCode) as FMax FROM FactorMain Where DYear='+
QuotedStr(MainForm.EDYear.Text) + '');
Open;
FCode.DataField:='FMax';
if AdoQuery1.RecordCount>0 then
EDFactCode.Text:=inttostr(strtoint(FCode.Text)+1)
else if AdoQuery1.RecordCount=0 then
EDFactCode.Text:=a;
EDDYear.Text:=MainForm.EDYear.Text;
end;
//FCode:=strtoint(FcCod.Text)+1;
//EDFactCode.Text:=inttostr(FCode);
end;