⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 goods_write.pas

📁 适合行业为眼镜业
💻 PAS
📖 第 1 页 / 共 3 页
字号:
                    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 + -