?? unit_setupindititle.pas
字號:
unit Unit_Setupindititle;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Unit_Config, Db, DBTables, StdCtrls, TFlatEditUnit, TFlatButtonUnit,
ExtCtrls, Grids, DBGrids, TFlatComboBoxUnit;
type
TDataCode = class
Code:string;
end;
TFrm_Setupindititle = class(TFrm_Config)
Label1: TLabel;
Label2: TLabel;
FlatEdit2: TFlatEdit;
FlatEdit3: TFlatEdit;
UpdateSQL1: TUpdateSQL;
ComboBox: TFlatComboBox;
Query_top: TQuery;
procedure BitBtnAddClick(Sender: TObject);
procedure BitBtnAlterClick(Sender: TObject);
procedure BitBtnDelClick(Sender: TObject);
procedure BitBtnSaveClick(Sender: TObject);
procedure Query_PUBAfterScroll(DataSet: TDataSet);
procedure BitBtnCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure sqlcommit;
procedure FlatEdit2KeyPress(Sender: TObject; var Key: Char);
procedure FlatEdit3KeyPress(Sender: TObject; var Key: Char);
procedure FormDestroy(Sender: TObject);
procedure ComboBoxChange(Sender: TObject);
procedure ComboBoxKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
//當前的節日編碼
P_CurrentCode :string;
//判斷是否為插入狀態
P_Insert :boolean;
//記錄當前的
FCode:string;
// 創建拉框 pSpace 為真預先加入的一個值,其code為空
Procedure CreateComboBox(Combobox:TFlatComboBox;pQuery:TDataSet;pCode,pLabel:string;pSpace:string);
//釋放內存
Procedure FreeNode(Combobox:TFlatComboBox);
//根據Code 得到索引號
Function GetCodeIndex(Combobox:TFlatComboBox;pCode:string):integer;
public
{ Public declarations }
end;
var
Frm_Setupindititle: TFrm_Setupindititle;
implementation
uses dmmain,unit_public,main;
{$R *.DFM}
procedure TFrm_Setupindititle.CreateComboBox(Combobox: TFlatComboBox;
pQuery: TDataSet; pCode,pLabel: string; pSpace: string);
var Ldata:TDataCode;
begin
FreeNode(Combobox);
ComboBox.Clear;
if pSpace<>'' then
begin
//先加一個空值
Ldata:=TdataCode.Create;
Ldata.Code:='';
ComboBox.Items.AddObject(pSpace,Ldata);
end;
if not pQuery.Active then exit;
//從數據庫里取數據
pQuery.First;
while not pQuery.Eof do
begin
Ldata:=TdataCode.Create;
Ldata.Code:=trim(pQuery.FieldByName(pCode).AsString);
ComboBox.Items.AddObject(trim(pQuery.FieldByName(pLabel).AsString),Ldata);
pQuery.Next;
end;
end;
procedure TFrm_Setupindititle.FreeNode(Combobox: TFlatComboBox);
var
i:integer;
Ldata:TDataCode;
begin
for i:=0 to ComboBox.Items.Count - 1 do
begin
Ldata:=TdataCode(ComboBox.Items.Objects[i]);
if Ldata <> nil then Ldata.Free;
end;
end;
function TFrm_Setupindititle.GetCodeIndex(Combobox: TFlatComboBox;
pCode: string): integer;
var
i:integer;
begin
result:=0;
for i:=0 to ComboBox.Items.Count - 1 do
begin
if (ComboBox.Items.Objects[i]<>nil) and (pCode = TDataCode(ComboBox.Items.Objects[i]).Code) then
begin
result:=i;
break;
end;
end;
end;
procedure TFrm_Setupindititle.BitBtnAddClick(Sender: TObject);
begin
inherited;
kk:=1;
//FlatEdit1.Text:='';
ComboBox.ItemIndex :=0;
FlatEdit2.Text:='';
FlatEdit3.Text:='';
ComboBox.Enabled :=true;
//FlatEdit1.Enabled :=true;
FlatEdit2.Enabled :=true;
FlatEdit3.Enabled :=true;
ComboBox.SetFocus;
//ShowMessage(' 請輸入等級內容! ');
SetBitBtn(false);
//with Query_PUB do
//begin
// if Not Active then
// Active:=true;
//end;
SetBitBtn(false);
end;
procedure TFrm_Setupindititle.BitBtnAlterClick(Sender: TObject);
begin
inherited;
kk := 2;
ComboBox.Enabled :=true;
FlatEdit2.Enabled :=true;
FlatEdit3.Enabled :=true;
ComboBox.SetFocus;
SetBitBtn(false);
end;
procedure TFrm_Setupindititle.BitBtnDelClick(Sender: TObject);
var
sql:string;
begin
inherited;
//if (Application.MessageBox('是否要刪除該記錄?',
// '提示',MB_OKCANCEL)=IDCANCEL) then exit;
if MessageDlg('是否要刪除該記錄?',mtConfirmation, [mbYes,mbNo], 0)=mrNo then exit;
//Dm_Main.Databasedh.StartTransaction;
Sql :='Delete t_d_indititle where INDICODE='+#39+
Query_PUB.FieldByName('INDICODE').AsString+#39;
if AnalyzeSql(SQL)=1 then exit;
//FlatEdit1.text :='';
ComboBox.ItemIndex :=0;
FlatEdit2.text :='';
FlatEdit3.Text :='';
Query_Pub.Delete;
//Query_Pub.Close;
//Query_Pub.Open;
Query_PUBAfterScroll(nil);
end;
procedure TFrm_Setupindititle.BitBtnSaveClick(Sender: TObject);
var
xlh, editxlh,sql : string;
begin
inherited;
//提示是否更新
if kk=2 then
//if (Application.MessageBox('是否要更新該記錄?',
// '提示',MB_OKCANCEL)=IDCANCEL) then exit;
if MessageDlg('是否要更新該記錄?',mtConfirmation, [mbYes,mbNo], 0)=mrNo then exit;
if trim(FlatEdit2.Text) ='' then
begin
MessageDlg('興趣小類標題字段不能為空!',mtConfirmation, [mbYes], 0);
exit;
end;
if length(FlatEdit2.Text) >60 then
begin
MessageDlg('興趣小類標題字段超過長度!',mtConfirmation, [mbYes], 0);
exit;
end;
if length(FlatEdit3.Text) >20 then
begin
MessageDlg('備注字段超過長度!',mtConfirmation, [mbYes], 0);
exit;
end;
case kk of
1: // add
Begin
Query_Tmp.Close;
Query_Tmp.SQL.Clear;
Query_Tmp.SQL.Add(' select SEQ_INDICODE.nextval xlh from dual');
Query_Tmp.Open;
xlh := Query_Tmp.FieldByName('xlh').AsString;
Sql :='insert into t_d_indititle(INDICODE,INDISEQ,INDITITLE,REMARK) '
+' values('+xlh+','+Fcode+',';
Sql :=Sql+#39+FlatEdit2.Text+#39+',';
Sql :=Sql+#39+FlatEdit3.Text+#39+')';
if AnalyzeSql(SQL)=1 then exit;
end;
2: // edit
begin
Sql :='update t_d_indititle set INDISEQ='+Fcode+','
+'INDITITLE=';
Sql :=Sql+#39+FlatEdit2.Text+#39+',';
Sql :=Sql+'REMARK=';
Sql :=Sql+#39+FlatEdit3.Text+#39;
Sql :=Sql+' where INDICODE='+#39
+Query_PUB.FieldByName('INDICODE').AsString+#39;
if AnalyzeSql(SQL)=1 then exit;
end;
end;
//*************數據同步********************
case kk of
1: // add
Begin
P_Insert :=true;
Query_Pub.insert;
Query_Tmp.close;
Query_Tmp.sql.text := //大小寫問題Diploma_ID
'select nvl(max(INDICODE),0) from t_d_indititle';
Query_Tmp.open;
P_CurrentCode :=Query_Tmp.fields[0].asstring;
end;
2: // edit
begin
P_Insert :=true;
Query_Pub.Edit;
end;
end;
Query_PUB.FieldByName('INDISEQ').AsString :=Fcode;
Query_PUB.FieldByName('INDITITLE').AsString :=FlatEdit2.Text;
Query_PUB.FieldByName('REMARK').AsString :=FlatEdit3.Text;
Query_PUB.fieldbyname('INDICAPTION').AsString :=ComboBox.Text;
Query_PUB.FieldByName('INDICODE').AsString :=P_CurrentCode;
P_Insert :=false;
Query_Pub.Post;
//*****************************************
SetBitBtn(true);
Query_PUBAfterScroll(nil);
end;
procedure TFrm_Setupindititle.Query_PUBAfterScroll(DataSet: TDataSet);
begin
inherited;
ComboBox.Enabled :=false;
FlatEdit2.Enabled :=false;
FlatEdit3.Enabled :=false;
if P_Insert then exit;
ComboBox.ItemIndex :=
GetCodeIndex(ComboBox,Query_PUB.fieldbyname('INDISEQ').AsString);
FlatEdit2.Text := Query_PUB.fieldbyname('INDITITLE').AsString;
FlatEdit3.Text := Query_PUB.fieldbyname('REMARK').AsString;
P_CurrentCode := Query_PUB.FieldByName('INDICODE').AsString;
//***********當沒有記錄時要控制按鈕及權限************
If not(Query_PuB.bof and Query_PuB.eof) Then
begin
//
BitBtnAdd.Enabled:=true;
BitBtnAlter.Enabled:=true;
BitBtnDel.Enabled:=true;
//權限
BitBtnAdd.Enabled:=(JBDM<=2);
BitBtnAlter.Enabled:=(JBDM<=2);
BitBtnDel.Enabled:=(JBDM<=2);
end
else
begin
//BitBtnAdd.Enabled:=false;
BitBtnAlter.Enabled:=false;
BitBtnDel.Enabled:=false;
end;
//*******************************************
end;
procedure TFrm_Setupindititle.BitBtnCancelClick(Sender: TObject);
begin
inherited;
Query_PUBAfterScroll(nil);
end;
procedure TFrm_Setupindititle.FormShow(Sender: TObject);
begin
inherited;
P_Insert :=false;
SetBitBtn(true);
//修改部分 2001-07-10 ChenQingBo
//修改部分 2001-07-10 ChenQingBo
BitBtnAdd.Enabled:=(JBDM<=2);
BitBtnAlter.Enabled:=(JBDM<=2);
BitBtnDel.Enabled:=(JBDM<=2);
Query_PUBAfterScroll(nil);
//建下拉框并定位
Query_top.close;
Query_top.Open;
CreateComboBox(Combobox,Query_top,'INDISEQ','INDICAPTION','');
//定位,奇怪的設計,局向是不唯一的?
Combobox.ItemIndex:=0;
ComboBoxChange(nil);
end;
procedure TFrm_Setupindititle.sqlcommit;
begin
with Query_Tmp do
begin
Close;
Sql.Clear;
Sql.Add('commit');
ExecSql;
end;
end;
procedure TFrm_Setupindititle.FlatEdit2KeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
// if not (key in ['0'..'9', #13, #8]) then key := #0;
if key = #13 then FlatEdit3.SetFocus;
end;
procedure TFrm_Setupindititle.FlatEdit3KeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
// if not (key in ['0'..'9', #13, #8]) then key := #0;
if key = #13 then BitBtnSaveClick(nil);
end;
procedure TFrm_Setupindititle.FormDestroy(Sender: TObject);
begin
inherited;
FreeNode(Combobox);
end;
procedure TFrm_Setupindititle.ComboBoxChange(Sender: TObject);
begin
inherited;
FCode:=TDataCode(ComboBox.Items.Objects[ComboBox.ItemIndex]).Code;
end;
procedure TFrm_Setupindititle.ComboBoxKeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
if key = #13 then FlatEdit2.SetFocus;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -