unit SMF;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, DBCtrls, Mask, DBTables, DB, Grids, DBGrids,
Menus, FileCtrl, ComCtrls, OleCtnrs, DBCGrids;
type
TFMSMF = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
DSSMF: TDataSource;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Database1: TDatabase;
MainMenu1: TMainMenu;
N1: TMenuItem;
DBGrid1: TDBGrid;
btninsert: TBitBtn;
btnprior: TBitBtn;
btnnext: TBitBtn;
btndelete: TBitBtn;
btnedit: TBitBtn;
btnpost: TBitBtn;
N2: TMenuItem;
About1: TMenuItem;
About2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
L9: TLabel;
BtnSearch: TBitBtn;
OpenDialog1: TOpenDialog;
N5: TMenuItem;
SpeedButton1: TSpeedButton;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
DBLC_DOC: TDBLookupComboBox;
DBLC_CODE: TDBLookupComboBox;
Label3: TLabel;
Qry_Insert: TQuery;
Qry_Delete: TQuery;
Qry_Update: TQuery;
Qry_Post: TQuery;
Qry_Open: TQuery;
DBEdit1: TEdit;
DBEdit4: TEdit;
DBEdit2: TEdit;
DBEdit3: TEdit;
DBEdit5: TEdit;
Qry_Num: TQuery;
btncancel: TBitBtn;
DBEdit9: TEdit;
Label2: TLabel;
DBMemo1: TDBMemo;
Qry_Opennum: TFloatField;
Qry_Opendatea: TStringField;
Qry_Openlawyer: TStringField;
Qry_Opensubject: TStringField;
Qry_Opencontent: TMemoField;
Qry_Opendocform: TStringField;
Qry_Openclas_no: TStringField;
Qry_Opendoc_place: TStringField;
procedure BitBtn1Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure btninsertClick(Sender: TObject);
procedure btnpriorClick(Sender: TObject);
procedure btnnextClick(Sender: TObject);
procedure btndeleteClick(Sender: TObject);
procedure btneditClick(Sender: TObject);
procedure BtncancelClick(Sender: TObject);
procedure btnpostClick(Sender: TObject);
procedure About2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BtnSearchClick(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure DBLC_DOCClick(Sender: TObject);
procedure DBLC_CODEClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormActivate(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FMSMF: TFMSMF;
implementation
uses SMFSearch, about, doc_form, code_form;
{$R *.DFM}
procedure TFMSMF.BitBtn1Click(Sender: TObject);
begin
fmsearch.show;
btnprior.enabled := true;
btnnext.enabled := true;
btndelete.enabled := true;
end;
procedure TFMSMF.FormPaint(Sender: TObject);
begin
if tag <> 10 then
begin
tag := 10;
l9.caption := '처리중이오니 잠시만 기다려주십시요.';
l9.repaint;
database1.open;
fm_doc.tb_doc.open;
fm_code.tb_code.open;
l9.visible := false;
end;
end;
procedure TFMSMF.btninsertClick(Sender: TObject);
begin
with Qry_num do
begin
close;
sql.clear;
sql.add('select Max(num) from smf_db');
open;
end;
dbedit1.text := DateToStr(Date);
dbedit4.text := '';
dbmemo1.text := '';
dbedit2.text := '';
dbedit3.text := '';
dbedit5.text := '';
dbedit9.text := '';
btnpost.enabled := true;
btninsert.enabled := false;
btnedit.enabled := false;
btnprior.enabled := false;
btnnext.enabled := false;
btndelete.enabled := false;
btnsearch.enabled := true;
dbedit4.setfocus;
fmsearch.label3.visible := false;
fmsearch.InputEdit1.visible := false;
end;
procedure TFMSMF.btnpriorClick(Sender: TObject);
begin
qry_open.prior;
dbedit1.text := qry_open.fieldbyname('datea').asstring;
dbedit4.text := qry_open.fieldbyname('subject').asstring;
dbmemo1.text := qry_open.fieldbyname('content').asstring;
dbedit2.text := qry_open.fieldbyname('docform').asstring;
dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
dbedit5.text := qry_open.fieldbyname('doc_place').asstring;
dbedit9.text := qry_open.fieldbyname('num').asstring;
dbedit1.setfocus;
end;
procedure TFMSMF.btnnextClick(Sender: TObject);
begin
qry_open.next;
dbedit1.text := qry_open.fieldbyname('datea').asstring;
dbedit4.text := qry_open.fieldbyname('subject').asstring;
dbmemo1.text := qry_open.fieldbyname('content').asstring;
dbedit2.text := qry_open.fieldbyname('docform').asstring;
dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
dbedit5.text := qry_open.fieldbyname('doc_place').asstring;
dbedit9.text := qry_open.fieldbyname('num').asstring;
dbedit1.setfocus;
end;
procedure TFMSMF.btndeleteClick(Sender: TObject);
var
num : integer;
begin
if messageDlg('삭제할까요??', mtInformation, [mbYes, mbNo], 0) = mrYes then
begin
num := Qry_Open['num'];
Qry_Delete.params.parambyname('param1').asinteger := num;
Qry_Delete.EXECSQL;
end;
with Qry_Open do
begin
close;
sql.clear;
sql.add('select * from smf_db order by datea desc');
open;
end;
end;
procedure TFMSMF.btneditClick(Sender: TObject);
var
S: string;
begin
s := dbedit9.text;
fmsmf.DBEdit1.text := DateToStr(Date);
with Qry_Update do
begin
close;
sql.clear;
sql.add('update smf_db set ');
sql.add(' datea = :V11, subject = :V12, content = :V13, docform = :V14, ');
sql.add(' clas_no = :V15, doc_place = :V16, num = :V17');
sql.add(' where (num = :V17)');
ParamByName('V11').AsString := Dbedit1.Text;
ParamByName('V12').AsString := Dbedit4.Text;
ParamByName('V13').AsString := dbmemo1.Text;
ParamByName('V14').AsString := Dbedit2.Text;
ParamByName('V15').AsString := dbedit3.Text;
ParamByName('V16').AsString := Dbedit5.Text;
ParamByName('V17').AsInteger := StrToInt(s);
ExecSQL;
end;
with Qry_Open do
begin
close;
sql.clear;
sql.add('select * from smf_db order by datea desc');
open;
end;
dbedit4.setfocus;
btnsearch.enabled := true;
if Not fm_doc.tb_doc.Active then
fm_doc.tb_doc.Active := True;
if Not fm_Code.tb_Code.Active then
fm_Code.tb_Code.Active := True;
end;
procedure TFMSMF.BtncancelClick(Sender: TObject);
begin
dbedit1.text := qry_open.fieldbyname('datea').asstring;
dbedit4.text := qry_open.fieldbyname('subject').asstring;
dbmemo1.text := qry_open.fieldbyname('content').asstring;
dbedit2.text := qry_open.fieldbyname('docform').asstring;
dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
dbedit5.text := qry_open.fieldbyname('doc_place').asstring;
dbedit1.setfocus;
btnpost.enabled := false;
btninsert.enabled := true;
btnsearch.enabled := false;
btnedit.enabled := true;
btnprior.enabled := true;
btnnext.enabled := true;
btndelete.enabled := true;
end;
procedure TFMSMF.btnpostClick(Sender: TObject);
begin
if (dbedit1.text = '')then
begin
showmessage('입력일자를 입력하시오!');
exit
end;
with Qry_Post do
begin
close;
sql.clear;
sql.add('insert into smf_db ');
sql.add(' (datea, subject, content, docform, clas_no, doc_place, num)');
sql.add(' values (:V1, :V2, :V3, :V4, :V5, :V6 , :V7)');
ParamByName('V1').AsString := Dbedit1.Text;
ParamByName('V2').AsString := Dbedit4.Text;
ParamByName('V3').AsString := dbmemo1.Text;
ParamByName('V4').AsString := Dbedit2.Text;
ParamByName('V5').AsString := Dbedit3.Text;
ParamByName('V6').AsString := Dbedit5.Text;
ParamByName('V7').AsInteger := Qry_num.fields[0].asinteger + 1;
ExecSQL;
end;
with Qry_Open do
begin
close;
sql.clear;
sql.add('select * from smf_db order by datea desc');
open;
end;
btnpost.enabled := false;
btninsert.enabled := true;
btnsearch.enabled := false;
btnedit.enabled := true;
btnprior.enabled := true;
btnnext.enabled := true;
btndelete.enabled := true;
end;
procedure TFMSMF.About2Click(Sender: TObject);
begin
Aboutbox.show;
end;
procedure TFMSMF.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TFMSMF.BtnSearchClick(Sender: TObject);
begin
dbedit1.setfocus;
btnpost.enabled := true;
btninsert.enabled := false;
btnsearch.enabled := true;
btnedit.enabled := false;
DBLC_DOC.visible := true;
DBLC_CODE.visible := true;
dbedit1.setfocus;
if OpenDialog1.Execute then
dbedit5.text := OpenDialog1.FileName
else
showmessage('화일을 선택하지 않았습니다.');
end;
procedure TFMSMF.N5Click(Sender: TObject);
begin
close;
end;
procedure TFMSMF.SpeedButton1Click(Sender: TObject);
var
strExtend : String;
begin
strExtend := Copy(ExtractFileExt(fmsmf.DBEdit5.Text), 2, 3);
if strExtend = 'doc' then
begin
winexec(Pchar('C:\Program Files\Microsoft Office\Office\winword.exe ' +
fmsmf.DBEdit5.Text), SW_SHOW);
end
else if strExtend = 'ppt' then
begin
winexec(Pchar('C:\Program Files\Microsoft Office\Office\powerpnt.exe ' +
fmsmf.DBEdit5.Text), SW_SHOW);
end
else if strExtend = 'xls' then
begin
winexec(Pchar('C:\Program Files\Microsoft Office\Office\excel.exe ' +
fmsmf.DBEdit5.Text), SW_SHOW);
end
else if strExtend = 'txt' then
begin
winexec(Pchar('C:\Windows\notepad.exe ' +
fmsmf.DBEdit5.Text), SW_SHOW);
end
else if StrExtend = '' then
begin
showmessage('선택된 화일이 없습니다.');
end;
end;
procedure TFMSMF.N2Click(Sender: TObject);
begin
if Fm_Doc.TB_DOC.Active then
fm_doc.tb_doc.Active := False;
fm_doc.show;
end;
procedure TFMSMF.N3Click(Sender: TObject);
begin
if Fm_Code.TB_Code.Active then
fm_Code.tb_Code.Active := False;
fm_code.show;
end;
procedure TFMSMF.DBLC_DOCClick(Sender: TObject);
begin
dbedit2.text := fm_doc.tb_doc['DOC_NAME'];
end;
procedure TFMSMF.DBLC_CODEClick(Sender: TObject);
begin
dbedit3.text := fm_code.tb_code['CODE'];
end;
procedure TFMSMF.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TFMSMF.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
SelectNext(ActiveControl as tWinControl, True, True);
Key := #0;
end;
end;
procedure TFMSMF.FormActivate(Sender: TObject);
begin
if Not fm_doc.tb_doc.Active then
fm_doc.tb_doc.Active := True;
if Not fm_Code.tb_Code.Active then
fm_Code.tb_Code.Active := True;
with Qry_Open do
begin
close;
sql.clear;
sql.add('select * from smf_db order by datea desc');
open;
end;
dbedit1.text := qry_open.fieldbyname('datea').asstring;
dbedit4.text := qry_open.fieldbyname('subject').asstring;
dbmemo1.text := qry_open.fieldbyname('content').asstring;
dbedit2.text := qry_open.fieldbyname('docform').asstring;
dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
dbedit5.text := qry_open.fieldbyname('doc_place').asstring;
dbedit9.text := qry_open.fieldbyname('num').asstring;
end;
procedure TFMSMF.DBGrid1CellClick(Column: TColumn);
begin
dbedit1.text := qry_open.fieldbyname('datea').asstring;
dbedit4.text := qry_open.fieldbyname('subject').asstring;
dbmemo1.text := qry_open.fieldbyname('content').asstring;
dbedit2.text := qry_open.fieldbyname('docform').asstring;
dbedit3.text := qry_open.fieldbyname('clas_no').asstring;
dbedit5.text := qry_open.fieldbyname('doc_place').asstring;
dbedit9.text := qry_open.fieldbyname('num').asstring;
end;
end.
|