📄 quality_check.pas
字号:
dmmain.cdsReceipt.FieldByName('Check_Result').Asinteger:=0;
dmmain.cdsReceipt.FieldByName('Flag_Sign').AsString:='草稿';
dmmain.cdsReceipt.FieldByName('Re_part').AsString:=trim(Handle_Part);
dmmain.cdsReceipt.Post;
dmmain.cdsQuality_Check_detail.Close;
dmmain.cdsQuality_Check_detail.Open;
for i:=1 to stringgrid1.RowCount-1 do
begin
dmmain.cdsQuality_Check_detail.Append;
dmmain.cdsQuality_Check_detail.FieldByName('Stock_NO').AsString:=Trim(Edit2.Text);
dmmain.cdsQuality_Check_detail.FieldByName('Goods_NO').AsString:=Trim(StringGrid1.Cells[1,i]);
dmmain.cdsQuality_Check_detail.FieldByName('Total_Amount').AsString:=Trim(StringGrid1.Cells[3,i]);
dmmain.cdsQuality_Check_detail.FieldByName('Regular_Amount').AsString:=Trim(StringGrid1.Cells[4,i]);
dmmain.cdsQuality_Check_detail.FieldByName('Un_Regular_Amount').AsString:=Trim(StringGrid1.Cells[5,i]);
dmmain.cdsQuality_Check_detail.FieldByName('Check_Remark').AsString:=Trim(StringGrid1.Cells[6,i]);
dmmain.cdsQuality_Check_detail.FieldByName('orders').AsString:=Trim(StringGrid1.Cells[StringGrid1.ColCount-1,i]);
dmmain.cdsQuality_Check_detail.FieldByName('GoodsMemo').AsString:=Trim(StringGrid1.Cells[StringGrid1.ColCount-2,i]);
dmmain.cdsQuality_Check_detail.Post;
end;
try
dmmain.cdsReceipt.ApplyUpdates(-1);
dmmain.cdsQuality_Check.ApplyUpdates(-1);
dmmain.cdsQuality_Check_detail.ApplyUpdates(-1);
if trim(edit3.Text)<>'' then
setpass(edit3.Text);
setnull(frm_Quality_Check);
init;
except
Application.MessageBox('服务器发生故障!',pchar(application.Title),mb_iconwarning);
Exit;
end;
except
Application.MessageBox('保存数据时失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
except
Application.MessageBox('非法操作导致了系统错误!请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
//废弃退出
if Public_Do_Result='03' then
begin
Close;
end;
end;
//草稿操作
if Public_Do='Business_Draft_0006' then
begin
//保存为单据
if Public_Do_Result='01' then
begin
with frm_data.ClientDataSet2 do
begin
// Close;
// CommandText:='';
// Commandtext:='Select * from [V_Stock_Quality_View] where Receipt_No='''+Trim(Edit2.Text)+'''';
sqlsub:='Select * from [V_Stock_Quality_View] where Receipt_No='''+Trim(Edit2.Text)+'''';
dmmain.CDSexecsql.Close;
dmmain.CDSexecsql.Data:=adisp.execSql(sqlsub);
dmmain.CDSexecsql.Open;
Check_Flag:=dmmain.CDSexecsql.FieldValues['Check_Result'];
if Check_Flag='0' then
begin
Application.MessageBox('单据还没有完全审核,不能过帐',pchar(application.Title),mb_iconwarning);
Exit;
end;
if Check_Flag='1' then
begin
try
with frm_data.ClientDataSet_Add do
begin
// Close;
// Commandtext:='';
// Commandtext:='Update [Quality_Check] set Gather_Name='''+Trim(Edit4.Text)+''',Storage_NO='''+Trim(Edit5.Text)+''',Transactor='''+Trim(Edit6.Text)+''',Shop_NO='''+Trim(Edit7.Text)+''',Proposer='''+Trim(Edit8.Text)+''',Condense='''+Trim(Edit9.Text)+''',Quality_Remark='''+Trim(Edit10.Text)+''',Contract_No='''+Trim(Edit11.Text)+''' where Stock_No='''+Trim(List_NO)+'''';
sqlsub:='select * from [Quality_Check] where Stock_No='''+Trim(List_NO)+'''';
dmmain.CDSexecsql.Close;
dmmain.CDSexecsql.Data:=frm_data.Socket_Connection.AppServer.execSql(sqlsub);
dmmain.CDSexecsql.Open;
for i:=1 to dmmain.CDSexecsql.RecordCount do
begin
dmmain.CDSexecsql.Edit;
dmmain.CDSexecsql.FieldByName('wldw').AsString:=Trim(Edit4.Text);
dmmain.CDSexecsql.FieldByName('Storage_NO').AsString:=Trim(Edit5.Text);
dmmain.CDSexecsql.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
dmmain.CDSexecsql.FieldByName('Shop_NO').AsString:=Trim(Edit7.Text);
dmmain.CDSexecsql.FieldByName('Proposer').AsString:=Trim(Edit8.Text);
dmmain.CDSexecsql.FieldByName('Condense').AsString:=Trim(Edit9.Text);
dmmain.CDSexecsql.FieldByName('Quality_Remark').AsString:=Trim(Edit10.Text);
dmmain.CDSexecsql.FieldByName('Contract_No').AsString:=Trim(Edit11.Text);
dmmain.CDSexecsql.Post;
dmmain.CDSexecsql.Next;
end;
try
dmmain.CDSexecsql.ApplyUpdates(-1);
except
Application.MessageBox('保存[质量验收单]时连接服务器数据库失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
try
for i:=1 to Total_Count do
begin
with frm_data.ClientDataSet_Add do
begin
Close;
CommandText:='';
CommandText:='update [Quality_Check_detail] set Total_Amount='''+Trim(StringGrid1.Cells[3,i])+''',Regular_Amount='''+Trim(StringGrid1.Cells[4,i])+''',Un_Regular_Amount='''+Trim(StringGrid1.Cells[5,i])+''',Check_Remark='''+Trim(StringGrid1.Cells[6,i])+''' where Stock_NO='''+Trim(edit2.text)+''' and Goods_NO='''+Trim(StringGrid1.Cells[1,i])+'''';
try
Execute;
except
Application.MessageBox('保存[质量验收明细表]时连接服务器数据库失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
end;
with frm_data.ClientDataSet_Add do
begin
// Close;
// Commandtext:='';
// Commandtext:='Update [Receipt] set Flag_sign=''单据'' where Receipt_No='''+Trim(List_NO)+'''';
sqlsub:='select * from [Receipt] where Receipt_No='''+Trim(List_NO)+'''';
dmmain.CDSexecsql.Close;
dmmain.CDSexecsql.Data:=frm_data.Socket_Connection.AppServer.execSql(sqlsub);
dmmain.CDSexecsql.Open;
for i:=1 to dmmain.CDSexecsql.RecordCount do
begin
dmmain.CDSexecsql.Edit;
dmmain.CDSexecsql.FieldByName('Flag_sign').AsString:='单据';
dmmain.CDSexecsql.Post;
dmmain.CDSexecsql.Next;
end;
try
dmmain.CDSexecsql.ApplyUpdates(-1);
Application.MessageBox('单据过帐完毕!',pchar(application.Title),mb_iconwarning);
except
Application.MessageBox('单据过帐时保存[质量验收审核表]时连接服务器数据库失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
except
Application.MessageBox('保存[质量验收明细表]时循环失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
except
Application.MessageBox('系统错误,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
end;
end;
//修改草稿单据
if Public_Do_Result='02' then
begin
try
with frm_data.ClientDataSet_Add do
begin
if not bedit then
begin
if trim(Handle_Man)<>trim(edit8.Text) then
begin
Application.MessageBox('不能修改数据!',pchar(application.Title),mb_iconinformation);
exit;
end;
end;
sqlsub:='select * from [Quality_Check] where Stock_No='''+Trim(List_NO)+'''';
dmmain.CDSexecsql.Close;
dmmain.CDSexecsql.Data:=frm_data.Socket_Connection.AppServer.execSql(sqlsub);
dmmain.CDSexecsql.Open;
for i:=1 to dmmain.CDSexecsql.RecordCount do
begin
dmmain.CDSexecsql.Edit;
dmmain.CDSexecsql.FieldByName('wldw').AsString:=Trim(Edit4.Text);
dmmain.CDSexecsql.FieldByName('wldw_no').AsString:=Trim(wldwno);
dmmain.CDSexecsql.FieldByName('Storage_NO').AsString:=Trim(Edit5.Text);
dmmain.CDSexecsql.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
dmmain.CDSexecsql.FieldByName('Shop_NO').AsString:=Trim(Edit7.Text);
dmmain.CDSexecsql.FieldByName('Proposer').AsString:=Trim(Edit8.Text);
dmmain.CDSexecsql.FieldByName('Condense').AsString:=Trim(Edit9.Text);
dmmain.CDSexecsql.FieldByName('Quality_Remark').AsString:=Trim(Edit10.Text);
dmmain.CDSexecsql.FieldByName('Contract_No').AsString:=Trim(Edit11.Text);
dmmain.CDSexecsql.Post;
dmmain.CDSexecsql.Next;
end;
try
dmmain.CDSexecsql.ApplyUpdates(-1);
except
Application.MessageBox('保存[质量验收单]时连接网络数据库失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
try
for i:=1 to stringgrid1.RowCount-1 do
begin
with frm_data.ClientDataSet_Add do
begin
Close;
frm_data.ClientDataSet_Add.CommandText:='';
CommandText:='update [Quality_Check_detail] set Total_Amount='''+Trim(StringGrid1.Cells[3,i])+''',Regular_Amount='''+Trim(StringGrid1.Cells[4,i])+''',Un_Regular_Amount='''+Trim(StringGrid1.Cells[5,i])+''',Check_Remark='''+Trim(StringGrid1.Cells[6,i])+''' where Stock_NO='''+Trim(List_NO)+''' and Goods_NO='''+Trim(StringGrid1.Cells[1,i])+'''';
try
Execute;
except
Application.MessageBox('保存[质量验收明细]时连接网络数据库失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
end;
Application.MessageBox('单据保存为草稿完毕!',pchar(application.Title),mb_iconwarning);
except
Application.MessageBox('保存[质量验收明细]时循环失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
except
Application.MessageBox('保存单据明细时失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
if Public_Do_Result='03' then
begin
frm_data.ClientDataSet_Add.Active:=False;
frm_data.ClientDataSet_Add.Close;
frm_data.ClientDataSet2.Active:=False;
frm_data.ClientDataSet2.Close;
Close;
end;
end;
frm_Public_Don.Free;
end;
procedure Tfrm_Quality_Check.FormShow(Sender: TObject);
var
i,icount,k:integer;
tt,yy,temppos:integer;
FWidth:integer;
sqlsub:widestring;
begin
StringGrid1.RowCount:=2;//初始行数
iColcount:=StringGrid1.ColCount-1; //需要的填充数据的网络表格的列数
Total_Count:=StringGrid1.RowCount;
INIT;
//加载行号
for i:=1 to StringGrid1.RowCount-1 do
begin
StringGrid1.Cells[0,i]:=IntTostr(i); //表示第0列第i行
end;
if (Public_Do='Business_Draft_0006') then
begin
sqlsub:='Select * from Quality_Check AS A,Quality_Check_detail as b,goods_code as c where a.stock_no=b.stock_no and b.goods_no=c.goods_no AND a.STOCK_No='''+List_No+'''';
dmmain.CDSexecsql.Close;
dmmain.CDSexecsql.Data:=frm_data.Socket_Connection.AppServer.execSql(sqlsub);
dmmain.CDSexecsql.Open;
StringGrid1.RowCount:=dmmain.CDSexecsql.RecordCount+1;
//自动加载STRINGGRID的行数
for K:=1 to dmmain.CDSexecsql.RecordCount+1 do
begin
StringGrid1.Cells[0,K]:=IntTostr(k); //表示第0列第i行的名称
end;
//******************
Edit1.Text:=dmmain.CDSexecsql.FieldByName('Copy_Date').AsString;
Edit2.Text:=dmmain.CDSexecsql.FieldByName('stock_No').AsString;
//Edit3.Text:=dmmain.CDSexecsql.FieldByName('Stock_Write_NO').AsString;
Edit4.Text:=dmmain.CDSexecsql.FieldByName('WLDW').AsString;
Edit5.Text:=dmmain.CDSexecsql.FieldByName('Storage_No').AsString;
Edit6.Text:=dmmain.CDSexecsql.FieldByName('Transactor').AsString;
Edit7.Text:=dmmain.CDSexecsql.FieldByName('Shop_NO').AsString;
Edit8.Text:=dmmain.CDSexecsql.FieldByName('proposer').AsString;
Edit9.Text:=dmmain.CDSexecsql.FieldByName('Condense').AsString;
Edit10.Text:=dmmain.CDSexecsql.FieldByName('Quality_Remark').AsString;
Edit11.Text:=dmmain.CDSexecsql.FieldByName('stock_write_NO').AsString;
wldwno:=dmmain.CDSexecsql.FieldByName('WLDW_no').AsString;
dmmain.CDSexecsql.First;
for k:=1 to dmmain.CDSexecsql.RecordCount do
begin
StringGrid1.Cells[1,k]:=trim(dmmain.CDSexecsql.FieldByName('Goods_NO').AsString);//商品编号
StringGrid1.Cells[2,k]:=trim(dmmain.CDSexecsql.FieldByName('Goods_Name').AsString);//商品名称
StringGrid1.Cells[3,k]:=trim(dmmain.CDSexecsql.FieldByName('Total_Amount').AsString);//商品编号
StringGrid1.Cells[4,k]:=trim(dmmain.CDSexecsql.FieldByName('Regular_Amount').AsString);//商品名称
StringGrid1.Cells[5,k]:=trim(dmmain.CDSexecsql.FieldByName('Un_Regular_Amount').AsString);//数量
StringGrid1.Cells[7,k]:=trim(dmmain.CDSexecsql.FieldByName('type').AsString);//数量
StringGrid1.Cells[6,k]:=trim(dmmain.CDSexecsql.FieldByName('Check_Remark').AsString); //类别名称
StringGrid1.Cells[StringGrid1.ColCount-1,k]:=trim(dmmain.CDSexecsql.FieldByName('ORDERS').AsString); //类别名称
StringGrid1.Cells[StringGrid1.ColCount-2,k]:=trim(dmmain.CDSexecsql.FieldByName('GoodsMemo').AsString); //类别名称
dmmain.CDSexecsql.Next;
end;
GetDataPrint(dmmain.cdsprintmaster,dmmain.CDsexecsql);
end;
end;
procedure Tfrm_Quality_Check.Cmd_AddClick(Sender: TObject);
var
i:integer;
begin
StringGrid1.RowCount:=StringGrid1.RowCount+1;
Total_Count:=StringGrid1.RowCount;
for i:=1 to StringGrid1.RowCount-1 do
begin
StringGrid1.Cells[0,i]:=IntTostr(i); //表示第0列第i行
end;
end;
procedure Tfrm_Quality_Check.Cmd_DeleteClick(Sender: TObject);
var
i:integer;
begin
if StringGrid1.RowCount=2 then
begin
Exit;
end;
StringGrid1.RowCount:=StringGrid1.RowCount-1;
Total_Count:=StringGrid1.RowCount;//表示行数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -