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

📄 sy_lxqldbl.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 2 页
字号:


procedure TFrmY_LXQLDBL.bbtModifyClick(Sender: TObject);
begin
  if qryQld.IsEmpty then Exit;
  if not qryQld.FieldByName('SDate').IsNull then
  begin
    CHQMsgBox('此数据已发送!');
    Exit;
  end;
  SetControlsState(false);
  dgQld.Options := dgQld.Options + [dgEditing];
  setButtonState(false, false, false, false, true, true);
end;

procedure TFrmY_LXQLDBL.bbtSaveClick(Sender: TObject);
var
  vsQldh: string;
begin

  try
    qryQld.DisableControls;
    while not qryQld.eof do
    begin
      if qryQld.FieldByName('sl').AsInteger = 0 then
        qryQld.delete
      else
        qryQld.next;
    end;
    qryQld.First;
    if not qryQld.Eof then
    begin
      qryQld.edit;
      qryQld.FieldByName('bz').AsString := Memo1.Text;
      qryQld.post;
    end;
    //*************************************************
    with qryQld do
      if (not qryQld.IsEmpty) and (FCurrQldh = clsQldh) then
      begin
        vsQldh := GetQLDH(FslDwdm.Strings[cbbDwmc.ItemIndex]);
        First;
        while not eof do
        begin
          Edit;
          FieldByName('qldh').AsString := vsQldh;
          Next;
        end;
        FCurrQldh := vsQldh;
      end;

  finally
    qryQld.EnableControls;
  end;

  with data do
  begin
    if DM.InTransaction then
      DM.Rollback;
    try
      DM.StartTransaction;
      qryQLD.ApplyUpdates;
      Dm.Commit;
      qryQld.CommitUpdates;

    except
      if DM.InTransaction then
        DM.Rollback;
      CHQMsgBox('数据保存出错');
      SetButtonState(false, false, true, false, false, true);
    end;
  end;

  cbbDwmcChange(Self);

  SetControlsState(true);
  if dgEditing in dgQld.Options then
    dgQld.Options := dgQld.Options - [dgEditing];
  SetButtonState(true, true, true, true, false, false);
end;

procedure TFrmY_LXQLDBL.bbtCancelClick(Sender: TObject);
begin
  qryQld.CancelUpdates;
  if FCurrQldh = clsQldh then
    FCurrQldh := '';

  cbbDwmcChange(Self);
  SetControlsState(true);
  if dgEditing in dgQld.Options then
    dgQld.Options := dgQld.Options - [dgEditing];
  SetButtonState(true, true, true, true, false, false);

end;

procedure TFrmY_LXQLDBL.qryQldSLSetText(Sender: TField;
  const Text: string);
var
  TextValue: Integer;
begin
  try
    TextValue := StrToInt(Text);
    if TextValue < 0 then
    begin
      CHQMsgBox('非法数值!');
      abort;
    end;

    Sender.AsInteger := TextValue;
    qryQld.FieldByName('je').AsFloat := qryQld.FieldByName('sl').AsFloat * qryQld.FieldByName('MZ').AsFloat;
    edHj.Text := FormatFloat('#,##0.00##', SumField(qryQld, qryQld.FieldByName('je'))/100);
  except
    if not (TextValue < 0) then
      chqmsgbox('非法数值');
    abort;
  end;

end;


procedure TFrmY_LXQLDBL.qryQldBeforePost(DataSet: TDataSet);
begin
//  qryQld.FieldByName('je').AsFloat := qryQld.FieldByName('sl').AsInteger * (qryQld.FieldByName('MZ').AsInteger);
end;

procedure TFrmY_LXQLDBL.dgQldKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_Return then
  begin
    key := 0;
    with dgQld do
      if SelectedIndex < (Columns.Count - 1) then
        SelectedIndex := SelectedIndex + 1
      else
        SelectedIndex := 0;
  end;
end;


procedure TFrmY_LXQLDBL.qryQldAfterPost(DataSet: TDataSet);
var
  adouble: double;
begin
{  adouble := SumField(DataSet, DataSet.FieldByName('je'));
  edHj.Text := FormatFloat('#,##0.00##', adouble / 10000); }

end;


procedure TFrmY_LXQLDBL.GetQldhList(Sender: TObject);
const
  csGetQldhLish: string
    = ' select distinct qldh from tys_txpqld where dwdm = :dwdm and nd = :nd and yf = :yf ';
var
  vsTemp: string;
begin
  cbbQldh.Clear;
  if cbbDwmc.ItemIndex <> -1 then
    vsTemp := FslDwdm.Strings[cbbdwmc.ItemIndex]
  else
    vsTemp := '';

  with qryTemp do
  begin
    Close;
    Sql.Clear;
    Sql.Add(csGetQldhLish);
    ParamByName('dwdm').AsString := vsTemp;
    ParamByName('nd').AsString := inttostr(speYear.Value);
    ParamByName('yf').AsString := inttostr(speMonth.Value);
    open;

    if not IsEmpty then
    begin
      first;
      while not eof do
      begin
        cbbQldh.Items.Add(FieldByName('qldh').AsString);
        next;
      end;
    end;
  end;

  if cbbQldh.Items.IndexOf(FCurrQldh) <> -1 then
    cbbQldh.ItemIndex := cbbQldh.Items.IndexOf(FCurrQldh)
  else if cbbQldh.Items.Count > 0 then
  begin
    cbbQldh.ItemIndex := 0;
    FCurrQldh := cbbQldh.Items[cbbQldh.ItemIndex];
  end
  else
    FCurrQldh := '';

end;

procedure TFrmY_LXQLDBL.NewQld(Sender: TObject);
const
  csNewQld: string = ' select * from tys_txpqld where qldh = :qldh ';
begin
  if cbbDwmc.ItemIndex <> -1 then
  begin
    Memo1.Clear;
    FCurrQldh := clsQldh;
    with qryQld do
    begin
      Close;
      Sql.Clear;
      Sql.Add(csNewQld);
      ParamByName('qldh').AsString := FCurrQldh;
      Open;
    end;
  end;

end;


procedure TFrmY_LXQLDBL.SetControlsState(Enabled: bool);
begin
  cbbDwmc.Enabled := Enabled;
  cbbQldh.Enabled := Enabled;
  speYear.Enabled := Enabled;
  speMonth.Enabled := Enabled;
  sbAdd.Enabled := not Enabled;
  sbDelete.Enabled := not Enabled;
  Memo1.ReadOnly := Enabled;

end;


procedure TFrmY_LXQLDBL.cbbQldhChange(Sender: TObject);
begin
  GetQld(Self);
end;


procedure TFrmY_LXQLDBL.cbbDwmcChange(Sender: TObject);
begin
  if (speYear.Text = '') or (speMonth.Text = '') then Exit;
  cbbQldh.OnChange := nil;
  GetQldhList(Self);
  cbbQldh.OnChange := cbbQldhChange;
  cbbQldhChange(nil);
end;

procedure TFrmY_LXQLDBL.dgQldKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) and (key = vk_Delete) then
    key := 0;
end;

function TFrmY_LXQLDBL.SumField(Dataset: TDataSet;
  numField: TField): double;
var
  vBookmark: TBookmark;
  adouble: double;
begin
  Result := 0;

  if not (numField is TNumericField) then
    exit;

  with Dataset do
    if (not IsEmpty) and Active then
    begin
      vBookmark := GetBookmark;
      try
        DisableControls;
        adouble := 0;
        First;
        while not eof do
        begin
          adouble := adouble + numField.AsFloat;
          next;
        end;
        Result := adouble;

        GotoBookmark(vBookmark);
      finally
        FreeBookmark(vBookmark);
        EnableControls;
      end;

    end;

end;

procedure TFrmY_LXQLDBL.RG_JBClick(Sender: TObject);
begin
  GetDwmcList(nil);
  cbbDwmcChange(nil);
end;

procedure TFrmY_LXQLDBL.qryQldMZGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure TFrmY_LXQLDBL.Bbt_SendClick(Sender: TObject);
begin
  if qryQld.IsEmpty then
  begin
    CHQMsgBox('请选择要上报的请领单!');
    Exit;
  end;

  VG_SQLWhere := ' select * from tys_txpqld '
    + ' where QLDH =''' + cbbQldh.Text + ''' ';
  if SendData(VG_SQLWhere, 'TYS_TXPQLD', false) = IDOK then
    CHQMsgBox('信息发送成功!');

end;

procedure TFrmY_LXQLDBL.bbtPrintClick(Sender: TObject);
begin
  if cbbQldh.ItemIndex <> -1 then
  begin
    FrmLxQl := TFrmLxQl.Create(Application);
    try
      FrmLxQl.Qldh := cbbQldh.Items[cbbQldh.ItemIndex];
      FrmLxQl.PrintZxd(Application, 2);
    finally
      FrmLxQl.Free;
    end;
  end;     

end;

procedure TFrmY_LXQLDBL.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  SaveAllColWidth(Self);
end;

procedure TFrmY_LXQLDBL.qryQldBeforeInsert(DataSet: TDataSet);
begin
  Abort;
end;

end.


⌨️ 快捷键说明

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