📄 realtyj23a.pas
字号:
unit RealtyJ23A;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dbcgrids, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ExtCtrls,
StrUtils, ExtDlgs, ComCtrls, math, ToolWin, ImgList, Menus;
type
Tf_RealtyJ23A = class(TForm)
GroupBox1: TGroupBox;
ListView1: TListView;
Button1: TButton;
edit1: TDateTimePicker;
edit2: TDateTimePicker;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label1: TLabel;
edit4: TComboBox;
Button6: TButton;
Button7: TButton;
Label8: TLabel;
Label3: TLabel;
edit5: TComboBox;
edit3: TDateTimePicker;
Label6: TLabel;
Edit6: TEdit;
procedure Button4Click(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure NN6Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure getdata ;
procedure Button1Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
bMod:bool;
sTable:string;
cols:integer;
end;
var
f_RealtyJ23A: Tf_RealtyJ23A;
implementation
uses data, main,RealtyPrint1;
{$R *.dfm}
//初始化
procedure Tf_RealtyJ23A.FormCreate(Sender: TObject);
var
query:TADOQuery;
begin
edit1.Date:=date;
edit2.Date:=date;
edit4.Items.Add('年度');
edit4.Items.Add('第一季度');
edit4.Items.Add('第二季度');
edit4.Items.Add('第三季度');
edit4.Items.Add('第四季度');
edit4.Items.Add('一月份');
edit4.Items.Add('二月份');
edit4.Items.Add('三月份');
edit4.Items.Add('四月份');
edit4.Items.Add('五月份');
edit4.Items.Add('六月份');
edit4.Items.Add('七月份');
edit4.Items.Add('八月份');
edit4.Items.Add('九月份');
edit4.Items.Add('十月份');
edit4.Items.Add('十一月份');
edit4.Items.Add('十二月份');
edit5.Items.Add('已审核');
edit5.Items.add('未审核');
end;
//Tab
procedure Tf_RealtyJ23A.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
Begin
key:=0;
perform(WM_NEXTDLGCTL,0,0);
end
else if key=VK_ESCAPE then close;
end;
procedure Tf_RealtyJ23A.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
////getdata******************
procedure Tf_RealtyJ23A.getdata;
var
query,query1:TADOQuery;
d1,d2,d3,d4:double;
begin
Query:=TADOQuery.Create(nil);
Query.Connection:=DataModuleADO.ADOConnection1;
Query1:=TADOQuery.Create(nil);
Query1.Connection:=DataModuleADO.ADOConnection1;
listview1.Items.Clear;
query.SQL.Add('select * from 采购计划 where 日期>='''+datetostr(edit1.date)+''' and 日期<='''+datetostr(edit1.Date)+'''');
query.Open;
while not query.Eof do
begin
query1.SQL.Clear;
query1.SQL.Add('select * from 采购计划明细 where 单号='''+query.fieldbyname('单号').Value+'''');
query1.open;
while not query1.Eof do
begin
with listview1.Items.Add do
begin
caption:=query.fieldbyname('日期').Value;
subitems.Add(query.fieldbyname('部门').Value);
subitems.Add(query.fieldbyname('计划年度').Value);
subitems.Add(query.fieldbyname('计划区间').Value);
subitems.Add(query1.fieldbyname('物料编号').Value);
subitems.Add(query1.fieldbyname('物料名称').Value);
subitems.Add(query1.fieldbyname('规格型号').Value);
subitems.Add(query1.fieldbyname('计量单位').Value);
subitems.Add(query1.fieldbyname('数量').Value);
subitems.Add(query1.fieldbyname('金额').Value);
subitems.Add(query1.fieldbyname('完成数量').Value);
d1:=strtofloat(query1.fieldbyname('完成数量').Value)*strtofloat(query1.fieldbyname('单价').Value);
subitems.Add(floattostr(d1));
d2:=strtofloat(query1.fieldbyname('数量').Value)-strtofloat(query1.fieldbyname('完成数量').Value);
subitems.Add(floattostr(d2));
d3:=d2*strtofloat(query1.fieldbyname('单价').Value);
subitems.Add(floattostr(d3));
d4:=(d3/strtofloat(query1.fieldbyname('金额').Value))*100;
subitems.Add(floattostr(d4));
end;
query1.Next;
end;
query.Next;
end;
query.Close;
query.Free;
query1.Close;
query1.Free;
if listview1.Items.Count > 0 then ListView1.Items.Item[0].Selected := True;
end;
//修改
procedure Tf_RealtyJ23A.Button2Click(Sender: TObject);
begin
end;
//返回
procedure Tf_RealtyJ23A.Button4Click(Sender: TObject);
begin
f_RealtyJ23A.FormStyle:=fsNormal;
f_RealtyJ23A.Close;
end;
//取数据
procedure Tf_RealtyJ23A.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Item.Selected = true then
begin
Sender.Canvas.Brush.Color := clMenuHighlight;
(Sender as TListView).Canvas.Font.Color := clWhite;
end;
end;
procedure Tf_RealtyJ23A.NN6Click(Sender: TObject);
begin
close;
end;
procedure Tf_RealtyJ23A.ToolButton10Click(Sender: TObject);
begin
close;
end;
procedure Tf_RealtyJ23A.ToolButton3Click(Sender: TObject);
begin
getdata
end;
procedure Tf_RealtyJ23A.Button1Click(Sender: TObject);
var
query,query1,query11:TADOQuery;
s,s1,s2,s3,s4,t1,t2,t3:string;
d1,d2,d3,d4,d5,d6,d7:double;
begin
Query:=TADOQuery.Create(nil);
Query.Connection:=DataModuleADO.ADOConnection1;
Query1:=TADOQuery.Create(nil);
Query1.Connection:=DataModuleADO.ADOConnection1;
Query11:=TADOQuery.Create(nil);
Query11.Connection:=DataModuleADO.ADOConnection1;
listview1.Items.Clear;
s1:=copy(datetostr(edit3.date),1,4);
if edit4.Text='' then s2:='%'
else s2:=edit4.Text;
if edit5.Text='' then s3:='%';
if edit5.text='已审核' then s3:='Y';
if edit5.text='未审核' then s3:='N';
query11.SQL.Clear;
query11.SQL.Add('select DISTINCT 物料编号 from 采购计划明细 where 物料名称 like ''%'+Edit6.Text+'%''');
query11.open;
while not query11.Eof do
begin
d1:=0;
d2:=0;
d3:=0;
d4:=0;
d5:=0;
d6:=0;
d7:=0;
s:='select * from 采购计划 where 日期>='''+datetostr(edit1.date);
s:=s+''' and 日期<='''+datetostr(edit2.Date);
s:=s+''' and 计划年度 like ''%'+s1;
s:=s+'%'' and 计划区间 like ''%'+s2;
s:=s+'%'' and 审核 like '''+s3+'''';
t1:='';
query.SQL.Clear;
query.SQL.Add(s);
query.Open;
while not query.Eof do
begin
query1.SQL.Clear;
query1.SQL.Add('select * from 采购计划明细 where 物料编号='''+query11.fieldbyname('物料编号').Value+''' and 单号='''+query.fieldbyname('单号').Value+'''');
query1.open;
while not query1.Eof do
begin
d1:=d1+query1.fieldbyname('数量').AsVariant;
d2:=d2+query1.fieldbyname('金额').AsVariant;
d3:=d3+query1.fieldbyname('完成数量').AsVariant;
d4:=d4+strtofloat(query1.fieldbyname('完成数量').Value)*strtofloat(query1.fieldbyname('单价').Value);
d5:=d5+strtofloat(query1.fieldbyname('数量').Value)-strtofloat(query1.fieldbyname('完成数量').Value);
d6:=d6+strtofloat(query1.fieldbyname('数量').Value)-strtofloat(query1.fieldbyname('完成数量').Value)*strtofloat(query1.fieldbyname('单价').Value);
t1:= query1.fieldbyname('物料名称').Value;
t2:= query1.fieldbyname('规格型号').Value;
t3:= query1.fieldbyname('计量单位').Value;
query1.Next;
end;
query.Next;
end;
if t1<>'' then
begin
with listview1.Items.Add do
begin
if d5<>0 then d7:=d4/d5*100;
caption:=query11.fieldbyname('物料编号').Value;
subitems.Add(t1);
subitems.Add(t2);
subitems.Add(t3);
subitems.Add(floattostr(d1));
subitems.Add(floattostr(d2));
subitems.Add(floattostr(d3));
subitems.Add(floattostr(d4));
subitems.Add(floattostr(d5));
subitems.Add(floattostr(d6));
subitems.Add(floattostr(d7));
end;
end;
query11.Next;
end;
query.Close;
query.Free;
query1.Close;
query1.Free;
query11.Close;
query11.Free;
if listview1.Items.Count > 0 then ListView1.Items.Item[0].Selected := True;
end;
procedure Tf_RealtyJ23A.Button7Click(Sender: TObject);
begin
close;
end;
procedure Tf_RealtyJ23A.Button6Click(Sender: TObject);
var
i:integer;
Query:TADOQuery;
s:string;
begin
Query:=TADOQuery.Create(nil);
Query.Connection:=DataModuleADO.ADOConnection1;
DataModuleADO.ADOConnection1.BeginTrans;
Query.SQL.Text:='delete from temp';
query.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
for i:=0 to listview1.Items.Count-1 do
begin
s:= 'insert into temp(列1,列2,列3,列4,列5,列6,列7,列8,列9,列10,';
s:=s+'列11)';
s:=s+'values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,';
s:=s+':s11)';
query.sql.Clear ;
query.sql.add(s);
query.Parameters.ParamByName('s1').Value:=listview1.Items.Item[i].Caption;
query.Parameters.ParamByName('s2').Value:=listview1.Items.Item[i].SubItems[0];
query.Parameters.ParamByName('s3').Value:=listview1.Items.Item[i].SubItems[1];
query.Parameters.ParamByName('s4').Value:=listview1.Items.Item[i].SubItems[2];
query.Parameters.ParamByName('s5').Value:=listview1.Items.Item[i].SubItems[3];
query.Parameters.ParamByName('s6').Value:=listview1.Items.Item[i].SubItems[4];
query.Parameters.ParamByName('s7').Value:=listview1.Items.Item[i].SubItems[5];
query.Parameters.ParamByName('s8').Value:=listview1.Items.Item[i].SubItems[6];
query.Parameters.ParamByName('s9').Value:=listview1.Items.Item[i].SubItems[7];
query.Parameters.ParamByName('s10').Value:=listview1.Items.Item[i].SubItems[8];
query.Parameters.ParamByName('s11').Value:=listview1.Items.Item[i].SubItems[9];
DataModuleADO.ADOConnection1.BeginTrans;
query.execsql;
DataModuleADO.ADOConnection1.CommitTrans;
end;
query.Close;
query.Free;
sFilep:='RealtyJ23A.fr3';
sTitlep:=Caption;
sPrintc:='select * from temp';
f_RealtyPrint1:=Tf_RealtyPrint1.Create(self);
f_RealtyPrint1.showmodal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -