📄 zhixingjf.pas
字号:
unit zhixingjf;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, DBTables, Mask, DBCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Button3: TButton;
lsb_DS: TDataSource;
lsfyb_DS: TDataSource;
Label2: TLabel;
ComboBox1: TComboBox;
fyb_DS: TDataSource;
fyb_Q: TADOQuery;
lsb_T: TADOTable;
djb_T: TADOTable;
sum_Q: TADOQuery;
sum_DS: TDataSource;
CheckBox1: TCheckBox;
GroupBox1: TGroupBox;
DBEdit1: TDBEdit;
Label3: TLabel;
DBEdit2: TDBEdit;
Label4: TLabel;
Edit1: TEdit;
Label1: TLabel;
djmxb_T: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure lsb_TAfterScroll(DataSet: TDataSet);
procedure Button1Click(Sender: TObject);
procedure init;
procedure refresh_lsb;
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses DM, jiaofei, Share, SJ;
{$R *.dfm}
procedure TForm3.init;
var
bool:boolean;
i:integer;
begin
djb_T.Open;
djmxb_T.Open;
lsb_T.Open;
lsb_T.Filtered:=false;
lsb_T.Last;
while not lsb_T.bof do
lsb_T.Delete;
combobox1.Items.Clear;
combobox1.Items.Add('累计');
fyb_Q.Active:=false;
fyb_Q.SQL.Clear;
fyb_Q.SQL.Add('select fyh,xh,xm,fym,nf,yj,sj,qj from fy_b where xh='+QuotedStr(XH)+' order by fyh');
fyb_Q.Active:=true;
NF:=fyb_Q.FieldValues['nf'];
with fyb_Q do
begin
first;
while (not eof) do
begin
if FieldValues['qj']<>0 then
begin
bool:=false;
for i:=0 to combobox1.Items.Count-1 do
if FieldValues['nf']=combobox1.Items.Strings[i] then
bool:=true;
if not bool then
combobox1.Items.Add(FieldValues['nf']);
lsb_T.append;
lsb_T.FieldValues['xh']:=XH;
lsb_T.FieldValues['nf']:=FieldValues['nf'];
lsb_T.FieldValues['xm']:=XM;
lsb_T.FieldValues['fyh']:=FieldValues['fyh'];
lsb_T.FieldValues['fym']:=FieldValues['fym'];
lsb_T.FieldValues['yj']:=FieldValues['qj'];
lsb_T.FieldValues['sj']:=FieldValues['qj'];
lsb_T.FieldValues['qj']:=0;
lsb_T.Post;
end;
next;
end;
end;
sum_Q.Active:=False;
sum_Q.Active:=true;
combobox1.ItemIndex:=0;
if dbedit1.Text<>'' then
Edit1.Text:=inttostr(strtoint(dbedit2.Text)-strtoint(dbedit1.Text))
else
begin
button1.Enabled:=false;
dbedit1.Text:=inttostr(0);
dbedit2.Text:=inttostr(0);
edit1.Text:=inttostr(0);
end;
QJ:=edit1.Text;
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
init;
end;
procedure TForm3.ComboBox1Change(Sender: TObject);
var
sql:string;
yjje,sjje,qfje:double;
begin
checkbox1.Checked:=false;
lsb_T.Filtered:=false;
if combobox1.ItemIndex=0 then
sql:=''
else
sql:='nf='+QuotedStr(combobox1.text);
lsb_T.Filter:=sql;
lsb_T.Filtered:=true;
yjje:=0;
sjje:=0;
qfje:=0;
lsb_T.First;
while not lsb_T.Eof do
begin
lsb_T.edit;
lsb_T.FieldValues['sj']:=lsb_T.FieldValues['yj'];
lsb_T.FieldValues['qj']:=lsb_T.FieldValues['yj'];
lsb_T.Post;
yjje:=yjje+lsb_T.FieldValues['yj'];
sjje:=sjje+lsb_T.FieldValues['sj'];
qfje:=qfje+lsb_T.FieldValues['qj'];
lsb_T.Next;
end;
end;
procedure TForm3.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
dbgrid1.Columns[4].ReadOnly:=false;
dbgrid1.SetFocus;
end
else
dbgrid1.Columns[4].ReadOnly:=true;
end;
procedure TForm3.refresh_lsb;
begin
if lsb_t.FieldValues['sj']>lsb_t.FieldValues['yj'] then
begin
showmessage('实交金额应该小于应交金额!');
button1.Enabled:=false;
end
else
begin
lsb_T.Post;
sum_Q.Requery;
lsb_T.Edit;
Edit1.Text:=inttostr(strtoint(dbedit2.Text)-strtoint(dbedit1.Text));
lsb_T.FieldValues['qj']:=lsb_T.FieldValues['yj']-lsb_T.FieldValues['sj'];
lsb_T.Post;
QJ:=edit1.Text;
button1.Enabled:=true;
end
end;
procedure TForm3.lsb_TAfterScroll(DataSet: TDataSet);
begin
lsb_T.Edit;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
xdjh:=djb_T.RecordCount+1;
lsb_T.First;
while not lsb_T.eof do
begin
fyb_Q.Close;
fyb_Q.SQL.Clear;
fyb_Q.SQL.Add('select * from fy_b where xh='+quotedstr(lsb_T.FieldValues['xh'])+'and fyh='+quotedstr(lsb_T.FieldValues['fyh'])+'and nf='+quotedstr(lsb_T.FieldValues['nf'])) ;
fyb_Q.Open;
if fyb_Q.RecordCount>0 then
begin
fyb_Q.Edit;
fyb_Q.FieldValues['sj']:=inttostr(strtoint(fyb_Q.FieldValues['sj'])+strtoint(lsb_T.FieldValues['sj']));
fyb_Q.FieldValues['qj']:=inttostr(strtoint(fyb_Q.FieldValues['qj'])-strtoint(lsb_T.FieldValues['sj']));
fyb_Q.Post;
end
else
begin
fyb_Q.Append;
fyb_Q.FieldValues['xh']:=lsb_T.FieldValues['xh'];
fyb_Q.FieldValues['xm']:=lsb_T.FieldValues['xm'];
fyb_Q.FieldValues['fym']:=lsb_T.FieldValues['fym'];
fyb_Q.FieldValues['fyh']:=lsb_T.FieldValues['fyh'];
fyb_Q.FieldValues['nf']:=lsb_T.FieldValues['nf'];
fyb_Q.FieldValues['yj']:=lsb_T.FieldValues['yj'];
fyb_Q.FieldValues['sj']:=lsb_T.FieldValues['sj'];
fyb_Q.FieldValues['qj']:=lsb_T.FieldValues['qj'];
fyb_Q.Post;
end;
with cxjf.student_T do
begin
Edit;
FieldValues['sj']:=inttostr(strtoint(FieldValues['sj'])+strtoint(lsb_T.FieldValues['sj']));
FieldValues['qj']:=inttostr(strtoint(FieldValues['qj'])-strtoint(lsb_T.FieldValues['sj']));
post;
end;
djmxb_T.Append;
djmxb_T.FieldValues['djh']:=xdjh; //写入到单据明细表
djmxb_T.FieldValues['xh']:=lsb_T.FieldValues['xh'];
djmxb_T.FieldValues['fyh']:=lsb_T.FieldValues['fyh'];
djmxb_T.FieldValues['nf']:=lsb_T.FieldValues['nf'];
djmxb_T.FieldValues['fym']:=lsb_T.FieldValues['fym'];
djmxb_T.FieldValues['sj']:=lsb_T.FieldValues['sj'];
djmxb_T.Post;
lsb_T.Next;
end;
djb_T.Append; //写入到单据表
djb_T.FieldValues['djh']:=xdjh;
djb_T.FieldValues['sfrh']:=sfrh; //全局变量
djb_T.FieldValues['xh']:=lsb_T.FieldValues['xh'];
djb_T.FieldValues['sfrq']:=date;
djb_T.FieldValues['ss']:=sum_Q.FieldValues['sj'];
djb_T.FieldValues['zf']:=false;
djb_T.Post;
with TSJ_F.Create(nil) do
try
quickrep1.preview;
finally
free;
end;
init;
end;
procedure TForm3.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_Return then
refresh_lsb;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -