⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basedept01p.pas

📁 DELPHI DFM资源文件内码批量转换程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    ftype:='N';
    ftmp:='外协厂';
  end;

  if ADDMODE and checkdata then
  begin
  //查找同一级编号,取最大的编号再加1
  //第一级
    if TREEVIEW1.SelectionCount = 0 then
    begin
      I := 10;
      FLAG := FALSE;
      while (I <= 99) and not FLAG do
      begin
        SQL := 'SELECT * FROM BASEDEPT WHERE TYPE_NO=' + '''' + INTTOSTR(I) + '''';
        QUERY1.Close;
        QUERY1.SQL.Clear;
        QUERY1.SQL.Add(SQL);
        QUERY1.Open;
        if QUERY1.IsEmpty then
        begin
          SQL := ' INSERT INTO BASEDEPT (TYPE_NO,DEPT_NO,DEPART'+
                 ' ,USERNO,UPD_DATE,TYPE,TMP,WORKMAN)'+
                 ' VALUES (' + '''' + INTTOSTR(I) + '''' +
                 ',' + '''' + EDIT3.Text + '''' + ',' + '''' + EDIT1.Text + '''' +
                 ','+''''+global.puser+''''+','+''''+datetostr(getdate())+''''+
                 ',' + ''''+FTYPE+ '''' + ',' + ''''+FTMP+'''' +
                 ',' + '''' + workmantxt.Text + '''' + ')';
          QUERY1.Close;
          QUERY1.SQL.Clear;
          QUERY1.SQL.ADD(SQL);
          QUERY1.ExecSQL;
          FLAG := TRUE;
        end;
        I := I + 1;
      end;
      if not FLAG then
        MESSAGEDLG('错误,同一层类别不能超过90个!', mtInformation,
          [mbOk], 0)
      else
      begin
       //更新树
        SQL := ' SELECT * FROM  BASEDEPT WHERE TYPE_NO=' + '''' + INTTOSTR(I - 1) + '''';
        QUERY1.Close;
        QUERY1.SQL.Clear;
       // SHOWMESSAGE(SQL);
        QUERY1.SQL.ADD(SQL);
        QUERY1.OPEN;

        TREEVIEW1.Selected := nil;
        NODE := TREEVIEW1.Items.Add(nil,'(' + QUERY1.FIELDBYNAME('DEPT_NO').ASSTRING +
         ')' + QUERY1.FIELDBYNAME('DEPART').AsString);
        NODE.Data := POINTER(QUERY1.FIELDBYNAME('ID').ASINTEGER);
        TREEVIEW1.Repaint;
        TREEVIEW1.Refresh;
      end;
      ADDMODE := FALSE;
      EDITMODE := FALSE;
      REFRESHDATA;
      REFRESHTREEVIEW;
    end //END SELECT=NIL
    else
    begin //不是第一层,则须取得上层编号加上本层编号
    //取得父节点编号
      I := INTEGER(TREEVIEW1.Selected.Data); //取得父世点的ID
      SQL := ' SELECT * FROM BASEDEPT WHERE ID=' + INTTOSTR(I);
      QUERY1.Close;
      QUERY1.SQL.Clear;
      QUERY1.SQL.Add(SQL);
      QUERY1.OPEN;
      FTYPE_NO := QUERY1.FIELDBYNAME('TYPE_NO').AsString;
      I := 10;
      FLAG := FALSE;
      while (I <= 99) and not FLAG do
      begin
        SQL := 'SELECT * FROM BASEDEPT WHERE TYPE_NO=' + '''' + FTYPE_NO + INTTOSTR(I) + '''';
        QUERY1.Close;
        QUERY1.SQL.Clear;
        QUERY1.SQL.Add(SQL);
        QUERY1.Open;
        if QUERY1.IsEmpty then
        begin
          SQL := ' INSERT INTO BASEDEPT (TYPE_NO,DEPT_NO,DEPART'+
                 ' ,USERNO,UPD_DATE,TYPE,TMP,WORKMAN) VALUES (' + '''' + FTYPE_NO + INTTOSTR(I) + '''' +
                 ',' + '''' + EDIT3.Text + '''' + ',' + '''' + EDIT1.Text + '''' +
                 ','+''''+global.puser+''''+','+''''+datetostr(getdate())+''''+
                 ',' + ''''+FTYPE+ '''' + ',' + ''''+FTMP+'''' +
                 ',' + '''' + workmantxt.Text + '''' + ')';
          QUERY1.Close;
          QUERY1.SQL.Clear;
          QUERY1.SQL.ADD(SQL);
          QUERY1.ExecSQL;
          FLAG := TRUE;
        end; // END ISEMPTY
        I := I + 1;
      end; // END WHILE
      if not FLAG then
        MESSAGEDLG('错误,同一层类别不能超过90个!', mtInformation,
          [mbOk], 0)
      else
      begin
       //更新树
        SQL := ' SELECT * FROM  BASEDEPT WHERE TYPE_NO=' + ''''
               + FTYPE_NO + INTTOSTR(I - 1) + '''';
        QUERY1.Close;
        QUERY1.SQL.Clear;
        QUERY1.SQL.ADD(SQL);
        QUERY1.OPEN;
        NODE := TREEVIEW1.Selected;
        NODE := TREEVIEW1.Items.Add(NODE,'(' + QUERY1.FIELDBYNAME('DEPT_NO').ASSTRING +
                ')' + QUERY1.FIELDBYNAME('DEPART').AsString);
        NODE.Data := POINTER(QUERY1.FieldByName('ID').AsInteger);
        TREEVIEW1.Repaint;
        TREEVIEW1.Refresh;
      end;
      ADDMODE := FALSE;
      EDITMODE := FALSE;
      REFRESHDATA;
      REFRESHTREEVIEW;
    end; //END SELECT=NIL
  end; // END ADDMODE
  
  if editmode and checkdata then
  begin
    sql := ' update BASEDEPT set DEPART=' + '''' + edit1.Text + '''' +
           ',USERNO=' + '''' + global.puser + '''' +
           ',UPD_DATE=' + '''' + datetostr(getdate()) + '''' +
           ',TYPE=' + '''' + FTYPE + '''' +
           ',TMP=' + '''' + FTMP + '''' +
           ',WORKMAN='+''''+workmantxt.Text+''''+
           ' where id=' + inttostr(integer(treeview1.selected.data));
    QUERY1.Close;
    QUERY1.SQL.Clear;
    QUERY1.SQL.ADD(SQL);
    QUERY1.ExecSQL;
    ADDMODE := FALSE;
    EDITMODE := FALSE;
    treeview1.Selected.Text:='('+edit3.Text+')'+edit1.Text ;
    REFRESHDATA;
  end;
end;

procedure Tbasedept01f.spdeleteClick(Sender: TObject);
var
  SQL, TYPE_NO: string;
  I: INTEGER;
begin
  if TREEVIEW1.SelectionCount = 0 then
    MESSAGEDLG('错误,你还没选择要删除的节点!', mtERROR,
      [mbOk], 0)
  else
  begin
    I := INTEGER(TREEVIEW1.Selected.Data);
    SQL := ' SELECT * FROM BASEDEPT WHERE ID=' + INTTOSTR(I);
    QUERY1.Close;
    QUERY1.SQL.Clear;
    QUERY1.SQL.ADD(SQL);
    QUERY1.OPEN;
    TYPE_NO := QUERY1.FIELDBYNAME('TYPE_NO').AsString;
    SQL := ' SELECT * FROM BASEDEPT WHERE TYPE_NO LIKE ' + '''' + TYPE_NO + '%' +'''';
    QUERY1.Close;
    QUERY1.SQL.Clear;
    QUERY1.SQL.ADD(SQL);
    QUERY1.OPEN;
    if QUERY1.RecordCount > 1 then
      MESSAGEDLG('错误,你还有下级节点,不能删除!', mtERROR,
        [mbOk], 0)
    else
      if MESSAGEDLG('你确定要删除此节点吗?',
        mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
        SQL := 'DELETE FROM BASEDEPT WHERE TYPE_NO=' + '''' + TYPE_NO + '''';
        QUERY1.Close;
        QUERY1.SQL.Clear;
        QUERY1.SQL.ADD(SQL);
        QUERY1.ExecSQL;
        TREEVIEW1.Selected.Delete;
        TREEVIEW1.Repaint;
        TREEVIEW1.Refresh;
        TREEVIEW1.Selected := nil;
        refreshdata;
      end;
  end;
end;

procedure Tbasedept01f.Button1Click(Sender: TObject);
var
  I, J: INTEGER;
begin
  I := 0;
  while I < TREEVIEW1.Items.Count do
  begin
    J := INTEGER(TREEVIEW1.Items[I].DATA);
    SHOWMESSAGE(INTTOSTR(J));
    I := I + 1;
  end;
end;

procedure Tbasedept01f.TreeView1DblClick(Sender: TObject);
var
  I: INTEGER;
begin
  I := INTEGER(TREEVIEW1.Selected.Data);
end;

procedure Tbasedept01f.speditClick(Sender: TObject);
begin
  if edit3.Text <> '' then
  begin
    editmode := true;
    edit1.ReadOnly := false;
    edit3.ReadOnly := true;
    refreshdata;
    if PANEL1.Enabled then
      edit1.SetFocus;
  end
  else
    showmessage('你还没有选择要修改的项目');
end;

procedure Tbasedept01f.SpeedButton1Click(Sender: TObject);
var
  sql:string;
  i:integer;
begin
  basedept02f:=tbasedept02f.create(self);
  //创建临时表#basedept
  sql:='create table #basedept(dept_no char(16) null,'+
       ' depart char(16) null, tmp char(10) null,'+
       ' workman char(16) null,dept_no1 char(16) null,'+
       ' depart1 char(16) null, tmp1 char(10) null,'+
       ' workman1 char(16) null)';
  basedept02f.query1.close;
  basedept02f.Query1.SQL.Clear;
  basedept02f.Query1.SQL.Add(sql);
  basedept02f.Query1.ExecSQL;
  //将basedept记录插入#basedept
  sql:=' select dept_no,depart,tmp,workman from basedept';
  basedept02f.query1.close;
  basedept02f.Query1.SQL.Clear;
  basedept02f.Query1.SQL.Add(sql);
  basedept02f.Query1.Open;
  basedept02f.Query1.First;//从第一条记录开始
  basedept02f.query2.close;
  basedept02f.Query2.SQL.Clear;
  basedept02f.Query2.SQL.Add(sql);
  basedept02f.Query2.Open;
  basedept02f.Query2.First;
  basedept02f.Query2.Next;//从第二条记录开始
  i:=(basedept02f.Query1.RecordCount) mod 2;
  while not basedept02f.Query1.Eof and not basedept02f.Query2.Eof do
  begin
    sql:='insert into #basedept(dept_no,depart,tmp,workman,'+
         'dept_no1,depart1,tmp1,workman1)'+
         ' values('+''''+basedept02f.query1.fieldbyname('dept_no').asstring+''''+','+
         ''+''''+basedept02f.query1.fieldbyname('depart').asstring+''''+','+
         ''+''''+basedept02f.query1.fieldbyname('tmp').asstring+''''+','+
         ''+''''+basedept02f.query1.fieldbyname('workman').asstring+''''+','+
         ''+''''+basedept02f.query2.fieldbyname('dept_no').asstring+''''+','+
         ''+''''+basedept02f.query2.fieldbyname('depart').asstring+''''+','+
         ''+''''+basedept02f.query2.fieldbyname('tmp').asstring+''''+','+
         ''+''''+basedept02f.query2.fieldbyname('workman').asstring+''''+')';
    basedept02f.Qbasedept.Close;
    basedept02f.Qbasedept.SQL.Clear;
    basedept02f.Qbasedept.SQL.Add(sql);
    basedept02f.Qbasedept.ExecSQL;
    basedept02f.Query1.Next;
    basedept02f.Query1.Next;
    basedept02f.Query2.Next;
    basedept02f.Query2.Next;
  end;
  if i=1 then
  begin
    basedept02f.Query1.Last;
    sql:='insert into #basedept(dept_no,depart,tmp,workman,'+
         'dept_no1,depart1,tmp1,workman1)'+
         ' values('+''''+basedept02f.query1.fieldbyname('dept_no').asstring+''''+','+
         ''+''''+basedept02f.query1.fieldbyname('depart').asstring+''''+','+
         ''+''''+basedept02f.query1.fieldbyname('tmp').asstring+''''+','+
         ''+''''+basedept02f.query1.fieldbyname('workman').asstring+''''+','+
         ''' '','' '','' '','' '')';
    basedept02f.Qbasedept.Close;
    basedept02f.Qbasedept.SQL.Clear;
    basedept02f.Qbasedept.SQL.Add(sql);
    basedept02f.Qbasedept.ExecSQL;
  end;
  //计算记录数
  sql:='select * from #basedept';
  basedept02f.query1.close;
  basedept02f.Query1.SQL.Clear;
  basedept02f.Query1.SQL.Add(sql);
  basedept02f.Query1.open;
  i:=(basedept02f.Query1.RecordCount) mod 35;
  if i=0 then
  begin
    basedept02f.Qperson1.Active:=true;
    basedept02f.QuickRep1.Preview;
  end
  else
  begin
    while (i<35) do
    begin
      i:=i+1;
      sql:='insert into #basedept(dept_no,depart,tmp,workman,'+
           'dept_no1,depart1,tmp1,workman1)'+
           ' values('' '','' '','' '','' '','' '','' '','' '','' '')' ;
      basedept02f.query1.close;
      basedept02f.Query1.SQL.Clear;
      basedept02f.Query1.SQL.Add(sql);
      basedept02f.Query1.ExecSQL;
    end;
  end;
  //报表预览
  sql:='select * from #basedept';
  basedept02f.Qbasedept.Close;
  basedept02f.Qbasedept.SQL.Clear;
  basedept02f.Qbasedept.SQL.Add(sql);
  basedept02f.Qbasedept.Open;
  basedept02f.Qperson1.Active:=true;
  basedept02f.QuickRep1.Preview;
  //删除#basedept
  sql:='drop table #basedept';
  basedept02f.Query1.Close;
  basedept02f.Query1.SQL.Clear;
  basedept02f.Query1.SQL.Add(sql);
  basedept02f.Query1.ExecSQL;
  basedept02f.free;
end;

procedure Tbasedept01f.FormClick(Sender: TObject);
begin
  if panel2.Enabled then
  begin
    treeview1.Selected := nil;
    refreshdata;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -