📄 kcgz1.pas
字号:
unit kcgz1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, Db, ADODB, dxLayout, wwSpeedButton, wwDBNavigator, wwclearpanel,
StdCtrls, Buttons, EHGrids, DBGridEh, dxExEdtr, dxEdLib, dxDBELib,
dxExGrEd, dxExELib, dxCntner, dxEditor, ExtCtrls, Grids, DBGrids;
type
Tkcgz = class(TForm)
DataSource1: TDataSource;
DataSource2: TDataSource;
Panel1: TPanel;
Panel2: TPanel;
Label7: TLabel;
Ed7: TdxDBEdit;
ADOTable3: TADOTable;
ADOTable4: TADOTable;
StringField1: TStringField;
StringField2: TStringField;
dxDBGridLayoutList1: TdxDBGridLayoutList;
dxDBGridLayoutList1Item1: TdxDBGridLayout;
DataSource3: TDataSource;
DataSource4: TDataSource;
ADOTable4bm: TStringField;
ADOTable4xb: TStringField;
ADOTable4csrq: TDateTimeField;
ADOTable4dh: TStringField;
ADOTable4zz: TStringField;
dxDBGridLayoutList1Item2: TdxDBGridLayout;
DBGridEh1: TDBGridEh;
Query1: TADOQuery;
ADOTable2: TADOTable;
ADOTable2spcode: TStringField;
ADOTable2spname: TStringField;
ADOTable2jldw: TStringField;
ADOTable2id: TAutoIncField;
ADOTable2code: TStringField;
ADOTable2bzgg: TBCDField;
ADOTable1: TADOTable;
ADOTable1code: TStringField;
ADOTable1kdrq: TDateTimeField;
ADOTable1ywy: TStringField;
ADOTable1bz: TStringField;
ADOTable1zt: TStringField;
ADOTable1ywyname: TStringField;
PopupMenu1: TPopupMenu;
N10: TMenuItem;
N2: TMenuItem;
wwDBNavigator1: TwwDBNavigator;
b1: TwwNavButton;
b2: TwwNavButton;
b3: TwwNavButton;
b4: TwwNavButton;
b5: TwwNavButton;
b6: TwwNavButton;
b7: TwwNavButton;
b8: TwwNavButton;
Bit1: TMenuItem;
Bit4: TMenuItem;
Panel4: TPanel;
Shape1: TShape;
Shape2: TShape;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Ed1: TdxDBButtonEdit;
Ed2: TdxDBDateEdit;
Ed3: TdxDBExtLookupEdit;
Ed4: TdxDBExtLookupEdit;
dxDBEdit1: TdxDBEdit;
Bit2: TBitBtn;
Bit3: TBitBtn;
Bit5: TBitBtn;
Bit6: TBitBtn;
Bit7: TBitBtn;
Bit8: TBitBtn;
BitBtn6: TBitBtn;
BitBtn3: TBitBtn;
ADOTable3code: TStringField;
ADOTable3name: TStringField;
ADOTable3dz: TStringField;
ADOTable3dh: TStringField;
ADOTable3cz: TStringField;
ADOTable3lxr: TStringField;
ADOTable3bz: TStringField;
ADOTable1dkr: TStringField;
N3: TMenuItem;
ADOTable2kcsl: TBCDField;
ADOTable1shrq: TDateTimeField;
ADOTable1shr: TStringField;
ADOTable1ck: TStringField;
ADOTable1ckname: TStringField;
ADOTable2gzsl: TBCDField;
ADOTable2yksl: TBCDField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGridEh1GetEditText(Sender: TObject; ACol, ARow: Integer;
var Value: string);
procedure ADOTable2BeforePost(DataSet: TDataSet);
procedure ADOTable2spcodeSetText(Sender: TField; const Text: string);
procedure DBGridEh1SetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: string);
procedure Ed1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtn3Click(Sender: TObject);
procedure Bit2Click(Sender: TObject);
procedure Bit3Click(Sender: TObject);
procedure Ed6KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Bit8Click(Sender: TObject);
procedure NewCode(Sender: integer);
procedure Bit5Click(Sender: TObject);
procedure b1UpdateState(Navigator: TwwDBNavigator;
Button: TwwNavButton; Cause: TwwUpdateCause);
procedure ADOTable1AfterScroll(DataSet: TDataSet);
procedure Bit6Click(Sender: TObject);
procedure Bit7Click(Sender: TObject);
procedure Bit1Click(Sender: TObject);
procedure Bit4Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure Panel1Resize(Sender: TObject);
procedure Panel2Resize(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure N3Click(Sender: TObject);
procedure ADOTable2gzslSetText(Sender: TField; const Text: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
kcgz: Tkcgz;
Etxt, Ytxt, Ycode: string;
ECol: integer;
implementation
uses MainForm1, xgkcgzdh1, dykcgzd1;
{$R *.DFM}
procedure Tkcgz.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cafree;
end;
procedure Tkcgz.DBGridEh1GetEditText(Sender: TObject; ACol, ARow: Integer;
var Value: string);
begin
ECol := ACol;
Ytxt := Value;
end;
procedure Tkcgz.ADOTable2BeforePost(DataSet: TDataSet);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from spda where code=:code');
Query1.Parameters[0].Value := ADOtable2.fieldbyname('spcode').asstring;
Query1.Open;
if Query1.RecordCount = 0 then
begin
// showmessage('输入的商品编码不正确');
ADOTable2.cancel;
end;
end;
procedure Tkcgz.Ed6KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then DBGridEh1.SetFocus;
end;
procedure Tkcgz.ADOTable2spcodeSetText(Sender: TField; const Text: string);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from spda_v where (code=:code or barcode=:barcode) and ckcode=:ckcode');
Query1.Parameters[0].Value := Etxt;
Query1.Parameters[1].Value := Etxt;
Query1.Parameters[2].Value := ADOTable1ck.Value;
Query1.Open;
if Query1.RecordCount > 0 then
begin
ADOTable2.FieldByName('spname').Value := Query1.fieldbyname('name').asstring;
ADOTable2.FieldByName('jldw').Value := Query1.fieldbyname('jldw').asstring;
ADOTable2.FieldByName('bzgg').Value := Query1.fieldbyname('bzgg').Value;
ADOTable2.FieldByName('gzsl').Value := 0;
ADOTable2.FieldByName('kcsl').Value := Query1.fieldbyname('kcsl').Value;
ADOTable2.FieldByName('yksl').Value := Query1.fieldbyname('kcsl').Value;
ADOTable2.FieldByName('spcode').Value := Query1.fieldbyname('code').asstring;
end
else
begin
ADOTable2.Cancel;
end;
Etxt := '';
end;
procedure Tkcgz.DBGridEh1SetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: string);
begin
Etxt := Value;
end;
procedure Tkcgz.Ed1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then
begin
key := 0;
perform(WM_NEXTDLGCTL, 0, 0); {移动到下一个控件}
end;
end;
procedure Tkcgz.BitBtn3Click(Sender: TObject);
begin
close;
end;
procedure Tkcgz.Bit2Click(Sender: TObject);
begin
if Bit6.Enabled = true then
begin
if Application.MessageBox('单据已修改,是否要保存?', '提示', MB_YESNO + MB_ICONQUESTION) = IDYES then
ADOTable1.post else ADOTable1.Cancel;
end;
ADOTable1.Prior;
end;
procedure Tkcgz.Bit3Click(Sender: TObject);
begin
if Bit6.Enabled = true then
begin
if Application.MessageBox('单据已修改,是否要保存?', '提示', MB_YESNO + MB_ICONQUESTION) = IDYES then
ADOTable1.post else ADOTable1.Cancel;
end;
ADOTable1.Next;
end;
procedure Tkcgz.Bit8Click(Sender: TObject);
begin
if ADOTable1.FieldByName('zt').asstring = '审核入账' then
begin
Application.MessageBox('单据已经入账,不能再做修改.', '提示', MB_OK + MB_ICONERROR);
exit;
end;
if Application.MessageBox('删除后将不能恢复,是否删除此单据?', '提示', MB_YESNO + MB_ICONQUESTION) = IDNO then exit;
Ed1.SetFocus;
ADOTable1.Delete;
if ADOtable1.RecordCount = 0 then Bit8.Enabled := false;
end;
procedure Tkcgz.NewCode(Sender: integer);
var code: string;
begin
Query1.Close;
Query1.sql.text := 'select count(*) from kcgz001 where kdrq=:cdrq';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -