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

📄 pz_sjpz.pas

📁 亚惠快餐管理信息系统 包括亚惠快餐管理的各项功能
💻 PAS
📖 第 1 页 / 共 3 页
字号:
          ExecSql;
        except
          ShowMessage('向数据字典中插入数据错误!');
          Exit;
        end;
      end;
      next;
    end;
  end;
  Result := True;
end;

{------------------删除数据字典中的相同记录------------------------}

function TFrmPZ_Sjpz.DeleteFromDic(DicName: string): Boolean;
begin
  Result := False;
  with FrmCJ_DataModule.ADOQuery1 do
  begin
    Close;
    Sql.Clear;
    Sql.Add('Delete From ' + DicName);
    try
      ExecSql;
    except
      ShowMessage('无法清空数据字典中数据');
      Exit;
    end;
  end;
  Result := True;
end;

procedure TFrmPZ_Sjpz.Button4Click(Sender: TObject);
begin
  PzxxBrowse(Bzxx);
  HideField(Bzxx);
end;

procedure TFrmPZ_Sjpz.DBGrid2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if ((Key = VK_UP) or (Key = VK_DOWN)) then
    TDBRecordNumber(sender);
  if Key = VK_RETURN then
  begin
    if DBGrid2.SelectedIndex = DBGrid2.Columns.Count - 1 then
    begin
      DBGrid2.SelectedIndex := 0;
      if DBGrid2.DataSource.DataSet <> nil then
        with DBGrid2.DataSource.DataSet do
        begin
          Next;
          if EOF and CanModify then
            Append;
        end;
    end
    else
      DBGrid2.SelectedIndex := DBGrid2.SelectedIndex + 1;
  end;
end;

procedure TFrmPZ_Sjpz.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
  TDBRecordNumber(Sender);
  //if (Button=nbInsert) or (Button=nbInsert)  then SzCheckRule;
  SzCheckRule;
end;

procedure TFrmPZ_Sjpz.SzCheckRule;
begin
  with FrmCJ_DataModule.ADOQuery3 do
    case BzXx of
      1: FieldByName('服务员编码').EditMask := '2000';
      2: FieldByName('收款员号').EditMask := '3000';
      3: FieldByName('折扣号').EditMask := '500';
      4: FieldByName('交易号').EditMask := '900';
      5: FieldByName('商品类别号').EditMask := '5000';
      6: FieldByName('商品号').EditMask := '10000';
    end;
  DBGrid2.Fields[0].FocusControl;
end;

procedure TFrmPZ_Sjpz.DBGrid2CellClick(Column: TColumn);
begin
  TDBRecordNumber(Self);
end;

procedure TFrmPZ_Sjpz.Button5Click(Sender: TObject);
begin
  if MessageDlg('此操作将会清除数据库中的'+BZName+'配置信息,是否继续?',
    mtconfirmation, mbokcancel, 0) = mrcancel then
    Exit;
  EmptyPzXx(BzXx);
  Button4Click(Self);
end;

procedure TFrmPZ_Sjpz.Button6Click(Sender: TObject);
var
  DicName: string;
begin
  if BzXx = 3 then
    Exit;
  if BzXx = 1 then
  begin
    if not GetDic('Dic_服务员姓名') then
      Exit;
    if not InsertToDic(1, 'Dic_服务员姓名') then
      Exit;
    if not GetDic('DIC_部门负责人') then
      Exit;
    if not InsertToDic(1, 'DIC_部门负责人') then
      Exit;
    if not GetDic('DIC_送餐员') then
      Exit;
    if not InsertToDic(1, 'DIC_送餐员') then
      Exit;
  end
  else if BzXx = 5 then
  begin
    if not GetDic('Dic_商品类别名称') then
      Exit;
    if not InsertToDic(5, 'Dic_商品类别名称') then
      Exit;
    if not GetDic1('Dic_商品类别号1') then
      Exit;
    if not InsertToDic1(5, 'Dic_商品类别号1') then
      Exit;
  end
  else
  begin
    GetDicXx(BzXx, DicName);
    if not GetDic(DicName) then
      Exit;
    if not InsertToDic(BzXx, DicName) then
      Exit;
  end;
  ShowMessage('与' + BzName + '名称有关的数据字典创建成功!')
end;

procedure TFrmPZ_Sjpz.DBGrid2DblClick(Sender: TObject);
var
  ADataSet: TDataSet;
  Rq: TDate;
  DictionaryTableName, AFieldName1: string;
  TemporaryTableNames: TStrings;
  DI_DfmDBDictionery: TDI_DfmDBDictionery;
begin
  ADataSet := TDBGrid(Sender).DataSource.DataSet;
  if not (ADataSet.State in [dsEdit, dsInsert]) then
    Exit;
  if DBGrid2.SelectedField.FieldName = '密码姓名' then
    Exit;
  if (Bzxx = 3) and (DBGrid2.SelectedField.FieldName = '选项2') then
    Exit;
  if (Bzxx = 5) and (DBGrid2.SelectedField.FieldName = '随机号') then
    Exit;
  //if (Bzxx=5) and (DBGrid2.SelectedField.FieldName='选项2') then Exit;
  if (Bzxx = 6) and (DBGrid2.SelectedField.FieldName = '商品类别号') then
  begin
    if not GetSplbhDic then
      Exit;
    Exit;
  end;
  //if DBGrid2.SelectedField.DataType in [ftString, ftWideString]=False then Exit;
  //创建字符数据字典
  if DBGrid2.SelectedField.DataType in [ftString, ftWideString] then
  begin
    DI_DfmDataModule1.AnotherDBADOConnection.Close;
    DI_DfmDataModule1.AnotherDBADOConnection.ConnectionString :=
      'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=' + FrmMain.Dbuser
      +
      ';Password=' + FrmMain.DBPass + ';Initial Catalog=' + FrmMain.DbName +
      ';Data Source=' + FrmMain.ServerName;
    TemporaryTableNames := TStringList.Create;
    DI_DfmDataModule1.AnotherDBADOConnection.GetTableNames(TemporaryTableNames,
      False);
    DictionaryTableName := 'Dic_' + DBGrid2.SelectedField.FieldName;
    if TemporaryTableNames.IndexOf(DictionaryTableName) = -1 then
    begin
      if MessageDlg('没有字典,是否创建?', mtConfirmation, mbOKCancel, 0) =
        mrCancel then
        Exit;
      with DI_DfmDataModule1.DictioneryADOQuery do
      begin
        Close;
        Sql.Clear;
        Sql.Add('Create Table ' + DictionaryTableName);
        Sql.Add('(ID varChar (10),DICTIONARY varChar(' +
          IntToStr(DBGrid2.SelectedField.Size) + ') not null Primary Key)');
        try
          ExecSql;
        except
          ShowMessage('error');
          Exit;
        end;
      end;
    end;
    DBGrid2.SelectedField.ReadOnly := False;
    DI_DfmDBDictionery := TDI_DfmDBDictionery.Create(Self, DictionaryTableName,
      DBGrid2, nil, 'DBGrid');
    DI_DfmDBDictionery.ShowModal;
    DBGrid2.SelectedField.ReadOnly := True;
    DI_DfmDBDictionery.Free;
    TemporaryTableNames.Free;
  end;
  //创建数字型数据字典
  if (DBGrid2.SelectedField.DataType in [ftSmallint, ftInteger]) or
    (DBGrid2.SelectedField.FieldName = '商品号') then
  begin
    DI_DfmDataModule1.AnotherDBADOConnection.Close;
    DI_DfmDataModule1.AnotherDBADOConnection.ConnectionString :=
      'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=' + FrmMain.Dbuser
      +
      ';Password=' + FrmMain.DBPass + ';Initial Catalog=' + FrmMain.DbName +
      ';Data Source=' + FrmMain.ServerName;
    TemporaryTableNames := TStringList.Create;
    DI_DfmDataModule1.AnotherDBADOConnection.GetTableNames(TemporaryTableNames,
      False);
    DictionaryTableName := 'Dic_' + DBGrid2.SelectedField.FieldName;
    if TemporaryTableNames.IndexOf(DictionaryTableName) = -1 then
    begin
      if MessageDlg('没有字典,是否创建?', mtConfirmation, mbOKCancel, 0) =
        mrCancel then
        Exit;
      with DI_DfmDataModule1.DictioneryADOQuery do
      begin
        Close;
        Sql.Clear;
        Sql.Add('Create Table ' + DictionaryTableName);
        Sql.Add('(ID varChar (10),DICTIONARY integer not null Primary Key)');
        try
          ExecSql;
        except
          ShowMessage('error');
          Exit;
        end;
      end;
    end;
    if (Bzxx = 6) and (DBGrid2.SelectedField.FieldName = '商品号') then
    begin
      GetDmDic(DBGrid2.SelectedField.FieldName, Bzxx);
      Exit;
    end;
    AFieldName1 := Trim(DBGrid2.SelectedField.FieldName);
    if (AFieldName1 = '商品类别号') or (AFieldName1 = '服务员编码') or
      (AFieldName1 = '收款员号') or (AFieldName1 = '折扣号') or (AFieldName1 =
      '交易号') then
    begin
      GetDmDic(AFieldName1, Bzxx);
      Exit;
    end;
    DBGrid2.SelectedField.ReadOnly := False;
    DI_DfmDBDictionery := TDI_DfmDBDictionery.Create(Self, DictionaryTableName,
      DBGrid2, nil, 'DBGrid');
    DI_DfmDBDictionery.ShowModal;
    DBGrid2.SelectedField.ReadOnly := True;
    DI_DfmDBDictionery.Free;
    TemporaryTableNames.Free;
  end;
  //创建浮点型字典=================================
  if DBGrid2.SelectedField.DataType in [ftFloat] then
  begin
    DI_DfmDataModule1.AnotherDBADOConnection.Close;
    DI_DfmDataModule1.AnotherDBADOConnection.ConnectionString :=
      'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=' + FrmMain.Dbuser
      +
      ';Password=' + FrmMain.DBPass + ';Initial Catalog=' + FrmMain.DbName +
      ';Data Source=' + FrmMain.ServerName;
    TemporaryTableNames := TStringList.Create;
    DI_DfmDataModule1.AnotherDBADOConnection.GetTableNames(TemporaryTableNames,
      False);
    DictionaryTableName := 'Dic_' + DBGrid2.SelectedField.FieldName;
    if TemporaryTableNames.IndexOf(DictionaryTableName) = -1 then
    begin
      if MessageDlg('没有字典,是否创建?', mtConfirmation, mbOKCancel, 0) =
        mrCancel then
        Exit;
      with DI_DfmDataModule1.DictioneryADOQuery do
      begin
        Close;
        Sql.Clear;
        Sql.Add('Create Table ' + DictionaryTableName);
        Sql.Add('(ID varChar (10),DICTIONARY float not null Primary Key)');
        try
          ExecSql;
        except
          ShowMessage('error');
          Exit;
        end;
      end;
    end;
    DBGrid2.SelectedField.ReadOnly := False;
    DI_DfmDBDictionery := TDI_DfmDBDictionery.Create(Self, DictionaryTableName,
      DBGrid2, nil, 'DBGrid');
    DI_DfmDBDictionery.ShowModal;
    DBGrid2.SelectedField.ReadOnly := True;
    DI_DfmDBDictionery.Free;
    TemporaryTableNames.Free;
  end;
  //创建日期字典==================
  if DBGrid2.SelectedField.DataType in [ftDate, ftTime, ftDateTime] then
  begin
    {DI_DfmDBCalendar := TDI_DfmDBCalendar.Create(Self, DBGrid2,
      nil, 'DBGrid');
    DBGrid2.SelectedField.ReadOnly := False;
    DI_DfmDBCalendar.ShowModal;
    DBGrid2.SelectedField.ReadOnly := True;
    DI_DfmDBCalendar.Free;}
    DBGrid2.SelectedField.ReadOnly := False;
    PZ_RqXz.SetWork(Rq);
    DBGrid2.SelectedField.AsDateTime := Rq;
    DBGrid2.SelectedField.ReadOnly := True;
  end;
end;

procedure TFrmPZ_Sjpz.SzGroup(Bzxx: integer);
var
  ss: TStrings;
begin
  ss := TStringList.Create;
  ss.Add('打折');
  ss.Add('不打折');
  DBGrid2.Columns[Bzxx].ButtonStyle := cbsAuto;
  DBGrid2.Columns[Bzxx].PickList := ss;
  ss.Free;
end;

function TFrmPZ_Sjpz.GetSplbhDic: Boolean;
begin
  Result := False;
  if not PZ_SpdhDic.SetWork(DBGrid2) then
    Exit;
  Result := True;
end;

function TFrmPZ_Sjpz.GetDmDic(AFieldName: string; lxh: integer): Boolean;
var
  dm: string;
begin
  Result := False;
  if not PZ_DmDic.SetWork(AFieldName, dm, lxh, '', '') then
    Exit;
  DBGrid2.Columns[0].ReadOnly := False;
  DBGrid2.Columns[1].ReadOnly := False;
  if lxh = 6 then
    DBGrid2.Fields[0].AsFloat := StrToFloat(dm)
  else
    DBGrid2.Fields[0].AsInteger := StrToInt(dm);
  if lxh = 6 then
  begin
    //DBGrid2.Fields[1].AsString := IntToStr(StrToInt(dm) - 10000);
    //DBGrid2.Columns[1].ReadOnly := True;
  end;
  DBGrid2.Columns[0].ReadOnly := True;
  Result := True;
end;

procedure TFrmPZ_Sjpz.SzRead(Bzxx: integer);
begin
  DBGrid2.Columns[0].ReadOnly := True;
  DBGrid2.Columns[1].ReadOnly := True;
  case Bzxx of
    2: DBGrid2.Columns[1].ReadOnly := False;
    3:
      begin
        DBGrid2.Columns[6].ReadOnly := True;
        DBGrid2.Columns[7].ReadOnly := True;
      end;
    5: DBGrid2.Columns[1].ReadOnly := False;
    6:
      begin
        DBGrid2.Columns[2].ReadOnly := True;
        DBGrid2.Columns[3].ReadOnly := True;
      end;
  end;
end;

procedure TFrmPZ_Sjpz.ToolButton4Click(Sender: TObject);
begin
  Close;
end;

procedure TFrmPZ_Sjpz.Label1Click(Sender: TObject);
var
  Jqh, Jqh1, i: integer;
begin
  if Trim(ComboBox3.Text) > Trim(ComboBox4.Text) then
  begin
    ShowMessage('起始机器号不能超过终止机器号!');
    Exit;
  end;
  Jqh := StrToInt(Trim(ComboBox3.Text));
  Jqh1 := StrToInt(Trim(ComboBox4.Text));
  Panel1.Visible := False;
  if not Button1Clicked then
  begin
    if not FromFileToDb(BzXx, Jqh) then
      ShowMessage('从收银机读入信息失败!');
    PzxxBrowse(Bzxx);
    HideField(Bzxx);
  end
  else
    for i := Jqh to Jqh1 do
      if not FileLx(BzXx, i) then
        ShowMessage('更新' + IntToStr(i) + '号收银机配置信息失败')
      else
        ShowMessage('更新' + IntToStr(i) + '号收银机配置信息成功!');
end;

procedure TFrmPZ_Sjpz.IniJqList;
var
  ti: TInifile;
  JqCount, i: integer;
begin
  ti := TIniFile.Create(ExtractFilePath(Application.ExeName) + '\System.ini');
  JqCount := ti.ReadInteger('默认选项', 'MaxJqCount', 9);
  ComboBox3.Clear;
  ComboBox4.Clear;
  for i := 1 to JqCount do
  begin
    ComboBox3.Items.Add(IntToStr(i));
    ComboBox4.Items.Add(IntToStr(i));
  end;
  if ComboBox3.Items.Count > 0 then
    ComboBox3.ItemIndex := 0;
  if ComboBox4.Items.Count > 0 then
    ComboBox4.ItemIndex := 0;
end;

procedure TFrmPZ_Sjpz.Label8Click(Sender: TObject);
begin
  Panel1.Visible := False;
end;

end.

⌨️ 快捷键说明

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