?? spckzc.pas
字號:
unit spckzc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, DB, ADODB, dxCntner, dxTL, dxDBCtrl, dxDBTL, ComCtrls,
dxtree, dxdbtree, dxdbtrel, cxLookAndFeelPainters, dxfColorButton,
StdCtrls, cxButtons, cxMaskEdit, cxSpinEdit, cxDBEdit, cxCurrencyEdit,
Grids, DBGridEh, cxLabel, cxControls, cxContainer, cxEdit, cxTextEdit,
bsSkinCtrls, HzSpell, cxGraphics, cxCustomData, cxStyles, cxTL,
cxInplaceContainer, cxDBTL, cxTLData, Mask, DBCtrlsEh, DBLookupEh, Menus,
cxDBExtLookupComboBox, cxFilterControl, cxDBFilterControl,
cxDBLookupComboBox, AAFont, AACtrls, cxCheckBox, cxDropDownEdit,
cxCalendar, DBSumLst, PrnDbgeh, RM_Dataset, RM_Common, RM_Class,
RM_GridReport, dxfCheckBox;
type
Tspckzcck = class(TForm)
Table2: TADOTable;
Table3: TADOTable;
DataSource0: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
py: THzSpell;
spzl: TADOQuery;
ADOQy1: TADOQuery;
dxDBTreeList1: TdxDBTreeList;
dxDBTreeList1Column1: TdxDBTreeListColumn;
DBGridEh1: TDBGridEh;
cxLabel1: TcxLabel;
DataSource1: TDataSource;
dblp1: TDBLookupComboboxEh;
sprk: TADOQuery;
Table8: TADOTable;
DataSource8: TDataSource;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
ePanel1: TbsSkinExPanel;
DBFc1: TcxDBFilterControl;
cxButton1: TcxButton;
Table5: TADOTable;
DataSource5: TDataSource;
DBGridEh2: TDBGridEh;
AALabel1: TAALabel;
ePanel2: TbsSkinExPanel;
cxLabel2: TcxLabel;
DBGridEh3: TDBGridEh;
khzl: TADOQuery;
rkzk: TADOQuery;
DataSource4: TDataSource;
DataSource6: TDataSource;
DataSource7: TDataSource;
ePanel3: TbsSkinExPanel;
cxLabel3: TcxLabel;
DBEdit1: TcxDBTextEdit;
cxLabel4: TcxLabel;
DateEdit1: TcxDBDateEdit;
cxLabel5: TcxLabel;
cEdit1: TcxDBCurrencyEdit;
cxLabel8: TcxLabel;
cEdit4: TcxDBCurrencyEdit;
cxLabel9: TcxLabel;
cxLabel10: TcxLabel;
cBox1: TcxDBComboBox;
sEdit1: TcxDBSpinEdit;
ePanel4: TbsSkinExPanel;
cxLabel13: TcxLabel;
cxLabel14: TcxLabel;
cxLabel15: TcxLabel;
cEdit5: TcxDBCurrencyEdit;
cEdit8: TcxDBCurrencyEdit;
DBSEdit1: TcxDBSpinEdit;
cxButton2: TcxButton;
cxButton3: TcxButton;
PopupMenu2: TPopupMenu;
MenuItem1: TMenuItem;
cxLabel6: TcxLabel;
cEdit2: TcxDBCurrencyEdit;
cxLabel7: TcxLabel;
cEdit3: TcxDBCurrencyEdit;
ePanel5: TbsSkinExPanel;
sBox1: TcxCheckBox;
sBox2: TcxCheckBox;
sBox3: TcxCheckBox;
sBox4: TcxCheckBox;
sBox5: TcxCheckBox;
sBox6: TcxCheckBox;
cxButton4: TcxButton;
PEh1: TPrintDBGridEh;
cxButton5: TcxButton;
DBSum1: TDBSumList;
cxCheckBox1: TcxCheckBox;
cxDBTextEdit1: TcxDBTextEdit;
cxLabel11: TcxLabel;
sfpf: TcxDBCheckBox;
cxDBTextEdit2: TcxDBTextEdit;
RMGp1: TRMGridReport;
Atable1: TADOTable;
RMDBDataSet1: TRMDBDataSet;
RMDBDataSet2: TRMDBDataSet;
zfcd: TcxCheckBox;
dy: TcxCheckBox;
cxLabel12: TcxLabel;
cpEdit1: TcxTextEdit;
cpBox1: TdxfCheckBox;
cxButton6: TcxButton;
procedure FormCreate(Sender: TObject);
procedure dblp1Change(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure cxButton1Click(Sender: TObject);
procedure DBGridEh3DblClick(Sender: TObject);
procedure cxDBSpinEdit1PropertiesChange(Sender: TObject);
procedure DBGridEh1DblClick(Sender: TObject);
procedure cEdit3PropertiesChange(Sender: TObject);
procedure cEdit2PropertiesChange(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
procedure cxButton2Click(Sender: TObject);
procedure cxButton3Click(Sender: TObject);
procedure cEdit5Exit(Sender: TObject);
procedure DBSEdit1Exit(Sender: TObject);
procedure sBox1PropertiesChange(Sender: TObject);
procedure sBox2PropertiesChange(Sender: TObject);
procedure sBox3PropertiesChange(Sender: TObject);
procedure sBox4PropertiesChange(Sender: TObject);
procedure sBox5PropertiesChange(Sender: TObject);
procedure sBox6PropertiesChange(Sender: TObject);
procedure cxButton4Click(Sender: TObject);
procedure cxButton5Click(Sender: TObject);
procedure cxCheckBox1Click(Sender: TObject);
procedure zfcdClick(Sender: TObject);
procedure cpBox1Click(Sender: TObject);
procedure cxButton6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
spckzcck: Tspckzcck;
implementation
{$R *.dfm}
uses main,khzl;
procedure Tspckzcck.FormCreate(Sender: TObject);
begin
table2.Open;
table5.Open;
table8.Open;
khzl.Open;
rkzk.Close;
rkzk.SQL.Clear;
rkzk.SQL.Add('select * from spckzk where ck=:sf');
rkzk.Parameters[0].Value:=true;
rkzk.Open;
//dbgrideh2.Columns[7].Visible:=false;
spzl.Open;
adoqy1.Close;
adoqy1.SQL.Clear;
adoqy1.SQL.Add('select * from spkc where ckh=:bh');
adoqy1.Parameters[0].Value:=table2['bh'];
adoqy1.Open;
table8.Edit;
table8['mc']:=table2['mc'];
epanel1.RollState:=true;
epanel5.RollState:=true;
end;
procedure Tspckzcck.dblp1Change(Sender: TObject);
begin
adoqy1.Close;
adoqy1.SQL.Clear;
adoqy1.SQL.Add('select * from spkc where ckh=:bh');
adoqy1.Parameters[0].Value:=table2['bh'];
adoqy1.Open;
end;
procedure Tspckzcck.N1Click(Sender: TObject);
begin
adoqy1.Close;
adoqy1.SQL.Clear;
adoqy1.SQL.Add('select * from spkc where (ckh=:bh) and (spbh like :bh)');
adoqy1.Parameters[0].Value:=table2['bh'];
adoqy1.Parameters[1].Value:=spzl['spbh']+'%';
adoqy1.Open;
end;
procedure Tspckzcck.cxButton1Click(Sender: TObject);
begin
adoqy1.Close;
adoqy1.SQL.Clear;
adoqy1.SQL.Add('select * from spkc where (ckh=:bh) and (spbh like :bh) and ');
adoqy1.SQL.Add(dbfc1.FilterText);
adoqy1.Parameters[0].Value:=table2['bh'];
adoqy1.Parameters[1].Value:=spzl['spbh']+'%';
adoqy1.Open;
epanel1.RollState:=true;
end;
procedure Tspckzcck.DBGridEh3DblClick(Sender: TObject);
begin
if rkzk.RecordCount>0 then
begin
epanel2.RollState:=true;
dbgrideh1.Enabled:=true;
dbgrideh2.Enabled:=true;
cxcheckbox1.Checked:=rkzk['ck'];
//dbgrideh3.Enabled:=false;
sprk.Close;
sprk.SQL.Clear;
sprk.SQL.Add('select * from spckd where jhbh=:bh');
sprk.Parameters[0].Value:=rkzk['jhbh'];
sprk.Open;
end;
end;
procedure Tspckzcck.cxDBSpinEdit1PropertiesChange(Sender: TObject);
begin
rkzk.Edit;
rkzk['fkrq']:=rkzk['jhrq']+sedit1.Value;
end;
procedure Tspckzcck.DBGridEh1DblClick(Sender: TObject);
begin
//epanel4.Enabled:=true;
sprk.Append;
sprk['spmc']:=adoqy1['spmc'];
sprk['spbh']:=adoqy1['spbh'];
sprk['sjmc']:=adoqy1['sjmc'];
sprk['sjbh']:=adoqy1['sjbh'];
sprk['dw']:=adoqy1['dw'];
sprk['jj']:=adoqy1['jj'];
sprk['pfj']:=adoqy1['pfj'];
if sfpf.Checked then
sprk['sj']:=adoqy1['pfj']
else
sprk['sj']:=adoqy1['sj'];
sprk['sl']:=1;
sprk['je']:=sprk['sj'];
sprk['lr']:=sprk['sj']-sprk['jj'];
//sprk.edit;
sprk['ckh']:=adoqy1['ckh'];
sprk['zjm']:=adoqy1['zjm'];
sprk['zjm1']:=adoqy1['zjm1'];
sprk['jhbh']:=rkzk['jhbh'];
sprk.Prior;
sprk.Next;
rkzk.Edit;
rkzk['je']:=dbgrideh2.Columns[5].Footers[0].SumValue;
rkzk['ssje']:=rkzk['je'];
rkzk['yfje']:=rkzk['je'];
dbsedit1.SetFocus;
end;
procedure Tspckzcck.cEdit3PropertiesChange(Sender: TObject);
begin
rkzk.Edit;
rkzk['qkje']:=rkzk['ssje']-cedit3.Value;
if cedit3.Value<rkzk['ssje'] then
begin
rkzk['jzfs']:='欠帳';
end;
end;
procedure Tspckzcck.cEdit2PropertiesChange(Sender: TObject);
begin
rkzk.Edit;
rkzk['yfje']:=cedit2.Value;
rkzk['qkje']:=cedit2.Value-rkzk['yfje'];
rkzk['lr']:=rkzk['lr']-(rkzk['je']-cedit2.Value);
end;
procedure Tspckzcck.MenuItem1Click(Sender: TObject);
begin
sprk.Delete;
rkzk.Edit;
rkzk['je']:=dbgrideh2.Columns[5].Footers[0].SumValue;
rkzk['lr']:=dbsum1.SumCollection[0].SumValue;
rkzk['ssje']:=rkzk['je'];
rkzk['yfje']:=rkzk['je'];
end;
procedure Tspckzcck.cxButton2Click(Sender: TObject);
begin
if sprk.RecordCount>0 then
begin
rkzk.Edit;
if sprk.RecNo<>sprk.RecordCount then
begin
sprk.Next;
sprk.Prior;
end else sprk.Next;
rkzk['je']:=dbgrideh2.Columns[5].Footers[0].SumValue;
rkzk['lr']:=dbsum1.SumCollection[0].SumValue;
rkzk['ssje']:=rkzk['je'];
rkzk['yfje']:=rkzk['je'];
cxbutton3.Enabled:=true;
dbgrideh1.Enabled:=false;
dbgrideh2.Enabled:=false;
epanel3.Enabled:=true;
cedit2.SetFocus;
end;
end;
procedure Tspckzcck.cxButton3Click(Sender: TObject);
var i:integer;
begin
rkzk.UpdateBatch();
sprk.UpdateBatch();
if not zfcd.Checked then
begin
if not rkzk['ck'] then
begin
//記入客戶資料
if khzl.Locate('khmc',rkzk['khmc'],[]) then
begin
khzl.Edit;
khzl['ljxf']:=khzl['ljxf']+rkzk['je'];
khzl['ljqk']:=khzl['ljqk']+rkzk['qkje'];
khzl['ljyh']:=khzl['ljyh']+rkzk['je']-rkzk['ssje'];
end;
khzl.UpdateBatch();
adoqy1.DisableControls;
adoqy1.Close;
adoqy1.SQL.Clear;
adoqy1.SQL.Add('select * from spkc');
adoqy1.Open;
i:=1;
sprk.DisableControls;
//加入商品總庫
sprk.First;
while i<=sprk.RecordCount do
begin
if adoqy1.Locate('spbh;ckh',vararrayof([sprk['spbh'],sprk['ckh']]),[]) then
begin
adoqy1.Edit;
//adoqy1['jj']:=(adoqy1['jj']+sprk['jj'])/2;
adoqy1['sl']:=adoqy1['sl']-sprk['sl'];
adoqy1['je']:=adoqy1['je']-sprk['je'];
end;
i:=i+1;
sprk.Next;
end;
adoqy1.UpdateBatch();
//記入帳目總庫
adoqy1.Close;
adoqy1.SQL.Clear;
adoqy1.SQL.Add('select * from zmzk');
adoqy1.Open;
adoqy1.Append;
adoqy1['jhbh']:=rkzk['jhbh'];
adoqy1['jzbh']:=rkzk['jhbh'];
adoqy1['jzrq']:=date;
adoqy1['jzkm']:='銷售收入';
adoqy1['jzlx']:='收入';
adoqy1['je']:=rkzk['ssje'];
adoqy1['qkje']:=rkzk['qkje'];
adoqy1['jzfs']:=rkzk['jzfs'];
adoqy1['nh']:=formatdatetime('YYYY',date);
adoqy1['YF']:=formatdatetime('MM',date);
adoqy1.UpdateBatch();
adoqy1.Close;
//打印
if dy.Checked then
begin
atable1.Open;
atable1.Append;
atable1['bt1']:=main.sydwqc+'出庫單';
atable1['bt2']:=rkzk['jhbh'];
atable1['bt3']:=datetimetostr(date);
atable1['bt4']:=inttostr(sprk.RecordCount);
atable1['bw1']:=main.czy;
atable1['bw2']:=rkzk['khmc'];
atable1['bw3']:=main.sydw;
atable1['bw4']:=main.sydwdz;
atable1['bw5']:=main.sydwdh;
atable1['bw6']:=floattostr(rkzk['ssje']);
rmgp1.LoadFromFile('.\bb\xsb.rls');
rmgp1.PrepareReport;
rmgp1.ShowReport;
end;
end else
begin
sprk.Close;
sprk.SQL.Clear;
sprk.SQL.Add('delete from spckd where jhbh=:bh');
sprk.Parameters[0].Value:=rkzk['jhbh'];
sprk.ExecSQL;
rkzk.Delete;
rkzk.UpdateBatch();
end;
khzl.Close;
sprk.Close;
atable1.Close;
//rkzk.Close;
adoqy1.Close;
end;
close;
end;
procedure Tspckzcck.cEdit5Exit(Sender: TObject);
begin
sprk.Edit;
sprk['je']:=cedit5.Value*sprk['sl'];
sprk['lr']:=sprk['je']-(sprk['jj']*sprk['sl']);
rkzk.Edit;
if sprk.RecNo<>sprk.RecordCount then
begin
sprk.Next;
sprk.Prior;
end else sprk.Next;
rkzk['je']:=dbgrideh2.Columns[5].Footers[0].SumValue;
rkzk['lr']:=dbsum1.SumCollection[0].SumValue;
rkzk['ssje']:=rkzk['je'];
rkzk['yfje']:=rkzk['je'];
end;
procedure Tspckzcck.DBSEdit1Exit(Sender: TObject);
begin
sprk.Edit;
sprk['je']:=dbsedit1.Value*sprk['sj'];
sprk['lr']:=sprk['je']-(sprk['jj']*dbsedit1.Value);
rkzk.Edit;
if sprk.RecNo<>sprk.RecordCount then
begin
sprk.Next;
sprk.Prior;
end else sprk.Next;
rkzk['je']:=dbgrideh2.Columns[5].Footers[0].SumValue;
rkzk['lr']:=dbsum1.SumCollection[0].SumValue;
rkzk['ssje']:=rkzk['je'];
rkzk['yfje']:=rkzk['je'];
end;
procedure Tspckzcck.sBox1PropertiesChange(Sender: TObject);
begin
dbgrideh2.Columns[0].Visible:=sbox1.Checked;
end;
procedure Tspckzcck.sBox2PropertiesChange(Sender: TObject);
begin
dbgrideh2.Columns[1].Visible:=sbox2.Checked;
end;
procedure Tspckzcck.sBox3PropertiesChange(Sender: TObject);
begin
dbgrideh2.Columns[2].Visible:=sbox3.Checked;
end;
procedure Tspckzcck.sBox4PropertiesChange(Sender: TObject);
begin
dbgrideh2.Columns[3].Visible:=sbox4.Checked;
end;
procedure Tspckzcck.sBox5PropertiesChange(Sender: TObject);
begin
dbgrideh2.Columns[4].Visible:=sbox5.Checked;
end;
procedure Tspckzcck.sBox6PropertiesChange(Sender: TObject);
begin
dbgrideh2.Columns[5].Visible:=sbox6.Checked;
end;
procedure Tspckzcck.cxButton4Click(Sender: TObject);
begin
epanel5.RollState:=true;
end;
procedure Tspckzcck.cxButton5Click(Sender: TObject);
begin
if rkzk.RecordCount>0 then
begin
epanel2.RollState:=true;
dbgrideh1.Enabled:=true;
dbgrideh2.Enabled:=true;
//dbgrideh3.Enabled:=false;
sprk.Close;
sprk.SQL.Clear;
sprk.SQL.Add('select * from spckd where jhbh=:bh');
sprk.Parameters[0].Value:=rkzk['jhbh'];
sprk.Open;
end;
end;
procedure Tspckzcck.cxCheckBox1Click(Sender: TObject);
begin
rkzk.Edit;
rkzk['ck']:=cxcheckbox1.Checked;
if not rkzk['ck'] then
cxbutton3.Caption:='入庫退出' else
cxbutton3.Caption:='暫存退出';
end;
procedure Tspckzcck.zfcdClick(Sender: TObject);
begin
if zfcd.Checked then
begin
cxcheckbox1.Checked:=false;
rkzk.Edit;
rkzk['ck']:=false;
cxbutton3.Caption:='確認作廢';
end else
begin
cxcheckbox1.Checked:=true;
rkzk.Edit;
rkzk['ck']:=true;
cxbutton3.Caption:='暫存退出';
end;
end;
procedure Tspckzcck.cpBox1Click(Sender: TObject);
begin
cpedit1.SetFocus;
end;
procedure Tspckzcck.cxButton6Click(Sender: TObject);
begin
adoqy1.Close;
adoqy1.SQL.Clear;
if cpbox1.Checked then
adoqy1.SQL.Add('select * from spkc where (ckh=:bh) and (zjm1 like :bh)')
else
adoqy1.SQL.Add('select * from spkc where (ckh=:bh) and (sjmc like :bh)');
adoqy1.Parameters[0].Value:=table2['bh'];
adoqy1.Parameters[1].Value:=cpedit1.Text+'%';
adoqy1.Open;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -