一个常用进销存软件的 商品入库界面,
1.from中有一个dbgrideh(商品入库表) 里面包含[商品编码,商品名称,规格,单位,入库数量,进价,进价合计] 字段 用
qry_sprkmx(商品入库明细)
2.form中还有一个dbgrieh(商品基本资料表)默认为不可见,里面包含[商品编码,商品名称,规格,拼音码]字段。用qry_spzl(商品资料)
3.在form 的onshow实践中,qry_sprkmx.sql.add(select * from skrkmx where 1=2); open;append;(打开入库明细表,并追加)
4.我想实现的是dbgrideh(商品入库表)中的商品编码单元中录入商品的编码或拼音码时,dbgrieh(商品基本资料表)开始显示,
并根据dbgrideh(商品入库表)中的商品编码单元中录入商品的编码或拼音码进行过滤,并在dbgrieh(商品基本资料表)进行定位,当确定某个商品后按回车键,就把dbgrieh(商品基本资料表)中过滤选择到的该商品的基本资料直接赋值到dbgrideh(商品入库表)中的[商品编码,商品名称,规格,单位]等字段,入库数量获得焦点,如果dbgrideh(商品入库表)中的商品编码为空或没有该商品的基本资料信息,则dbgrieh(商品基本资料表)又为不可见了。
原来有个朋友给我个例子说需要SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0); 他的方法是dbgrideh(商品入库表)中的商品编码单元中向一个edtCXLR的edit发送消息
我后来试验了一下 发现有这几个问题SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0); ----这句我不明白是什么意思,但我知道是向edcxlr中发送dbgrideh中录入的东西的意思。但我也想了能不能在edtcxlr的onchange事情除法用qry_spzl(商品资料).sql.add(select * from spzl where bm like :a or zjm like :b)但这个方法不行啊。
1.DBCX.Width:=OptimizeGrid(DBCX)+20 为什么我这编译的时候报错?DBCX也是个dbgrideh 类似我的dbgrieh(商品基本资料表)
2.SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0);我发现这只能发送一次消息,也就是说我在editcxlr中录入错误了后,但此时dbcx已经获得焦点了后,在edtcxlr中全部删除后再从新录入的话
他就不SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0)
3.我的editcxlr始终不能一直紧跟着dbgrideh的录入的焦点,也就是说我把edtcxlr如果放在dbgrideh的第一行,当我回车到下一行的时候edtcxlr还在第一行上;
代码如下:
procedure Tfmrkd.DBGridEh1KeyPress(Sender: TObject; var Key: Char);
begin IF (DBGridEh1.SelectedField.FieldName='药品ID') AND (QSubMaster.State IN [dsInsert,dsEdit]) THEN
BEGIN
DBCX.DataSource:=NIL;
DBCX.DataSource:=DM.DSxm;
SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0); ----这句
WITH DM.Qxm DO
BEGIN
Close;
SQL.Clear;
SQL.Text:='select 药品助记码 助记码,药品ID 编号,药品名称 名称,规格,单位,单价 from v_xm '+ ' WHERE 药品助记码 LIKE :YPZJM ';
IF EdtCXLR.Text='' THEN
Parameters.ParamByName('YPZJM').Value:=EdtCXLR.Text
ELSE
Parameters.ParamByName('YPZJM').Value:=EdtCXLR.Text+'%';
OPEN;
END;
END;
IF EdtCXLR.Text<>'' THEN
BEGIN
DBCX.Width:=OptimizeGrid(DBCX)+20;
DBCX.Visible:=TRUE;
END
ELSE
BEGIN
DBCX.Visible:=False;
END;
end;不知道我说的是不是很清楚,希望大家能帮帮我 谢谢
1.from中有一个dbgrideh(商品入库表) 里面包含[商品编码,商品名称,规格,单位,入库数量,进价,进价合计] 字段 用
qry_sprkmx(商品入库明细)
2.form中还有一个dbgrieh(商品基本资料表)默认为不可见,里面包含[商品编码,商品名称,规格,拼音码]字段。用qry_spzl(商品资料)
3.在form 的onshow实践中,qry_sprkmx.sql.add(select * from skrkmx where 1=2); open;append;(打开入库明细表,并追加)
4.我想实现的是dbgrideh(商品入库表)中的商品编码单元中录入商品的编码或拼音码时,dbgrieh(商品基本资料表)开始显示,
并根据dbgrideh(商品入库表)中的商品编码单元中录入商品的编码或拼音码进行过滤,并在dbgrieh(商品基本资料表)进行定位,当确定某个商品后按回车键,就把dbgrieh(商品基本资料表)中过滤选择到的该商品的基本资料直接赋值到dbgrideh(商品入库表)中的[商品编码,商品名称,规格,单位]等字段,入库数量获得焦点,如果dbgrideh(商品入库表)中的商品编码为空或没有该商品的基本资料信息,则dbgrieh(商品基本资料表)又为不可见了。
原来有个朋友给我个例子说需要SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0); 他的方法是dbgrideh(商品入库表)中的商品编码单元中向一个edtCXLR的edit发送消息
我后来试验了一下 发现有这几个问题SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0); ----这句我不明白是什么意思,但我知道是向edcxlr中发送dbgrideh中录入的东西的意思。但我也想了能不能在edtcxlr的onchange事情除法用qry_spzl(商品资料).sql.add(select * from spzl where bm like :a or zjm like :b)但这个方法不行啊。
1.DBCX.Width:=OptimizeGrid(DBCX)+20 为什么我这编译的时候报错?DBCX也是个dbgrideh 类似我的dbgrieh(商品基本资料表)
2.SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0);我发现这只能发送一次消息,也就是说我在editcxlr中录入错误了后,但此时dbcx已经获得焦点了后,在edtcxlr中全部删除后再从新录入的话
他就不SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0)
3.我的editcxlr始终不能一直紧跟着dbgrideh的录入的焦点,也就是说我把edtcxlr如果放在dbgrideh的第一行,当我回车到下一行的时候edtcxlr还在第一行上;
代码如下:
procedure Tfmrkd.DBGridEh1KeyPress(Sender: TObject; var Key: Char);
begin IF (DBGridEh1.SelectedField.FieldName='药品ID') AND (QSubMaster.State IN [dsInsert,dsEdit]) THEN
BEGIN
DBCX.DataSource:=NIL;
DBCX.DataSource:=DM.DSxm;
SendMessage(EdtCXLR.Handle,WM_CHAR,WORD(KEY),0); ----这句
WITH DM.Qxm DO
BEGIN
Close;
SQL.Clear;
SQL.Text:='select 药品助记码 助记码,药品ID 编号,药品名称 名称,规格,单位,单价 from v_xm '+ ' WHERE 药品助记码 LIKE :YPZJM ';
IF EdtCXLR.Text='' THEN
Parameters.ParamByName('YPZJM').Value:=EdtCXLR.Text
ELSE
Parameters.ParamByName('YPZJM').Value:=EdtCXLR.Text+'%';
OPEN;
END;
END;
IF EdtCXLR.Text<>'' THEN
BEGIN
DBCX.Width:=OptimizeGrid(DBCX)+20;
DBCX.Visible:=TRUE;
END
ELSE
BEGIN
DBCX.Visible:=False;
END;
end;不知道我说的是不是很清楚,希望大家能帮帮我 谢谢
解决方案 »
- 动态生成一个编辑框
- 我准备学习DELPHI网络编程 从和入手?
- 怎么实现登录网页?
- 我在自己写的WebServices中调用自己写的进程间的COM服务,结果WebServices没有调用COM服务,但也没有报错。
- 如何判断一个对象实例已经被创建呢?就是调用过create方法.
- 请大家说说用什么能够存储各种类型的数据?
- com+组件服务器提示:“不能在指定的事务服务器中获取新事务”, why???
- Combobox的怪问题
- 如何实现注册表的倒出和倒入?
- 关于在TREEVIEW中树结构来自文件的问题
- 问个超复杂的问题,查找然后对比然后插入
- TDBEdit,TDBLabel,TDBGrid........等等地源代码在哪里
并根据dbgrideh(商品入库表)中的商品编码单元中录入商品的编码或拼音码进行过滤,并在dbgrieh(商品基本资料表)进行定位,当确定某个商品后按回车键,就把dbgrieh(商品基本资料表)中过滤选择到的该商品的基本资料直接赋值到dbgrideh(商品入库表)中的[商品编码,商品名称,规格,单位]等字段,入库数量获得焦点,如果dbgrideh(商品入库表)中的商品编码为空或没有该商品的基本资料信息,则dbgrieh(商品基本资料表)又为不可见了。多了麻烦