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

解决方案 »

  1.   

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

  2.   

    //生成门市蛋糕单号
    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;