📄 zy210unit.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 + -