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

📄 zy210unit.pas

📁 货物配送管理系统对配送服务
💻 PAS
字号:
{******************************************************************************}
                                                                           {******************************************************************************}
{          原始文件名:ZY210Unit.pas                                           }
{            单元作者:cm991 (cm@ytht.net)                                     }
{            下载地址:                                   }
{            电子邮件:                                         }
{                备注:进仓单窗体,同时录入统计模块                            }
{            最后更新:2003.03.18 V1.0                                         }
{                                                                              }
{******************************************************************************}


unit ZY210Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, PublicUnit, jpeg, ExtCtrls, StdCtrls, Grids, DBGrids, ComCtrls,
  DBCtrls, Mask, adoDB, db;

type
  TZY210Form = class(TPublicUnit)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel3: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    DBComboBox1: TDBComboBox;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    DBComboBox2: TDBComboBox;
    DBEdit11: TDBEdit;
    DBEdit12: TDBEdit;
    DBEdit13: TDBEdit;
    DBEdit14: TDBEdit;
    DBEdit15: TDBEdit;
    DBEdit16: TDBEdit;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    DBEdit17: TDBEdit;
    DBEdit18: TDBEdit;
    DBEdit19: TDBEdit;
    DBEdit20: TDBEdit;
    DBEdit21: TDBEdit;
    DBEdit22: TDBEdit;
    Label24: TLabel;
    Label26: TLabel;
    DBMemo1: TDBMemo;
    DBMemo2: TDBMemo;
    DBNavigator2: TDBNavigator;
    Label27: TLabel;
    DBCheckBox1: TDBCheckBox;
    procedure DBComboBox1DropDown(Sender: TObject);
    procedure DBComboBox2DropDown(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DBComboBox1Change(Sender: TObject);
    procedure DBEdit5Click(Sender: TObject);
    procedure DBEdit17Exit(Sender: TObject);
    procedure DBEdit18Exit(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    procedure CLS; {--- 清除控件内容 ---}
    procedure ENA; {--- 所有控件可用 ---}
    procedure DIS; {--- 所有控件不可用 ---}
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ZY210Form: TZY210Form;

implementation

uses DMUnit, main, DateUnit;
{$R *.dfm}

procedure TZY210Form.CLS;
var
  i: Integer;
begin
  for i := ComponentCount - 1 downto 0 do
  begin
      {--- 清除所有的TDBEdit控件的内容  ---}
    if (Components[i] is TDBEDIT) then
      TDBEDIT(components[i]).Clear;
      {--- 清除所有的TDBComboBox控件的内容  ---}
    if (Components[i] is TDBComboBox) then
      TDBComboBox(components[i]).Clear;
    if (Components[i] is TDBCheckBox) then
      TDBCheckBox(components[i]).Checked := False;
      {--- 清除所有的TDBMemo控件的内容  ---}
    if (Components[i] is TDBMemo) then
      TDBMemo(components[i]).Clear;
  end;

end;

procedure TZY210Form.ENA; // 新增记录的时候使所有的控件可用
var
  i: Integer;
begin
  for i := ComponentCount - 1 downto 0 do
  begin
    if (components[i] is TDBEdit) then
    begin {--- 使所有的TDBEdit控件可用  ---}
      TDBEdit(components[i]).Color := clwindow;
      TDBEdit(components[i]).ReadOnly := false;
    end;
    if (components[i] is TDBComboBox) then
    begin {--- 使所有的TDBComboBox控件可用  ---}
      TDBComboBox(components[i]).Color := clWindow;
    end;
    if (Components[i] is TDBCheckBox) then
      TDBCheckBox(components[i]).Enabled := True;
    if (components[i] is TDBMemo) then
    begin {--- 使所有的TDBMemo控件可用  ---}
      TDBMemo(components[i]).Color := clwindow;
      TDBMemo(components[i]).ReadOnly := false;
    end;

  end;
  Button1.Enabled := False; //  '新增'不可用
  Button2.Enabled := False; //  '编辑'不可用
  Button3.Enabled := True; //  '储存'可用
  Button4.Enabled := True; //  '取消'可用
end;

procedure TZY210Form.DIS;
var
  i: Integer;
begin
  for i := ComponentCount - 1 downto 0 do
  begin // 使所有的TDBEdit控件不可用
    if (components[i] is TDBEdit) then
    begin //  改变TDBEdit控件的颜色
      TDBEdit(components[i]).Color := $00D8D8D8;
      TDBEdit(components[i]).ReadOnly := true;
    end;
    if (components[i] is TDBComboBox) then
    begin //  改变TDBEdit控件的颜色
      TDBComboBox(components[i]).Color := $00D8D8D8;
    end;
    if (Components[i] is TDBCheckBox) then
      TDBCheckBox(components[i]).Enabled := False;
    if (components[i] is TDBMemo) then
    begin //  改变TDBEdit控件的颜色
      TDBMemo(components[i]).Color := $00D8D8D8;
      TDBMemo(components[i]).ReadOnly := true;
    end;
  end;
  Button1.Enabled := True; //  '新增'可用
  Button2.Enabled := True; //  '编辑'可用
  Button3.Enabled := False; //  '储存'不可用
  Button4.Enabled := False; //  '取消'不可用
end;

procedure TZY210Form.DBComboBox1DropDown(Sender: TObject);
var
  I: Integer;
begin
  inherited;
  DBComboBox1.Clear;
  with DM.Querytemp do
  begin
    SQL.clear;
    SQl.Text := 'select 委托单号 from 货运作业总表 ';
    Close;
    Active := False;
    prepared := False;
    prepared := True;
    Active := True;
    if (recordcount > 0) then
      first;
    for i := 0 to recordcount - 1 do
    begin //取得该列所有的数据到combobox1控件中
      DBComboBox1.Items.add(FieldByName('委托单号').asstring);
      next;
    end;
  end;
end;

procedure TZY210Form.DBComboBox2DropDown(Sender: TObject);
var
  I: Integer;
begin
  inherited;
  DBComboBox2.Clear;
  with DM.Querytemp do
  begin
    SQL.clear;
    SQl.Text := 'select 名称 from 仓库名称 ';
    Close;
    Active := False;
    prepared := False;
    prepared := True;
    Active := True;
    if (recordcount > 0) then
      first;
    for i := 0 to recordcount - 1 do
    begin {--- 取得该列所有的数据到combobox2控件中 ---}
      DBComboBox2.Items.add(FieldByName('名称').asstring);
      next;
    end;
  end;
end;

procedure TZY210Form.Button1Click(Sender: TObject);
begin
  inherited;
  CLS;
  ENA;
  DM.JCD.Open;
  DM.JCD.Append; //加入新的记录
end;

procedure TZY210Form.DBComboBox1Change(Sender: TObject);
begin
  inherited;
  DM.JCD.FieldByName('输单员').AsString := MainForm.Auser.UserName;
  DBEdit1.Text := DM.HYZY.FieldByName('经营单位').AsString;
  DBEdit2.Text := DM.HYZY.FieldByName('委托单位').AsString;
  DBEdit6.Text := DM.HYZY.FieldByName('委托单号').AsString + '  进仓单';
  DBEdit10.Text := DM.HYZY.FieldByName('合同号').AsString;
  DBEdit12.Text := DM.HYZY.FieldByName('货名').AsString;
  DBEdit13.Text := DM.HYZY.FieldByName('产地').AsString;
  DBEdit16.Text := DM.HYZY.FieldByName('到达港口').AsString;
end;

procedure TZY210Form.DBEdit5Click(Sender: TObject);
begin
  inherited;
  try {--- 弹出日期选择窗体  ---}
    DateForm := TDateForm.Create(Application);
    DateForm.ShowModal;
    DBEdit5.Text := FormatDateTime('yyyy/mm/dd', DateForm.date1.Date);
    DateForm.Free;
  except
    MessageBox(0, '日期选择窗体创建错误', '错误', MB_OK + MB_ICONSTOP);
  end;
end;

procedure TZY210Form.DBEdit17Exit(Sender: TObject);
begin
  inherited;
  {--- 方便用户操作,把实收和进仓显示为一样 ---}
  DBEdit21.Text := DBEdit17.Text;
end;

procedure TZY210Form.DBEdit18Exit(Sender: TObject);
begin
  inherited;
  {--- 方便用户操作,把实收和进仓显示为一样 ---}
  DBEdit22.Text := DBEdit18.Text;
end;

procedure TZY210Form.Button2Click(Sender: TObject);
begin
  inherited;
  ENA;
  DM.JCD.Edit;
end;

procedure TZY210Form.Button3Click(Sender: TObject);
begin
  inherited;
  with DM.CKTJ do
  begin
    if DM.JCD.State = dsInsert then
    begin
      if Locate('委托单号', DBcombobox1.Text, []) then
      begin
        Edit;
        Fieldbyname('结余数量').AsString := FloatToStr(StrToFloat(DBEdit21.Text) + StrToFloat(Fieldbyname('结余数量').AsString));
        Fieldbyname('结余重量').AsString := FloatToStr(StrToFloat(DBEdit22.Text) + StrToFloat(Fieldbyname('结余重量').AsString));
      end
      else
      begin
        Append; {--- 如果是插入新的记录,则追加该条记录到统计表中 ---}
        Fieldbyname('结余数量').AsString := DBEdit21.Text;
        Fieldbyname('结余重量').AsString := DBEdit22.Text;
      end;
    end
    else if DM.JCD.State = dsEdit then
    begin
      {--- 委托单号作为索引,定位该条记录 ---}
      Locate('委托单号', DBcombobox1.Text, []);
      Edit; {--- 如果是编辑,则只是更新其中的相应部分 ---}
      Fieldbyname('结余数量').AsFloat := StrToFloat(DBEdit21.Text) + Fieldbyname('结余数量').AsFloat - DM.JCD.Fieldbyname('实收数量').AsFloat;
      Fieldbyname('结余重量').AsFloat := StrToFloat(DBEdit22.Text) + Fieldbyname('结余重量').AsFloat - DM.JCD.Fieldbyname('实收重量').AsFloat;

    end;
    Fieldbyname('日期').AsString := DBEdit5.Text;
    Fieldbyname('委托单号').AsString := DBcombobox1.Text;
    Fieldbyname('经营单位').AsString := DBEdit1.Text;
    Fieldbyname('委托单位').AsString := DBEdit2.Text;
    Fieldbyname('代理电话').AsString := DBEdit3.Text;
    Fieldbyname('代理传真').AsString := DBEdit4.Text;
    Fieldbyname('进仓单号').AsString := DBEdit6.Text;
    Fieldbyname('联系人').AsString := DBEdit7.Text;
    Fieldbyname('联系电话').AsString := DBEdit8.Text;
    Fieldbyname('联系传真').AsString := DBEdit9.Text;
    Fieldbyname('进仓数量').AsString := DBEdit17.Text;
    Fieldbyname('进仓重量').AsString := DBEdit18.Text;
    Fieldbyname('包装要求').AsString := DBEdit20.Text;
    Fieldbyname('实收数量').AsString := DBEdit21.Text;
    Fieldbyname('实收重量').AsString := DBEdit22.Text;
    Fieldbyname('货名').AsString := DBEdit12.Text;
    Fieldbyname('合同号').AsString := DBEdit10.Text;
    Fieldbyname('产地').AsString := DBEdit13.Text;
    Fieldbyname('提单号').AsString := DBEdit11.Text;
    Fieldbyname('送货单位').AsString := DBEdit14.Text;
    Fieldbyname('到达港').AsString := DBEdit16.Text;
    Fieldbyname('破损记录').AsString := DBMemo1.Text;
    Fieldbyname('备注').AsString := DBMemo2.Text;
    Fieldbyname('生效').AsBoolean := DBCheckBox1.Checked;
    {--- 只有插入状态下才检测是否重复 ---}
    DM.CKTJ.Post;
    DM.JCD.Post;
    DIS;

  end;
end;

procedure TZY210Form.Button4Click(Sender: TObject);
begin
  inherited;
  DM.JCD.Cancel;
  DIS;
end;

procedure TZY210Form.Button5Click(Sender: TObject);
begin
  inherited;
  if MessageBox(0, '你确定删除该条记录', '提示', MB_YESNO + MB_ICONQUESTION) =
    IDYES then
  begin
    with DM.CKTJ do
    begin
      if Locate('委托单号', DBcombobox1.Text, []) then
      begin
        Edit;
        Fieldbyname('结余数量').AsFloat := Fieldbyname('结余数量').AsFloat - StrToFloat(DBEdit21.Text);
        Fieldbyname('结余重量').AsFloat := Fieldbyname('结余重量').AsFloat - StrToFloat(DBEdit22.Text);
        Post;
      end;
    end;
    DM.JCD.Delete;
  end;
end;

procedure TZY210Form.Button6Click(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TZY210Form.FormShow(Sender: TObject);
begin
  inherited;
  DIS;
  CLS;
end;

end.

⌨️ 快捷键说明

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