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

📄 basebilledit.pas

📁 进销存·完整的·有数据库的·非常完整·只得参考
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      ADOSetTmp.Next;
    end
  else
  begin
  end;
  sFieldName := sFieldNameS;
  sCaption := sCaptionS;
  sWidth := sWidthS;
  sNoDisPlay := sNoDisPlayS;
  sReadOnly := sReadOnlyS;
  ADOSetTmp.Close;
  ADOSetTmp.Free;
end;

procedure TfrmBaseBillEdit.SetBillDisPlay(sDisPlay: string);
var
  s1, s2: string;
begin
  s1 := sDisPlay + ',';
  while pos(',', s1) <> 0 do
  begin
    s2 := copy(s1, 0, pos(',', s1) - 1);
    s1 := copy(s1, pos(',', s1) + 1, Length(s1));
    if s2 <> '' then
      gridMain.ColumnByFieldName(s2).Visible := false;
  end;
end;

procedure TfrmBaseBillEdit.SetBillReadOnly(sRead: string);
var
  s1, s2: string;
begin
  s1 := sRead + ',';
  while pos(',', s1) <> 0 do
  begin
    s2 := copy(s1, 0, pos(',', s1) - 1);
    s1 := copy(s1, pos(',', s1) + 1, Length(s1));
    if s2 <> '' then
    begin
      gridMain.ColumnByFieldName(s2).ReadOnly := True;
      gridMain.ColumnByFieldName(s2).Color := $00E9FCFC;
    end;
  end;
end;

procedure TfrmBaseBillEdit.SaveGirdWidth;
var
  lCol: Integer;
  sSql: string;
  ADOSetTmp: TADODataSet;
begin
  ADOSetTmp := nil;
  lCol := 0;
  sSql := 'SELECT * FROM BillSetup WHERE MODE=' + IntToStr(lMode) + ' ORDER BY UserID';

  ADOSetTmp := TADODataSet.Create(ADOSetTmp);
  OpenDataSet(ADOSetTmp, sSql);
  if not ADOSetTmp.IsEmpty then
    while not ADOSetTmp.Eof do
    begin
      ADOSetTmp.Edit;
      ADOSetTmp.FieldByName('Width').AsInteger := gridMain.Columns[lCol].Width;
      ADOSetTmp.Post;
      ADOSetTmp.Next;
      inc(lCol);
    end;
  ADOSetTmp.Close;
  ADOSetTmp.Free;
end;

procedure TfrmBaseBillEdit.bbExitClick(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfrmBaseBillEdit.pbbPrintClick(Sender: TObject);
begin
  inherited;
  PrintForm(Self, 1, PRINT_REPORT, sPrintFile);
end;

procedure TfrmBaseBillEdit.pbbPrintViewClick(Sender: TObject);
begin
  inherited;
  PrintForm(Self, 1, SHOW_REPORT, sPrintFile);
end;

procedure TfrmBaseBillEdit.pbbPrintCustomClick(Sender: TObject);
begin
  inherited;
  PrintForm(Self, 1, DESIGN_REPORT, sPrintFile);
end;

procedure TfrmBaseBillEdit.pbbPrintInitClick(Sender: TObject);
begin
  inherited;
  PrintForm(Self, 1, INITI_REPORT, sPrintFile);
end;

procedure TfrmBaseBillEdit.bbPrintClick(Sender: TObject);
begin
  inherited;
  PrintForm(Self, 1, SHOW_REPORT, sPrintFile);
end;

procedure TfrmBaseBillEdit.gridMainKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  case KEY of
    VK_RETURN:
      with gridMain do
        if FocusedColumn < VisibleColumnCount - 1 then
          FocusedColumn := FocusedColumn + 1
        else
          if FocusedColumn = VisibleColumnCount - 1 then
          begin
            FocusedColumn := 0;
            if isEof or (DataLink.DataSet.RecNo = DataLink.DataSet.RecordCount) then
              DataLink.DataSet.Append
            else
              DataLink.DataSet.Next;
            gridMain.ShowEditor;
          end;
  end;
end;

procedure TfrmBaseBillEdit.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  case KEY of
    VK_RETURN:
      begin
        if GetFocusedComponent(self) is TdxInplaceEdit then
          perform(WM_NEXTDLGCTL, 0, 0);
      end;
    VK_ESCAPE: Close;
  end;
end;

procedure TfrmBaseBillEdit.SetDrawGridSummary(dxGrid: TdxDBGrid);
var
  i: Integer;
begin
  if edgoLoadAllRecords in dxGrid.OptionsDB then Exit;
  for i := 0 to dxGrid.ColumnCount - 1 do
  begin
    if dxGrid.Columns[i].SummaryFooterType <> cstNone then
      dxGrid.Columns[i].OnDrawSummaryFooter := GridDrawSummaryFooter;
  end;
end;

procedure TfrmBaseBillEdit.GridDrawSummaryFooter(Sender: TObject; ACanvas:
  TCanvas; ARect: TRect; var AText: string; var AAlignment: TAlignment; AFont: TFont;
  var AColor: TColor; var ADone: Boolean);
begin
  inherited;
  if not (edgoLoadAllRecords in TdxDBGrid(TdxDBTreeListColumn(Sender).ATreeList).OptionsDB) then
  begin
    AText := CalcColumnSummary(TdxDBTreeListColumn(Sender));
    TdxDBTreeListColumn(Sender).SummaryFooterFormat := AText;
  end;
end;

procedure TfrmBaseBillEdit.bbPrevClick(Sender: TObject);
begin
  inherited;
  ADOSetMaster.Prior;
  lID := ADOSetMaster.FieldByName('ID').AsInteger;
end;

procedure TfrmBaseBillEdit.bbNextClick(Sender: TObject);
begin
  inherited;
  ADOSetMaster.Next;
  lID := ADOSetMaster.FieldByName('ID').AsInteger;
end;

procedure TfrmBaseBillEdit.bbInsClick(Sender: TObject);
begin
  inherited;
  gridMain.DataLink.DataSet.Append;
end;

procedure TfrmBaseBillEdit.bbDelClick(Sender: TObject);
begin
  inherited;
  gridMain.DataLink.DataSet.Delete;
end;

procedure TfrmBaseBillEdit.bbEditClick(Sender: TObject);
begin
  inherited;
  gridMain.DataLink.DataSet.Edit;
end;

procedure TfrmBaseBillEdit.gridMainMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  P: TPoint;
begin
  inherited;
  GetCursorPos(P);
  if Button = mbRight then
    GridPopMenu.Popup(P.X, P.Y)
  else
    if (Button = mbLeft) and (gridMain.GetHitTestInfoAt(X, Y) = htNowhere) then
      bbIns.Click;
end;

procedure TfrmBaseBillEdit.bbOkClick(Sender: TObject);
begin
  inherited;
  bReturn := True;
end;

procedure TfrmBaseBillEdit.FormCreate(Sender: TObject);
begin
  inherited;
  bReturn := False;
  bDrawFullGrid := StrToBool2(GetIniValue(frmData.ADOConnetLogin, 'DrawFullGrid'));
end;

procedure TfrmBaseBillEdit.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  if (not bReturn) and (lID = 0) and (ADOSetList.RecordCount > 0) then
    if MsgBox('你没有保存数据,确定要退出吗?', '提示', MB_OKCANCEL) <> IDOK then
      Action := caNone;
end;

procedure TfrmBaseBillEdit.FormShow(Sender: TObject);
begin
  inherited;
  SetPanelFocused(self, pnlBillTop);
end;

procedure TfrmBaseBillEdit.gridMainCustomDraw(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;
  SetGridColor(ANode, AColor);
  if bDrawFullGrid then DrawFullGrid(gridMain, ACanvas, ARect, ANode);
end;

end.

⌨️ 快捷键说明

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