📄 hwlangs.pas.svn-base
字号:
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 + -