سیستم مکانیزه دبیرخانه
این برنامه یک دیتابیس ساده به زبان دلفی با کمک اکسس و دستورات Sql می باشد برای این کار ابتدا به برنامه اکسس رفته و یک Tabel با نام Dabir ایجاد می کنیم که مانند عکس شامل فیلد های زیر می باشد
Nno : شماره نامه ای که قرار است ثبت شود
Subject : موضوع نامه ای که قرار است ثبت شود
Date : تاریخی که در آن نامه ثبت شذه
Name : نام صاحب نامه
File : آدرس فایلی که نامه ذخیره می شود
جدول را ذخیره می کنیم و به دلفی می رویم :
New project را انتخاب می کنیم
مطابق شکل ابزار زیر را در صفحه قرار می دهیم
کد این یونیت به صورت زیر می باشد
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, Menus;
type
TForm1 = class(TForm)
Button1: TButton;
GroupBox1: TGroupBox;
Button3: TButton;
Button4: TButton;
GroupBox2: TGroupBox;
Button6: TButton;
Button2: TButton;
Button5: TButton;
Button7: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
ColorDialog1: TColorDialog;
FontDialog1: TFontDialog;
Label4: TLabel;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit5, editor, Unit7, Unit4;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.show;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
form3.show;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
form5.show;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
mainform.show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form7.show;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
if fontdialog1.Execute then
begin
form1.Font:= fontdialog1.Font;
form2.Font:= fontdialog1.Font;
form3.Font:= fontdialog1.Font;
form4.Font:= fontdialog1.Font;
form5.Font:= fontdialog1.Font;
form7.Font:= fontdialog1.Font;
end;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
if colordialog1.Execute then
begin
form1.Color := colordialog1.Color;
form2.Color := colordialog1.Color;
form3.Color := colordialog1.Color;
form4.Color := colordialog1.Color;
form5.Color := colordialog1.Color;
form7.Color := colordialog1.Color;
end;
end;
end.
حال به سراغ طراحی فرم های دیگر برنامه می رویم
مانند شکل یک تیبل و یک کوری و یک دیتا ست و یک کانکشن بر روی صقحه می گذاریم و تنظیمات آنها را به فایل مربوطه در اکسس مربوط می نماییم و سه دکمه و 4 label , و 4 Edit box نیز قرار می دهیم کد این فرم برای سه دکمه به صورت زیر است که کد مهم آن کد دکمه ذخیره می باشد.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, DBCtrls, Mask, StdCtrls, ComCtrls, ExtCtrls, ToolWin,
DBTables;
type
TForm2 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
MaskEdit1: TMaskEdit;
Label4: TLabel;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
dabir: TADOTable;
RichEdit1: TRichEdit;
Splitter1: TSplitter;
Button1: TButton;
Button2: TButton;
Edit3: TEdit;
aq: TADOQuery;
Label5: TLabel;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
ll:string;
oo:boolean;
implementation
uses editor;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var
e1,e2,e3,e4:boolean;
begin
e1 := false;
e2 := false;
e3 := false;
e4 := false;
if edit1.Text = '' then e1:=true;
if edit2.Text = '' then e2:=true;
if edit3.Text = '' then e4:=true;
if maskedit1.Text = '1384/__/__' then e3:=true;
if e1 or e2 or e3 or e4 then
showmessage('اطلاعات کامل نیست')
else
begin
ll := 'c:\dabir_khane\nameha\'+ edit3.Text;
aq.Active :=false;
aq.SQL.Clear ;
aq.SQL.Add ('select * from dabir where nno='''+edit3.Text+'''');
aq.Active :=true;
if aq.IsEmpty=true then
begin
dabir.Insert ;
dabir.FieldByName ('name').asstring:=edit1.text;
dabir.FieldByName ('subject').asstring:=edit2.text;
dabir.FieldByName ('date').asstring:=maskedit1.text;
dabir.FieldByName ('nno').asstring:=edit3.text;
dabir.FieldByName ('file').asstring:=ll;
dabir.Post;
showmessage('اطلاعات ثبت شد');
richedit1.Lines.SaveToFile(ll);
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
maskedit1.Text :='';
end
else
begin
showmessage('اطلاعات تکراری است');
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
maskedit1.Text :='';
end;
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
adoconnection1.Connected:=false;
form2.Close;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
if edit3.Text = '' then showmessage ('ابتدا شماره نامه را وارد کنید') else
begin
oo:=true;
ll := 'c:\dabir_khane\nameha\'+ edit3.Text;
RichEdit1.lines.savetofile(ll);
mainform.show;
end;
end;
end.
فرم بعدی فرم ویرایش نامه ها می باشد با شکل زیر
ابزار های مورد نیاز این فرم برای ساخت عبارتند از
یک db navigation یک dbgrid یک دیتا سورس یک کوری یک دیتا ست و یک Ado Tabel که نامه های را که تایپ شده اند را نشان می دهد و ویرایش می کند که لازم برای طراحی این فرم به صورت زیر است :
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB;
type
TForm3 = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
ADODataSet1: TADODataSet;
procedure DBGrid1CellClick(Column: TColumn);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
jj,ss:string;
implementation
uses Unit4;
{$R *.dfm}
procedure TForm3.DBGrid1CellClick(Column: TColumn);
begin
ss:=dbgrid1.SelectedField.AsString;
with ADODataSet1 do begin
CommandType := cmdText;
CommandText := 'select * from dabir where nno='''+ss+'''';
Open;
end;
if ADODataSet1.IsEmpty=true then
begin
showmessage ('برای ویرایش متن بر روی شماره نامه کلیک کنید');
ADODataSet1.Refresh;
ADODataSet1.Active:=false;
end
else if ADODataSet1.IsEmpty= false then
begin
jj:= adodataset1.Fields.Fields[4].AsString;
ADODataSet1.Refresh;
ADODataSet1.Active:=false;
form4.show;
end;
end;