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

📄 publicunit.~pas

📁 亚惠快餐管理信息系统 包括亚惠快餐管理的各项功能
💻 ~PAS
📖 第 1 页 / 共 4 页
字号:
    WriteString('RDescription', 'ReportTitleDeclare', ReportTitleDeclare);
    WriteString('RDescription', 'ReportEndDeclare', ReportEndDeclare);
    WriteString('RDescription', 'ReportBuilder', ReportBuilder);
    WriteString('RDescription', 'ReportOthers', ReportOthers);
    WriteString('RHeadFoot', 'ReportPageHead', ReportPageHead);
    WriteString('RHeadFoot', 'ReportPageFoot', ReportPageFoot);
    WriteBool('RFrameLine', 'AddHGrid', AddHGrid);
    WriteBool('RFrameLine', 'AddSGrid', AddSGrid);
    WriteBool('RNo', 'AddNo', AddNo);
    WriteBool('RFrameLine', 'TopFrameLine', TopFrameLine);
    WriteBool('RFrameLine', 'BottomFrameLine', BottomFrameLine);
    WriteBool('RFrameLine', 'LeftFrameLine', LeftFrameLine);
    WriteBool('RFrameLine', 'RightFrameLine', RightFrameLine);
    WriteBool('RPageNoDate', 'ReportPageNumber', ReportPageNumber);
    WriteBool('RPageNoDate', 'ReportPrintDate', ReportPrintDate);
    WriteInteger('RHeight', 'ReportBodyHeadRowHeight', ReportBodyHeadRowHeight);
    WriteInteger('RHeight', 'ReportBodyRowHeight', ReportBodyRowHeight);
    WriteInteger('RHeight', 'ReportPageFootHeight', ReportPageFootHeight);
    WriteInteger('ROrientation', 'ReportOrientation', Ord(ReportOrientation));
    WriteInteger('RPageLineNumber', 'PageLinesNumber', PageLinesNumber);
    for i := 0 to ReportBodyColsWidth.Count - 1 do
      WriteString('RColWidth', 'Col' + IntToStr(i), ReportBodyColsWidth[i]);
    for i := 0 to ReportBodyColsWidth.Count - 1 do
      WriteInteger('RColAlignment', 'ColAlignment' + IntToStr(i),
        Ord(ReportBodyAlignment[i]));
    WriteInteger('RMargin', 'Top', ReportPageTopMargin);
    WriteInteger('RMargin', 'Bottom', ReportPageBottomMargin);
    WriteInteger('RMargin', 'Left', ReportPageLeftMargin);
    WriteInteger('RMargin', 'Right', ReportPageRightMargin);
    WriteString('RFont', 'ReportNameFontName', ReportNameFont.Name);
    WriteInteger('RFont', 'ReportNameFontSize', ReportNameFont.Size);
    WriteString('RFont', 'ReportTitleDeclareFontName',
      ReportTitleDeclareFont.Name);
    WriteInteger('RFont', 'ReportTitleDeclareFontSize',
      ReportTitleDeclareFont.Size);
    WriteString('RFont', 'ReportHeadFontName', ReportHeadFont.Name);
    WriteInteger('RFont', 'ReportHeadFontSize', ReportHeadFont.Size);
    WriteString('RFont', 'ReportBodyFontName', ReportBodyFont.Name);
    WriteInteger('RFont', 'ReportBodyFontSize', ReportBodyFont.Size);
    WriteString('RFont', 'ReportEndDeclareFontName', ReportEndDeclareFont.Name);
    WriteInteger('RFont', 'ReportEndDeclareFontSize',
      ReportEndDeclareFont.Size);
    WriteString('RFont', 'ReportPageHeadFontName', ReportPageHeadFont.Name);
    WriteInteger('RFont', 'ReportPageHeadFontSize', ReportPageHeadFont.Size);
    WriteString('RFont', 'ReportPageFootFontName', ReportPageFootFont.Name);
    WriteInteger('RFont', 'ReportPageFootFontSize', ReportPageFootFont.Size);
  end;
end;

procedure CreateReportInstance(MyPageDesign: TPageDesign; TemplateName: string);
var
  i: integer;
  TempIni: TIniFile;
  OrientationOrd: integer;
  AlignmentOrd: integer;
begin
  //  if CPrintPreviewADOQuery=nil then Exit ;
  TempIni := TIniFile.Create(WholePathOfReportFile(TemplateName));
  with TempIni, MyPageDesign do
  begin
    ReportName := ReadString('RDescription', 'ReportName', ReportName);
    ReportTitleDeclare := ReadString('RDescription', 'ReportTitleDeclare',
      ReportTitleDeclare);
    ReportEndDeclare := ReadString('RDescription', 'ReportEndDeclare',
      ReportEndDeclare);
    ReportBuilder := ReadString('RDescription', 'ReportBuilder', ReportBuilder);
    ReportOthers := ReadString('RDescription', 'ReportOthers', ReportOthers);
    ReportPageHead := ReadString('RHeadFoot', 'ReportPageHead', ReportPageHead);
    ReportPageFoot := ReadString('RHeadFoot', 'ReportPageFoot', ReportPageFoot);
    AddHGrid := ReadBool('RFrameLine', 'AddHGrid', AddHGrid);
    AddSGrid := ReadBool('RFrameLine', 'AddSGrid', AddSGrid);
    AddNo := ReadBool('RNo', 'AddNo', AddNo);
    TopFrameLine := ReadBool('RFrameLine', 'TopFrameLine', TopFrameLine);
    BottomFrameLine := ReadBool('RFrameLine', 'BottomFrameLine',
      BottomFrameLine);
    LeftFrameLine := ReadBool('RFrameLine', 'LeftFrameLine', LeftFrameLine);
    RightFrameLine := ReadBool('RFrameLine', 'RightFrameLine', RightFrameLine);
    ReportPageNumber := ReadBool('RPageNoDate', 'ReportPageNumber',
      ReportPageNumber);
    ReportPrintDate := ReadBool('RPageNoDate', 'ReportPrintDate',
      ReportPrintDate);
    ReportBodyHeadRowHeight := ReadInteger('RHeight', 'ReportBodyHeadRowHeight',
      ReportBodyHeadRowHeight);
    ReportBodyRowHeight := ReadInteger('RHeight', 'ReportBodyRowHeight',
      ReportBodyRowHeight);
    ReportPageFootHeight := ReadInteger('RHeight', 'ReportPageFootHeight',
      ReportPageFootHeight);

    OrientationOrd := ReadInteger('ROrientation', 'ReportOrientation',
      OrientationOrd);
    ReportOrientation := TPagePrintOrientation(OrientationOrd);
    PageLinesNumber := ReadInteger('RPageLineNumber', 'PageLinesNumber',
      PageLinesNumber);
    for i := 0 to ReportBodyColsWidth.Count - 1 do
      ReportBodyColsWidth[i] := ReadString('RColWidth', 'Col' + IntToStr(i),
        ReportBodyColsWidth[i]);
    for i := 0 to ReportBodyColsWidth.Count - 1 do
    begin
      AlignmentOrd := ReadInteger('RColAlignment', 'ColAlignment' + IntToStr(i),
        AlignmentOrd);
      ReportBodyAlignment[i] := TAlignment(AlignmentOrd);
    end;
    ReportPageTopMargin := ReadInteger('RMargin', 'Top', ReportPageTopMargin);
    ReportPageBottomMargin := ReadInteger('RMargin', 'Bottom',
      ReportPageBottomMargin);
    ReportPageLeftMargin := ReadInteger('RMargin', 'Left',
      ReportPageLeftMargin);
    ReportPageRightMargin := ReadInteger('RMargin', 'Right',
      ReportPageRightMargin);
    ReportNameFont.Name := ReadString('RFont', 'ReportNameFontName',
      ReportNameFont.Name);
    ReportNameFont.Size := ReadInteger('RFont', 'ReportNameFontSize',
      ReportNameFont.Size);
    ReportTitleDeclareFont.Name := ReadString('RFont',
      'ReportTitleDeclareFontName', ReportTitleDeclareFont.Name);
    ReportTitleDeclareFont.Size := ReadInteger('RFont',
      'ReportTitleDeclareFontSize', ReportTitleDeclareFont.Size);
    ReportHeadFont.Name := ReadString('RFont', 'ReportHeadFontName',
      ReportHeadFont.Name);
    ReportHeadFont.Size := ReadInteger('RFont', 'ReportHeadFontSize',
      ReportHeadFont.Size);
    ReportBodyFont.Name := ReadString('RFont', 'ReportBodyFontName',
      ReportBodyFont.Name);
    ReportBodyFont.Size := ReadInteger('RFont', 'ReportBodyFontSize',
      ReportBodyFont.Size);
    ReportEndDeclareFont.Name := ReadString('RFont', 'ReportEndDeclareFontName',
      ReportEndDeclareFont.Name);
    ReportEndDeclareFont.Size := ReadInteger('RFont',
      'ReportEndDeclareFontSize', ReportEndDeclareFont.Size);
    ReportPageHeadFont.Name := ReadString('RFont', 'ReportPageHeadFontName',
      ReportPageHeadFont.Name);
    ReportPageHeadFont.Size := ReadInteger('RFont', 'ReportPageHeadFontSize',
      ReportPageHeadFont.Size);
    ReportPageFootFont.Name := ReadString('RFont', 'ReportPageFootFontName',
      ReportPageFootFont.Name);
    ReportPageFootFont.Size := ReadInteger('RFont', 'ReportPageFootFontSize',
      ReportPageFootFont.Size);
  end;
end;

function ExistDTable(ConStr: WideString; TTable: string): boolean;
var
  ADOQuery: TADOQuery;
  DTable: string;
begin
  DTable := 'D' + Copy(TTable, 2, Length(TTable) - 1);
  ADOQuery := TADOQuery.Create(Application);
  with ADOQuery do
  begin
    ConnectionString := ConStr;
    SQL.Clear;
    SQL.Add('select name from sysobjects where name=' + QuotedStr(DTable));
    Open;
    if ADOQuery.RecordCount = 0 then
      Result := False
    else
      Result := True;
    Close;
    Free;
  end;
end;

procedure GetFieldsName(var FieldsID: TStrings; var FNames: TStrings; DBGrid:
  TDBGrid);
var
  i: Integer;
begin
  FNames.Clear;
  FieldsID.Clear;
  if DBGrid.Columns.Count = 0 then
    Exit;
  for i := 0 to DBGrid.Columns.Count - 1 do
  begin
    FNames.Add(DBGrid.Columns[i].FieldName);
    FieldsID.Add(IntToStr(DBGrid.Columns[i].ID));
  end;
end;

function GetSelectClause(ADOQuery: TADOQuery): string;
begin
  Result := Copy(ADOQuery.SQL.Text, 1, Pos('From', ADOQuery.SQL.Text) - 1);
end;

function GetOtherClauseWithoutSelect(ADOQuery: TADOQuery): string;
begin
  Result := EmptyStr + Copy(ADOQuery.SQL.Text, Pos('From', ADOQuery.SQL.Text),
    Length(ADOQuery.SQL.Text) - Pos('From', ADOQuery.SQL.Text) + 1);
end;

procedure ResetADOQueryClause(ADOQuery: TADOQuery; FieldsID, FieldsName:
  TStrings; DBGrid: TDBGrid);
var
  SelectClause: string;
  OtherClause: string;
  i: integer;
  ColumnID: string;
begin
  OtherClause := GetOtherClauseWithoutSelect(ADOQuery);
  for i := 0 to DBGrid.Columns.Count - 2 do
  begin
    ColumnID := IntToStr(DBGrid.Columns[i].ID);
    SelectClause := SelectClause + FieldsName[FieldsID.IndexOf(ColumnID)] + ',';
  end;
  ColumnID := IntToStr(DBGrid.Columns[i].ID);
  SelectClause := 'select ' + SelectClause +
    FieldsName[FieldsID.IndexOf(ColumnID)];
  with ADOQuery do
  begin
    Close;
    SQL.Clear;
    SQL.Add(SelectClause);
    SQL.Add(OtherClause);
    Open;
  end;
end;

{-------------------------------------------------------------------------------------}

function GetTableEName(CName: string): string;
var
  ti: TInifile;
  EName: string;
begin
  ti := TInifile.Create(ExtractFilePath(Application.ExeName) + '\System.ini');
  EName := ti.ReadString('TableEName', CName, '');
  ti.Free;
  if EName = '' then
    with GQ_FDataModule do
    begin
      ADOConnection1.Close;
      ADOConnection1.ConnectionString :=
        'Provider=SQLOLEDB.1;Persist Security Info=True;Password=' +
        FrmMain.DBPass
        + ';User ID=' + FrmMain.DBUser + ';Initial Catalog=' + FrmMain.DbName +
        ';Data Source=' + FrmMain.ServerName;
      ADOConnection1.Open;
      with ADOQuery3 do
      begin
        Close;
        Sql.Clear;
        Sql.Add('Select *');
        Sql.Add('From ForSaveTable');
        Sql.Add('Where SaveCView=''' + CName + '''');
        try
          Open;
        except
          ShowMessage('视图索引表受到破坏!');
          Exit;
        end;
        if RecordCount <> 0 then
          EName := FieldByName('SaveView').Asstring;
        Close;
      end;
      ADOConnection1.Close;
    end;
  if EName = '' then
    EName := CName;
  Result := EName;
end;

function GetTableCName(EName: string): string;
var
  ti: TInifile;
  CName: string;
begin
  EName := TrimRight(EName);
  ti := TInifile.Create(ExtractFilePath(Application.ExeName) + '\System.ini');
  CName := ti.ReadString('TableCName', EName, '');
  ti.Free;
  if CName = '' then
    with GQ_FDataModule do
    begin
      ADOConnection1.Close;
      ADOConnection1.ConnectionString :=
        'Provider=SQLOLEDB.1;Persist Security Info=True;Password=' +
        FrmMain.DBPass
        + ';User ID=' + FrmMain.DBUser + ';Initial Catalog=' + FrmMain.DbName +
        ';Data Source=' + FrmMain.ServerName;
      ADOConnection1.Open;
      with ADOQuery3 do
      begin
        Close;
        Sql.Clear;
        Sql.Add('Select *');
        Sql.Add('From ForSaveTable');
        Sql.Add('Where Lower(SaveView)=''' + LowerCase(EName) + '''');
        try
          Open;
        except
          ShowMessage('视图索引表受到破坏!');
          Exit;
        end;
        if RecordCount <> 0 then
          CName := FieldByName('SaveCView').Asstring;
        Close;
      end;
      ADOConnection1.Close;
    end;
  if CName = '' then
    CName := EName;
  Result := CName;
end;

function ReadFieldCName(CServerName, CDataBaseName, CTableName: string;
  var FieldNameE, FieldNameC: TStrings): Boolean;
var
  DCTableName, ss: string;
  ADOQuery: TADOQuery;
begin
  Result := False;
  Screen.Cursor := crHourGlass;
  if CTableName = '' then
    Exit;
  DCTableName := 'D' + Copy(CTableName, 2, 1000);
  ADOQuery := TADOQuery.Create(Application);
  with ADOQuery do
  begin
    ss := 'Provider=SQLOLEDB.1;Persist Security Info=False;Password=' +
      PublicUnit.DBPass + ';User ID=' + PublicUnit.DBUser + ';Initial Catalog=';
    ss := ss + PublicUnit.DbName + ';Data Source=' + PublicUnit.ServerName;
    ConnectionString := ss;
    Sql.Add('Select *');
    Sql.Add('From "' + DCTableName + '"');
    try
      Open;
    except
      Screen.Cursor := crDefault;
      Free;
      Exit;
    end;
    FieldNameE.Clear;
    FieldNameC.Clear;
    while not Eof do
    begin
      FieldNameE.Add(TrimRight(FieldByName('FieldNameE').AsString));
      FieldNameC.Add(TrimRight(FieldByName('FieldNameC').AsString));
      Next;
    end;
    Close;
    Free;
  end;
  Result := True;
  Screen.Cursor := crDefault;
end;

function CheckDBServer(DbServerName: string): Boolean;
var
  ADOConnection: TADOConnection;
begin
  Result := False;
  ADOConnection := TADOConnection.Create(Application);
  ADOConnection.ConnectionString :=
    'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=' +
    Publicunit.DBUser
    + ';Password=' + PublicUnit.DBPass + ';Initial Catalog=' + Publicunit.DbName
    +
    ';Data Source=' + DbServerName;
  ADOConnection.LoginPrompt := False;
  try
    ADOConnection.Open;
    Result := True;
  except
    ShowMessage('您所选择的服务器无法连接,系统无法正常工作!');
  end;
  ADOConnection.Close;
  ADOConnection.Free;
end;

function SetDisplayMode(X, Y: word): Boolean;
var
  lpDevMode: TDeviceMode;
begin
  Result := EnumDisplaySettings(nil, 0, lpDevMode);
  if Result then
  begin
    lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
    lpDevMode.dmPelsWidth := X;
    lpDevMode.dmPelsHeight := Y;
    Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
  end;
end;

function GetScreenWidth(): longint;
begin
  Result := GetDeviceCaps(hinstance, HORZRES);
end;

function GetScreenHeight(): longint;
begin
  Result := GetDeviceCaps(hinstance, VERTSIZE);
end;

{-----------------------------------------加密函数---------------}

function EncryFunc(ss: string): string;
var
  i: integer;
  s: string;
begin
  s := '';
  for i := 1 to Length(ss) do
    s := s + Chr(Ord(ss[i]) + 3);
  Result := s;
end;

{------------------------------------解密函数----------------------------------}

function UnEncryFunc(ss: string): string;
var
  i: Integer;
  s: string;
begin
  s := '';
  for i := 1 to Length(ss) do
    s := s + Chr(Ord(ss[i]) - 3);
  Result := s;
end;

{----------------------------注册数据库用户名与口令----------------------}

function ReadFromRegist(var username: string; var password: string): Boolean;
var
  Reg: TRegistry;
begin
  Result := False;
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Reg.OpenKey('\Software\yahui', False);
    username := Reg.ReadString('user');
    password := Reg.ReadString('pass');
    if UnEncryFunc(Trim(username)) = '' then
      Exit;
    if UnEncryFunc(Trim(password)) = '' then
      Exit;
    username := UnEncryFunc(Trim(username));
    password := UnEncryFunc(Trim(password));
  finally
    Reg.CloseKey;
    Reg.Free;
  end;
  Result := True;
end;

⌨️ 快捷键说明

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