You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

421 lines
12 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
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;
DBComboBox1: TDBComboBox;
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_letterBeforeEdit(DataSet: TDataSet);
procedure t_op_letter_detailBeforeEdit(DataSet: TDataSet);
procedure t_op_letter_detailBeforeInsert(DataSet: TDataSet);
procedure t_op_letter_free_detailBeforeInsert(DataSet: TDataSet);
procedure t_op_letter_free_detailBeforeEdit(DataSet: TDataSet);
procedure DBComboBox1DropDown(Sender: TObject);
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 (t_op_letter.DataSource.DataSet.FieldByName('ҵ<><D2B5>״̬').AsString='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then
begin
showmessage('ҵ<><D2B5><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3><EFBFBD>');
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['HEAD_TO']:=t_op_letter.DataSource.DataSet['ί<>е<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;
DBComboBox1.Width:=DBEdit1.Width-20;
Button5.Left:=DBComboBox1.left+DBComboBox1.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;
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_letterBeforeEdit(DataSet: TDataSet);
begin
if (t_op_letter.DataSource.DataSet.FieldByName('ҵ<><D2B5>״̬').AsString='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then
begin
showmessage('ҵ<><D2B5><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3><EFBFBD>');
abort;
end;
end;
procedure Tfra_op_letter_free.t_op_letter_detailBeforeEdit(
DataSet: TDataSet);
begin
if (t_op_letter.DataSource.DataSet.FieldByName('ҵ<><D2B5>״̬').AsString='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then
begin
showmessage('ҵ<><D2B5><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3><EFBFBD>');
abort;
end;
end;
procedure Tfra_op_letter_free.t_op_letter_detailBeforeInsert(
DataSet: TDataSet);
begin
if (t_op_letter.DataSource.DataSet.FieldByName('ҵ<><D2B5>״̬').AsString='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then
begin
showmessage('ҵ<><D2B5><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3><EFBFBD>');
abort;
end;
end;
procedure Tfra_op_letter_free.t_op_letter_free_detailBeforeInsert(
DataSet: TDataSet);
begin
if (t_op_letter.DataSource.DataSet.FieldByName('ҵ<><D2B5>״̬').AsString='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then
begin
showmessage('ҵ<><D2B5><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3><EFBFBD>');
abort;
end;
end;
procedure Tfra_op_letter_free.t_op_letter_free_detailBeforeEdit(
DataSet: TDataSet);
begin
if (t_op_letter.DataSource.DataSet.FieldByName('ҵ<><D2B5>״̬').AsString='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then
begin
showmessage('ҵ<><D2B5><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3><EFBFBD>');
abort;
end;
end;
procedure Tfra_op_letter_free.DBComboBox1DropDown(Sender: TObject);
var aAdoQuery:TAdoQuery;
begin
aAdoQuery:=createAdoQuery;
with aAdoQuery do try
Close;Sql.Clear;
Sql.Add('Select <20><><EFBFBD><EFBFBD> From t_crm_client_linkman');
Sql.Add('Where <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>=:<3A>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>');
Parameters.ParamByName('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>').Value:=t_op_letter.DataSource.DataSet.FieldByName('ί<>е<EFBFBD>λ').AsString;
Open;First;
DBComboBox1.Clear;
while not eof do begin
DBComboBox1.Items.Add(FieldByName('<27><><EFBFBD><EFBFBD>').AsString);
Next;
end;
finally
FreeAndNil(aAdoQuery);
end;
end;
end.