📄 newxf.pas
字号:
unit newxf;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, Grids, StdCtrls, Mask,registry, ComCtrls, ExtCtrls, Spin,
DBGrids;
type
Txfform = class(TForm)
grid: TStringGrid;
Query1: TQuery;
S1: TStoredProc;
S2: TStoredProc;
xfname: TTabControl;
Grid3: TStringGrid;
xflist1: TStringGrid;
sl: TSpinEdit;
Panel5: TPanel;
Label1: TLabel;
Label2: TLabel;
xflx: TLabel;
hdno: TMaskEdit;
xftype: TComboBox;
md: TCheckBox;
Panel2: TPanel;
Label9: TLabel;
Label4: TLabel;
djno: TEdit;
zkl: TSpinEdit;
Panel3: TPanel;
man: TRadioButton;
woman: TRadioButton;
Panel4: TPanel;
xj: TCheckBox;
Panel6: TPanel;
Button2: TButton;
Button3: TButton;
pd: TComboBox;
Panel1: TPanel;
Label6: TLabel;
Label7: TLabel;
Label3: TLabel;
Label5: TLabel;
xf: TMaskEdit;
Edit1: TEdit;
czy: TMaskEdit;
yj: TMaskEdit;
Label10: TLabel;
Label11: TLabel;
mc: TEdit;
Button1: TButton;
zy: TLabel;
zyry1: TComboBox;
xfsl: TSpinEdit;
Grid2: TStringGrid;
GroupBox1: TGroupBox;
jc1: TRadioButton;
RadioButton2: TRadioButton;
Panel7: TPanel;
Label22: TLabel;
Label23: TLabel;
DBGrid1: TDBGrid;
jc: TEdit;
bx: TRadioButton;
DataSource1: TDataSource;
pdid: TComboBox;
zdsz: TComboBox;
caljz: TStoredProc;
Label12: TLabel;
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
Label13: TLabel;
MaskEdit3: TMaskEdit;
DBGrid2: TDBGrid;
Panel8: TPanel;
Panel9: TPanel;
DBGrid3: TDBGrid;
Query2: TQuery;
DataSource2: TDataSource;
Query3: TQuery;
DataSource3: TDataSource;
zyry: TComboBox;
Label8: TLabel;
cmbZY: TComboBox;
Query4: TQuery;
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure hdnoExit(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure gridKeyPress(Sender: TObject; var Key: Char);
procedure gridExit(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure hdnoEnter(Sender: TObject);
procedure xjClick(Sender: TObject);
procedure mdClick(Sender: TObject);
procedure xfnameChange(Sender: TObject);
procedure Grid3DblClick(Sender: TObject);
procedure xflist1DblClick(Sender: TObject);
procedure djnoKeyPress(Sender: TObject; var Key: Char);
procedure gridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure zyryKeyPress(Sender: TObject; var Key: Char);
procedure zyryExit(Sender: TObject);
procedure hdnoDblClick(Sender: TObject);
procedure hdnoKeyPress(Sender: TObject; var Key: Char);
procedure Grid2Enter(Sender: TObject);
procedure Grid2Exit(Sender: TObject);
procedure gridMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure slKeyPress(Sender: TObject; var Key: Char);
procedure slExit(Sender: TObject);
procedure gridEnter(Sender: TObject);
procedure zklChange(Sender: TObject);
procedure gridDblClick(Sender: TObject);
procedure gridClick(Sender: TObject);
procedure gridSetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: String);
procedure mcExit(Sender: TObject);
procedure mcKeyPress(Sender: TObject; var Key: Char);
procedure xfslExit(Sender: TObject);
procedure xfslKeyPress(Sender: TObject; var Key: Char);
procedure zyry1Exit(Sender: TObject);
procedure zyry1KeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure mcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure jcExit(Sender: TObject);
procedure jcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure jcKeyPress(Sender: TObject; var Key: Char);
procedure jcKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure DBGrid1Exit(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1DblClick(Sender: TObject);
procedure pdKeyPress(Sender: TObject; var Key: Char);
procedure pdExit(Sender: TObject);
procedure cmbZYExit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
xfform: Txfform;
implementation
uses dataproc, newdj;
{$R *.DFM}
var
acc,lssex,welno:string;
bbb:array[0..5] of string;
procedure sumroom(handno,sex:string);
begin
with xfform do
begin
caljz.prepare;
caljz.ParamByName('@ihand').asstring:=handno;
caljz.ParamByName('@isex').asstring:=sex;
caljz.ParamByName('@itime').asdatetime:=now;
caljz.ParamByName('@ilftime').asdatetime:=now;
caljz.parambyname('@iiszd').asboolean:=false;
caljz.prepare;
caljz.ExecProc;
caljz.UnPrepare;
end;
end;
procedure qkgrid(gridd:tstringgrid);
var i,j:integer;
begin
with xfform do
begin
for i:=0 to Gridd.RowCount-1 do
for j:=0 to Gridd.colCount-1 do
gridd.Cells[j,i]:='';
end;
end;
procedure unlocka;
begin
with xfform do
begin
s2.ParamByName ('@ihand').asstring:=acc;
s2.ParamByName ('@iwdno').asstring:=curper.workjsj;
s2.Prepare;
s2.ExecProc ;
s2.UnPrepare;
end
end;
procedure locka;
begin
with xfform do
begin
s1.ParamByName ('@ihand').asstring:=acc;
s1.ParamByName ('@iwdno').asstring:=curper.workjsj;
s1.Prepare;
s1.ExecProc ;
s1.UnPrepare;
end
end;
procedure init;
var
i:integer;
begin
acc:='';
with xfform do
begin
Panel4.Enabled :=true;
xj.Checked :=false;
md.Enabled :=true;
md.Checked :=false;
hdno.text:='';
djno.text:='';
czy.text:=curper.name;
pd.text:='';
yj.text:='0';
MaskEdit1.text:='0';
MaskEdit2.text:='0';
MaskEdit3.text:='0';
xf.Text :='0';
edit1.text:='0';
xj.Checked :=false;
md.Checked :=false;
Panel3.Visible:=false;
//pd.Text :='';
i:=1;
while i<grid.RowCount do
begin
grid.Cells [2,i]:=' ';
grid.Cells [3,i]:=' ';
grid.Cells [4,i]:=' ';
i:=i+1;
end;
//xflist.Items.Clear;
qkgrid(xflist1);
// xfbm.Items.Clear;
xflist1.Cells[0,0]:=' 消费项目 ';
xflist1.Cells[1,0]:='单价';
xflist1.cells[2,0]:='金额';
xflist1.cells[3,0]:='数量';
xflist1.cells[4,0]:='专业人员';
end
end;
procedure delete(arow:integer;gd:Tstringgrid);
var
i,j:integer;
begin
with xfform do
begin
i:=arow;
while trim(gd.Cells[0,i])<>'' do
begin
for j:=0 to 11 do gd.Cells[j,i]:=gd.Cells[j,i+1];
i:=i+1;
end;
end;
end;
procedure seexfmx(d,dd:integer);
var
i:integer;
begin
with xfform do
begin
if (xfname.TabIndex>=0) then
begin
xflx.Caption:=xfname.tabs[xfname.TabIndex]+'\'+grid2.Cells[d,dd];
query1.Active :=false;
query1.UnPrepare;
query1.sql.clear;
query1.sql.add('select cusname,price,cuscode,iszy,iszk,custype,spcode,tcje from cusitem where custype='''+grid3.Cells[d,dd]+'''');
query1.Prepare;
query1.Open;
query1.Active :=true;
// typebm.Items.Clear;
i:=1;
if query1.RecordCount >0 then
begin
query1.First ;
while not query1.EOF do
begin
grid.Cells [0,i]:=query1.fields[0].asstring;
grid.Cells [1,i]:=floattostr(query1.fieldbyname('price').asfloat);
grid.Cells [5,i]:=query1.fieldbyname('iszk').asstring;
grid.Cells [6,i]:=query1.fieldbyname('iszy').asstring;
grid.Cells [7,i]:=query1.fieldbyname('cuscode').asstring;
grid.Cells [8,i]:=query1.fieldbyname('custype').asstring;
grid.Cells [9,i]:=query1.fieldbyname('spcode').asstring;
grid.Cells [10,i]:=query1.fieldbyname('tcje').asstring;
// zy[i-1]:=query1.fieldbyname('iszy').asboolean;
// typebm.Items.Add(query1.fields[2].asstring);
i:=i+1;
query1.next;
end
end;
grid.RowCount :=query1.RecordCount+1;
if query1.RecordCount >0 then
begin
grid.Enabled :=true;
grid.FixedRows :=1;
end
else
grid.Enabled :=false;
i:=1;
while i<grid.RowCount do
begin
grid.Cells [2,i]:=' ';
grid.Cells [3,i]:=' ';
grid.Cells [4,i]:=' ';
i:=i+1;
end;
query1.Active :=false;
query1.UnPrepare;
query1.sql.clear;
end;
end;
end;
procedure seexftype(dd:integer);
var
i,j:integer;
begin
with xfform do
begin
query1.Active :=false;
query1.sql.clear;
query1.sql.add('select custype,cusname from custype where parentcode='''+trim(xftype.items[dd])+'''');
query1.Open;
qkgrid(grid2);
qkgrid(grid3);
i:=0;
j:=0;
while not query1.EOF do
begin
if j>=grid2.RowCount then
begin
j:=0;
i:=i+1;
end;
grid2.Cells[i,j]:=query1.Fields[1].asstring;
grid3.Cells[i,j]:=query1.Fields[0].asstring;
j:=j+1;
query1.Next;
end;
query1.Active :=false;
query1.sql.clear;
// query1.sql.add('select Name from stuff where iszy=1 and Headship='''+copy(trim(grid3.Cells[0,0]),1,2)+'''');
// query1.sql.add('select Name from stuff where iszy=1 and deptcode='''+trim(xftype.items[dd])+'''');
query1.sql.add('select code,Name from stuff where iszy=1 ');
query1.Prepare;
query1.Open;
zyry.Items.Clear;
while not query1.Eof do
begin
zyry.Items.Add(copy((query1.Fields[0].asstring+' '),1,4)+query1.Fields[1].asstring);
query1.Next;
end;
query1.Active :=false;
query1.UnPrepare;
query1.sql.clear;
seexfmx(0,0);
end;
end;
procedure Txfform.FormCreate(Sender: TObject);
var
//tt:tregistry;
i:integer;
begin
{ tt:=Tregistry.Create;
tt.Rootkey:=HKEY_LOCAL_MACHINE;
if tt.openkey('system\currentcontrolset\control\computername\computername',false) then
ls:=tt.readstring('computername');
tt.free; }
shortdateformat:='yyyy-mm-dd';
init;
rytobox(pdid,pd,'1');
zdsz.Items.Clear;
try
zdsz.Items.LoadFromFile(curper.workpath+'\cwsys.dll');
except
end;
query1.Active :=false;
query1.sql.clear;
query1.sql.add('select custype,cusname from custype where parentcode='''+'0'+''' or parentcode='''+'00'+'''');
// comadd(xfform.xftype,2,'select custype,cusname from custype where parentcode='''+'0'+''' ');
query1.Open;
xfname.Tabs.Clear;
xftype.Items.Clear;
while not query1.eof do
begin
if zdsz.Items.Count<1 then
begin
xftype.items.Add(query1.fields[0].asstring);
xfname.Tabs.Add(query1.fields[1].asstring);
end else
begin
for i:=2 to zdsz.Items.Count-1 do
if trim(copy(zdsz.Items[i],1,4))=query1.fields[0].asstring then
begin
xftype.items.Add(query1.fields[0].asstring);
xfname.Tabs.Add(query1.fields[1].asstring);
end;
end;
query1.next;
end;
Grid2.RowCount:=strtoint(floattostr(int(Grid2.Height/21.4)));
query1.Active :=false;
query1.UnPrepare;
query1.sql.clear;
seexftype(0);
cmbZY.Clear;
query4.Active :=false;
query4.sql.clear;
query4.sql.add('select Name from stuff where isZY=1');
// comadd(xfform.xftype,2,'select custype,cusname from custype where parentcode='''+'0'+''' ');
query4.Open;
while not query4.eof do
begin
cmbZY.items.Add(query4.fields[0].asstring);
query4.next;
end;
query4.Active :=false;
query4.UnPrepare;
query4.sql.clear;
grid.Cells[0,0]:=' 消费项目 ';
grid.Cells[1,0]:='单价';
grid.cells[2,0]:='金额';
grid.cells[3,0]:='数量';
grid.cells[4,0]:='专业人员';
end;
procedure Txfform.slExit(Sender: TObject);
begin
if (trim(sl.Text)<>'') then
begin
try
if trim(sl.text)<>'' then strtoint(sl.text);
grid.Cells[3,grid.Row]:=inttostr(sl.value);
except
grid.Cells[3,grid.Row]:=trim(sl.text);
end;
end
else
grid.Cells[3,grid.Row]:='';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -