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

📄 hwlangs.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
unit HwLangs;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dxExEdtr, ActnList, DB, ADODB, 
  Menus, dxCntner, dxTL, dxDBCtrl, dxDBGrid, ComCtrls, ExtCtrls, ToolWin,
  StdCtrls, Mask, DBCtrls, dbcgrids, wwfltdlg, wwDialog, Wwlocate, Wwintl;

type
  THwLangsForm = class(TForm)
    CoolBar1: TCoolBar;
    ToolBar2: TToolBar;
    tlbFirst: TToolButton;
    tlbPrior: TToolButton;
    tlbNext: TToolButton;
    tlbLast: TToolButton;
    ToolButton1: TToolButton;
    tlbInsert: TToolButton;
    tlbUpdate: TToolButton;
    tlbDelete: TToolButton;
    ToolButton2: TToolButton;
    tlbSave: TToolButton;
    tlbCancel: TToolButton;
    ToolButton3: TToolButton;
    tlbRefresh: TToolButton;
    tlbLocate: TToolButton;
    ToolButton5: TToolButton;
    tlbPrint: TToolButton;
    ToolButton6: TToolButton;
    tlbExit: TToolButton;
    Panel1: TPanel;
    Image1: TImage;
    PopupMenu1: TPopupMenu;
    mmiPrint: TMenuItem;
    mmiExport: TMenuItem;
    dsLangs: TDataSource;
    qryLangs: TADOQuery;
    SaveDialog1: TSaveDialog;
    ActionList1: TActionList;
    ActFirst: TAction;
    ActPrior: TAction;
    ActNext: TAction;
    ActLast: TAction;
    ActInsert: TAction;
    ActUpdate: TAction;
    ActDelete: TAction;
    ActSave: TAction;
    ActCancel: TAction;
    ActRefresh: TAction;
    ActLocate: TAction;
    ActSearch: TAction;
    ActPrint: TAction;
    ActExport: TAction;
    ActExit: TAction;
    ToolButton7: TToolButton;
    adsLangs: TADODataSet;
    adsLangsLangID: TStringField;
    adsLangsLangName: TStringField;
    adsLangsName: TStringField;
    adsLangsHint: TStringField;
    ADOQuery1: TADOQuery;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    tlbLang: TToolButton;
    ActLang: TAction;
    ScrollBox1: TScrollBox;
    Label1: TLabel;
    DataSource1: TDataSource;
    DBCtrlGrid1: TDBCtrlGrid;
    Label2: TLabel;
    DBEdit1: TDBEdit;
    Label3: TLabel;
    DBEdit2: TDBEdit;
    Label4: TLabel;
    DBEdit3: TDBEdit;
    ADODataSet1: TADODataSet;
    ADODataSet1LangID: TStringField;
    ADODataSet1LangName: TStringField;
    ADODataSet1Name: TStringField;
    ADODataSet1Hint: TStringField;
    ADODataSet1TableName: TStringField;
    Edit1: TEdit;
    adsLangsTableName: TStringField;
    adsLangsSeqNo: TIntegerField;
    ScrollBox2: TScrollBox;
    dxDBGrid1: TdxDBGrid;
    dxDBGrid1LangID: TdxDBGridMaskColumn;
    dxDBGrid1LangName: TdxDBGridMaskColumn;
    dxDBGrid1Name: TdxDBGridMaskColumn;
    dxDBGrid1Hint: TdxDBGridMaskColumn;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ActFirstExecute(Sender: TObject);
    procedure ActPriorExecute(Sender: TObject);
    procedure ActNextExecute(Sender: TObject);
    procedure ActLastExecute(Sender: TObject);
    procedure ActInsertExecute(Sender: TObject);
    procedure ActUpdateExecute(Sender: TObject);
    procedure ActDeleteExecute(Sender: TObject);
    procedure ActSaveExecute(Sender: TObject);
    procedure ActCancelExecute(Sender: TObject);
    procedure ActRefreshExecute(Sender: TObject);
    procedure ActLocateExecute(Sender: TObject);
    procedure ActSearchExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
    procedure ActExportExecute(Sender: TObject);
    procedure ActExitExecute(Sender: TObject);
    procedure adsLangsAfterScroll(DataSet: TDataSet);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure ActLangExecute(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ADODataSet1NameChange(Sender: TField);
    procedure dxDBGrid1BackgroundDrawEvent(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect);
  private
    ALangID,AReportName:string;
    procedure SetButtonState(AInsUpd:Boolean);
    procedure SetInterface;
    procedure GetLangsData;
    procedure S100(ALangsID:string);
    procedure SaveData;
    procedure DeleteData;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  HwLangsForm: THwLangsForm;

implementation

uses SYSDATA, CommFun, Languages;

{$R *.dfm}

//设置按钮状态
procedure THwLangsForm.SetButtonState(AInsUpd:Boolean);
begin
  ActFirst.Enabled:=not AInsUpd;
  ActPrior.Enabled:=not AInsUpd;
  ActNext.Enabled:=not AInsUpd;
  ActLast.Enabled:=not AInsUpd;
  ActInsert.Enabled:=not AInsUpd;
  ActUpdate.Enabled:=not AInsUpd;
  ActDelete.Enabled:=not AInsUpd;
  ActSave.Enabled:=AInsUpd;
  ActCancel.Enabled:=AInsUpd;
  ActRefresh.Enabled:=not AInsUpd;
  ActLocate.Enabled:=not AInsUpd;
  ActSearch.Enabled:=not AInsUpd;
  ActPrint.Enabled:=not AInsUpd;
  ActLang.Enabled:=not AInsUpd;
  ScrollBox1.Enabled:=AInsUpd;
  ActExit.Enabled:=True;
  if AInsUpd then PageControl1.ActivePageIndex:=1;
end;

//设置界面信息
procedure THwLangsForm.SetInterface;
begin
  Font.Name:=AFontName;
  Image1.Picture.Bitmap.LoadFromResourceName(AImgHandle,'TOPTITL');
  ActFirst.Caption:=GetDBString('COM00005001');  //最前
  ActPrior.Caption:=GetDBString('COM00005002');  //上移
  ActNext.Caption:=GetDBString('COM00005003');  //下移
  ActLast.Caption:=GetDBString('COM00005004');  //最后
  ActInsert.Caption:=GetDBString('COM00005005');  //新增
  ActUpdate.Caption:=GetDBString('COM00005006');  //修改
  ActDelete.Caption:=GetDBString('COM00005007');  //删除
  ActSave.Caption:=GetDBString('COM00005008');  //保存
  ActCancel.Caption:=GetDBString('COM00005009');  //取消
  ActRefresh.Caption:=GetDBString('COM00005010');  //刷新
  ActLocate.Caption:=GetDBString('COM00005011');  //查找
  ActSearch.Caption:=GetDBString('COM00005012');  //查询
  ActPrint.Caption:=GetDBString('COM00005013');  //打印
  ActExport.Caption:=GetDBString('COM00005014');  //导出数据
  ActExit.Caption:=GetDBString('COM00005015');  //退出
  TabSheet1.Caption:=GetDBString('COM00005016');  //浏览数据
  TabSheet2.Caption:=GetDBString('COM00005017');  //明细资料

  ActFirst.Hint:=GetDBString('COM00005001',2);  //移到第一条记录
  ActPrior.Hint:=GetDBString('COM00005002',2);  //移到上一条记录
  ActNext.Hint:=GetDBString('COM00005003',2);  //移到下一条记录
  ActLast.Hint:=GetDBString('COM00005004',2);  //移到最后一条记录
  ActInsert.Hint:=GetDBString('COM00005005',2);  //新增一条记录
  ActUpdate.Hint:=GetDBString('COM00005006',2);  //修改当前记录
  ActDelete.Hint:=GetDBString('COM00005007',2);  //删除当前记录
  ActSave.Hint:=GetDBString('COM00005008',2);  //保存编辑的记录
  ActCancel.Hint:=GetDBString('COM00005009',2);  //取消编辑的记录
  ActRefresh.Hint:=GetDBString('COM00005010',2);  //取得最新的数据
  ActLocate.Hint:=GetDBString('COM00005011',2);  //快速定位记录
  ActSearch.Hint:=GetDBString('COM00005012',2);  //按条件查询数据
  ActPrint.Hint:=GetDBString('COM00005013',2);  //将数据打印出来
  ActExport.Hint:=GetDBString('COM00005014',2);  //导出数据到文件中
  ActExit.Hint:=GetDBString('COM00005015',2);  //关闭当前窗口
end;

//取得多语言数据
procedure THwLangsForm.GetLangsData;
var
  AName,ALangName:string;
  I,ASeqNo:Integer;
begin
  //创建临时表
  adsLangs.Close;
  adsLangs.FieldDefs.Clear;
  adsLangs.FieldDefs.Add('LangID',ftString,20);
  adsLangs.FieldDefs.Add('LangName',ftString,50);
  adsLangs.FieldDefs.Add('Name',ftString,255);
  adsLangs.FieldDefs.Add('Hint',ftString,255);
  adsLangs.FieldDefs.Add('TableName',ftString,50);
  adsLangs.FieldDefs.Add('SeqNo',ftInteger,0);
  adsLangs.CreateDataSet;

  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  
  qryLangs.Close;
  qryLangs.SQL.Clear;
  qryLangs.SQL.Add('select * from Langs order by SeqNo');
  qryLangs.Open;
  I:=0;
  while not qryLangs.Eof do
  begin
    I:=I+1;
    AName:=qryLangs.FieldByName('TableName').Value;
    ALangName:=qryLangs.FieldByName('LangName').Value;
    ASeqNo:=qryLangs.FieldByName('SeqNo').Value;

    ADOQuery1.SQL.Add('select LangID, '+''''+ALangName+''''+' as LangName, Name, Hint, '+''''+AName+''''+' as TableName, '+IntToStr(ASeqNo)+' as SeqNo from '+AName+' order by LangID');
    if I<>qryLangs.RecordCount then ADOQuery1.SQL.Add('union');

    qryLangs.Next;
  end;
  ADOQuery1.Open;
  adsLangs.Clone(ADOQuery1);
end;

procedure THwLangsForm.S100(ALangsID:string);
var
  AName,ALangName:string;
begin
  //创建临时表
  ADODataSet1.Close;
  ADODataSet1.FieldDefs.Clear;
  ADODataSet1.FieldDefs.Add('LangID',ftString,20);
  ADODataSet1.FieldDefs.Add('LangName',ftString,50);
  ADODataSet1.FieldDefs.Add('Name',ftString,255);
  ADODataSet1.FieldDefs.Add('Hint',ftString,255);
  ADODataSet1.FieldDefs.Add('TableName',ftString,50);
  ADODataSet1.CreateDataSet;

  qryLangs.Close;
  qryLangs.SQL.Clear;
  qryLangs.SQL.Add('select * from Langs order by SeqNo');
  qryLangs.Open;
  while not qryLangs.Eof do
  begin
    AName:=qryLangs.FieldByName('TableName').Value;
    ALangName:=qryLangs.FieldByName('LangName').Value;
    Edit1.Text:=ALangsID;

    if ALangsID='' then
    begin
      ADODataSet1.Append;
      ADODataSet1.FieldByName('LangID').Value:='';
      ADODataSet1.FieldByName('LangName').Value:=ALangName;
      ADODataSet1.FieldByName('Name').Value:='';
      ADODataSet1.FieldByName('Hint').Value:='';
      ADODataSet1.FieldByName('TableName').Value:=AName;
      ADODataSet1.Post;
    end else
    begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('select * from '+AName+' where LangID='+''''+ALangsID+'''');
      ADOQuery1.Open;
      ADODataSet1.Append;
      ADODataSet1.FieldByName('LangID').Value:=ADOQuery1.FieldByName('LangID').Value;
      ADODataSet1.FieldByName('LangName').Value:=ALangName;
      ADODataSet1.FieldByName('Name').Value:=ADOQuery1.FieldByName('Name').Value;
      ADODataSet1.FieldByName('Hint').Value:=ADOQuery1.FieldByName('Hint').Value;
      ADODataSet1.FieldByName('TableName').Value:=AName;
      ADODataSet1.Post;
    end;
    qryLangs.Next;
  end;
  ADODataSet1.First;
end;

procedure THwLangsForm.SaveData;
var
  ATableName,AID,AName,AHint:string;
begin
  if ADODataSet1.State in [dsInsert,dsEdit] then ADODataSet1.Post;
  ADODataSet1.First;
  while not ADODataSet1.Eof do
  begin
    ATableName:=ADODataSet1.FieldByName('TableName').Value;
    AID:=trim(Edit1.Text);

⌨️ 快捷键说明

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