📄 unit_rubb_sqljiaoliao.~pas
字号:
unit Unit_Rubb_sqljiaoliao;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ExtCtrls, StdCtrls, Db, DBTables, Grids, DBGrids, Buttons,
Mask, DBCtrls;
type
TForm_Rubb_sqljiaoliao = class(TForm)
Qry_Jiaoliao: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Query1: TQuery;
DBGrid2: TDBGrid;
DataSource2: TDataSource;
Panel1: TPanel;
DateTimePicker_From0: TDateTimePicker;
DateTimePicker_To0: TDateTimePicker;
Panel2: TPanel;
Panel3: TPanel;
BitBtn1: TBitBtn;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Label4: TLabel;
Query2: TQuery;
Label5: TLabel;
DBEdit1: TDBEdit;
Button1: TButton;
BitBtn2: TBitBtn;
Label1: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Label6: TLabel;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Qry_JiaoliaoAfterScroll(DataSet: TDataSet);
procedure BitBtn2Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
// procedure BitBtn2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure zdyQueryScroll();
end;
var
Form_Rubb_sqljiaoliao: TForm_Rubb_sqljiaoliao;
jlweight,cpjweight,hegerate,yongliao,cpzweight:real;
hegenum :integer;
implementation
uses Unit_Rubb_Main;
{$R *.DFM}
procedure TForm_Rubb_sqljiaoliao.zdyQueryScroll();
begin
//Form_Rubb_Main.StatusBar1.Panels[1].Text:=format('共找到 %d 张工艺卡, 您现在浏览的是第 %d 张。',[Qry_QryProcCard.recordcount, Qry_QryProcCard.recno]);
with form_rubb_main.Qry_MaterCard do
begin
close;
sql.Clear;
sql.Add('select * from 炼胶用料单 where 主表标识号 = :v_mid ');
parambyname('v_mid').asinteger:=Qry_Jiaoliao.fieldbyname('标识号').asinteger;
open;
// if recordcount = 0 then
// form_rubb_main.Qry_MaterCard.close;
end; //with
end;
//==================查生产批号双击Grid1、胶料重量====================
procedure TForm_Rubb_sqljiaoliao.BitBtn1Click(Sender: TObject);
//begin
var
Mod_date:Tdate;
begin
Mod_date:=DateTimePicker_From0.date;
Mod_date:=Mod_date-1;
with Qry_Jiaoliao do
begin
close;
sql.Clear;
sql.Add('select 生产批号,制成品名称,配料用料量,单价,标识号,混炼日期 from 炼胶工艺卡 ');
sql.Add('where 混炼日期 between :v_from and :v_to order by 混炼日期');
parambyname('v_from').asdatetime:=Mod_date;
parambyname('v_to').asdatetime:=DateTimePicker_To0.date;
open;
if recordcount = 0 then
showmessage('没有找到符合条件的工艺卡!');
end; //with
DBGrid1.setfocus;
end;
//================初始化==================
procedure TForm_Rubb_sqljiaoliao.FormCreate(Sender: TObject);
begin
//Edit1.text:='';
cpzweight:=0;
DateTimePicker_From0.date:=date - 30;
DateTimePicker_To0.date:=date ;
yongliao:=0;
end;
procedure TForm_Rubb_sqljiaoliao.Qry_JiaoliaoAfterScroll(
DataSet: TDataSet);
begin
zdyQueryScroll;
end;
//=============查出所选生产批号对应的所有产品、合格品数量===========
procedure TForm_Rubb_sqljiaoliao.BitBtn2Click(Sender: TObject);
var
p : integer;
begin
cpzweight:=0;
yongliao:=0;
with Query1 do
begin
close;
sql.Clear;
sql.Add('select ProdName,FigID,sum(DrawWeight) as DrawWeight,sum(QcNum) as QcNum,avg(Rate) as Rate from SulfCard ');
sql.Add('where 生产批号= :scph group by FigID,ProdName');
parambyname('scph').asstring:=Edit1.text;
open;
p:= FieldByName('QcNum').asinteger;
//showmessage(inttostr(recordcount)+' ');
if( recordcount =1) and( p=0) then
begin
Form_Rubb_sqljiaoliao.DBEdit1.text:=inttostr(p) ;
showmessage('没有产品!');
exit;
end;
end; //with
with Query1 do
begin
open;
while not eof do
begin
// jlweight:= fieldbyname('ProdName').asfloat;
Query2. close;
Query2. sql.Clear;
Query2. sql.Add('select Weight from ProdDictionary ');//从产品字典查净重
Query2. sql.Add('where ProdName = :v_id ');
Query2. parambyname('v_id').asstring:=fieldbyname('ProdName').asstring ;
// Qry_gailastflag. parambyname('bc').asfloat:=abc_id;
Query2. open;
cpjweight:=Query2. fieldbyname('Weight').asfloat; //净重
//showmessage(floattostr(cpjweight)+' ');
hegenum:=Query1. fieldbyname('QcNum').asinteger; //合格品数量
cpzweight:=cpzweight+hegenum*cpjweight/1000;//同产品总重量
yongliao:=yongliao+Query1.fieldbyname('DrawWeight').asfloat;
next;//查另一产品总重量
end;//while
//next;
end; //with
Edit2.text:=floattostr(cpzweight);
//showmessage(floattostr(cpzweight)+' yu ');
Edit3.text:=floattostr(yongliao/1000);
if yongliao=0 then
exit;
hegerate:=strtofloat(formatfloat('0.00',cpzweight/(yongliao/1000)*100)); //合格率
//showmessage(floattostr(hegerate)+' ');
Query1. close;
Query1. sql.Clear;
Query1. sql.Add('update SulfCard set Rate = :v '); //合格率送SulfCard表
Query1. sql.Add('where 生产批号 = :v_id ');
Query1. parambyname('v').asfloat:=hegerate;
Query1. parambyname('v_id').asstring:=Edit1.text;
Query1. execsql;
// showmessage(floattostr(cpzweight)+' ');
//==========显示Grid2的内容===============
with Query1 do
begin
close;
sql.Clear;
sql.Add('select ProdName,FigID,sum(DrawWeight/1000) as DrawWeight,sum(QcNum) as QcNum,avg(Rate) as Rate from SulfCard ');
sql.Add('where 生产批号= :scph group by FigID,ProdName');
parambyname('scph').asstring:=Edit1.text;
open;
// showmessage(inttostr(recordcount)+' ');
if recordcount =0 then
showmessage('没有找到符合条件的胶料!');
end; //with
end;
//==双击 DBGrid1Dbl、生产批号、配料用料量写入Edit1.text和jlweight========
procedure TForm_Rubb_sqljiaoliao.DBGrid1DblClick(Sender: TObject);
begin
Edit1.SetFocus;
Query1.active:=false;
Edit2.text:='';
Edit3.text:='';
DBEdit1.text:='';
Edit1.text:= Qry_Jiaoliao.fieldbyname('生产批号').asstring;
jlweight:= Qry_Jiaoliao.fieldbyname('配料用料量').asfloat;
end;
//====== 合格率写入 炼胶工艺卡库============
procedure TForm_Rubb_sqljiaoliao.Button1Click(Sender: TObject);
begin
with Qry_Jiaoliao do
begin
close;
sql.Clear;
sql.Add('update 炼胶工艺卡 set 合格率=:rate1');
sql.Add('where 生产批号 = :v_id');
parambyname('rate1').asfloat:=hegerate;
parambyname('v_id').asstring:=Edit1.text;
execsql;
end;
Query1.Active:=False;
Edit1.text:='';
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -