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

📄 billquery.pas

📁 进销存·完整的·有数据库的·非常完整·只得参考
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    SALE_POS_BILL: lEditMode := SALE_POS_EDIT;
    {库存}
    EXIST_DRAW_BILL: lEditMode := EXIST_DRAW;
    EXIST_RETURN_BILL: lEditMode := EXIST_RETURN;
    EXIST_LOSING_BILL: lEditMode := EXIST_LOSING;
    EXIST_INCREASE_BILL: lEditMode := EXIST_INCREASE;
    EXIST_ENTER_DEPOT_BILL: lEditMode := EXIST_ENTER_DEPOT;
    EXIST_CHECK_LIST_BILL: lEditMode := EXIST_CHECK_LIST;
    EXIST_CHANGE_PRICE_BILL: lEditMode := EXIST_CHANGE_PRICE;
    EXIST_EXCHANGE_BILL: lEditMode := EXIST_EXCHANGE;
    EXIST_PRICE_EXCHANGE_BILL: lEditMode := EXIST_PRICE_EXCHANGE;
    EXIST_ASSEMBLY_BILL: lEditMode := EXIST_ASSEMBLY;
    EXIST_OTHER_BILL: lEditMode := EXIST_OTHER;
    {钱流}
    MONEY_EXPENSES_BILL: lEditMode := MONEY_EXPENSES;
    MONEY_INCOME_BILL: lEditMode := MONEY_INCOME;
    MONEY_DEPOSIT_BILL: lEditMode := MONEY_DEPOSIT;
  else
    lEditMode := 0;
  end;
  Result := lEditMode;
end;

procedure TfrmBillQuery.ToolShow;
begin
  if lSelect = 0 then
    bbSelect.Visible := ivNever
  else
    if lSelect = 1 then
      bbSelect.Visible := ivAlways;
end;

procedure TfrmBillQuery.bbAddClick(Sender: TObject);
var
  SavePlace: TBookmark;
  lAddMode: Integer;
begin
  inherited;
  with ADOSetBillQuery do
  begin
    SavePlace := GetBookmark;
    lAddMode := QueryToEdit(GetRadioBill(lMode));
    if (lAddMode > STOCK_EDIT_BEGIN) and (lAddMode < SALE_EDIT_END) then
      BillEditShow(lAddMode, 0)
    else
      if (lAddMode > EXIST_EDIT_BEGIN) and (lAddMode < EXIST_EDIT_END) then
        ExistBillEditShow(lAddMode, 0)
      else
        if (lAddMode > MONEY_EDIT_BEGIN) and (lAddMode < MONEY_EDIT_END) then
          ExistBillEditShow(lAddMode, 0);
    Close;
    Open;
    GotoBookmark(SavePlace);
    FreeBookmark(SavePlace);
  end;
end;

procedure TfrmBillQuery.bbEditClick(Sender: TObject);
var
  SavePlace: TBookmark;
  lAddMode: Integer;
begin
  inherited;
  with ADOSetBillQuery do
  begin
    if IsEmpty then
      exit;
    SavePlace := GetBookmark;
    lAddMode := FieldByName('Mode').AsInteger;
    if (lAddMode > STOCK_EDIT_BEGIN) and (lAddMode < SALE_EDIT_END) then
      BillEditShow(lAddMode, FieldByName('ID').AsInteger)
    else
      if (lAddMode > EXIST_EDIT_BEGIN) and (lAddMode < EXIST_EDIT_END) then
        ExistBillEditShow(lAddMode, FieldByName('ID').AsInteger)
      else
        if (lAddMode > MONEY_EDIT_BEGIN) and (lAddMode < MONEY_EDIT_END) then
          ExistBillEditShow(lAddMode, FieldByName('ID').AsInteger);
    Close;
    Open;
    GotoBookmark(SavePlace);
    FreeBookmark(SavePlace);
  end;
end;

procedure TfrmBillQuery.bbDelClick(Sender: TObject);
var
  sSql: string;
  lRow, lID, lType: Integer;
begin
  inherited;
  lRow := ADOSetBillQuery.RecNo;
  if ADOSetBillQuery.IsEmpty then
    Exit;
  lType := ADOSetBillQuery.FieldByName('Type').AsInteger;
  if lType = 2 then
  begin
    ShowMsg('只能删除订单、草稿单据或红冲单据,不能删除过账单据!');
    Exit;
  end;
  if MsgBox('数据删除后不可恢复,确认要删除?', '提示', MB_OKCancel) = IDOK then
  begin
    ADOSetBillQuery.ControlsDisabled;
    lID := ADOSetBillQuery.FieldByName('ID').AsInteger;
    if (lMode > EXIST_EDIT_BEGIN) and (lMode < EXIST_EDIT_END) then
      sSql := 'DELETE FROM ExistIndex WHERE ID=' + IntToStr(lID)
    else
      sSql := 'DELETE FROM BillIndex WHERE ID=' + IntToStr(lID);
    if ExecSql(sSql) then
    begin
      if lMainMode = ALL_STOCK_BILL then
        sSql := 'DELETE FROM BillStock WHERE IndexID=' + IntToStr(lID)
      else
        if lMainMode = ALL_SALE_BILL then
          sSql := 'DELETE FROM BillSale WHERE IndexID=' + IntToStr(lID)
        else
          if lMainMode = ALL_EXIST_BILL then
            sSql := 'DELETE FROM ExistList WHERE IndexID=' + IntToStr(lID)
          else
            if lMainMode = ALL_MONEY_BILL then
              sSql := 'DELETE FROM BillMoney WHERE IndexID=' + IntToStr(lID);
      ExecSql(sSql);
    end;
    OpenDataSet(ADOSetBillQuery, ADOSetBillQuery.CommandText);
    if lRow > 1 then ADOSetBillQuery.RecNo := lRow - 1;
    ADOSetBillQuery.EnableControls;
  end;
end;

procedure TfrmBillQuery.bbTypeClick(Sender: TObject);
var
  lModeTemp: Integer;
begin
  inherited;
  lModeTemp := GetRadioBill(lMainMode);
  if lModeTemp <> 0 then
  begin
    lMode := lModeTemp;
    LoadData;
  end;
end;

procedure TfrmBillQuery.bbFindClick(Sender: TObject);
begin
  inherited;
  FindPublic(MainGrid, sPubFindText, lPubFindFiled);
end;

procedure TfrmBillQuery.bbFilterClick(Sender: TObject);
begin
  inherited;
  FilterPublic(MainGrid);
end;

procedure TfrmBillQuery.bbSetColClick(Sender: TObject);
begin
  inherited;
  SetCol(Caption, MainGrid, 0);
end;

procedure TfrmBillQuery.bbRefreshClick(Sender: TObject);
begin
  inherited;
  LoadData;
end;

procedure TfrmBillQuery.bbSelectClick(Sender: TObject);
begin
  inherited;
  sReturn := IntToStr(MainGrid.DataLink.DataSet.FieldByName('ID').AsInteger);
  Close;
end;

procedure TfrmBillQuery.MainGridDblClick(Sender: TObject);
begin
  inherited;
  if bbSelect.Visible = ivAlways then
    bbSelect.Click
  else
    bbEdit.Click;
end;

procedure TfrmBillQuery.MainGridCustomDrawCell(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
  AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
  var AText: string; var AColor: TColor; AFont: TFont;
  var AAlignment: TAlignment; var ADone: Boolean);
var
  Value: Variant;
begin
  inherited;
  Value := ANode.Values[MainGrid.ColumnByFieldName('Type').Index];
  if not VarIsNull(Value) then
  begin
    if Value = 1 then
      AFont.Color := clOlive
    else
      if Value = 2 then
        AFont.Color := clBlue
      else
        if Value = 3 then
          AFont.Color := clBlack
        else
          if Value = 5 then AFont.Color := clRed;
  end;
end;

procedure TfrmBillQuery.bbCopyClick(Sender: TObject);
var
  lRow, lMode, lID: Integer;
begin
  inherited;
  lRow := ADOSetBillQuery.RecNo;
  lID := ADOSetBillQuery.FieldValues['ID'];
  lMode := ADOSetBillQuery.FieldByName('Mode').AsInteger;
  if CopyBill(lMode, 3, lID) > 0 then
  begin
    LoadData;
    ADOSetBillQuery.RecNo := lRow + 1;
  end
  else
    ShowMsg('复制单据出错,请退出后重试!');

end;

procedure TfrmBillQuery.bbBlankoutClick(Sender: TObject);
var
  lMode, lRow, lID, lNewID, lType: Integer;
begin
  inherited;
  lRow := ADOSetBillQuery.RecNo;
  lID := ADOSetBillQuery.FieldValues['ID'];
  lType := ADOSetBillQuery.FieldByName('Type').AsInteger;
  lMode := ADOSetBillQuery.FieldByName('Mode').AsInteger;
  if lType <> 2 then
  begin
    ShowMsg('只能红冲过账单据和非订单单据,请重新选择单据!');
    Exit;
  end;
  if MsgBox('红冲单据会使此张单据作废,你确定要红冲此单据?', '提示', MB_OKCancel) <> IDOK then Exit;

  lNewID := CopyBill(lMode, 5, lID);
  if lNewID > 0 then
  begin
    LoadData;
    ADOSetBillQuery.RecNo := lRow;
  end
  else
    ShowMsg('红冲单据出错,请退出后重试!');
end;

procedure TfrmBillQuery.MainGridCustomDraw(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
  AColumn: TdxDBTreeListColumn; const AText: string; AFont: TFont;
  var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
  inherited;
  if bQDrawFullGrid then DrawFullGrid(MainGrid, ACanvas, ARect, ANode);
end;

end.

⌨️ 快捷键说明

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