首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不同事件中使用StringGrid selectedText

在不同事件中使用StringGrid selectedText
EN

Stack Overflow用户
提问于 2015-06-08 18:50:47
回答 1查看 240关注 0票数 0

我有一个表单2个按钮与2个不同的事件,一个设置的订单准备,另一个被拒绝。对于我的字符串网格,我从数据库中选择记录,对于buttonClick事件,我使用我在更新查询中输入的值advStringGrid.Selectedtext创建更新查询。但问题是,当我第一次单击Ready按钮,然后单击拒绝按钮时,没有关闭窗体,那么字符串值只保留到第一次单击。也许可以选择"immediately“或w/o结束形式来获取advStringGrid.Selectedtext变量的新值。

代码语言:javascript
复制
procedure TfTodoList.setRefusedbtnClick(Sender: TObject);
var
  i: Integer;
begin

  if (Sender = setRefusedbtn) and (State = 0) then
  begin

    qryExec.Sql.Text := 'Update KitchenOrderRow Set StatusID = 1' +
      ' Where   (OrderId in (Select OrderId from KitchenOrderHeader ' +
      ' Where Invoice = ' + IntToStr(Orders[X].Invoice) +
      ')) and (InvRowId = ' + IntToStr(Orders[X].InvRowId) + ')';

    advOrderGridClickCell(Sender, X, Y);
  end
  else if (State = 1) and (setRefusedbtn = Sender) then
  begin
    ProductName := advOrderGrid.SelectedText;
    qryExec.Sql.Text := 'Update KitchenOrderRow Set StatusID = 1' +
      ' where   productName = ''' + ProductName + ''' and StatusID = ' +
      IntToStr(qryStatusStatusID.asInteger) + '';
    State := 0;
    // fk_lib.logisse(nil, qryExec.Sql.Text);
  end;

  qryExec.ExecSQL;
  advOrderGrid.RemoveSelectedRows;
end;
EN

回答 1

Stack Overflow用户

发布于 2015-06-08 19:27:18

如果更新dataset中在DbGrid中使用的某些值,则应刷新连接到DbCrid的数据集。关闭/打开表单执行此操作。执行update查询后,执行以下操作:

代码语言:javascript
复制
Grid.Datasorce.DataSet.Refresh;

代码语言:javascript
复制
Grid.Datasorce.DataSet.Close;
Grid.Datasorce.DataSet.Open;

更新:

如果你的网格没有通过datalink(datasource)直接连接到数据库,你可以刷新它,就像执行用数据填充网格的过程一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30707224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档