?? cgdd1.pas
字號:
unit cgdd1;
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
Tcgdd = class(TForm)
DataSource1: TDataSource;
DataSource2: TDataSource;
Panel1: TPanel;
Panel2: TPanel;
Label7: TLabel;
Ed7: TdxDBEdit;
ADOTable3: TADOTable;
ADOTable3code: TStringField;
ADOTable3name: TStringField;
ADOTable4: TADOTable;
StringField1: TStringField;
StringField2: TStringField;
dxDBGridLayoutList1: TdxDBGridLayoutList;
dxDBGridLayoutList1Item1: TdxDBGridLayout;
DataSource3: TDataSource;
DataSource4: TDataSource;
ADOTable3dq: TStringField;
ADOTable3lxr: TStringField;
ADOTable3lxdh: TStringField;
ADOTable3cz: TStringField;
ADOTable3lxdz: TStringField;
ADOTable4bm: TStringField;
ADOTable4xb: TStringField;
ADOTable4csrq: TDateTimeField;
ADOTable4dh: TStringField;
ADOTable4zz: TStringField;
dxDBGridLayoutList1Item2: TdxDBGridLayout;
DBGridEh1: TDBGridEh;
Query1: TADOQuery;
ADOTable2: TADOTable;
ADOTable2spcode: TStringField;
ADOTable2spname: TStringField;
ADOTable2jldw: TStringField;
ADOTable2js: TBCDField;
ADOTable2ss: TBCDField;
ADOTable2sl: TBCDField;
ADOTable2dj: TBCDField;
ADOTable2sui: TBCDField;
ADOTable2je: TBCDField;
ADOTable2shsl: TBCDField;
ADOTable2id: TAutoIncField;
ADOTable2code: TStringField;
ADOTable2bzgg: TBCDField;
ADOTable1: TADOTable;
ADOTable1code: TStringField;
ADOTable1kdrq: TDateTimeField;
ADOTable1ghs: TStringField;
ADOTable1kdr: TStringField;
ADOTable1jhrq: TDateTimeField;
ADOTable1jhdz: TStringField;
ADOTable1zje: TBCDField;
ADOTable1ywy: TStringField;
ADOTable1bz: TStringField;
ADOTable1zt: TStringField;
ADOTable1zzzx: TBooleanField;
ADOTable1ywyname: TStringField;
ADOTable1ghsname: TStringField;
PopupMenu1: TPopupMenu;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N1: 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;
Label5: TLabel;
Label6: TLabel;
Ed1: TdxDBButtonEdit;
Ed2: TdxDBDateEdit;
Ed3: TdxDBExtLookupEdit;
Ed4: TdxDBExtLookupEdit;
Ed5: TdxDBDateEdit;
Ed6: TdxDBEdit;
Ed8: TdxDBCheckEdit;
dxDBEdit1: TdxDBEdit;
Bit2: TBitBtn;
Bit3: TBitBtn;
Bit5: TBitBtn;
Bit6: TBitBtn;
Bit7: TBitBtn;
Bit8: TBitBtn;
BitBtn6: TBitBtn;
BitBtn3: TBitBtn;
ADOTable2kcsl: 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 ADOTable2jsSetText(Sender: TField; const Text: string);
procedure ADOTable2ssSetText(Sender: TField; const Text: string);
procedure ADOTable2slSetText(Sender: TField; const Text: string);
procedure ADOTable2djSetText(Sender: TField; const Text: string);
procedure ADOTable2suiSetText(Sender: TField; const Text: string);
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 N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Ed1ButtonClick(Sender: TObject; AbsoluteIndex: Integer);
procedure N13Click(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);
private
{ Private declarations }
public
{ Public declarations }
end;
var
cgdd: Tcgdd;
Etxt, Ytxt, Ycode: string;
ECol: integer;
implementation
uses MainForm1, cgddxzsp1, xgcgddh1, cgddcx1, dycgdd1;
{$R *.DFM}
procedure Tcgdd.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cafree;
end;
procedure Tcgdd.DBGridEh1GetEditText(Sender: TObject; ACol, ARow: Integer;
var Value: string);
begin
ECol := ACol;
Ytxt := Value;
end;
procedure Tcgdd.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 Tcgdd.Ed6KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then DBGridEh1.SetFocus;
end;
procedure Tcgdd.ADOTable2spcodeSetText(Sender: TField; const Text: string);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select code,barcode,mainghs,name,jldw,jhj,bzgg,suilu,sum(kcsl) as kcsl from spda_v where (code=:code or barcode=:barcode) and mainghs=:ghs');
Query1.SQL.Add('group by code,barcode,mainghs,name,jldw,jhj,bzgg,suilu');
Query1.Parameters[0].Value := Etxt;
Query1.Parameters[1].Value := Etxt;
Query1.Parameters[2].Value := ADOTable1ghs.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('dj').Value := Query1.fieldbyname('jhj').Value;
ADOTable2.FieldByName('bzgg').Value := Query1.fieldbyname('bzgg').Value;
ADOTable2.FieldByName('js').Value := 0;
ADOTable2.FieldByName('ss').Value := 0;
ADOTable2.FieldByName('sl').Value := 0;
ADOTable2.FieldByName('sui').Value := 0;
ADOTable2.FieldByName('shsl').Value := 0;
ADOTable2.FieldByName('je').Value := 0;
ADOTable2.FieldByName('kcsl').Value := Query1.fieldbyname('kcsl').asfloat;
ADOTable2.FieldByName('spcode').Value := Query1.fieldbyname('code').asstring;
end
else
begin
Application.MessageBox('沒有找到此供貨商的商品.', '提示', MB_OK + MB_ICONERROR);
ADOTable2.Cancel;
{ Application.CreateForm(Tcgddxzsp, cgddxzsp);
cgddxzsp.Edit1.Text := Etxt;
cgddxzsp.ADOQuery1.Locate('code', cgddxzsp.Edit1.text, [loPartialKey]);
cgddxzsp.ShowModal; }
end;
Etxt := '';
end;
procedure Tcgdd.DBGridEh1SetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: string);
begin
Etxt := Value;
end;
procedure Tcgdd.Ed1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then
begin
key := 0;
perform(WM_NEXTDLGCTL, 0, 0); {移動到下一個控件}
end;
end;
procedure Tcgdd.ADOTable2jsSetText(Sender: TField; const Text: string);
begin
if ADOTable2.FieldByName('spname').asstring = '' then exit;
if Etxt = '' then Etxt := '0';
if ADOTable2.FieldByName('bzgg').Value > 0 then
begin
ADOTable2.FieldByName('sl').Value := ADOTable2.FieldByName('bzgg').Value * Etxt + ADOTable2.FieldByName('ss').Value;
ADOTable2.FieldByName('js').Value := Etxt;
end
else
begin
ADOTable2.FieldByName('sl').Value := Etxt + ADOTable2.FieldByName('ss').Value;
ADOTable2.FieldByName('js').Value := Etxt;
end;
ADOTable2.FieldByName('je').Value := ADOTable2.FieldByName('sl').Value * ADOTable2.FieldByName('dj').Value + ADOTable2.FieldByName('sl').Value * ADOTable2.FieldByName('dj').Value * ADOTable2.FieldByName('sui').Value / 100;
end;
procedure Tcgdd.ADOTable2ssSetText(Sender: TField; const Text: string);
begin
if ADOTable2.FieldByName('spname').asstring = '' then exit;
if Etxt = '' then Etxt := '0';
if ADOTable2.FieldByName('bzgg').Value > 0 then
begin
ADOTable2.FieldByName('sl').Value := ADOTable2.FieldByName('bzgg').Value * ADOTable2.FieldByName('js').Value + Etxt;
ADOTable2.FieldByName('ss').Value := Etxt;
end
else
begin
ADOTable2.FieldByName('sl').Value := Etxt + ADOTable2.FieldByName('js').Value;
ADOTable2.FieldByName('ss').Value := Etxt;
end;
ADOTable2.FieldByName('je').Value := ADOTable2.FieldByName('sl').Value * ADOTable2.FieldByName('dj').Value + ADOTable2.FieldByName('sl').Value * ADOTable2.FieldByName('dj').Value * ADOTable2.FieldByName('sui').Value / 100;
end;
procedure Tcgdd.ADOTable2slSetText(Sender: TField; const Text: string);
begin
if ADOTable2.FieldByName('spname').asstring = '' then exit;
if Etxt = '' then Etxt := '0';
if ADOTable2.FieldByName('bzgg').Value <> 0 then
begin
ADOTable2.FieldByName('js').Value := Etxt div ADOTable2.FieldByName('bzgg').Value;
ADOTable2.FieldByName('ss').Value := Etxt mod ADOTable2.FieldByName('bzgg').Value;
ADOTable2.FieldByName('sl').Value := Etxt;
end
else
begin
ADOTable2.FieldByName('js').Value := Etxt;
ADOTable2.FieldByName('ss').Value := Etxt;
ADOTable2.FieldByName('sl').Value := Etxt;
end;
ADOTable2.FieldByName('je').Value := Etxt * ADOTable2.FieldByName('dj').Value + Etxt * ADOTable2.FieldByName('dj').Value * ADOTable2.FieldByName('sui').Value / 100;
end;
procedure Tcgdd.ADOTable2djSetText(Sender: TField; const Text: string);
begin
if ADOTable2.FieldByName('spname').asstring = '' then exit;
if Etxt = '' then Etxt := '0';
ADOTable2.FieldByName('je').Value := ADOTable2.FieldByName('sl').Value * Etxt + ADOTable2.FieldByName('sl').Value * Etxt * ADOTable2.FieldByName('sui').Value / 100;
ADOTable2.FieldByName('dj').Value := Etxt;
end;
procedure Tcgdd.ADOTable2suiSetText(Sender: TField; const Text: string);
begin
if ADOTable2.FieldByName('spname').asstring = '' then exit;
if Etxt = '' then Etxt := '0';
ADOTable2.FieldByName('je').Value := ADOTable2.FieldByName('sl').Value * ADOTable2.FieldByName('dj').Value + ADOTable2.FieldByName('sl').Value * ADOTable2.FieldByName('dj').Value * Etxt / 100;
ADOTable2.FieldByName('sui').Value := Etxt;
end;
procedure Tcgdd.BitBtn3Click(Sender: TObject);
begin
close;
end;
procedure Tcgdd.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;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -