|
|
unit u_op_letter_free;
|
|
|
|
|
|
interface
|
|
|
|
|
|
uses
|
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
|
DB, ADODB, dxExEdtr, dxDBGrid, dxTL, dxDBCtrl, dxCntner, bsSkinCtrls,
|
|
|
StdCtrls, Mask, DBCtrls, ComCtrls, bsSkinTabs, Menus, XPMenu;
|
|
|
|
|
|
type
|
|
|
Tfra_op_letter_free = class(TFrame)
|
|
|
t_op_letter: TADOQuery;
|
|
|
t_op_letter1: TDataSource;
|
|
|
dxDBGrid1: TdxDBGrid;
|
|
|
dxDBGrid1Column1: TdxDBGridMaskColumn;
|
|
|
dxDBGrid1HEAD_TO: TdxDBGridMaskColumn;
|
|
|
dxDBGrid1Column4: TdxDBGridColumn;
|
|
|
dxDBGrid1Column5: TdxDBGridColumn;
|
|
|
bsSkinPanel1: TbsSkinPanel;
|
|
|
bsSkinPanel2: TbsSkinPanel;
|
|
|
bsSkinButton1: TbsSkinButton;
|
|
|
bsSkinButton2: TbsSkinButton;
|
|
|
bsSkinButton4: TbsSkinButton;
|
|
|
bsSkinButton3: TbsSkinButton;
|
|
|
bsSkinButton9: TbsSkinButton;
|
|
|
bsSkinPanel3: TbsSkinPanel;
|
|
|
Label1: TLabel;
|
|
|
Label2: TLabel;
|
|
|
DBEdit1: TDBEdit;
|
|
|
DBEdit2: TDBEdit;
|
|
|
Button5: TButton;
|
|
|
t_op_letter_free_detail: TADOQuery;
|
|
|
t_op_letter_free1: TDataSource;
|
|
|
bsSkinPageControl1: TbsSkinPageControl;
|
|
|
t_op_letter_detail: TADOQuery;
|
|
|
t_op_letter_detail1: TDataSource;
|
|
|
PopupMenu1: TPopupMenu;
|
|
|
N26: TMenuItem;
|
|
|
XPMenu1: TXPMenu;
|
|
|
op_type: TEdit;
|
|
|
DBEdit3: TDBEdit;
|
|
|
t_op_hd: TADOQuery;
|
|
|
t_op_hd1: TDataSource;
|
|
|
procedure bsSkinPanel1Resize(Sender: TObject);
|
|
|
procedure bsSkinButton1Click(Sender: TObject);
|
|
|
procedure t_op_letterBeforeInsert(DataSet: TDataSet);
|
|
|
procedure bsSkinButton2Click(Sender: TObject);
|
|
|
procedure bsSkinButton4Click(Sender: TObject);
|
|
|
procedure bsSkinButton3Click(Sender: TObject);
|
|
|
procedure add_letter(Sender:TObject);
|
|
|
procedure t_op_letterAfterInsert(DataSet: TDataSet);
|
|
|
procedure DBEdit3Change(Sender: TObject);
|
|
|
procedure bsSkinPanel3Resize(Sender: TObject);
|
|
|
procedure bsSkinPanel2Resize(Sender: TObject);
|
|
|
procedure Button5Click(Sender: TObject);
|
|
|
procedure bsSkinButton9Click(Sender: TObject);
|
|
|
procedure N26Click(Sender: TObject);
|
|
|
procedure t_op_letter_detailAfterInsert(DataSet: TDataSet);
|
|
|
procedure t_op_letter_detailBeforeInsert(DataSet: TDataSet);
|
|
|
procedure t_op_letter_detailBeforeEdit(DataSet: TDataSet);
|
|
|
procedure t_op_letterBeforeEdit(DataSet: TDataSet);
|
|
|
private
|
|
|
{ Private declarations }
|
|
|
public
|
|
|
{ Public declarations }
|
|
|
end;
|
|
|
|
|
|
implementation
|
|
|
|
|
|
uses u_main, u_data_share, u_code_send_head, my_sys_function,
|
|
|
u_op_letter_free_his;
|
|
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
procedure Tfra_op_letter_free.add_letter(Sender:TObject);
|
|
|
var
|
|
|
menu_skins:Tmenuitem;
|
|
|
begin
|
|
|
menu_skins:= Sender as Tmenuitem;
|
|
|
try
|
|
|
modify_all:=true;
|
|
|
t_op_letter.Insert;
|
|
|
t_op_letter['<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=menu_skins.Caption;
|
|
|
t_op_letter['LF']:=menu_skins.Hint;
|
|
|
t_op_letter.Post;
|
|
|
finally
|
|
|
modify_all:=false;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.bsSkinPanel1Resize(Sender: TObject);
|
|
|
begin
|
|
|
bsSkinPageControl1.Height:=bsSkinPanel1.Height-bsSkinPanel2.Height-bsSkinPanel3.Height+18;
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.bsSkinButton1Click(Sender: TObject);
|
|
|
var
|
|
|
Pnt:Tpoint;
|
|
|
nn:Tmenuitem;
|
|
|
i:integer;
|
|
|
begin
|
|
|
if N26.Hint<>'do' then
|
|
|
begin
|
|
|
i:=0;
|
|
|
N26.Hint:='do';
|
|
|
frm_data_share.t_op_letter_free.Filtered:=false;
|
|
|
frm_data_share.t_op_letter_free.requery;
|
|
|
frm_data_share.t_op_letter_free.Filter:='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='+''''+op_type.text+'''';
|
|
|
frm_data_share.t_op_letter_free.Filtered:=true;
|
|
|
|
|
|
while not frm_data_share.t_op_letter_free.eof do
|
|
|
begin
|
|
|
i:=i+1;
|
|
|
nn:=Tmenuitem.Create(application);
|
|
|
with nn do
|
|
|
begin
|
|
|
caption:='-';
|
|
|
PopupMenu1.Items.Add(nn);
|
|
|
end;
|
|
|
|
|
|
nn:=Tmenuitem.Create(application);
|
|
|
with nn do
|
|
|
begin
|
|
|
caption:=frm_data_share.t_op_letter_free.fieldbyname('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').asstring;
|
|
|
nn.Hint:=frm_data_share.t_op_letter_free.fieldbyname('LF').asstring;
|
|
|
onclick:=add_letter;
|
|
|
PopupMenu1.Items.Add(nn);
|
|
|
end;
|
|
|
frm_data_share.t_op_letter_free.next;
|
|
|
end;
|
|
|
end;
|
|
|
Pnt:=bsSkinButton1.ClientToScreen(Point(0,bsSkinButton1.Height));
|
|
|
PopupMenu1.Popup(Pnt.x,Pnt.y);
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.t_op_letterBeforeInsert(DataSet: TDataSet);
|
|
|
begin
|
|
|
if (if_open('776')) then begin
|
|
|
showmessage('<27><>Ʊҵ<C6B1><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<DEB8>');
|
|
|
abort;
|
|
|
end;
|
|
|
if t_op_letter.DataSource.DataSet.State=dsinsert then
|
|
|
t_op_letter.DataSource.DataSet.post;
|
|
|
IF modify_all=false THEN
|
|
|
ABORT;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.bsSkinButton2Click(Sender: TObject);
|
|
|
begin
|
|
|
if (t_op_letter.State=dsinsert)or(t_op_letter.State=dsedit) then
|
|
|
t_op_letter.post;
|
|
|
if (t_op_letter_detail.State=dsinsert)or(t_op_letter_detail.State=dsedit) then
|
|
|
t_op_letter_detail.post;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.bsSkinButton4Click(Sender: TObject);
|
|
|
begin
|
|
|
if t_op_letter.IsEmpty then
|
|
|
exit;
|
|
|
if application.MessageBox('<27><>ȷ<EFBFBD><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?','<27><><EFBFBD><EFBFBD>:',MB_OKCANCEL)=IDOK then
|
|
|
begin
|
|
|
if not t_op_letter_detail.IsEmpty then
|
|
|
t_op_letter_detail.Delete;
|
|
|
t_op_letter.delete;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.bsSkinButton3Click(Sender: TObject);
|
|
|
begin
|
|
|
if (t_op_letter_detail.State=dsinsert)or(t_op_letter_detail.State=dsedit) then
|
|
|
t_op_letter_detail.cancel;
|
|
|
if (t_op_letter.State=dsinsert)or(t_op_letter.State=dsedit) then
|
|
|
t_op_letter.cancel;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.t_op_letterAfterInsert(DataSet: TDataSet);
|
|
|
begin
|
|
|
t_op_letter['<27><><EFBFBD><EFBFBD>']:=t_op_letter.DataSource.DataSet['<27><><EFBFBD><EFBFBD>'];
|
|
|
t_op_letter['ǩ<><C7A9><EFBFBD><EFBFBD>']:=employee;
|
|
|
t_op_letter['ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=date;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.DBEdit3Change(Sender: TObject);
|
|
|
var
|
|
|
i:integer;
|
|
|
TabSheet: TbsSkinTabSheet;
|
|
|
lb: TLabel;
|
|
|
ed: TDBEdit;
|
|
|
mm: TDBMemo;
|
|
|
begin
|
|
|
for i:=0 to bsSkinPageControl1.PageCount -1 do
|
|
|
begin
|
|
|
bsSkinPageControl1.Pages[i].free;
|
|
|
end;
|
|
|
if t_op_letter.IsEmpty then
|
|
|
exit;
|
|
|
if DBEdit3.text=''then
|
|
|
exit;
|
|
|
TabSheet:=TbsSkinTabSheet.create(self);
|
|
|
TabSheet.PageControl:=bsSkinPageControl1;
|
|
|
bsSkinPageControl1.ActivePageIndex:=0;
|
|
|
t_op_letter_detail.close;
|
|
|
t_op_letter_detail.SQL.Clear;
|
|
|
t_op_letter_detail.SQL.Add('select * from t_op_letter_free'+t_op_letter.fieldbyname('LF').asstring
|
|
|
+' where LE_ID=:LE_ID');
|
|
|
t_op_letter_detail.Open;
|
|
|
t_op_letter_free_detail.first;
|
|
|
i:=0;
|
|
|
while not t_op_letter_free_detail.eof do
|
|
|
begin
|
|
|
if t_op_letter_free_detail.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').asstring='<27><>' then
|
|
|
begin
|
|
|
lb:=TLabel.create(self);
|
|
|
lb.Parent:=bsSkinPageControl1.Pages[0];
|
|
|
lb.Caption:=t_op_letter_free_detail.FieldByName('<27>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>').asstring;
|
|
|
lb.Transparent:=true;
|
|
|
lb.Left:=76-lb.Width;
|
|
|
lb.top:=26*i+7;//72
|
|
|
|
|
|
ed:=TDBEdit.create(self);
|
|
|
ed.Parent:=bsSkinPageControl1.Pages[0];
|
|
|
ed.DataSource:=t_op_letter_detail1;
|
|
|
ed.DataField:=t_op_letter_free_detail.FieldByName('<27>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>').asstring;
|
|
|
ed.Left:=78;
|
|
|
ed.top:=26*i+4;
|
|
|
ed.Width:=bsSkinPageControl1.Width-85;
|
|
|
i:=i+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
lb:=TLabel.create(self);
|
|
|
lb.Parent:=bsSkinPageControl1.Pages[0];
|
|
|
lb.Caption:=t_op_letter_free_detail.FieldByName('<27>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>').asstring;
|
|
|
lb.Transparent:=true;
|
|
|
lb.Left:=76-lb.Width;
|
|
|
lb.top:=26*i+7;//72
|
|
|
|
|
|
mm:=TDBMemo.create(self);
|
|
|
mm.Parent:=bsSkinPageControl1.Pages[0];
|
|
|
mm.DataSource:=t_op_letter_detail1;
|
|
|
mm.DataField:=t_op_letter_free_detail.FieldByName('<27>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>').asstring;
|
|
|
mm.Left:=78;
|
|
|
mm.top:=26*i+4;
|
|
|
mm.Width:=bsSkinPageControl1.Width-85;
|
|
|
mm.Height:=26*3-6;
|
|
|
i:=i+3;
|
|
|
end;
|
|
|
t_op_letter_free_detail.next;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.bsSkinPanel3Resize(Sender: TObject);
|
|
|
begin
|
|
|
DBEdit1.Width:=bsSkinPanel3.Width-DBEdit1.left-6;
|
|
|
DBEdit2.Width:=DBEdit1.Width-20;
|
|
|
Button5.Left:=DBEdit2.left+DBEdit2.Width;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.bsSkinPanel2Resize(Sender: TObject);
|
|
|
var
|
|
|
i:integer;
|
|
|
begin
|
|
|
i:=round(bsSkinPanel2.width/5);
|
|
|
bsSkinButton1.width:=i;
|
|
|
bsSkinButton2.width:=i;
|
|
|
bsSkinButton4.width:=i;
|
|
|
bsSkinButton3.width:=i;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.Button5Click(Sender: TObject);
|
|
|
begin
|
|
|
if t_op_letter.isempty then
|
|
|
exit;
|
|
|
if not if_open('144') then
|
|
|
begin
|
|
|
showmessage('<27>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>д<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>Ȩ<EFBFBD>ޣ<EFBFBD>');
|
|
|
exit;
|
|
|
end;
|
|
|
try
|
|
|
frm_code_send_head:=tfrm_code_send_head.Create (self);
|
|
|
code_send_head_num:=3;
|
|
|
frm_code_send_head.DataSource1.Enabled:=false;
|
|
|
frm_code_send_head.DataSource1.DataSet:=t_op_letter;
|
|
|
frm_code_send_head.DataSource1.Enabled:=true;
|
|
|
frm_code_send_head.ShowModal;
|
|
|
finally
|
|
|
frm_code_send_head.Free;
|
|
|
frm_code_send_head:=nil;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.bsSkinButton9Click(Sender: TObject);
|
|
|
var
|
|
|
book1:Tbookmark;
|
|
|
|
|
|
begin
|
|
|
if t_op_letter.IsEmpty then
|
|
|
exit;
|
|
|
if (t_op_letter.State=dsinsert)or(t_op_letter.State=dsedit) then
|
|
|
t_op_letter.post;
|
|
|
if (t_op_letter_detail.State=dsinsert)or(t_op_letter_detail.State=dsedit) then
|
|
|
t_op_letter_detail.post;
|
|
|
|
|
|
|
|
|
try
|
|
|
book1:=t_op_letter.GetBookmark;
|
|
|
t_op_letter.DisableControls;
|
|
|
if op_type.text='<27><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>'then begin
|
|
|
t_op_hd.Close;
|
|
|
|
|
|
t_op_hd.Open;
|
|
|
sys_print(op_type.text+'<27><><EFBFBD><EFBFBD>'+t_op_letter.fieldbyname('LF').asstring,2,t_op_letter.DataSource,t_op_letter1,t_op_letter_detail1,t_op_hd1,nil,nil,nil,nil,nil,nil,nil)
|
|
|
END else
|
|
|
sys_print(op_type.text+'<27><><EFBFBD><EFBFBD>'+t_op_letter.fieldbyname('LF').asstring,2,t_op_letter.DataSource,t_op_letter1,t_op_letter_detail1,nil,nil,nil,nil,nil,nil,nil,nil);
|
|
|
|
|
|
finally
|
|
|
t_op_letter.GotoBookmark(book1);
|
|
|
t_op_letter.EnableControls;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.N26Click(Sender: TObject);
|
|
|
begin
|
|
|
try
|
|
|
modify_all:=true;
|
|
|
if not assigned(frm_op_letter_free_his) then
|
|
|
frm_op_letter_free_his:=tfrm_op_letter_free_his.Create (self);
|
|
|
if op_type.text='<27><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>'then
|
|
|
frm_op_letter_free_his.op_type.text:='1';
|
|
|
if op_type.text='<27><><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>'then
|
|
|
frm_op_letter_free_his.op_type.text:='2';
|
|
|
if op_type.text='<27><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>'then
|
|
|
frm_op_letter_free_his.op_type.text:='3';
|
|
|
if op_type.text='<27><><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>'then
|
|
|
frm_op_letter_free_his.op_type.text:='4';
|
|
|
frm_op_letter_free_his.t_do_letter.Enabled:=false;
|
|
|
frm_op_letter_free_his.t_do_letter.DataSet:=t_op_letter;
|
|
|
frm_op_letter_free_his.t_do_letter.Enabled:=true;
|
|
|
frm_op_letter_free_his.t_do_letter_detail.Enabled:=false;
|
|
|
frm_op_letter_free_his.t_do_letter_detail.DataSet:=t_op_letter_detail;
|
|
|
frm_op_letter_free_his.t_do_letter_detail.Enabled:=true;
|
|
|
frm_op_letter_free_his.ShowModal;
|
|
|
finally
|
|
|
frm_op_letter_free_his.free;
|
|
|
frm_op_letter_free_his:=nil;
|
|
|
modify_all:=false;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.t_op_letter_detailAfterInsert(
|
|
|
DataSet: TDataSet);
|
|
|
var
|
|
|
aQuery:TADOQuery;
|
|
|
begin
|
|
|
{
|
|
|
if t_op_letter.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString='PRE-ALERT' then begin
|
|
|
if t_op_letter_detail.FindField('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>')<>nil then begin
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('Select <20><><EFBFBD>ᵥ<EFBFBD><E1B5A5> from ');
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
}
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.t_op_letter_detailBeforeInsert(
|
|
|
DataSet: TDataSet);
|
|
|
begin
|
|
|
if (if_open('776')) then begin
|
|
|
showmessage('<27><>Ʊҵ<C6B1><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<DEB8>');
|
|
|
abort;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.t_op_letter_detailBeforeEdit(
|
|
|
DataSet: TDataSet);
|
|
|
begin
|
|
|
if (if_open('776')) then begin
|
|
|
showmessage('<27><>Ʊҵ<C6B1><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<DEB8>');
|
|
|
abort;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfra_op_letter_free.t_op_letterBeforeEdit(DataSet: TDataSet);
|
|
|
begin
|
|
|
if (if_open('776')) then begin
|
|
|
showmessage('<27><>Ʊҵ<C6B1><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<DEB8>');
|
|
|
abort;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
end.
|