📄 goods_write.pas
字号:
Exit;
end;
if Check_Flag='1' then
begin
with frm_data.ClientDataSet_Add do
begin
// Close;
// Commandtext:='';
// Commandtext:='Update [Stock_Write] set Contract_No='''+Trim(Edit3.Text)+''',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)+''',Remark='''+Trim(Edit10.Text)+''' where Stock_No='''+Trim(List_NO)+'''';
sqlsub:='select * from [Stock_Write] where Stock_No='''+Trim(List_NO)+'''';
dmmain.CDSquery.Close;
dmmain.CDSquery.Data:=frm_data.Socket_Connection.AppServer.GetRecord(sqlsub);
dmmain.CDSquery.Open;
for t_i:=1 to dmmain.CDSquery.RecordCount do
begin
dmmain.CDSquery.Edit;
dmmain.CDSquery.FieldByName('Contract_No').AsString:=trim(edit3.Text);
dmmain.CDSquery.FieldByName('wldw').AsString:=trim(edit4.Text);
dmmain.CDSquery.FieldByName('Storage_NO').AsString:=trim(edit5.Text);
dmmain.CDSquery.FieldByName('Transactor').AsString:=trim(edit6.Text);
dmmain.CDSquery.FieldByName('Shop_NO').AsString:=trim(edit7.Text);
dmmain.CDSquery.FieldByName('Proposer').AsString:=trim(edit8.Text);
dmmain.CDSquery.FieldByName('Condense').AsString:=trim(edit9.Text);
dmmain.CDSquery.FieldByName('Remark').AsString:=trim(edit10.Text);
dmmain.CDSquery.FieldByName('wldw_no').AsString:=trim(wldwno);
dmmain.CDSquery.Post;
dmmain.CDSquery.Next;
end;
try
dmmain.CDSquery.ApplyUpdates(-1);
except
Application.MessageBox('保存[来货登记单]时失败,请检查连接网络是否正常数据输入是否正确?请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
for i:=1 to stringgrid1.RowCount-1 do
begin
with frm_data.ClientDataSet_Add do
begin
Close;
frm_data.ClientDataSet_Add.CommandText:='';
CommandText:='update [Stock_Write_detail] set Write_Amount='''+Trim(StringGrid1.Cells[4,i])+''',Write_Remark='''+Trim(StringGrid1.Cells[24,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;
with frm_data.ClientDataSet_Add do
begin
// Close;
// Commandtext:='';
// Commandtext:='Update [Receipt] set Flag_sign=''单据'' where Receipt_No='''+Trim(Edit2.Text)+'''';
sqlsub:='select * from [Receipt] where Receipt_No='''+Trim(Edit2.Text)+'''';
dmmain.CDSquery.Close;
dmmain.CDSquery.Data:=frm_data.Socket_Connection.AppServer.GetRecord(sqlsub);
dmmain.CDSquery.Open;
for t_i:=1 to dmmain.CDSquery.RecordCount do
begin
dmmain.CDSquery.Edit;
dmmain.CDSquery.FieldByName('Flag_sign').AsString:='单据';
dmmain.CDSquery.Post;
end;
try
dmmain.CDSquery.ApplyUpdates(-1);
// Execute;
Application.MessageBox('恭喜你![来货登记]单据过帐操作成功,请确认!',Pchar(Application.Title),MB_ICONwarning);
except
Application.MessageBox('保存[来货登记审核表]数据时,连接服务器数据库错误,请尝试重新连接,请确认!',Pchar(Application.Title),MB_ICONwarning);
Exit;
end;
end;
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 [Stock_Write] where Stock_No='''+Trim(List_NO)+'''';
dmmain.CDSquery2.Close;
dmmain.CDSquery2.Data:=adisp.resultrecord (sqlsub);
dmmain.CDSquery2.Open;
//for t_i:=1 to dmmain.CDSquery2.RecordCount do
//begin
dmmain.CDSquery2.Edit;
dmmain.CDSquery2.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
dmmain.CDSquery2.FieldByName('Contract_No').AsString:=Trim(Edit3.Text);
dmmain.CDSquery2.FieldByName('wldw').AsString:=Trim(Edit4.Text);
//系统找不到该字段,请核对数据库
// dmmain.CDSquery2.FieldByName('Storage_Name').AsString:=Trim(Edit5.Text);
dmmain.CDSquery2.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
dmmain.CDSquery2.FieldByName('Shop_NO').AsString:=Trim(Edit7.Text);
dmmain.CDSquery2.FieldByName('proposer').AsString:=Trim(Edit8.Text);
dmmain.CDSquery2.FieldByName('Condense').AsString:=Trim(Edit9.Text);
dmmain.CDSquery2.FieldByName('Remark').AsString:=Trim(Edit10.Text);
dmmain.CDSquery2.FieldByName('wldw_no').AsString:=trim(wldwno);
dmmain.CDSquery2.Post;
//dmmain.CDSquery2.Next;
//end;
try
dmmain.CDSquery2.ApplyUpdates(-1);
except
Application.MessageBox('保存[来货登记单]时连接服务器数据库失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
try
sqlsub:='select * from [Stock_Write_detail] where Stock_No='''+Trim(List_NO)+'''';
dmmain.CDSexecsql.Close;
dmmain.CDSexecsql.Data:=adisp.execSql(sqlsub);
dmmain.CDSexecsql.Open;
for i:=1 to stringgrid1.RowCount-1 do
begin
dmmain.CDSexecsql.Edit;
dmmain.CDSexecsql.FieldByName('Write_Amount').AsString:=Trim(StringGrid1.Cells[4,i]);
dmmain.CDSexecsql.FieldByName('Write_Remark').AsString:=Trim(StringGrid1.Cells[7,i]);
dmmain.CDSexecsql.post;
dmmain.CDSexecsql.Next;
end;
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;
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;
end;
procedure Tfrm_Goods_Write.FormShow(Sender: TObject);
var
i,icount,k:integer;
tt,yy,temppos:integer;
tempstr:widestring;
begin
StringGrid1.RowCount:=2;
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_0005' then
begin
tempstr:='Select a.*,b.*,c.* from stock_write as a ,stock_write_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='+''''+trim(List_No)+'''';
dmmain.CDSquery2.Close;
dmmain.CDSquery2.Data:=null;
dmmain.CDSquery2.Data:=adisp.resultrecord(tempstr);
dmmain.CDSquery2.Open;
if dmmain.CDSquery2.IsEmpty then exit;
k:=dmmain.CDSquery2.RecordCount;
StringGrid1.RowCount:=k+1;
//******************
Edit1.Text:=Formatdatetime('yyyy''-''mm''-''dd',dmmain.CDSquery2.FieldByName('Copy_Date').AsDateTime);
Edit2.Text:=dmmain.CDSquery2.FieldByName('stock_No').AsString;
Edit3.Text:=dmmain.CDSquery2.FieldByName('Contract_NO').AsString;
Edit4.Text:=dmmain.CDSquery2.FieldByName('wldw').AsString;
Edit6.Text:=dmmain.CDSquery2.FieldByName('Transactor').AsString;
Edit5.Text:=dmmain.CDSquery2.FieldByName('storage_no').AsString;
Edit8.Text:=dmmain.CDSquery2.FieldByName('Proposer').AsString;
Edit9.Text:=dmmain.CDSquery2.FieldByName('Condense').AsString;
Edit10.Text:=dmmain.CDSquery2.FieldByName('Remark').AsString;
wldwno:=dmmain.CDSquery2.Fieldbyname('wldw_no').AsString;
speedbutton7.Enabled:=false;
for k:=1 to dmmain.CDSquery2.RecordCount do
begin
StringGrid1.Cells[0,k]:=IntTostr(k);
StringGrid1.Cells[1,k]:=trim(dmmain.CDSquery2.FieldByName('Goods_NO').AsString);//商品编号
StringGrid1.Cells[2,k]:=trim(dmmain.CDSquery2.FieldByName('Goods_Name').AsString);//商品名称
StringGrid1.Cells[3,k]:=trim(dmmain.CDSquery2.FieldByName('Amount').AsString);//数量
StringGrid1.Cells[4,k]:=trim(dmmain.CDSquery2.FieldByName('Write_Amount').AsString); //登记数量
StringGrid1.Cells[5,k]:=trim(dmmain.CDSquery2.FieldByName('type').AsString); //类别名称
StringGrid1.Cells[6,k]:=trim(dmmain.CDSquery2.FieldByName('modedate').AsString); //有效日期
StringGrid1.Cells[7,k]:=trim(dmmain.CDSquery2.FieldByName('write_Remark').AsString); //备注说明
StringGrid1.Cells[8,k]:=trim(dmmain.CDSquery2.FieldByName('orders').AsString); //备注说明
dmmain.CDSquery2.Next;
end;
GetDataPrint(dmmain.cdsprintmaster,dmmain.CDSquery2);
end;
end;
procedure Tfrm_Goods_Write.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_Goods_Write.Cmd_DeleteClick(Sender: TObject);
begin
deletegridrows(stringgrid1,prow);
end;
procedure Tfrm_Goods_Write.StringGrid1DblClick(Sender: TObject);
var
openstr:string;
S1,s2,s3:string;
I:INTEGER;
begin
if pcol in [1,2] then
begin
fmgoodCodeSelStr:= TfmgoodCodeSelStr.Create(self);
try
fmgoodcodeselStr.show_mode:='6';
fmgoodcodeselStr.ShowModal;
finally
fmgoodcodeselStr.Free;
end;
end;
if pcol = 4 then //复制数量
begin
for i := prow+1 to STRINGGRID1.rowcount -1 do
begin
STRINGGRID1.cells[4,i]:= STRINGGRID1.cells[4,prow];
//同时要计算金额
end;
end;
if pcol = 3 then //复制数量
begin
for i := prow+1 to STRINGGRID1.rowcount -1 do
begin
STRINGGRID1.cells[3,i]:= STRINGGRID1.cells[3,prow];
//同时要计算金额
end;
end;
end;
procedure Tfrm_Goods_Write.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
s:string;
r:TRect;
begin
//ydy add 设置显示颜色
with Sender as Tstringgrid do
begin
if gdSelected in State then
Canvas.Brush.Color:= clTeal; //clBlue; //clyellow;//clRed;
Canvas.TextRect(Rect,Rect.Left,Rect.Top,' '+Cells[ACol,ARow]);
if gdFocused in State then
Canvas.DrawFocusRect(Rect);
end;
//不但水平居中,还垂直居中
with Sender as Tstringgrid do
begin
Canvas.FillRect(Rect);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -