delphi中 dbgird某行被选中,点击修改在另一个窗体得到该行的值,并传入对应的控件中
2个回答
展开全部
DBGRID组件可能没有行选中事件,我很久没有用这个组件了,我只用DBGridEh,不过你的问题可以用列单击事件来解决,这也是最常用的编程方法。
procedure Tfr_mai.xsqfsj; //显示处方数据
begin
ypysl:=0;
if fr_sjmk.TB_yhlx_sjbj.RecordCount =0 then exit;
edit24.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('门诊号').Value;
edit29.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('检索码').Value;
edit28.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('药品名称').Value;
combobox10.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('剂型').Value;
edit27.Text :=fr_sjmk.TB_yhlx_sjbj.FieldByName('规格').Value;
edit26.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('含量').Value;
combobox9.Text:= fr_sjmk.TB_yhlx_sjbj.FieldByName('单位').Value;
edit23.Text :=currTostr(fr_sjmk.TB_yhlx_sjbj.FieldByName('处方价').Value);
edit25.Text :=fr_sjmk.TB_yhlx_sjbj.FieldByName('数量').Value;
ypysl:=fr_sjmk.TB_yhlx_sjbj.FieldByName('数量').Value;;
edit30.Text :=fr_sjmk.TB_yhlx_sjbj.FieldByName('qfrq').Value;
edit17.Text :=currTostr(strToint(edit25.Text)*strTocurr(edit23.Text));
end;
procedure Tfr_mai.xsdjsj;//
begin
if fr_sjmk.TB_yhlx_sjbj.RecordCount =0 then exit;
edit3.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['姓名'];
edit4.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['出生年月'];
edit5.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['年龄'];
edit8.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['zz'];
edit6.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['诊费'];
edit7.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['药费'];
edit9.Text:=currTostr(strTocurr(edit6.Text)+strTocurr(edit7.Text));
//fr_sjmk.TB_yhlx_sjbj.FieldValues ['费用合计'];
edit1.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['门诊号'];
edit2.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['就诊时间'];
end;
fr_sjmk.TB_yhlx_sjbj是一个放在fr_sjmk数据模块上的ADOdataset组件;
edit等组件就是数据编辑窗口上的编辑组件。
procedure Tfr_mai.DBGridEh1CellClick(Column: TColumnEh);
begin
if tabsheet12.Showing then
begin
xsqfsj; //显示处方数据
end;
if (tabsheet3.Showing) and (combobox4.Visible =true) then
begin
xsdjsj;//显示收费登记数据
end;
end;
tabsheet3等是多页组件中的一页,数据编辑组件全在上面。
我想你应该可以看懂。
procedure Tfr_mai.xsqfsj; //显示处方数据
begin
ypysl:=0;
if fr_sjmk.TB_yhlx_sjbj.RecordCount =0 then exit;
edit24.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('门诊号').Value;
edit29.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('检索码').Value;
edit28.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('药品名称').Value;
combobox10.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('剂型').Value;
edit27.Text :=fr_sjmk.TB_yhlx_sjbj.FieldByName('规格').Value;
edit26.Text:=fr_sjmk.TB_yhlx_sjbj.FieldByName('含量').Value;
combobox9.Text:= fr_sjmk.TB_yhlx_sjbj.FieldByName('单位').Value;
edit23.Text :=currTostr(fr_sjmk.TB_yhlx_sjbj.FieldByName('处方价').Value);
edit25.Text :=fr_sjmk.TB_yhlx_sjbj.FieldByName('数量').Value;
ypysl:=fr_sjmk.TB_yhlx_sjbj.FieldByName('数量').Value;;
edit30.Text :=fr_sjmk.TB_yhlx_sjbj.FieldByName('qfrq').Value;
edit17.Text :=currTostr(strToint(edit25.Text)*strTocurr(edit23.Text));
end;
procedure Tfr_mai.xsdjsj;//
begin
if fr_sjmk.TB_yhlx_sjbj.RecordCount =0 then exit;
edit3.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['姓名'];
edit4.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['出生年月'];
edit5.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['年龄'];
edit8.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['zz'];
edit6.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['诊费'];
edit7.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['药费'];
edit9.Text:=currTostr(strTocurr(edit6.Text)+strTocurr(edit7.Text));
//fr_sjmk.TB_yhlx_sjbj.FieldValues ['费用合计'];
edit1.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['门诊号'];
edit2.Text:=fr_sjmk.TB_yhlx_sjbj.FieldValues ['就诊时间'];
end;
fr_sjmk.TB_yhlx_sjbj是一个放在fr_sjmk数据模块上的ADOdataset组件;
edit等组件就是数据编辑窗口上的编辑组件。
procedure Tfr_mai.DBGridEh1CellClick(Column: TColumnEh);
begin
if tabsheet12.Showing then
begin
xsqfsj; //显示处方数据
end;
if (tabsheet3.Showing) and (combobox4.Visible =true) then
begin
xsdjsj;//显示收费登记数据
end;
end;
tabsheet3等是多页组件中的一页,数据编辑组件全在上面。
我想你应该可以看懂。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询