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

📄 baseinfo.pas

📁 在打沙场用的最简单
💻 PAS
字号:
unit BaseInfo;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MDIbase, Buttons, StdCtrls, wwdblook, ToolWin, ComCtrls, Grids,
  DBGridEh, DB, DBClient, Menus, ActnList, ExtCtrls, FR_Desgn, FR_DSet,
  FR_DBSet, FR_Class;

type
  TfrmBaseinfo = class(TfrmMDIbase)
    CoolBar1: TCoolBar;
    CDSprint: TClientDataSet;
    Grid: TDBGridEh;
    CDSprintField: TStringField;
    ActionList1: TActionList;
    PopupMenu: TPopupMenu;
    s01: TAction;
    s02: TAction;
    s03: TAction;
    s04: TAction;
    s05: TAction;
    s06: TAction;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    Panel1: TPanel;
    spbtnEdit: TSpeedButton;
    paprint: TPanel;
    Label1: TLabel;
    comboPrint: TwwDBLookupCombo;
    CDSbaseinfo: TClientDataSet;
    DSbaseinfo: TDataSource;
    frBaseinfo: TfrReport;
    frDBDSbaseinfo: TfrDBDataSet;
    procedure GridGetCellParams(Sender: TObject; Column: TColumnEh;
      AFont: TFont; var Background: TColor; State: TGridDrawState);
    procedure spbtnEditClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure s01Execute(Sender: TObject);
    procedure s03Execute(Sender: TObject);
    procedure s06Execute(Sender: TObject);
    procedure s04Execute(Sender: TObject);
    procedure s02Execute(Sender: TObject);
    procedure s05Execute(Sender: TObject);
    procedure comboPrintChange(Sender: TObject);
  private
    procedure printSelect;
    procedure Createprintdata;
    function getscreenpoint(sender:Tcontrol):Tpoint;    
    { Private declarations }
  protected
    Maintable:String;
    Mainview:String;
    KeyField:string;
    Reportname:string;
    ModifyForm:TFormClass;
  public
    { Public declarations }
  end;

var
  frmBaseinfo: TfrmBaseinfo;

implementation

uses Global, common, usearch;

{$R *.dfm}

procedure TfrmBaseinfo.Createprintdata;
begin
  With CDSprint do
    begin
      Close;
      FieldDefs.Add('打印选项',ftString,8);
      CreateDataSet;
      AppendRecord(['退出打印']);
      AppendRecord(['打印预览']);
      AppendRecord(['直接打印']);
      AppendRecord(['打印设置']);
      AppendRecord(['报表设置']);
      AppendRecord(['电子表格']);
      Open;
    end;
end;

function TfrmBaseinfo.getscreenpoint(sender: Tcontrol): Tpoint;
var
  clientpoint:Tpoint;
begin
  clientpoint:=point(0,sender.Height);
  while sender.Parent<>nil do
    begin
      clientpoint:=point(sender.Left+clientpoint.X,sender.Top+clientpoint.Y);
      sender:=sender.Parent;
    end;
  clientpoint:=sender.ClientToScreen(clientpoint);
  Result:=clientpoint;
end;

procedure TfrmBaseinfo.GridGetCellParams(Sender: TObject;
  Column: TColumnEh; AFont: TFont; var Background: TColor;
  State: TGridDrawState);
begin
  inherited;
  if Grid.SumList.RecNo mod 2=1 then
    BackGround:=$00EAEFED
    else
    BackGround:=clWhite;
end;

procedure TfrmBaseinfo.spbtnEditClick(Sender: TObject);
var
  Point:Tpoint;
begin
  inherited;
  Point:=GetScreenpoint(spbtnEdit);
  popupmenu.Popup(point.X,point.Y); 
end;

procedure TfrmBaseinfo.FormCreate(Sender: TObject);
begin
  inherited;
  Createprintdata;
  LockCount:=0;
end;

procedure TfrmBaseinfo.FormShow(Sender: TObject);
begin
  inherited;
  GetaddData(CDSBaseinfo,Mainview,Keyfield,20);
  s01.Enabled:=bcanadd;          //新增
  s02.Enabled:=bcanadd;          //复制
  s03.Enabled:=bcanmodify;       //修改
  s04.Enabled:=bcandelete;       //删除
  comboPrint.Enabled:=bcanprint;  //打印权限
end;

procedure TfrmBaseinfo.s01Execute(Sender: TObject);
var
  Child:Tform;
begin
  inherited;
  CDSbaseinfo.Append;
  Child:=Modifyform.Create(application);
  Child.ShowModal;

  if CDSbaseinfo.ChangeCount > 0  then
    begin
      applyupdata(CDSbaseinfo,Maintable,Keyfield);
      Cdsbaseinfo.MergeChangeLog;
    end;
    GetaddData(CDSbaseinfo,Mainview,keyField,20);
end;

procedure TfrmBaseinfo.s03Execute(Sender: TObject);
var
  Child:Tform;
  Cid:integer;
begin
  inherited;
  if CDSbaseinfo.RecordCount = 0 then Exit;
  Cid:=CDSbaseinfo.fieldbyname(keyfield).AsInteger;
  CDSbaseinfo.Edit;
  Child:=Modifyform.Create(application);
  Child.ShowModal;
  if CDSbaseinfo.ChangeCount > 0 then
    begin
      Applyupdata(CDSbaseinfo,Maintable,keyfield);
      CDSbaseinfo.MergeChangeLog;
    end;
  GeteditData(CDSbaseinfo,Mainview,keyfield,cid,20);
end;

procedure TfrmBaseinfo.s06Execute(Sender: TObject);
begin
  inherited;
  GetaddData(CDSbaseinfo,Maintable,KeyField,0);
end;

procedure TfrmBaseinfo.s04Execute(Sender: TObject);
var
  Cid:integer;
begin
  inherited;
  if CDSbaseinfo.RecordCount = 0 then Exit;
  Cid:=CDSbaseinfo.fieldbyname(keyfield).AsInteger;
  if messagedlg('确认删除当前记录吗 ? ',mtConfirmation,[mbok,mbcancel],0)=mrok then
    begin
      CDSbaseinfo.Delete;
      Applyupdata(CDSbaseinfo,Maintable,keyField);
      CDSbaseinfo.MergeChangeLog;
      GeteditData(CDSbaseinfo,Mainview,Keyfield,Cid,20);
    end;
end;

procedure TfrmBaseinfo.s02Execute(Sender: TObject);
var
  i:integer;
  s1,s2,cmdStr:string;
begin
  inherited;
    s1:='';
    S2:='';
    for i:=2 to CDSbaseinfo.FieldCount do     //Because Field Fid Can not insert
      begin
        if s1='' then
          begin
            s1:=Trim(Cdsbaseinfo.Fields[i-1].FieldName);
            s2:=VartoSql(Cdsbaseinfo.Fields[i-1].Value);
          end
          else
          begin
            s1:=s1+','+Trim(cdsbaseinfo.Fields[i-1].FieldName);
            s2:=s2+','+VartoSql(cdsbaseinfo.Fields[i-1].Value);
          end;
      end;
      if s1<>'' then
        cmdStr:=' Insert into '+Maintable+'('+s1+') Values('+s2+')';
      if execsql(cmdStr) then
        begin
           Getadddata(CDSbaseinfo,mainView,keyfield,20);
           syslog(self.Name,'复制记录,表名:'+maintable );
        end;
end;

procedure TfrmBaseinfo.s05Execute(Sender: TObject);
var
  i,j:integer;
begin
  inherited;
  initArray;
  for i:=0 to CDSbaseinfo.FieldCount - 1 do
    FindArray1[i]:=CDSbaseinfo.Fields[i].FieldName;
  for j:=0 to Grid.Columns.Count - 1 do
    FindArray2[j]:=Grid.Columns[j].Title.Caption;

  if not Assigned(frmSearch) then
    frmSearch:=TfrmSearch.Create(application);
    frmSearch.ShowModal;

  if Trim(Searchtiao)<>'' then
    begin
      try
        Getsqldata(CDSbaseinfo,MainView,Keyfield,Searchtiao,20);
      except
        GetAddData(CDSbaseinfo,MainView,Keyfield,20);
      end;
    end;
end;

procedure TfrmBaseinfo.comboPrintChange(Sender: TObject);
begin
  inherited;
  printSelect;
end;

procedure TfrmBaseinfo.printSelect;

Begin
  if Trim(comboprint.Text)='打印预览' then
    begin
        CDSbaseinfo.DisableControls;
        frbaseinfo.LoadFromFile(ReportName);
        frbaseinfo.ShowReport;
        CDSbaseinfo.EnableControls;
    end;

  if Trim(comboprint.Text)='直接打印' then
    begin
       CDSbaseinfo.DisableControls;
       frbaseinfo.LoadFromFile(ReportName);
       frbaseinfo.PrepareReport;
       frbaseinfo.PrintPreparedReport('',1,True,frAll);
       CDSbaseinfo.EnableControls;
    end;

  if Trim(comboprint.Text)='打印设置' then
     begin
       CDSbaseinfo.DisableControls;
       frbaseinfo.LoadFromFile(ReportName);
       frbaseinfo.PrepareReport;
       frbaseinfo.PrintPreparedReportDlg;
       CDSbaseinfo.EnableControls;
     end;

  if Trim(comboprint.Text)='报表设置' then
     begin
       CDSbaseinfo.DisableControls;
       frbaseinfo.LoadFromFile(ReportName);
       frbaseinfo.DesignReport;
       CDSbaseinfo.EnableControls;
     end;



  if Trim(comboprint.Text)='退出打印' then
      Exit;
end;

end.

⌨️ 快捷键说明

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