新建.修改.删除 三按钮工作流程

一个关键字edit  :edit_by_bh 
一个数据显示grid: grid_by
三个button: button_by1,button_by2,button_by3


    procedure readonly_by(flag:boolean);//edit框只读
    procedure chushihua_by;//edit框初始化
    procedure button_by_show(str:string);//button按钮显示
    procedure chaxun_by;//查询结果输出
    function insert_by:boolean;//添加
    function edit_by:boolean;//修改
    function delete_by:boolean;//删除   


//button_by1.caption:=新建数据  enable:=false;

//click:
  chushihua_by;//初始化路线edit
  button_by_show('新建数据');
  edit_by_rq.SetFocus;
  
//button_by2.caption:=修改数据  enable:=false;
//click
  if button_by2.Caption='修改数据' then begin
    button_by_show('修改数据');
    edit_by_rq.SetFocus;
    exit;
  end;
  if button_by2.Caption='确认添加' then begin
    //执行数据添加操作
    if insert_by=false then exit;
    button_by_show('原始');
    exit;
  end;
  if button_by2.Caption='确认修改' then begin
    //执行数据修改操作
    if edit_by=false then exit;
    button_by_show('原始');
    exit;
  end;
  
//button_by3.caption:='放弃操作'  enable:=false;
//click
  if button_by3.Caption='删除数据' then begin
    //执行删除数据
    if delete_by=false then exit;
  end
  else begin
    //执行放弃操作
    dllform.grid_byCellClick(nil);
  end;
  button_by_show('原始');


//button按钮显示
procedure TDLLFORM.button_by_show(str: string);
begin
  readonly_by(false);
  button_query.Enabled:=false;
  button1.Enabled:=false;//主表状态 
  button2.Enabled:=false;
  button3.Enabled:=false;
  if str='新建数据' then begin
    button_by1.Caption:='新建数据';
    button_by1.Enabled:=false;
    button_by2.Caption:='确认添加';
    button_by2.Enabled:=true;
    button_by3.Caption:='放弃操作';
    button_by3.Enabled:=true;
    //edit_by_lxmc.Text:=edit_lxmc.Text;
  end;
  if str='修改数据' then begin
    button_by1.Caption:='修改数据';
    button_by1.Enabled:=false;
    button_by2.Caption:='确认修改';
    button_by3.Caption:='放弃操作';
  end;
  if str='原始' then begin
    button_by1.Caption:='新建数据';
    button_by1.Enabled:=true;
    button_by2.Caption:='修改数据';
    button_by3.Caption:='删除数据';
    button_query.Enabled:=true;

    //主表按钮状态
    button1.Enabled:=true;
    button2.Enabled:=true;
    button3.Enabled:=true;
    readonly_by(true);
  end;
  application.ProcessMessages;
end;




//edit框只读
procedure TDLLFORM.readonly_by(flag: boolean);
begin
  edit_by_rq.ReadOnly:=flag;
  edit_by_lxmc.ReadOnly:=flag;
  edit_by_ldmc.ReadOnly:=flag;
  edit_by_bynr.ReadOnly:=flag;
  edit_by_bz.ReadOnly:=flag;
end;


//edit框初始化
procedure TDLLFORM.chushihua_by;
begin
  edit_by_rq.Date:=DATE;
  edit_by_lxmc.Text:='';
  edit_by_ldmc.Text:='';
  edit_by_bynr.Text:='';
  edit_by_bz.Text:=''; 
end;






//查询结果输出
procedure TDLLFORM.chaxun_by;
var
  str_lxdm:string;
begin
  str_lxdm:=sqlquery_lx.FieldValues['路线代码'];
  sqlquery_by.SQL.Text:='select 编号,日期,路线名称,路段名称,保养内容,备注 from db_by where 路线代码='+quotedStr(str_lxdm)+' order by 日期 DESC';
  sqlquery_by.ExecSQL;
  sqlquery_by.First;
  grid_by.Columns[0].Width:=1;
  grid_by.Columns[1].Width:=80;
  grid_by.Columns[2].Width:=100;
  grid_by.Columns[3].Width:=100;
  grid_by.Columns[4].Width:=300;
  grid_by.Columns[5].Width:=100;
  grid_by.Hint:='共有 '+inttostr(sqlquery_by.RecordCount)+' 条记录';

  //grid_by. cellclick;//将记录显示到EDIT框中由添加,删除,修改函数中控制
end;


//插入数据

  //edit框判断

  //生成主键
  //添加数据库
  //刷新GRID
  //定位记录
  //显示信息:添加成功
  //清空EDIT框
function TDLLFORM.insert_by: boolean;
var
  bh:string;
begin
  result:=false;
//edit框判断
  if trim(edit_by_lxmc.Text)='' then begin
     application.messagebox(' 错误: 路线名称 不能为空 ','信息',MB_OK);
     exit;
  end;
  if trim(edit_by_ldmc.Text)='' then begin
     application.MessageBox(' 错误: 路段名称 不能为空 ','信息',MB_OK);
     exit;
  end;
  if trim(edit_by_bynr.Text)='' then begin
     application.MessageBox(' 错误: 保养内容 不能为空 ','信息',MB_OK);
     exit;
  end;
//生成主键
  bh:='BY'+formatdatetime('YYYYMMDDHHMMSSZZZ',NOW);
//添加数据库
  sqlquery1.SQL.Text:='insert into db_by(编号,日期,路线名称,路段名称,保养内容,备注,路线代码) values(:a,:b,:c,:d,:e,:f,:g)';
  sqlquery1.Params.ParamByName('a').Value:=bh;
  sqlquery1.Params.ParamByName('b').Value:=trim(edit_by_rq.Text);//路线代码
  sqlquery1.Params.ParamByName('c').Value:=trim(edit_by_lxmc.Text);
  sqlquery1.Params.ParamByName('d').Value:=trim(edit_by_ldmc.Text);
  sqlquery1.Params.ParamByName('e').Value:=trim(edit_by_bynr.Text);
  sqlquery1.Params.ParamByName('f').Value:=trim(edit_by_bz.Text);
  sqlquery1.Params.ParamByName('g').Value:=UpperCase(sqlquery_lx.FieldValues['路线代码']);
  try
    sqlquery1.ExecSQL;
  except
    application.MessageBox(' 错误: 保养数据库添加资料失败 ','信息',MB_OK);
    exit;
  end;
//刷新GRID
  chaxun_by;
//定位记录
  sqlquery_by.Locate('编号',bh,[loCaseInsensitive]);
  dllform.grid_byCellClick(nil);
//显示信息:添加成功
  application.MessageBox(pansichar(' 信息:  '+trim(edit_by_ldmc.Text)+' 路段保养记录添加成功 '),'信息',MB_OK);
//将信息写入到db_info
  database_edit_end;
  result:=true;
end;



//修改数据

  //保存主键
  //edit框判断
  //修改数据库
  //刷新GRID数据
  //根据主键定位 adoquerydd.Locate('订单编号',ddbh,[loCaseInsensitive]);
  //显示信息:修改成功
function TDLLFORM.edit_by: boolean;
var
  bh:string;
begin
  result:=false;
//保存主键
  bh:=trim(edit_by_bh.Text);
//edit框判断
  if trim(edit_by_lxmc.Text)='' then begin
     application.messagebox(' 错误: 路线名称 不能为空 ','信息',MB_OK);
     exit;
  end;
  if trim(edit_by_ldmc.Text)='' then begin
     application.MessageBox(' 错误: 路段名称 不能为空 ','信息',MB_OK);
     exit;
  end;
  if trim(edit_by_bynr.Text)='' then begin
     application.MessageBox(' 错误: 保养内容 不能为空 ','信息',MB_OK);
     exit;
  end;
//修改数据库
  sqlquery1.SQL.Text:='update db_by ';
  sqlquery1.SQL.Add(' set  ');
  sqlquery1.SQL.Add('  日期='+quotedstr(trim(edit_by_rq.Text )));
  sqlquery1.SQL.Add(',路线名称='+quotedstr(trim(edit_by_lxmc.Text  )));
  sqlquery1.SQL.Add(',路段名称='+quotedstr(trim(edit_by_ldmc.Text  )));
  sqlquery1.SQL.Add(',保养内容='+quotedstr(trim(edit_by_bynr.Text  )));
  sqlquery1.SQL.Add(',备注='+quotedstr(trim(edit_by_bz.Text  )));
  sqlquery1.SQL.Add(' where 编号='+quotedStr(bh));
  try
    sqlquery1.ExecSQL;
  except
    application.MessageBox(' 错误: 保养数据库修改资料失败 ','信息',MB_OK);
    exit;
  end;
//刷新GRID
  chaxun_by;
//定位记录
  sqlquery_by.Locate('编号',bh,[loCaseInsensitive]);
  dllform.grid_byCellClick(nil);
//显示信息:添加成功
  application.MessageBox(pansichar(' 信息:  '+trim(edit_by_ldmc.Text )+' 路段保养资料修改成功 '),'信息',MB_OK);
//将信息写入到db_info
  database_edit_end;
  result:=true;
end;



//删除数据

  //保存主键
  //判断是否存在从表
  //删除数据
  //刷新GRID数据
  //将数据显示到edit框中  dllform.grid1cellclick(nil);

  //显示信息:删除成功

function TDLLFORM.delete_by: boolean;
var
  bh:string;
begin
  result:=false;
//保存主键
  bh:=trim(edit_by_bh.Text);
//判断是否存在从表
  //此数据库不需要
//删除数据
  if application.messagebox(pansichar('当前选中的 '+trim(edit_by_ldmc.Text)+' 路段 保养记录 是否删除'),'记录删除',MB_YESNO)=IDNo then exit;
  sqlquery1.SQL.Text:='delete from db_by where 编号='+quotedstr(bh);
  try
    sqlquery1.ExecSQL;
  except
    application.MessageBox(' 错误: 保养数据库删除记录失败 ','信息',MB_OK);
    exit;
  end;
//刷新GRID数据
  chaxun_by;
//显示信息:删除成功
  application.MessageBox(pansichar(' 信息:  '+trim(edit_by_ldmc.Text)+' 路段 保养记录删除成功 '),'信息',MB_OK);
//将数据显示到edit框中  dllform.grid1cellclick(nil);
  dllform.grid_byCellClick(nil);
//将信息写入到db_info
  database_edit_end;
  result:=true;
end;



//主从表之从表

//GRID单击grid_by  cellclick

begin
  if sqlquery_by.Eof then begin
    edit_by_bh.Text:='';
    chushihua_by;
    dllform.edit_by_bhChange(nil);
    exit;
  end;

 //处理新建,修改,删除三大按钮
  button_by_show('原始');

//将数据显示到EDIT框中
  edit_by_bh.Text:=sqlquery_by.FieldValues['编号'];
  edit_by_rq.Text:=sqlquery_by.FieldValues['日期'];
  edit_by_lxmc.Text:=sqlquery_by.FieldValues['路线名称'];
  edit_by_ldmc.Text:=sqlquery_by.FieldValues['路段名称'];
  edit_by_bynr.Text:=sqlquery_by.FieldValues['保养内容'];
  edit_by_bz.Text:=sqlquery_by.FieldValues['备注'];





//关键字段变化处理
//edit_by_bh onchange
  if trim(edit_by_bh.Text)='' then begin
     button_by1.Enabled:=true;
     button_by2.Enabled:=false;
     button_by3.Enabled:=false;
  end
  else begin
     button_by1.Enabled:=true;
     button_by2.Enabled:=true;
     button_by3.Enabled:=true;
  end;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值