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

📄 spxs.~pas

📁 已经给出使用的每个SQL Server数据库
💻 ~PAS
📖 第 1 页 / 共 4 页
字号:
        Rect1 := bg.CellRect(bzq,Row1);
        Rect1.Left := Rect1.Left+bg.Left;
        Rect1.Right :=Rect1.Right+bg.Left;
        Rect1.Top := bg.Top+ Rect1.Top;
        bzqlb.Left := Rect1.Left;
        bzqlb.Top := Rect1.Top+1;
        bzqlb.Visible := True;
        bzqlb.SetFocus;
        bzqlb.ItemIndex := 0;
        Exit;
      end;
    if (Col1 = ckmc)and(Trim(bg.Cells[ckmc,Row1])<>'') then //不在列表中选择,直接输入库存信息时,判断库存信息是否存在
    begin
      With Data.Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * from t_kcjcxx where kcdm = :a or kcmc = :a');
        ParamByName('a').AsString := Trim(bg.Cells[ckmc,Row1]);
        Open;
      end;
      if Data.Query1.RecordCount>0 then
      begin
        bg.Cells[ckmc,Row1]:= Trim(Data.Query1.Fields[1].AsString);
        bg.Cells[cklb,Row1]:= Trim(Data.Query1.Fields[2].AsString);
        if Row1 = 1 then
          bg.Cells[zk,row1]:='1.0';
        bg.SetFocus;
        bg.Col := bg.Col+1;
      end
      else
      begin
        kc := True;
        bg.Cells[ckmc,Row1]:='';
      end;
    end
    else if (Col1 = spdm)and(Trim(bg.Cells[spdm,Row1])<>'')and(Trim(bg.Cells[ckmc,Row1])<>'') then
    begin
      With Data.Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select aa.*,bb.bzsj from t_spjcxx aa inner join t_spsj bb on aa.spdm = bb.spdm and aa.spdm = :a  and spzl = :b inner join t_sprkjl cc on  aa.spdm = cc.spdm');
        ParamByName('a').AsString := Trim(bg.Cells[spdm,Row1]);
        ParamByName('b').AsString := Trim(bg.Cells[cklb,Row1]);
        Open;
      end;
      if Data.Query1.RecordCount>0 then
      begin
        bg.Cells[spdm,Row1]:= Trim(Data.Query1.Fields[0].AsString);
        bg.Cells[spmc,Row1]:= Trim(Data.Query1.Fields[1].AsString);
        bg.Cells[dj,Row1]:= Trim(Data.Query1.FieldByName('bzsj').AsString);
        if (Trim(ksb.Text)='应税内含')or(Trim(ksb.Text)='应税外加')then
          bg.Cells[sl,Row1]:= Trim(Data.Query1.FieldByName('sl').AsString)
        else
          bg.Cells[sl,Row1]:= '0.0';
        bg.Cells[jbdw,Row1]:= Trim(Data.Query1.FieldByName('jbdw').AsString);
        bg.SetFocus;
        bg.Col := bg.Col+1;
      end
      else
      begin
        kc := True;
        bg.Cells[spdm,Row1]:='';
        bg.Cells[spmc,Row1]:='';
      end;
    end
    else if (Col1 = spmc)and(Trim(bg.Cells[spmc,Row1])<>'')and(Trim(bg.Cells[spdm,Row1])='')and(Trim(bg.Cells[ckmc,Row1])<>'') then
    begin
      With Data.Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select aa.*,bb.bzsj from t_spjcxx aa inner join t_spsj bb on aa.spdm = bb.spdm and spmc = :a  and spzl = :b inner join t_sprkjl cc on aa.spdm = cc.spdm');
        ParamByName('a').AsString := Trim(bg.Cells[spmc,Row1]);
        ParamByName('b').AsString := Trim(bg.Cells[cklb,Row1]);
        Open;
      end;
      if Data.Query1.RecordCount>0 then
      begin
        bg.Cells[spdm,Row1]:= Trim(Data.Query1.Fields[0].AsString);
        bg.Cells[spmc,Row1]:= Trim(Data.Query1.Fields[1].AsString);
        bg.Cells[dj,Row1]:= Trim(Data.Query1.FieldByName('bzsj').AsString);
        if (Trim(ksb.Text)='应税内含')or(Trim(ksb.Text)='应税外加')then
          bg.Cells[sl,Row1]:= Trim(Data.Query1.FieldByName('sl').AsString)
        else
          bg.Cells[sl,Row1]:= '0.0';
        bg.Cells[jbdw,Row1]:= Trim(Data.Query1.FieldByName('jbdw').AsString);
        bg.SetFocus;
        bg.Col := bg.Col+1;
      end
      else
      begin
        kc := True;
        bg.Cells[spdm,Row1]:='';
        bg.Cells[spmc,Row1]:='';
        bg.Cells[jbdw,Row1]:='';
      end;
    end
    else
    begin
      bg.SetFocus;
      if bg.Col<bg.ColCount-1 then
        bg.Col := bg.Col+1;
    end;
  end;
end;

procedure Tf_spxs.ClearCurrentRow;
var
  i: Integer;
begin
  For i:=0 to bg.ColCount-1 do
    bg.Cells[i,Row1]:= '';
end;

procedure Tf_spxs.ClearEndRow;
var
  i: Integer;
begin
  For i:=0 to bg.ColCount-1 do
    bg.Cells[i,bg.RowCount-1]:= '';
end;

function Tf_spxs.CurrentIsNull: Boolean;
var
  a: Integer;
begin
  Result := False;
  For a:= 0 to bg.ColCount -1 do
  begin
    if Trim(bg.Cells[a,Row1])='' then
    begin
      Result := True;
      Break;
    end;
  end;
end;

procedure Tf_spxs.xsphEnter(Sender: TObject);
begin
  Grid1.Visible := False;
  bzqlb.Visible := False;
end;

procedure Tf_spxs.ywyExit(Sender: TObject);
var
  key: Word;
begin
  if Trim(ywy.Text)<>'' then
  begin
    Key := vk_ReTurn;
    ywy.OnKeyDown(Sender,Key,[ssctrl]);
  end;
end;

procedure Tf_spxs.bzqlbDblClick(Sender: TObject);
begin
  bg.Cells[bzq,Row1]:= bzqlb.Items[bzqlb.itemIndex];
  bzqlb.Visible := False;
  bg.SetFocus;
end;

procedure Tf_spxs.bzqlbKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = Vk_Return then
    bzqlb.OnDblClick(Sender);
end;

procedure Tf_spxs.bzqlbExit(Sender: TObject);
begin
  bzqlb.Visible := False;
  bg.SetFocus;
  bg.Col := je;
  bg.Col:= bzq;
end;

function Tf_spxs.EditIsNull: Boolean;
var
  i: Integer;
begin
  Result := False;
  For i := 0 to ControlCount-1 do
  begin
    if Controls[i] is TEdit then
    begin
      if (Trim(TEdit(Controls[i]).Name)<>'dhph')and(Trim(TEdit(Controls[i]).Text)='') then
      begin
        Result := True;
        Exit;
      end;
    end
    else if Controls[i] is TComboBox then
    begin
      if Trim(TComboBox(Controls[i]).Text)='' then
      begin
        Result := True;
        Exit;
      end;
    end;
  end;
  For i :=0 to Panel2.ControlCount-1 do
  begin
    if Controls[i] is TEdit then
      if Trim(TEdit(Controls[i]).Text)='' then
      begin
        Result := True;
        Break;
      end;
  end;
end;


function Tf_spxs.GridIsNull: Boolean;
var
  c,r: Integer;
begin
  Result := False;
  For r := 1 to bg.RowCount-1 do
    For c := 0 to bg.ColCount-1 do
    if Trim(bg.Cells[c,r])='' then
    begin
      Result := True;
      Break;
    end;
end;

function Tf_spxs.GroupSum(spbh: String): Real;
var
  r: Integer;
begin
  Result := 0;
  For r := 1 to bg.RowCount-1 do
  begin
    if (Trim(spbh)=Trim(bg.Cells[spdm,r]))then
      Result := Result + StrToInt(bg.Cells[Num,r]);
  end;
end;

function Tf_spxs.IsGq: Boolean;
var
  r: Integer;
begin
  Result := False;
  For r := 1 to bg.RowCount-1 do
  begin
    if StrToDateTime(bg.Cells[bzq,r])<Trunc(Now)+1 then
    begin
      Result := True;
      Break;
    end;
  end;
end;

function Tf_spxs.CalculateCbj(spbh: String): real;
var
  sum: Integer;
  money: Real;
begin
  Result := 0;
  with Data.Query2 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select Sum(sl)as num,Sum(je)as Je from t_sprkjl where spdm = :a');
    ParamByName('a').AsString := Trim(spbh);
    Open;
  end;
  if Data.Query2.Fields[0].Value<>Null then
  begin
    Sum := Data.Query2.Fields[0].AsInteger;
    money := Data.Query2.Fields[1].AsFloat;
    Result := Money/sum;
  end;
end;

function Tf_spxs.GroupSum(spbh, kcmc, bzqx: String): Real;
var
  r: Integer;
begin
  Result := 0;
  For r := 1 to bg.RowCount-1 do
  begin
    if Trim(kcmc)=Trim(bg.Cells[ckmc,r]) then
      if (Trim(spbh)=Trim(bg.Cells[spdm,r]))then
        if (Trim(bzqx)= Trim(bg.Cells[bzq,r]))then
          Result := Result + StrToInt(bg.Cells[Num,r]);
  end;
end;

procedure Tf_spxs.ReadDataFromdhph;
var
  i: integer;
begin
  i := 1;
  if Trim(dhph.Text)<>'' then
  begin
    with Data.Query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from t_dhph where dhph = :a and bs =0');
      ParamByName('a').AsString := Trim(dhph.Text);
      Open;
    end;
    if Data.Query1.RecordCount>0 then
    begin
      dhph.ReadOnly := True;
      xszr.ReadOnly := True;
      bg.Options := bg.Options-[goEditing];
      kh.Text := Data.Query1.FieldByName('khmc').AsString;
      fktj.Text := Data.Query1.FieldByName('fktj').AsString;
      ksb.Text := Data.Query1.FieldByName('ksb').AsString;
      ywy.Text := Data.Query1.FieldByName('ywy').AsString;
      sj.DateTime := Data.Query1.FieldByName('sj').AsDateTime;
      xsxj.Text := Data.Query1.FieldByName('xsxj').AsString;
      xszr.Text := Data.Query1.FieldByName('xszr').AsString;
      xsse.Text := Data.Query1.FieldByName('xsse').AsString;
      zj.Text := Data.Query1.FieldByName('zj').AsString;
      with Data.Query2 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * from t_dhmx where dhph = :a');
        ParamByName('a').AsString := Trim(dhph.Text);
        Open;
      end;
      bg.RowCount := Data.Query2.RecordCount+1;
      while Not Data.Query2.Eof do
      begin
        bg.Cells[ckmc,i]:= Data.Query2.FieldByName('kcmc').AsString;
        with Data.Query3 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('select kclb from t_kcjcxx where kcmc = :a');
          ParamByName('a').AsString := Trim(bg.Cells[ckmc,i]);
          Open;
        end;
        bg.Cells[cklb,i]:= Data.Query3.Fields[0].AsString;;
        bg.Cells[spdm,i]:= Data.Query2.FieldByName('spdm').AsString;
        with Data.Query3 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('select spmc from t_spjcxx where spdm = :a');
          ParamByName('a').AsString := Trim(bg.Cells[spdm,i]);
          Open;
        end;
        bg.Cells[spmc,i]:= Data.Query3.Fields[0].AsString;
        bg.Cells[dj,i]:= Data.Query2.FieldByName('bzsj').AsString;
        bg.Cells[jbdw,i]:= Data.Query2.FieldByName('jbdw').AsString;
        bg.Cells[num,i]:= Data.Query2.FieldByName('num').AsString;
        bg.Cells[sl,i]:= Data.Query2.FieldByName('sl').AsString;
        bg.Cells[se,i]:= Data.Query2.FieldByName('se').AsString;
        bg.Cells[zk,i]:= Data.Query2.FieldByName('zk').AsString;
        bg.Cells[wzrje,i]:= Data.Query2.FieldByName('wzrje').AsString;
        bg.Cells[je,i]:= Data.Query2.FieldByName('je').AsString;
        bg.Cells[bzq,i]:= FormatdateTime('yyyy-mm-dd',Data.Query2.FieldByName('bzq').AsDateTime);
        inc(i);
        Data.Query2.Next;
      end;
    end
    else
      Application.MessageBox('该票号不存在或已完成送货.','提示',64);
  end;
end;

procedure Tf_spxs.tjClick(Sender: TObject);
var
  s,m: String;
  i: integer;
begin
  qx.OnClick(Sender);
  s:= 'PH'+ FormatDateTime('yyyymmdd',sj.Date);
  With Data.Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select max(xsph) as ss From t_xsph where sj>=:a and sj <:b');
    ParamByName('a').AsDate := Trunc(sj.Date);
    ParamByName('b').AsDate := Trunc(sj.Date)+1;
    Open;
  end;
  If Data.Query1.FieldByName('ss').Value = null then
    s := s + '001'
  else
  begin
    m:= Trim(Data.Query1.FieldByName('ss').Value) ;
    i:= StrToInt(Trim(Copy(m,11,8))) ;
    if i<9 then
      s:= s + '00'+ InttoStr(i +1)
    else if i<99 then
      s:= s + '0'+ InttoStr(i +1)
    else
      s:= s +InttoStr(i +1);
  end;
  xsph.Text := s;
  kh.SetFocus;
  sj.Enabled := False;
  dhph.Enabled := False;
end;

procedure Tf_spxs.qxClick(Sender: TObject);
var
  c,r: Integer;
begin
  For r:=1 to bg.RowCount-1 do
    For c:=0 to bg.ColCount-1 do
      bg.Cells[c,r]:='';
  bg.RowCount:=2;
  Grid1.Visible := False;
  kh.Enabled := True;
  sj.DateTime := Now;
  ksb.Enabled := True;
  lb.Visible := False;
  ksb.ItemIndex := 0;
  xsph.Clear;
  xszr.Text := '0.0';
  xsxj.Text:='0.0';
  xsse.Text := '0.0';
  zj.Text:= '0.0';
  sj.Enabled := True;
  ywy.Clear;
  kh.Clear;
  kh.SetFocus;
  dhph.Clear;
  dhph.Enabled := True;;
  dhph.ReadOnly := False;
  xszr.ReadOnly := False;
  Col1 := 0;
  Row1 := 1;
end;

procedure Tf_spxs.bcClick(Sender: TObject);
var

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -