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

📄 bbrelations.pas

📁 公积金监管系统客户端,是新疆公积金监管系统的客户端软件
💻 PAS
字号:
unit BbRelations;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, ExtCtrls, ImgList, ComCtrls, ToolWin, StdCtrls,
  Buttons, Spin, CELLLib_TLB, OleCtrls;

type
  TBbRelation = class(TForm)
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ImageList1: TImageList;
    ImageList2: TImageList;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    Panel1: TPanel;
    CboBb: TComboBox;
    ToolButton16: TToolButton;
    Label1: TLabel;
    Label2: TLabel;
    SpinEdit1: TSpinEdit;
    Label3: TLabel;
    Edit1: TEdit;
    ComboBox1: TComboBox;
    Label4: TLabel;
    Edit2: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Cell1: TCell;
    DBGrid1: TDBGrid;
    procedure ToolButton13Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);

    procedure EnableControl(const Value:Boolean; const isadd:Boolean=false);
    function fValidFormula(const cStr:String):Boolean;
    procedure ToolButton3Click(Sender: TObject);

    procedure CellExecuteUserFunc(Sender: TObject;
      const name: WideString; rettype, paranum: Smallint;
      var paratype: Integer; var funcResult: OleVariant);
    procedure BitBtn1Click(Sender: TObject);
    procedure ComboboxChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
//    tasknumber: String;
    FormulaOK: Boolean;
  end;

var
  BbRelation: TBbRelation;


implementation

{$R *.dfm}
uses DataModule,UserFace;

procedure TBbRelation.ComboboxChange(Sender: TObject);
var
  bbn:String;
begin
  bbn:= Copy(CboBb.Text,1,2);
  DM.pQryRelation(Bbn);
  EnableControl(False,False);
  if Dm.cds_SD.RecordCount =0 then
  begin
    ToolButton2.Enabled := False;
    ToolButton3.Enabled := False;
    ToolButton8.Enabled := False;
    ToolButton9.Enabled := False;
  end
  else
  begin
    ToolButton2.Enabled := True;
    ToolButton3.Enabled := True;
    ToolButton8.Enabled := True;
    ToolButton9.Enabled := True;
  end;
end;


procedure TBbRelation.ToolButton13Click(Sender: TObject);
begin
  Close;
end;

procedure TBbRelation.FormCreate(Sender: TObject);
var
  bbnum, bbname: String;
  i,iIndex: integer;
begin
  cell1.DoLogin('北京金天鹏软件科技有限公司',363,'00FD18FF080193035CFE09FF9908');
  LoadCellRelation(Cell1);
  i:=0;
  iIndex := -1;
  BbNum:=trim(DM.cds_LR.fieldbyname('bbbh').AsString);
  BbName:=trim(DM.cds_LR.fieldbyname('bbmc').AsString);
  DM.cds_SC.Data:= DM.cds_LR.Data;
  with DM.cds_SC do
  begin
    first;
    while not eof do
    begin
      CboBb.Items.Add(fieldbyname('bbbh').AsString+'|'+trim(fieldbyname('bbmc').AsString));
      if BbNum = fieldbyname('bbbh').AsString then
        iIndex := i;
      next;
      inc(i);
    end;
  end;
  CboBb.ItemIndex := iIndex;
  //ToolButton15.Click;
  CboBb.OnChange(self);
  Resize;
end;

procedure TBbRelation.FormResize(Sender: TObject);
begin
  DBGrid1.Columns[1].Width := trunc((ClientWidth-40-DBGrid1.Columns[0].Width-DBGrid1.Columns[2].Width)/2);
  DBGrid1.Columns[3].Width := DBGrid1.Columns[1].Width;
end;

procedure TBbRelation.EnableControl(const Value: Boolean; const isadd:Boolean=false);
var
  i: smallint;
begin
  for i:=0 to Panel1.ControlCount-1 do
    Panel1.Controls[i].Enabled := Value;
  if (not isadd) and value then
    SpinEdit1.Enabled := False;
  DBGrid1.Enabled := not Value;
  CboBb.Enabled := not Value;
  ToolButton5.Enabled := Value;
  ToolButton6.Enabled := Value;
  ToolButton8.Enabled := not Value;
  ToolButton9.Enabled := not Value;
end;

procedure TBbRelation.ToolButton1Click(Sender: TObject);
begin
  Dm.cds_SD.Last;
  SpinEdit1.Value := DM.cds_SD.FieldByName('relationno').AsInteger +1;
  EnableControl(True,True);
  SpinEdit1.SetFocus;
end;

procedure TBbRelation.ToolButton2Click(Sender: TObject);
var
  cra:string;
  i: smallint;
begin
  EnableControl(True,False);
  with Dm.cds_SD do
  begin
    SpinEdit1.Value := FieldByName('relationno').AsInteger;
    Edit1.Text := FieldByName('bbrelationl').AsString;
    Edit2.Text := FieldByName('bbrelationr').AsString;
    cra := trim(FieldByName('bbrelation').AsString);
    combobox1.ItemIndex := -1;
    for i:=0 to Combobox1.Items.Count do
    begin
      if Combobox1.Items.Strings[i] = cra then
      begin
        Combobox1.ItemIndex := i;
        break;
      end;
    end;
  end;
  Edit1.SetFocus;
end;

procedure TBbRelation.ToolButton6Click(Sender: TObject);
begin
  with Dm.cds_SD do
  begin
    SpinEdit1.Value := FieldByName('relationno').AsInteger;
    Edit1.Text := FieldByName('bbrelationl').AsString;
    Edit2.Text := FieldByName('bbrelationr').AsString;
    Combobox1.Text := FieldByName('bbrelation').AsString;
  end;
  EnableControl(False,False);
end;

procedure TBbRelation.ToolButton5Click(Sender: TObject);
var
//  iNo,ret: Integer;
  iNo: Integer;
  cRelation,cRelationL,cRelationR,BbNum: String;
begin
  iNo := SpinEdit1.Value ;
  cRelationL := Trim(Edit1.Text);
  cRelationR := Trim(Edit2.Text);
  cRelation := Trim(Combobox1.Text);
  BbNum:= Copy(CboBb.Text,1,2);
  if SpinEdit1.Enabled then
  begin
    Dm.cds_SD.First;
    if Dm.cds_SD.Locate('relationno',iNo,[]) then
    begin
      showmessage('编号重复,请更换!');
      SpinEdit1.SetFocus;
      exit;
    end;
  end;
  if not fValidFormula(cRelationL) then
  begin
    showmessage('公式左所设置的公式非法!');
    Edit1.SetFocus;
    Exit;
  end;
  if not fValidFormula(cRelationR) then
  begin
    showmessage('公式右所设置的公式非法!');
    Edit2.SetFocus;
    Exit;
  end;
  if cRelation='' then
  begin
    showmessage('请选择公式的关系');
    Combobox1.SetFocus;
    Exit;
  end;
  if DM.fSpRelationSave(BbNum,iNo,cRelationL,cRelation,cRelationR)=0 then
  begin
    EnableControl(False,False);
    Dm.pQryRelation(BbNum);
    while not DM.cds_SD.Eof do
    begin
      if Dm.cds_SD.FieldByName('relationno').AsInteger = iNo then
        break;
      Dm.cds_SD.Next;
    end;
    if Dm.cds_SD.RecordCount =0 then
    begin
      ToolButton2.Enabled := False;
      ToolButton3.Enabled := False;
      ToolButton8.Enabled := False;
      ToolButton9.Enabled := False;
    end
    else
    begin
      ToolButton2.Enabled := True;
      ToolButton3.Enabled := True;
      ToolButton8.Enabled := True;
      ToolButton9.Enabled := True;
    end;
    showmessage('存盘成功!');
  end
  else
    showmessage('存盘失败!');
end;

function TBbRelation.fValidFormula(const cStr: String): Boolean;
var
  Ret: smallint;
  Resu: OleVariant;
begin
  LoadCellRelation(Cell1);
  ret := 0;
  resu :=0;
  result := Cell1.DoCalculateExpr(cStr,ret,resu)
end;

procedure TBbRelation.ToolButton3Click(Sender: TObject);
var
  iNo: Integer;
  BbNum: String;
begin
  iNo := Dm.cds_SD.FieldByName('relationno').AsInteger;
  if messagedlg('是否要删除“' + InttoStr(iNo)+'号勾稽公式?',
    mtcustom, [mbyes, mbno], 0) = mrYes then
  begin
    BbNum:= Copy(CboBb.Text,1,6);
    if Dm.fSpRelationdel(BbNum,iNo) =0 then
    begin
      if Dm.cds_SD.RecordCount =0 then
      begin
        ToolButton2.Enabled := False;
        ToolButton3.Enabled := False;
        ToolButton8.Enabled := False;
        ToolButton9.Enabled := False;
      end
      else
      begin
        ToolButton2.Enabled := True;
        ToolButton3.Enabled := True;
        ToolButton8.Enabled := True;
        ToolButton9.Enabled := True;
      end;
      ComboboxChange(self);
      showmessage('删除成功!');
    end
    else
      showmessage('删除失败!');
  end;
end;

procedure TBbRelation.CellExecuteUserFunc(Sender: TObject;
  const name: WideString; rettype, paranum: Smallint;
  var paratype: Integer; var funcResult: OleVariant);
begin
  if (UpperCase(name)='GJGET') or (UpperCase(name)='GJGETD') or
    (UpperCase(name)='GJSUMH') or (UpperCase(name)='GJSUMV') then
  begin
    FormulaOk := True;
    funcresult := 0;
  end
  else
  begin
    FormulaOk := False;
  end;
end;

procedure TBbRelation.BitBtn1Click(Sender: TObject);
var
  cFormula: OleVariant;
begin
  cFormula := '';
  if Sender = BitBtn1 then
    cFormula := trim(Edit1.Text)
  else
    cFormula := trim(Edit2.Text);
  if cFormula <>'' then
    Cell1.DoSetFormula(1,1,cformula);
  Cell1.Visible := True;
  cell1.DoInputFormula(1,1);
  Cell1.Visible := False;
  if Cell1.IsFormulaCell(1,1) then
  begin
    Cell1.DoGetFormula(1,1,cFormula);
    if Sender = BitBtn1 then
      Edit1.Text := cFormula
    else
      Edit2.Text := cFormula;
    Cell1.DoDelFormula(1,1);
  end;
end;

end.

⌨️ 快捷键说明

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