首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

工號自動增加的問題,该如何处理

2012-03-19 
工號自動增加的問題我現在的窗口中有一edit顯示的是員工的工號,初始值有兩種,一種是000001,一種是L00001,

工號自動增加的問題
我現在的窗口中有一edit顯示的是員工的工號,初始值有兩種,一種是000001,一種是L00001,當我在combobox中選中直接員工時,EDIT中自動產生工號000001(下一個員工工號在此基礎上自動加一),當在combobox中選 中間接員工時EDIT中自動產生工號L00001(下一個員工工號在此基礎上自動加一),
請問這個代碼要怎麼寫?
知道的請幫幫忙,

[解决办法]
var
i:integer;
s:string;
begin
i:=1;
s:=Format( 'L.6d% ',[i]); // 'L000001 '
inc(i);
s:=Format( 'L.6d% ',[i]); // 'L000002 '
……
end;
只是例子,自己变通吧!



[解决办法]
這樣不行吧,每產生一個新的工號,程序都應該要到數據庫中去找上一次產生的最後一個工號吧,找到後在它的基礎上加1才對啊,
--------------
每个工种对应一个最大工号数,每次增加时读这个数,再增加。

放到工种表里。
[解决办法]
每次从表里查询出最大的,然后再加一
[解决办法]
//生成门市蛋糕单号
procedure TinforForm.Create_curr_list_number;
var
list_number_str ,cut_str,cut_date ,max_number:string;
cut_year,cut_month,cut_day :string;
j:integer;
begin
cut_date :=formatdatetime( 'yyyy-mm-dd ',dtpOrder_date.Date);
cut_year :=copy(cut_date,3,2);
cut_month :=copy(cut_date,6,2);
cut_day :=copy(cut_date,9,2);
list_number_str := 'select max(b.other_factory_cake_no) as other_factory_cake_no from other_factory_cake b '
+ ' where b.factory_order_date = ' ' '+datetostr(dtpOrder_date.Date)+ ' ' ' '
+ ' and b.pos_cus_no like ' 'A% ' ' ' ;

Create_list_number.Close;
Create_list_number.SQL.Clear;
Create_list_number.SQL.Text :=list_number_str;
Create_list_number.Open;

if not Create_list_number.Eof then
begin
max_number :=Create_list_number.fieldbyname( 'other_factory_cake_no ').AsString;
if max_number = ' ' then
begin
max_number := '0 ';
end;
list_number_str := 'select pos_cus_no from other_factory_cake '
+ ' where other_factory_cake_no = '+max_number;
Create_list_number.Close;
Create_list_number.SQL.Clear;
Create_list_number.SQL.Text :=list_number_str;
Create_list_number.Open;

cut_str :=Create_list_number.FieldByname( 'pos_cus_no ').AsString;

if cut_str= ' ' then
begin
edtCus_no.Text := 'A '+cut_year+cut_month+cut_day+ '001 ';
end
else
begin
cut_str :=copy(cut_str,8,3);
cut_str :=inttostr(strtoint(cut_str)+1);

case length(cut_str) of
1: cut_str := '00 '+cut_str;
2: cut_str := '0 '+cut_str;
end;

edtCus_no.Text := 'A '+cut_year+cut_month+cut_day+cut_str;
end;
end
else
edtCus_no.Text := 'A '+cut_year+cut_month+cut_day+ '001 ';
end;

热点排行