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

📄 u_clsld.pas

📁 物资管理三层源代码,包含的更能比较多,窗口也多,比较适合参考用
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    exit;
  end;
  if length(trim(edtSlzh.text)) <> 9 then
  begin
    application.MessageBox('收料字号应为九位', '物资管理系统', mb_iconinformation + mb_defbutton1);
    edtSlzh.SetFocus;
    exit;
  end;
  //判断关键字是否重复
  s_slzh := edtSlzh.Text;
  DM.CDS_CLSLD_INDEX.IndexFieldNames := '收料字号';
  DM.CDS_CLSLD_INDEX.Refresh;
  if DM.CDS_CLSLD.state = dsinsert then
  begin
    if DM.CDS_CLSLD_INDEX.FindKey([s_slzh]) then
    begin
      application.MessageBox('收料字号已重复', '物资管理系统', mb_iconinformation + mb_defbutton1);
      edtSlzh.SetFocus;
      exit;
    end;
  end;
  //提交、保存数据库
  DM.CDS_CLSLD.Post;
  DM.CDS_CLSLD.ApplyUpdates(0);
  //设置数据显示组件为不可用状态
  btn_valid;
end;

procedure TfrmClsld.btn_cgrClick(Sender: TObject);
begin
  DM.CDS_CLSLD.FieldByName('采购人').value := GetEmployeeName;
end;

procedure TfrmClsld.btn_zgClick(Sender: TObject);
begin
  DM.CDS_CLSLD.FieldByName('主管').value := GetEmployeeName;
end;

procedure TfrmClsld.btn_zdrClick(Sender: TObject);
begin
  DM.CDS_CLSLD.FieldByName('制单人').value := GetEmployeeName;
end;

procedure TfrmClsld.btn_ysrClick(Sender: TObject);
begin
  DM.CDS_CLSLD.FieldByName('验收人').value := GetEmployeeName;
end;

procedure TfrmClsld.btn_refreshClick(Sender: TObject);
begin
  DM.CDS_CLSLD.Refresh;
end;

procedure TfrmClsld.btn_findClick(Sender: TObject);
var
  GenQuery: TGenQ3;
begin
  GenQuery := TGenQ3.Create(self);
  GenQuery.v_TableName := 'WZ_CLSLD_MAIN'; //设置表名
  GenQuery.v_AppServName := frmMain.SocketConnection; //设置应用服务器连接
  GenQuery.v_ProviderName := 'P_General'; //设置获取数据集的提供者
  //==添加定位字段,“;”前表示实际字段名,‘;’后表示实际字段的别名
  GenQuery.v_fieldsstrings.Add('收料字号;收料字号');
  GenQuery.v_fieldsstrings.Add('仓库名称;仓库名称');
  GenQuery.v_fieldsstrings.Add('制单日期;制单日期');
  GenQuery.v_fieldsstrings.Add('供应厂家;供应厂家');
  GenQuery.v_fieldsstrings.Add('物资来源;物资来源');
  GenQuery.v_fieldsstrings.Add('采购人;采购人');
  GenQuery.v_fieldsstrings.Add('合同编号;合同编号');
  GenQuery.v_fieldsstrings.Add('发票金额;发票金额');
  GenQuery.v_fieldsstrings.Add('主管;主管');
  GenQuery.v_fieldsstrings.Add('制单人;制单人');
  GenQuery.v_fieldsstrings.Add('验收人;验收人');
  GenQuery.v_fieldsstrings.Add('审核人;审核人');
  //打开窗口
  if GenQuery.execute then
  begin
    //给CDS_CLSLD_CX的过滤条件赋值
    DM.CDS_CLSLD.filter := GenQuery.V_filtervalue;
    DM.CDS_CLSLD.filtered := true;
  end;
end;



procedure TfrmClsld.btn_deleteClick(Sender: TObject);
begin
  //判断是否有记录可删除
  if DM.CDS_CLSLD.recordcount = 0 then
  begin
    application.MessageBox('没有记录可删除', '物资管理系统', mb_iconinformation + mb_defbutton1);
    exit;
  end;
  //确认删除
  if application.messagebox('请确认是否要删除', '物资管理系统', mb_iconinformation + mb_yesno) = idyes then
  begin
    DM.CDS_CLSLD.delete;
    DM.CDS_CLSLD.applyupdates(0);
  end;
end;

procedure TfrmClsld.DBGridDblClick(Sender: TObject);
begin
  pmi_Insert.click;
end;

procedure TfrmClsld.Timer1Timer(Sender: TObject);
begin
  statusbar1.Panels[2].text := '共有:' + inttostr(DM.CDS_CLSLD.recordcount) + '条记录';
  if DM.CDS_CLSLD.recordcount = 0 then
    statusbar1.panels[1].text := ''
  else if DM.CDS_CLSLD.fieldbyname('是否审核').value = true then
    statusbar1.panels[1].text := '此单据已审核'
  else if (DM.CDS_CLSLD.fieldbyname('是否审核').value = null) or (DM.CDS_CLSLD.fieldbyname('是否审核').value = false) then
    statusbar1.panels[1].text := '此单据未审核';
  statusbar1.refresh;
end;


procedure TfrmClsld.pmi_InsertClick(Sender: TObject);
var
  i: integer;
  s_hint: string;
begin
  //判断是否在编辑状态下
  if btn_edit.Enabled = true then
  begin
    application.MessageBox('请在编辑或添加状态下添加物资', '物资管理系统', mb_iconinformation + mb_defbutton1);
    exit;
  end;
  //创建辅助录入窗口
  application.createform(TfrmClbm_Fzlr, frmClbm_Fzlr);
  try
    frmClbm_Fzlr.showmodal;
  finally
    frmClbm_Fzlr.free;
  //将选中的材料加到DBGrid中
    for i := Low(ClbmRec) to High(clbmRec) do
    begin
      DM.CDS_CLSLD_DETAIL_INDEX.Active := True;
      DM.CDS_CLSLD_DETAIL_INDEX.refresh;
      DM.CDS_CLSLD_DETAIL_INDEX.Filter := '收料字号=' + '''' + DM.CDS_CLSLD.fieldbyname('收料字号').asstring + '''';
      DM.CDS_CLSLD_DETAIL_INDEX.filtered := true;
      DM.CDS_CLSLD_DETAIL_INDEX.IndexFieldNames := '材料编号';
      //判断是否有重复的物资
      if DM.CDS_CLSLD_DETAIL_INDEX.FindKey([clbmRec[i].clbm]) then
      begin
        s_hint := '已有材料编号为' + clbmRec[i].clbm + '的物资';
        application.MessageBox(Pchar(s_hint), '物资管理系统', mb_iconinformation + mb_defbutton1);
        continue;
      end;
      //添加进DM.CDS_CLSLD_DETAIL
      DM.CDS_CLSLD_DETAIL.insert;
      DM.CDS_CLSLD_DETAIL.fieldbyname('材料编号').value := ClbmRec[i].clbm;
      DM.CDS_CLSLD_DETAIL.fieldbyname('材料名称').value := ClbmRec[i].clmc;
      DM.CDS_CLSLD_DETAIL.fieldbyname('规格型号').value := ClbmRec[i].ggxh;
      DM.CDS_CLSLD_DETAIL.fieldbyname('计量单位').value := ClbmRec[i].jldw;
      DM.CDS_CLSLD_DETAIL.fieldbyname('计划单价').value := ClbmRec[i].jhdj;
      DM.CDS_CLSLD_DETAIL.fieldbyname('单价单位').value := ClbmRec[i].djdw;
      DM.CDS_CLSLD_DETAIL.fieldbyname('凭证数量').value := 0.0;
      DM.CDS_CLSLD_DETAIL.fieldbyname('实收数量').value := 0.0;
      DM.CDS_CLSLD_DETAIL.post;
    end;
  end;
  dbgrid.Refresh;
end;

procedure TfrmClsld.pmi_DeleteClick(Sender: TObject);
begin
  //判断是否有记录可删除
  if DM.CDS_CLSLD_DETAIL.recordcount = 0 then
  begin
    application.MessageBox('没有记录可删除', '物资管理系统', mb_iconinformation + mb_defbutton1);
    exit;
  end;
  //判断是否在浏览状态下
  if (btn_edit.enabled = false) then
  begin
    application.MessageBox('请在浏览状态下删除物资', '物资管理系统', mb_iconinformation + mb_defbutton1);
    exit;
  end;
  if application.messagebox('请确认是否要删除', '物资管理系统', mb_iconinformation + mb_yesno) = idyes then
  begin
    DM.CDS_CLSLD_DETAIL.delete;
  end;
  DM.CDS_CLSLD.applyupdates(0);
end;

procedure TfrmClsld.btn_printClick(Sender: TObject);
var
  s_filter: string;
  my_bookmark: Tbookmark;
begin
  s_filter := DM.CDS_CLSLD.Filter;
  my_bookmark := DM.CDS_CLSLD.GetBookmark;
  DM.CDS_CLSLD.Filter := '收料字号=' + '''' + DM.CDS_CLSLD.fieldbyname('收料字号').asstring + '''';
  DM.CDS_CLSLD.Filtered := true;
  quickrep.Preview;
  DM.CDS_CLSLD.Filter := s_filter;
  DM.CDS_CLSLD.Filtered := true;
  DM.CDS_CLSLD.GotoBookmark(my_bookmark);
end;



procedure TfrmClsld.FormShow(Sender: TObject);
var
  s_value: string;
begin
  //激活仓库信息表
  DM.CDS_CKXX_INDEX.Active := True;
  DM.CDS_CKXX_INDEX.First;
  cmbCkmc.Items.Clear ;
  //循环向下拉框写入仓库名称
  while not DM.CDS_CKXX_INDEX.eof do
  begin
    s_value := DM.CDS_CKXX_INDEX.fieldbyname('仓库名称').asstring;
    cmbCkmc.Items.Add(s_value);
    DM.CDS_CKXX_INDEX.next;
  end;

  with DM do
  begin
    CDS_CLSLD_DETAIL.Close;
    CDS_CLSLD.Close;
    CDS_CLSLD_INDEX.Close;
    CDS_CLSLD_DETAIL_INDEX.Close;

    CDS_CLSLD.Open;
    CDS_CLSLD_DETAIL.Open;
    CDS_CLSLD_INDEX.Open;
    CDS_CLSLD_DETAIL.Open;
  end;
end;

procedure TfrmClsld.N_PassedClick(Sender: TObject);
begin
  DM.CDS_CLSLD.DisableControls;
  DM.CDS_CLSLD.Filtered := False;
  DM.CDS_CLSLD.Filter := '是否审核=True';
  DM.CDS_CLSLD.Filtered := True;
  DM.CDS_CLSLD.EnableControls;
end;

procedure TfrmClsld.N_NotPassedClick(Sender: TObject);
begin
  DM.CDS_CLSLD.DisableControls;
  DM.CDS_CLSLD.Filtered := False;
  DM.CDS_CLSLD.Filter := '是否审核=False';
  DM.CDS_CLSLD.Filtered := True;
  DM.CDS_CLSLD.EnableControls;

end;

procedure TfrmClsld.N_AllClick(Sender: TObject);
begin
  DM.CDS_CLSLD.Filtered := False;
end;

end.

⌨️ 快捷键说明

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