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

📄 di_main.pas

📁 亚惠快餐管理信息系统 包括亚惠快餐管理的各项功能
💻 PAS
📖 第 1 页 / 共 3 页
字号:
        '';
      Caption := Trim(DI_DfmDataModule1.TTableADOQuery.Fields[i].DisplayLabel) +
        ' :';
      Width := 100;
      Left := (i mod 2) * 350 + 15;
      Top := (i div 2) * 30 + 22;
    end;
    DI_DfmMain_ActiveLabelStrings.AddObject(Mylabel.Name, MyLabel);
    MyDBEdit := TDBEdit.Create(ScrollBox1);
    with MyDBEdit do
    begin
      Parent := ScrollBox1;
      Name := 'Edit' + '' + IntToStr(DI_DfmMain_ActiveComponentNumber + i) + '';
      width := 200;
      Left := (i mod 2) * 350 + 125;
      Top := (i div 2) * 30 + 20;
      Text := DI_DfmDataModule1.TTableADOQuery.Fields[i].AsString;
    end;
    DI_DfmMain_ActiveEditStrings.AddObject(MyDBEdit.Name, MyDBEdit);
    MyDBEdit.DataSource := DI_DfmDataModule1.TTableDataSource;
    MyDBEdit.DataField := DI_DfmDataModule1.TTableADOQuery.Fields[i].FieldName;
    if
      ReadOnlyFieldNames.IndexOf(DI_DfmDataModule1.TTableADOQuery.Fields[i].FieldName) <> -1 then
      MyDBEdit.ReadOnly := True;
    MyDBEdit.OnDblClick := TDBEditDoubleClick;
    MyDBEdit.OnChange := TDBEditOnChange;
    MyDBEdit.OnKeyDown := TDBEditKeyDown;
    MyDBEdit.PopupMenu := nil;
  end;
  DI_DfmMain_ActiveComponentNumber := DI_DfmMain_ActiveComponentNumber + i;
  DI_DfmMain_TemporaryComponentNumber := i;
  DI_DfmMain_TemporaryDatabaseName := '';
  DI_DfmMain_TemporaryDatabaseName :=
    PNodeInformation(TreeView1.Selected.Parent.Data)^.EnglishName;
  DI_DfmMain_TemporaryTableName := '';
  DI_DfmMain_TemporaryTableName := 'T' +
    PNodeInformation(TreeView1.Selected.Data)^.EnglishName;
  DI_DfmDataModule1.TTableADOQuery.AfterScroll := TTableADOQueryScroll;
  StatusBar1.Panels[0].Text := '    当前表为 ' + '<' +
    GetTableCName(Copy(DI_DfmMain_TemporaryTableName, 2,
    Length(DI_DfmMain_TemporaryTableName) - 1)) + '>';
  StatusBar1.Panels[1].Text := '    共有 ' +
    IntToStr(DI_DfmDataModule1.TTableADOQuery.RecordCount) + ' 条记录';
  StatusBar1.Panels[2].Text := '    现在位于第 ' +
    IntToStr(DI_DfmDataModule1.TTableADOQuery.RecNo) + ' 条';
  NoteBook1.ActivePage := 'DBEditPage';
end;

//关闭打开的表格================================================================

procedure TDI_DfmMain.CloseTableToolButtonClick(Sender: TObject);
var
  i: integer;
begin
  if TreeView1.Items.Count = 0 then
    Exit;
  if DI_DfmDataModule1.TTableADOQuery.Active = False then
    Exit;
  if DI_DfmMain_ActiveMemoNumber <> 0 then
  begin
    ShowMessage('存在未关闭的Memo字段显示窗口,请先关闭该窗口!');
    Exit;
  end;
  if DI_DfmMain_ActiveBlobNumber <> 0 then
  begin
    ShowMessage('存在未关闭的Blob字段显示窗口,请先关闭该窗口!');
    Exit;
  end;
  if DI_DfmMain_ActiveComponentNumber <> 0 then
  begin
    for i := 1 to DI_DfmMain_TemporaryComponentNumber do
    begin
      TDBEdit(DI_DfmMain_ActiveEditStrings.Objects[DI_DfmMain_ActiveComponentNumber - i]).Visible := False;
      TDBEdit(DI_DfmMain_ActiveEditStrings.Objects[DI_DfmMain_ActiveComponentNumber - i]).DataField := '';
      TLabel(DI_DfmMain_ActiveLabelStrings.Objects[DI_DfmMain_ActiveComponentNumber - i]).visible := False;
    end;
  end;
  DI_DfmDataModule1.TTableADOQuery.Close;
  DBGrid1.Visible := False;
  DBGrid2.Visible := False;
  Splitter2.Visible := False;
  StatusBar1.Panels[0].Text := '';
  StatusBar1.Panels[1].Text := '';
  StatusBar1.Panels[2].Text := '';
  NoteBook1.PageIndex := 1;
end;

//创建新表======================================================================

procedure TDI_DfmMain.CreateTableToolButtonClick(Sender: TObject);
var
  DatabaseName: string;
  DI_DfmNewTableName: TDI_DfmNewTableName;
  MyNewTTableNameNode: TTreeNode;
  MyNodeInformation: PNodeInformation;
begin
  if TreeView1.Items.Count = 0 then
    Exit;
  if ((TreeView1.Selected = nil) or (TreeView1.Selected.Level = 0) or
    (TreeView1.Selected.Level = 2)) then
    Exit;
  DatabaseName := PNodeInformation(TreeView1.Selected.Data)^.EnglishName;
  DI_DfmNewTableName := TDI_DfmNewTableName.Create(Self, DatabaseName,
    DI_DfmMain_ServerName);
  DI_DfmNewTableName.ShowModal;
  if DI_DfmNewTableName.CreateTableSuceed then
  begin
    New(MyNodeInformation);
    MyNodeInformation^.EnglishName := DI_DfmNewTableName.NewTableBackName;
    MyNodeInformation^.ChineseName := DI_DfmNewTableName.NewTableBackName;
    MyNewTTableNameNode := TreeView1.Items.AddChildObject(TreeView1.Selected,
      MyNodeInformation^.ChineseName, MyNodeInformation);
    MyNewTTableNameNode.ImageIndex := 14;
    MyNewTTableNameNode.SelectedIndex := 14;
    DI_DfmNewTableName.Free;
    MyNewTTableNameNode.Selected := True;
    if MessageDlg('是否现在就编辑此表?', mtConfirmation, [mbYes, mbNo], 0) =
      mrNo then
      Exit;
    OpenTableToolButtonClick(Self);
  end;
end;

//删除表格======================================================================

procedure TDI_DfmMain.DeleteToolButtonClick(Sender: TObject);
var
  DatabaseName: string;
  TemporaryTableNames: TStrings;
  DropTableName: string;
begin
  if TreeView1.Items.Count = 0 then
    Exit;
  if ((TreeView1.Selected = nil) or (TreeView1.Selected.Level = 0) or
    (TreeView1.Selected.Level = 1)) then
    Exit;
  DatabaseName := PNodeInformation(TreeView1.Selected.Parent.Data)^.EnglishName;
  DropTableName := PNodeInformation(TreeView1.Selected.Data)^.EnglishName;
  if MessageDlg('确认删除文件<' + DropTableName + '>吗?', mtConfirmation,
    [mbYes, mbNo], 0) = mrNo then
    Exit;
  if ((DropTableName = Copy(DI_DfmMain_TemporaryTableName, 2,
    Length(DI_DfmMain_TemporaryTableName) - 1)) and
    (DI_DfmDataModule1.TTableADOQuery.Active = True)) then
  begin
    ShowMessage('该表已被打开,请先关闭!');
    Exit;
  end;
  TemporaryTableNames := TStringList.Create;
  DI_DfmDataModule1.CreateTableADOConnection.Close;
  DI_DfmDataModule1.CreateTableADOConnection.ConnectionString :=
    'Provider=SQLOLEDB.1;Persist Security Info=False;Password=' +
    PublicUnit.DBPass
    + ';User ID=' + PublicUnit.DBUser + ';Initial Catalog=' + PublicUnit.DbName
    +
    ';Data Source=' + PublicUnit.ServerName;
  DI_DfmDataModule1.CreateTableADOConnection.GetTableNames(TemporaryTableNames,
    False);
  if TemporaryTableNames.IndexOf('D' + DropTableName) <> -1 then
  begin
    with DI_DfmDataModule1.DropTableADOQuery do
    begin
      Close;
      Sql.Clear;
      Sql.Add('Drop Table ' + 'D' + DropTableName);
      try
        ExecSQL;
      except
        ShowMessage('error');
        Exit;
      end;
    end;
  end;
  TemporaryTableNames.Free;
  with DI_DfmDataModule1.DropTableADOQuery do
  begin
    Close;
    Sql.Clear;
    Sql.Add('Drop Table ' + 'T' + DropTableName);
    try
      ExecSQL;
    except
      ShowMessage('error');
      Exit;
    end;
  end;
  DI_DfmDataModule1.DropTableADOQuery.Close;
  DI_DfmDataModule1.CreateTableADOConnection.Close;
  TreeView1.Selected.Delete;
end;

//关于按钮事件==================================================================

procedure TDI_DfmMain.ToolButton7Click(Sender: TObject);
var
  FrmDI_KHZL: TFrmDI_KHZL;
begin
  Application.CreateForm(TFrmDI_KHZL, FrmDI_KHZL);
  FrmDI_KHZL.ShowModal;
  FrmDI_KHZL.Free;
end;

//字段拷贝======================================================================

procedure TDI_DfmMain.FieldCopyToolButtonClick(Sender: TObject);
var
  DI_DfmFieldCopy: TDI_DfmFieldCopy;
  TemporaryFieldValue: variant;
  CurrentRecordNumber, DestinationFirstRecordNumber,
    DestinationLastRecordNumber: integer;
begin
  if (DBGrid1.SelectedField = nil) or (DBGrid1.Focused = False) then
    Exit;
  TemporaryFieldValue := DBGrid1.SelectedField.AsVariant;
  DI_DfmFieldCopy := TDI_DfmFieldCopy.Create(Self);
  DI_DfmFieldCopy.ShowModal;
  if not DI_DfmFieldCopy.ConfirmCopy then
  begin
    DI_DfmFieldCopy.Free;
    Exit;
  end;
  //复制到整个表=============================================
  if DI_DfmFieldCopy.FieldCopyMode = 'CopyToWholeTable' then
  begin
    DI_DfmDataModule1.TTableADOQuery.DisableControls;
    CurrentRecordNumber := DI_DfmDataModule1.TTableADOQuery.RecNo;
    DI_DfmDataModule1.TTableADOQuery.First;
    while not DI_DfmDataModule1.TTableADOQuery.Eof do
    begin
      DI_DfmDataModule1.TTableADOQuery.Edit;
      DI_DfmDataModule1.TTableADOQuery.Fields[DBGrid1.SelectedField.FieldNo -
        1].AsVariant := TemporaryFieldValue;
      DI_DfmDataModule1.TTableADOQuery.Post;
      DI_DfmDataModule1.TTableADOQuery.Next;
    end;
    DI_DfmDataModule1.TTableADOQuery.First;
    while DI_DfmDataModule1.TTableADOQuery.RecNo <> CurrentRecordNumber do
      DI_DfmDataModule1.TTableADOQuery.Next;
    DI_DfmDataModule1.TTableADOQuery.EnableControls;
  end;
  //复制到表头===============================================
  if DI_DfmFieldCopy.FieldCopyMode = 'CopyToTableHead' then
  begin
    DI_DfmDataModule1.TTableADOQuery.DisableControls;
    CurrentRecordNumber := DI_DfmDataModule1.TTableADOQuery.RecNo;
    DI_DfmDataModule1.TTableADOQuery.First;
    while DI_DfmDataModule1.TTableADOQuery.RecNo <> CurrentRecordNumber do
    begin
      DI_DfmDataModule1.TTableADOQuery.Edit;
      DI_DfmDataModule1.TTableADOQuery.Fields[DBGrid1.SelectedField.FieldNo -
        1].AsVariant := TemporaryFieldValue;
      DI_DfmDataModule1.TTableADOQuery.Post;
      DI_DfmDataModule1.TTableADOQuery.Next;
    end;
    DI_DfmDataModule1.TTableADOQuery.First;
    DI_DfmDataModule1.TTableADOQuery.EnableControls;
  end;
  //复制到表尾===============================================
  if DI_DfmFieldCopy.FieldCopyMode = 'CopyToTableTail' then
  begin
    DI_DfmDataModule1.TTableADOQuery.DisableControls;
    while not DI_DfmDataModule1.TTableADOQuery.Eof do
    begin
      DI_DfmDataModule1.TTableADOQuery.Edit;
      DI_DfmDataModule1.TTableADOQuery.Fields[DBGrid1.SelectedField.FieldNo -
        1].AsVariant := TemporaryFieldValue;
      DI_DfmDataModule1.TTableADOQuery.Post;
      DI_DfmDataModule1.TTableADOQuery.Next;
    end;
    DI_DfmDataModule1.TTableADOQuery.Last;
    DI_DfmDataModule1.TTableADOQuery.EnableControls;
  end;
  //复制到指定区域===========================================
  if DI_DfmFieldCopy.FieldCopyMode = 'CopyToSelectExtent' then
  begin
    if DI_DfmDataModule1.TTableADOQuery.RecordCount <
      DI_DfmFieldCopy.StartNumberSpinEdit.Value then
      Exit;
    DI_DfmDataModule1.TTableADOQuery.DisableControls;
    CurrentRecordNumber := DI_DfmDataModule1.TTableADOQuery.RecNo;
    DestinationFirstRecordNumber := DI_DfmFieldCopy.StartNumberSpinEdit.Value;
    DestinationLastRecordNumber :=
      DI_DfmFieldCopy.TerminiteNumberSpinEdit.Value;
    DI_DfmDataModule1.TTableADOQuery.First;
    while DI_DfmDataModule1.TTableADOQuery.RecNo <> DestinationFirstRecordNumber
      do
      DI_DfmDataModule1.TTableADOQuery.Next;
    while not ((DI_DfmDataModule1.TTableADOQuery.RecNo =
      DestinationLastRecordNumber + 1) or (DI_DfmDataModule1.TTableADOQuery.Eof))
        do
    begin
      DI_DfmDataModule1.TTableADOQuery.Edit;
      DI_DfmDataModule1.TTableADOQuery.Fields[DBGrid1.SelectedField.FieldNo -
        1].AsVariant := TemporaryFieldValue;
      DI_DfmDataModule1.TTableADOQuery.Post;
      DI_DfmDataModule1.TTableADOQuery.Next;
    end;
    DI_DfmDataModule1.TTableADOQuery.First;
    while DI_DfmDataModule1.TTableADOQuery.RecNo <> CurrentRecordNumber do
      DI_DfmDataModule1.TTableADOQuery.Next;
    DI_DfmDataModule1.TTableADOQuery.EnableControls;
  end;
  DI_DfmFieldCopy.Free;
end;

//报错事件======================================================================

procedure TDI_DfmMain.TADOQueryDeleteError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  Exit;
end;

procedure TDI_DfmMain.TADOQueryEditError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  Exit;
end;

procedure TDI_DfmMain.TADOQueryPostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  Exit;
end;

//监控纪录状态==================================================================

procedure TDI_DfmMain.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
  TDBRecordNumber(sender);
end;

procedure TDI_DfmMain.DBGrid1CellClick(Column: TColumn);
begin
  StatusBar1.Panels[2].Text := '    现在位于第 ' +
    IntToStr(DI_DfmDataModule1.TTableADOQuery.RecNo) + ' 条';
end;

procedure TDI_DfmMain.DBGrid2DblClick(Sender: TObject);
begin
  if DbGrid2.Align = alClient then
  begin
    DbGrid2.Align := alBottom;
    DbGrid2.Height := 214;
    Splitter2.Top := 402;
  end
  else
    DbGrid2.Align := alClient;
end;

procedure TDI_DfmMain.ToolButton3Click(Sender: TObject);
begin
  Function_DB_ReadRight.UserOrUserGroupName := UserName;
  Function_DB_ReadRight.UserOrUserGroupIdentify := '用户';
  Function_DB_ReadRight.FunctionResourceName := '售餐统计';
  if Function_DB_ReadRight.GetFunctionResourceRight <> 1 then
  begin
    MessageDlg('对不起,您没有权限执行当前工作!', mtInformation, [mbOk], 0);
    Exit;
  end;
  WriteToHistroy('统计分析', Now, Time, '用户《' + FrmMain.UserName +
    '》于服务器' +
    FrmMain.ServerName + '执行了<售餐统计>', FrmMain.UserName);
  AG_Main.SetWork('售餐查询统计');
end;

procedure TDI_DfmMain.ToolButton4Click(Sender: TObject);
begin
  Function_DB_ReadRight.UserOrUserGroupName := UserName;
  Function_DB_ReadRight.UserOrUserGroupIdentify := '用户';
  Function_DB_ReadRight.FunctionResourceName := '售卡统计';
  if Function_DB_ReadRight.GetFunctionResourceRight <> 1 then
  begin
    MessageDlg('对不起,您没有权限执行当前工作!', mtInformation, [mbOk], 0);
    Exit;
  end;
  WriteToHistroy('统计分析', Now, Time, '用户《' + FrmMain.UserName +
    '》于服务器' +
    FrmMain.ServerName + '执行了<售卡统计>', UserName);
  AG_Main.SetWork('售卡查询统计');
end;

procedure TDI_DfmMain.ToolButton5Click(Sender: TObject);
var
  ReportHistroyCName, ReportHistroyEName: string;
begin
  Function_DB_ReadRight.UserOrUserGroupName := UserName;
  Function_DB_ReadRight.UserOrUserGroupIdentify := '用户';
  Function_DB_ReadRight.FunctionResourceName := '历史结果';
  if Function_DB_ReadRight.GetFunctionResourceRight <> 1 then
  begin
    MessageDlg('对不起,您没有权限执行当前工作!', mtInformation, [mbOk], 0);
    Exit;
  end;
  WriteToHistroy('统计分析', Now, Time, '用户《' + FrmMain.UserName +
    '》于服务器' +
    FrmMain.ServerName + '执行了<历史结果>', FrmMain.UserName);
  if not AG_HistroyList.SetWork(ReportHistroyCName, ReportHistroyEName) then
    Exit;
  if not FileExists(ReportHistroyEName) then
  begin
    ShowMessage('所需的统计分析源文件丢失,不能进行该项工作!');
    Exit;
  end;
  AG_Main.SetWork('历史结果/' + ReportHistroyCName + '/' + ReportHistroyEName);
end;

end.

⌨️ 快捷键说明

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