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

📄 frm_zdwh.pas

📁 用于家庭养殖的财务进出
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit frm_zdwh;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,   Grids, DBGrids, Mask,
  DBCtrls, CheckLst, ExtCtrls,movelabel,DBTables,unit_global,
  frame_CompanyList;

type
  Tfrm_zd = class(TForm)
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Edit1: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    Edit2: TEdit;
    B_ADD: TButton;
    B_MOD: TButton;
    B_DEL: TButton;
    B_SAVE: TButton;
    B_EXIT: TButton;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    ComboBox4: TComboBox;
    ComboBox5: TComboBox;
    ComboBox6: TComboBox;
    CKB_MaintainTable: TCheckListBox;
    RadioGroup1: TRadioGroup;
    procedure FormCreate(Sender: TObject);  //初始化界面radiogroup1的信息
    procedure RadioButton1Click(Sender: TObject);//调用radiobuttonclick
    procedure RadioButton2Click(Sender: TObject);//调用radiobuttonclick
    procedure RadioButton3Click(Sender: TObject);//调用radiobuttonclick
    procedure RadioButton4Click(Sender: TObject); //调用radiobuttonclick
    procedure RadioButton5Click(Sender: TObject);//调用radiobuttonclick
    procedure RadioButton6Click(Sender: TObject); //调用radiobuttonclick
    procedure RadioButton7Click(Sender: TObject);//调用radiobuttonclick
    procedure RadioButton8Click(Sender: TObject);//调用radiobuttonclick
    procedure DBGrid1CellClick(Column: TColumn); //显示 DBGrid1中选中的详细信息
    procedure B_ADDClick(Sender: TObject); //新增一条信息
    procedure B_DELClick(Sender: TObject);//删除一条信息
    procedure B_SAVEClick(Sender: TObject); //保存信息到数据库
    procedure ComboBox2Change(Sender: TObject);//字段是否显示,
    procedure B_EXITClick(Sender: TObject); //退出
    procedure B_MODClick(Sender: TObject);  //修改当前信息
    procedure B_CANCELClick(Sender: TObject); //取消操作
    procedure CKB_MaintainTableClickCheck(Sender: TObject); //初始化dbgrid1界面,并显示radiogroup1中选中表的详细信息
    procedure RadioGroup1Click(Sender: TObject);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit12KeyPress(Sender: TObject; var Key: Char);
    procedure Edit13KeyPress(Sender: TObject; var Key: Char);
    procedure Edit14KeyPress(Sender: TObject; var Key: Char);
    procedure Edit15KeyPress(Sender: TObject; var Key: Char);
    procedure Edit11KeyPress(Sender: TObject; var Key: Char); //显示radiogroup1中选中表的详细信息
  private
    procedure ShwoGridInfo; //初始化dbgrid1界面,并显示radiogroup1中选中表的详细信息
    Function  IsNumeric(StrIn:String):Boolean; //判断输入的数据是否是数字型的
    { Private declarations }
  public
    procedure radiobuttonclick(sender:tobject); //显示当前操作的数据表字段信息
    procedure readonly(value:boolean); //传递控件的只读性
    procedure addfield;  //  新增一条信息
    procedure delfield;  // 删除选定一条信息
    procedure modfield;  //  修改选定一条信息
    { Public declarations }
  end;

var
  frm_zd: Tfrm_zd;

implementation
  uses data_module, Unit4, Unit_main;
var
   gentable_name:string;  //数据表名
   colwidth:integer;  //设置dbgrid1.Columns的宽度
   save:boolean;   //保存标志
   id:integer;    //选择信息的id号
   SelectPage,SelectIndex:integer;//选择信息的页面号,和排序号
   add,modify:boolean;  //增加修改标志
   colindex:integer;   //没用
   maintaintablelistL:tstrings; //表名标签
   //sqlstring:string;
{$R *.dfm}

procedure Tfrm_zd.FormCreate(Sender: TObject);
begin
  maintaintablelistL:=tstringlist.Create;
  with dm.ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add('select tablename,dwname from dw_info where yn');
    open;
    if not eof then
    begin
      while not eof do
      begin
        radiogroup1.Items.Add(fieldbyname('dwname').AsString);
        //ckb_maintaintable.AddItem(fieldbyname('dwname').AsString,CKB_MaintainTable);
        maintaintablelistL.Add(fieldbyname('tablename').AsString);
        next;
      end;
    end;
  end;
  dbgrid1.DataSource:=dm.DataSource4;
  add:=false;
  modify:=false;
  save:=true;
  id:=0;
  //save:=false;
end;

procedure Tfrm_zd.RadioButton1Click(Sender: TObject);
begin
  radiobuttonclick(sender);
end;

procedure tfrm_zd.radiobuttonclick(sender:tobject);
var
  index,i:integer;
  sqlstr:string;
begin
  colwidth:=55;
  label1.Caption:='当前操作的数据表:';
  index:=(sender as tradiobutton).Tag;
  case index of
  0: begin
       label1.Caption:=label1.Caption+'基本信息表';
       gentable_name:='a01';
     end;
  1: begin
       label1.Caption:=label1.Caption+'职务表';
       gentable_name:='a02';
     end;
  2: begin
       label1.Caption:=label1.Caption+'学历表';
       gentable_name:='a03';
     end;
  3: begin
       label1.Caption:=label1.Caption+'家庭表';
       gentable_name:='a04';
     end;
  4: begin
       label1.Caption:=label1.Caption+'简历表';
       gentable_name:='a05';
     end;
  5: begin
       label1.Caption:=label1.Caption+'重大事项表';
       gentable_name:='a06';
     end;
  6: begin
       label1.Caption:=label1.Caption+'后备历史表';
       gentable_name:='a07';
     end;
  7: begin
       label1.Caption:=label1.Caption+'其他信息表';
       gentable_name:='a08';
     end;
  end;
    sqlstr:='select id,table_name,lab_name,field,'+
          'bx_info,cx_field ,is_browse ,'+
         'x ,y ,ord ,notnull,'+  
          'type ,yn ,page ,compx ,compy '+
          ' from field_info where table_name='+quotedstr(gentable_name);

  with dm.ADOQuery7 do
  begin
    close;
    sql.Clear;
    sql.Add(sqlstr);
    open;
    for i:=0 to 15 do
    begin
    dbgrid1.Columns[i].Width:=colwidth;
    end;
  end;
    //=============================
    dbgrid1.Columns[0].Title.caption:='id';
    dbgrid1.Columns[1].Title.caption:='表名';
    dbgrid1.Columns[2].Title.caption:='字段中文名';
    dbgrid1.Columns[3].Title.caption:='字段英文名';
    dbgrid1.Columns[4].Title.caption:='是否有备选信息';
    dbgrid1.Columns[5].Title.caption:='是否为查询条件';
    dbgrid1.Columns[6].Title.caption:='是否为从属信息字段';
    dbgrid1.Columns[7].Title.caption:='标签控件上坐标';
    dbgrid1.Columns[8].Title.caption:='标签控件左坐标';
    dbgrid1.Columns[9].Title.caption:='排序值';
    dbgrid1.Columns[10].Title.caption:='是否必填';
    dbgrid1.Columns[11].Title.caption:='字段类型';
    dbgrid1.Columns[12].Title.caption:='是否显示';
    dbgrid1.Columns[13].Title.caption:='页面';
    dbgrid1.Columns[14].Title.caption:='填值控件上坐标';
    dbgrid1.Columns[15].Title.caption:='填值控件左坐标';
  //=============================
end;
procedure Tfrm_zd.RadioButton2Click(Sender: TObject);
begin
  RadioButtonClick(Sender);
end;

procedure Tfrm_zd.RadioButton3Click(Sender: TObject);
begin
  RadioButtonClick(Sender);
end;

procedure Tfrm_zd.RadioButton4Click(Sender: TObject);
begin
  RadioButtonClick(Sender);
end;

procedure Tfrm_zd.RadioButton5Click(Sender: TObject);
begin
  RadioButtonClick(Sender);
end;

procedure Tfrm_zd.RadioButton6Click(Sender: TObject);
begin
  RadioButtonClick(Sender);
end;

procedure Tfrm_zd.RadioButton7Click(Sender: TObject);
begin
  RadioButtonClick(Sender);
end;

procedure Tfrm_zd.RadioButton8Click(Sender: TObject);
begin
  RadioButtonClick(Sender);
end;

procedure Tfrm_zd.DBGrid1CellClick(Column: TColumn);
begin
  readonly(true);
  with dm.ADOQuery7 do
  begin
    id:=fieldbyname('id').AsInteger;
    SelectPage:=fieldbyname('page').AsInteger;
    SelectIndex:=fieldbyname('ord').AsInteger;
    edit1.Text:=fieldbyname('lab_name').asstring;//fieldbyname('字段中文名').AsString;
    edit2.Text:=fieldbyname('field').asstring;//fieldbyname('字段英文名').AsString;
    if fieldbyname('type').AsString='E' then //  fieldbyname('字段类型').AsString
      combobox6.Text:='文本';
    if fieldbyname('type').AsString='D' then
      combobox6.Text:='日期';
    if fieldbyname('type').AsString='M' then
      combobox6.Text:='备注';
    if fieldbyname('type').AsString='B' then
      combobox6.Text:='是/否';
   edit4.Text:=fieldbyname('table_name').asstring;//fieldbyname('表名').AsString;
   edit5.Text:=fieldbyname('page').asstring;//fieldbyname('页面').AsString;
   if fieldbyname('notnull').AsVariant=true then  // fieldbyname('是否必填').AsVariant
     combobox1.Text:='是'
   else
     combobox1.Text:='否';
   if fieldbyname('yn').AsString='1' then // 是否显示
     combobox2.Text:='是'
   else
     combobox2.Text:='否';
   if fieldbyname('bx_info').AsVariant=true then   // 是否有备选信息
     combobox3.Text:='是'
   else
     combobox3.Text:='否';
   if fieldbyname('cx_field').AsVariant=true then //是否为查询条件
     combobox4.Text:='是'
   else
     combobox4.Text:='否';
   if fieldbyname('is_browse').AsVariant=true then //  是否为从属信息字段
     combobox5.Text:='是'
   else
     combobox5.Text:='否';
   edit11.Text:=fieldbyname('ord').AsString; //排序值
   edit12.Text:=fieldbyname('x').AsString;  //标签控件上坐标
   edit13.Text:=fieldbyname('y').AsString;  //标签控件左坐标
   edit14.Text:=fieldbyname('compx').AsString;  //填值控件上坐标
   edit15.Text:=fieldbyname('compy').AsString;  //填值控件左坐标
  end;
end;

procedure Tfrm_zd.B_ADDClick(Sender: TObject);
var
  i:integer;
begin
  if Application.Messagebox('确定要新增一条信息!','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
  begin
    for i:=0 to self.ComponentCount-1 do     //控件清空
    begin
      if Self.Components[i] is Tcombobox then
        Tcombobox(Self.Components[i]).Text:='';
      if Self.Components[i] is Tedit then
        Tedit(Self.Components[i]).Text:='';
    end;
    readonly(false);
    add:=true;
    modify:=false;
    save:=false;
  end;
end;

procedure tfrm_zd.readonly(value:boolean);
var
  i:integer;
  tmpvalue:boolean;
begin
  for i:=0 to self.ComponentCount-1 do     //控件清空
  begin
    if Self.Components[i] is Tcombobox then
    begin
      if value then
        tmpvalue:=false
      else
        tmpvalue:=true;
      Tcombobox(Self.Components[i]).Enabled:=tmpvalue;
    end;
    if Self.Components[i] is Tedit then
      Tedit(Self.Components[i]).ReadOnly:=value;
    if Self.Components[i] is TMaskEdit then
      Tedit(Self.Components[i]).ReadOnly:=value;  //2006-03
  end;
end;
procedure Tfrm_zd.B_DELClick(Sender: TObject);
var
  sqlstr:string;
  i:integer;

begin
  if (trim(edit4.Text)='') or (trim(edit2.Text)='') or (id=0) then
    exit;
  if Application.Messagebox('确定要删除该信息!','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
  begin
    ////////////////////////2006-03//////////////////////////////////////////////

    sqlstr:='delete from field_info where id='+inttostr(id);//lab_name='+quotedstr(edit1.Text)+' and table_name='+quotedstr(edit4.Text);
    with dm.ADOQuery1 do
    begin
      close;
      sql.Clear;
      sql.Add(sqlstr);
      try
        execsql;
      except
        exit;
      end;
/////////////////////2006-03  删除对应字表的字段//////////////////////////////
      close;
      sql.Clear;
      sql.Add('ALTER TABLE '+trim(edit4.Text)+' drop '+trim(edit2.Text)+' ');
      execsql;
//////////////////////////////////////////////////////////////////////////////
    end;
    Form4.labelcaption1[SelectPage-1][SelectIndex-1].Destroy;
    labelcaption[SelectPage-1][SelectIndex-1].Destroy;
    if (combobox6.Text='文本') or (combobox6.Text='数字') then
    begin
       Form4.editbox1[SelectPage-1][SelectIndex-1].Destroy;
       editbox[SelectPage-1][SelectIndex-1].Destroy;
    end;
    if combobox6.Text='日期' then
    begin
       Form4.maskedit1[SelectPage-1][SelectIndex-1].Destroy;
       maskedit[SelectPage-1][SelectIndex-1].Destroy;
    end;
    if combobox6.Text='备注' then
    begin
      Form4.memo1[SelectPage-1][SelectIndex-1].Destroy;
      memo[SelectPage-1][SelectIndex-1].Destroy;
    end;
    if combobox6.Text='是/否' then
    begin
      Form4.checkbox1[SelectPage-1][SelectIndex-1].Destroy;
      checkbox[SelectPage-1][SelectIndex-1].Destroy;
    end;
//////////////////////////////////////////////////////////////////////////////
    dm.ADOQuery7.Close;
    dm.ADOQuery7.Open;
    
    for i:=0 to 14 do
    begin
    dbgrid1.Columns[i].Width:=colwidth;
    end;
    //dbgrid1.Update;
    for i:=0 to self.ComponentCount-1 do     //控件清空
    begin
      if Self.Components[i] is Tcombobox then
        Tcombobox(Self.Components[i]).Text:='';

⌨️ 快捷键说明

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