📄 hwlangs.pas.svn-base
字号:
AName:=ADODataSet1.FieldByName('Name').Value;
AHint:=ADODataSet1.FieldByName('Hint').Value;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from '+ATableName+' where LangID='+''''+AID+'''');
ADOQuery1.ExecSQL;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into '+ATableName+'(LangID,Name,Hint)');
ADOQuery1.SQL.Add('select '+''''+AID+''''+','+''''+AName+''''+','+''''+AHint+'''');
ADOQuery1.ExecSQL;
ADODataSet1.Next;
end;
end;
procedure THwLangsForm.DeleteData;
var
ATableName,AID:string;
begin
ADODataSet1.First;
while not ADODataSet1.Eof do
begin
ATableName:=ADODataSet1.FieldByName('TableName').Value;
AID:=trim(Edit1.Text);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from '+ATableName+' where LangID='+''''+AID+'''');
ADOQuery1.ExecSQL;
ADODataSet1.Next;
end;
end;
procedure THwLangsForm.FormCreate(Sender: TObject);
begin
SetInterface; //设置界面信息
GetLangsData; //取得多语言数据
SetButtonState(False);
PageControl1.ActivePageIndex:=0;
AReportName:='';
end;
procedure THwLangsForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if ActSave.Enabled then
begin
if ShowDialog('UMS10000007')=IDNO then //数据尚未保存,现在保存吗?
ActCancel.Execute
else
ActSave.Execute;
end;
adsLangs.AfterScroll:=nil;
adsLangs.Close;
qryLangs.Close;
Action:=caFree;
end;
procedure THwLangsForm.ActFirstExecute(Sender: TObject);
begin
//最前
if adsLangs.IsEmpty then Exit;
adsLangs.First;
ActFirst.Enabled:=False;
ActPrior.Enabled:=False;
ActNext.Enabled:=True;
ActLast.Enabled:=True;
end;
procedure THwLangsForm.ActPriorExecute(Sender: TObject);
begin
//上移
if adsLangs.IsEmpty then Exit;
adsLangs.Prior;
ActNext.Enabled:=not adsLangs.Eof;
ActLast.Enabled:=not adsLangs.Eof;
ActFirst.Enabled:=not adsLangs.Bof;
ActPrior.Enabled:=not adsLangs.Bof;
end;
procedure THwLangsForm.ActNextExecute(Sender: TObject);
begin
//下移
if adsLangs.IsEmpty then Exit;
adsLangs.Next;
ActNext.Enabled:=not adsLangs.Eof;
ActLast.Enabled:=not adsLangs.Eof;
ActFirst.Enabled:=not adsLangs.Bof;
ActPrior.Enabled:=not adsLangs.Bof;
end;
procedure THwLangsForm.ActLastExecute(Sender: TObject);
begin
//最后
if adsLangs.IsEmpty then Exit;
adsLangs.Last;
ActNext.Enabled:=False;
ActLast.Enabled:=False;
ActFirst.Enabled:=True;
ActPrior.Enabled:=True;
end;
procedure THwLangsForm.ActInsertExecute(Sender: TObject);
begin
//新增
SetButtonState(True);
S100('');
ADODataSet1.Edit;
Edit1.Text:='';
Edit1.Enabled:=True;
Edit1.SetFocus;
end;
procedure THwLangsForm.ActUpdateExecute(Sender: TObject);
begin
//修改
if adsLangs.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
SetButtonState(True);
ADODataSet1.Edit;
Edit1.Enabled:=False;
DBEdit2.SetFocus;
end;
procedure THwLangsForm.ActDeleteExecute(Sender: TObject);
begin
//删除
if adsLangs.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
if ShowDialog('UMS10000008')=IDYES then //确定要删除此记录吗?
begin
DeleteData;
GetLangsData;
end;
end;
procedure THwLangsForm.ActSaveExecute(Sender: TObject);
begin
//保存
if trim(Edit1.Text)='' then
begin
ShowMsg('编号不能为空');
Abort;
end;
if trim(DBEdit2.Text)='' then
begin
ShowMsg('标题不能为空');
Abort;
end;
if trim(DBEdit3.Text)='' then
begin
ShowMsg('提示不能为空');
Abort;
end;
if Edit1.Enabled then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from Chinese where LangID='+''''+trim(Edit1.Text)+'''');
ADOQuery1.Open;
if not ADOQuery1.IsEmpty then
begin
ShowMsg('编号已存在,不能新增');
Abort;
end;
end;
try
SYSDM.LangsADOC.BeginTrans;
SaveData;
SYSDM.LangsADOC.CommitTrans;
except
SYSDM.LangsADOC.RollbackTrans;
ShowMsg(SYSDM.ADOC.Errors[0].Description,1);
Abort;
end;
SetButtonState(False);
ActInsert.Execute;
end;
procedure THwLangsForm.ActCancelExecute(Sender: TObject);
begin
//取消
ADODataSet1.Cancel;
SetButtonState(False);
S100(adsLangsLangID.Value);
Edit1.Enabled:=True;
GetLangsData;
end;
procedure THwLangsForm.ActRefreshExecute(Sender: TObject);
begin
//刷新
GetLangsData;
end;
procedure THwLangsForm.ActLocateExecute(Sender: TObject);
begin
//查找
if adsLangs.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
LocateDialog(dsLangs);
end;
procedure THwLangsForm.ActSearchExecute(Sender: TObject);
begin
//查询
FilterDialog(dsLangs);
end;
procedure THwLangsForm.ActPrintExecute(Sender: TObject);
begin
//打印
SelectReport(adsLangs,AProgramID,AReportName,ReportGetValue);
ActRefresh.Execute;
end;
procedure THwLangsForm.ActExportExecute(Sender: TObject);
begin
//导出到Excel
if adsLangs.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
SaveToExcel(dxDBGrid1);
end;
procedure THwLangsForm.ActExitExecute(Sender: TObject);
begin
//退出
Close;
end;
procedure THwLangsForm.adsLangsAfterScroll(DataSet: TDataSet);
begin
if adsLangsLangID.Value<>ALangID then
begin
ALangID:=adsLangsLangID.Value;
S100(ALangID);
end;
end;
procedure THwLangsForm.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
AllowChange:=not ActSave.Enabled;
end;
procedure THwLangsForm.ActLangExecute(Sender: TObject);
begin
//语种
LanguagesForm:=TLanguagesForm.Create(Application);
LanguagesForm.ShowModal;
end;
procedure THwLangsForm.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=vk_return then DBEdit2.SetFocus;
end;
procedure THwLangsForm.ADODataSet1NameChange(Sender: TField);
begin
if not ActSave.Enabled then Exit;
if ADODataSet1.State in [dsInsert,dsEdit] then
ADODataSet1Hint.Value:=ADODataSet1Name.Value;
end;
procedure THwLangsForm.dxDBGrid1BackgroundDrawEvent(Sender: TObject;
ACanvas: TCanvas; ARect: TRect);
var
AText:string;
begin
ARect.Left:=0;
ARect.Top:=0;
ACanvas.Brush.Color:=dxDBGrid1.GroupPanelColor;
ACanvas.Font.Color:=dxDBGrid1.GroupPanelFontColor;
//您可以把列标题拖放到此处使记录按此列进行分组
if dxDBGrid1.GroupColumnCount=0 then AText:=' '+GetDBString('NOT10001012') else AText:='';
Windows.FillRect(ACanvas.Handle, ARect, 0);
DrawText(ACanvas.Handle, PChar(AText), Length(AText), ARect, DT_LEFT or DT_EXPANDTABS or DT_NOPREFIX or DT_SINGLELINE or DT_VCENTER);
end;
procedure THwLangsForm.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -