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.

391 lines
10 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_sate;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, bsSkinCtrls, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, DB,
ADODB, dxDBTLCl, dxGrClms, bsdbctrls,
RxLookup, StdCtrls, Mask, DBCtrls, wwdbedit, Wwdotdot, Wwdbcomb, Menus,
XPMenu, ExtCtrls;
type
Tfra_op_state = class(TFrame)
t_op_state1: TDataSource;
t_op_state: TADOQuery;
Panel1: TPanel;
bsSkinButton1: TbsSkinButton;
bsSkinButton2: TbsSkinButton;
bsSkinButton4: TbsSkinButton;
bsSkinButton3: TbsSkinButton;
edit_state: TEdit;
PopupMenu1: TPopupMenu;
bsSkinButton11: TbsSkinButton;
N1: TMenuItem;
bsSkinButton5: TbsSkinButton;
dxDBGrid1: TdxDBGrid;
dxDBGrid1Column1: TdxDBGridMaskColumn;
dxDBGrid1Column2: TdxDBGridCheckColumn;
dxDBGrid1Column3: TdxDBGridDateColumn;
dxDBGrid1Column4: TdxDBGridMaskColumn;
dxDBGrid1Column5: TdxDBGridMaskColumn;
dxDBGrid1Column6: TdxDBGridMaskColumn;
dxDBGrid1Column7: TdxDBGridDateColumn;
bsSkinButton6: TbsSkinButton;
bsSkinButton7: TbsSkinButton;
dxDBGrid1Column8: TdxDBGridColumn;
procedure t_op_stateAfterInsert(DataSet: TDataSet);
procedure bsSkinButton1Click(Sender: TObject);
procedure bsSkinButton2Click(Sender: TObject);
procedure bsSkinButton3Click(Sender: TObject);
procedure t_op_stateBeforePost(DataSet: TDataSet);
procedure Panel1Resize(Sender: TObject);
procedure t_op_stateBeforeDelete(DataSet: TDataSet);
procedure add_state_menu(n1:TPopupMenu);
procedure add_state(Sender:TObject);
procedure t_op_stateBeforeInsert(DataSet: TDataSet);
procedure FrameEnter(Sender: TObject);
procedure add_all(Sender:TObject);
procedure bsSkinButton11Click(Sender: TObject);
procedure bsSkinButton7Click(Sender: TObject);
procedure bsSkinButton6Click(Sender: TObject);
procedure dxDBGrid1Column1CustomDraw(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxDBTreeListColumn;
const AText: String; AFont: TFont; var AColor: TColor; ASelected,
AFocused: Boolean; var ADone: Boolean);
procedure bsSkinButton5Click(Sender: TObject);
procedure bsSkinButton4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
uses u_main, u_data_share, my_sys_function, u_op_state_add;
{$R *.dfm}
procedure Tfra_op_state.add_state(Sender:TObject);
var
menu_skins:Tmenuitem;
begin
menu_skins:= Sender as Tmenuitem;
try
modify_all:=true;
t_op_state.Append;
t_op_state['ҵ<><D2B5>״̬']:=menu_skins.caption;
try
t_op_state['˳<><CBB3>']:=strtoint(menu_skins.Hint);
except
t_op_state['˳<><CBB3>']:=0;
end;
t_op_state.post;
finally
modify_all:=false;
end;
end;
procedure Tfra_op_state.add_all(Sender:TObject);
var
menu_skins:Tmenuitem;
begin
menu_skins:= Sender as Tmenuitem;
try
modify_all:=true;
frm_data_share.t_code_state.first;
while not frm_data_share.t_code_state.eof do
begin
t_op_state.Append;
t_op_state['ҵ<><D2B5>״̬']:=frm_data_share.t_code_state.fieldbyname('ҵ<><D2B5>״̬').asstring;
t_op_state['˳<><CBB3>']:=frm_data_share.t_code_state.fieldbyname('˳<><CBB3>').asinteger;
t_op_state.post;
frm_data_share.t_code_state.next;
end;
finally
modify_all:=false;
end;
end;
procedure Tfra_op_state.add_state_menu(n1:TPopupMenu);
var
nn:Tmenuitem;
i:integer;
begin
nn:=Tmenuitem.Create(application);
with nn do
begin
caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ ';
onclick:=add_all;
n1.Items.Add(nn);
end;
i:=0;
frm_data_share.t_code_state.first;
while not frm_data_share.t_code_state.eof do
begin
i:=i+1;
nn:=Tmenuitem.Create(application);
with nn do
begin
caption:='-';
n1.Items.Add(nn);
end;
nn:=Tmenuitem.Create(application);
with nn do
begin
caption:=frm_data_share.t_code_state.fieldbyname('ҵ<><D2B5>״̬').asstring;
nn.Hint:=frm_data_share.t_code_state.fieldbyname('˳<><CBB3>').asstring;
onclick:=add_state;
n1.Items.Add(nn);
end;
frm_data_share.t_code_state.next;
end;
end;
procedure Tfra_op_state.t_op_stateAfterInsert(DataSet: TDataSet);
begin
t_op_state['<27><><EFBFBD><EFBFBD>']:=t_op_state.DataSource.DataSet['<27><><EFBFBD><EFBFBD>'];
t_op_state['¼<><C2BC><EFBFBD><EFBFBD>']:=employee;
t_op_state['¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=date;
end;
procedure Tfra_op_state.bsSkinButton1Click(Sender: TObject);
var
Pnt:Tpoint;
begin
Pnt:=bsSkinButton1.ClientToScreen(Point(0,bsSkinButton1.Height));
PopupMenu1.Popup(Pnt.x,Pnt.y);
end;
procedure Tfra_op_state.bsSkinButton2Click(Sender: TObject);
begin
table_post(t_op_state);
end;
procedure Tfra_op_state.bsSkinButton3Click(Sender: TObject);
begin
table_cancel(t_op_state);
end;
procedure Tfra_op_state.t_op_stateBeforePost(DataSet: TDataSet);
begin
table_before_post(t_op_state,'ҵ<><D2B5>״̬');
end;
procedure Tfra_op_state.Panel1Resize(Sender: TObject);
var
i:integer;
begin
i:=round(Panel1.Width/8);
bsSkinButton1.Width:=i;
bsSkinButton2.Width:=i;
bsSkinButton4.Width:=i;
bsSkinButton11.Width:=i;
bsSkinButton5.Width:=i;
bsSkinButton7.Width:=i;
bsSkinButton6.Width:=i;
end;
procedure Tfra_op_state.t_op_stateBeforeDelete(DataSet: TDataSet);
begin
if t_op_state.FieldByName('<27>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>').asboolean then
begin
showmessage('ҵ<><D2B5>״̬<D7B4>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
abort;
end;
end;
procedure Tfra_op_state.t_op_stateBeforeInsert(DataSet: TDataSet);
begin
if t_op_state.DataSource.DataSet.State=dsinsert then
t_op_state.DataSource.DataSet.post;
if (if_open('776')) then begin
showmessage('<27><>Ʊҵ<C6B1><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8>');
abort;
end;
if not modify_all then
begin
abort;
end;
end;
procedure Tfra_op_state.FrameEnter(Sender: TObject);
begin
case strtoint(edit_state.text) of
1:
begin
frm_data_share.t_code_state.Filtered:=false;
frm_data_share.t_code_state.Filter:='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='+''''+'<27><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>'+'''';
frm_data_share.t_code_state.Filtered:=true;
end;
2:
begin
frm_data_share.t_code_state.Filtered:=false;
frm_data_share.t_code_state.Filter:='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='+''''+'<27><><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>'+'''';
frm_data_share.t_code_state.Filtered:=true;
end;
3:
begin
frm_data_share.t_code_state.Filtered:=false;
frm_data_share.t_code_state.Filter:='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='+''''+'<27><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>'+'''';
frm_data_share.t_code_state.Filtered:=true;
end;
4:
begin
frm_data_share.t_code_state.Filtered:=false;
frm_data_share.t_code_state.Filter:='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='+''''+'<27><><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>'+'''';
frm_data_share.t_code_state.Filtered:=true;
end;
end;
PopupMenu1.Items.Clear;
add_state_menu(PopupMenu1);
end;
procedure Tfra_op_state.bsSkinButton11Click(Sender: TObject);
var
str:string;
begin
str:=t_op_state.fieldbyname('ҵ<><D2B5>״̬').asstring;
if t_op_state.IsEmpty then
exit;
table_post(t_op_state);
try
modify_all:=true;
if not (t_op_state.DataSource.DataSet['ҵ<><D2B5>״̬']='<27><>׼ɾ<D7BC><C9BE>') then begin
t_op_state.DataSource.DataSet.edit;
t_op_state.DataSource.DataSet['ҵ<><D2B5>״̬']:=str;
t_op_state.DataSource.DataSet.Post;
end;
finally
modify_all:=false;
end;
end;
procedure Tfra_op_state.bsSkinButton7Click(Sender: TObject);
begin
if t_op_state.isempty then
exit;
if not t_op_state.FieldByName('<27>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>').asboolean then
begin
t_op_state.edit;
t_op_state['<27>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>']:=1;
t_op_state['<27><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>']:=date;
t_op_state['<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=employee;
t_op_state.post;
end;
end;
procedure Tfra_op_state.bsSkinButton6Click(Sender: TObject);
begin
if t_op_state.isempty then
exit;
if t_op_state.FieldByName('<27>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>').asboolean then
begin
t_op_state.edit;
t_op_state['<27>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>']:=0;
t_op_state['<27><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>']:=null;
t_op_state['<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=null;
t_op_state.post;
end;
end;
procedure Tfra_op_state.dxDBGrid1Column1CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
case strtoint(edit_state.text) of
1:
begin
AColor:=dxgrid_color('<27><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>',ANode.Strings[dxDBGrid1Column1.Index]);
end;
2:
begin
AColor:=dxgrid_color('<27><><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>',ANode.Strings[dxDBGrid1Column1.Index]);
end;
3:
begin
AColor:=dxgrid_color('<27><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>',ANode.Strings[dxDBGrid1Column1.Index]);
end;
4:
begin
AColor:=dxgrid_color('<27><><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>',ANode.Strings[dxDBGrid1Column1.Index]);
end;
end;
AFont.Color:=clblack;
end;
procedure Tfra_op_state.bsSkinButton5Click(Sender: TObject);
begin
if t_op_state.DataSource.DataSet=nil then
exit;
if t_op_state.DataSource.DataSet.state=dsinsert then
t_op_state.DataSource.DataSet.post;
try
frm_op_state_add:=tfrm_op_state_add.Create (self);
case strtoint(edit_state.text) of
1:
begin
frm_data_share.t_code_state_project.Filtered:=false;
frm_data_share.t_code_state_project.requery;
frm_data_share.t_code_state_project.Filter:='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='+''''+'<27><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>'+'''';
frm_data_share.t_code_state_project.Filtered:=true;
end;
2:
begin
frm_data_share.t_code_state_project.Filtered:=false;
frm_data_share.t_code_state_project.requery;
frm_data_share.t_code_state_project.Filter:='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='+''''+'<27><><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>'+'''';
frm_data_share.t_code_state_project.Filtered:=true;
end;
3:
begin
frm_data_share.t_code_state_project.Filtered:=false;
frm_data_share.t_code_state_project.requery;
frm_data_share.t_code_state_project.Filter:='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='+''''+'<27><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>'+'''';
frm_data_share.t_code_state_project.Filtered:=true;
end;
4:
begin
frm_data_share.t_code_state_project.Filtered:=false;
frm_data_share.t_code_state_project.requery;
frm_data_share.t_code_state_project.Filter:='ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='+''''+'<27><><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>'+'''';
frm_data_share.t_code_state_project.Filtered:=true;
end;
end;
frm_op_state_add.DataSource1.DataSet:=t_op_state;
frm_op_state_add.ShowModal;
finally
frm_op_state_add.Free;
frm_op_state_add:=nil;
end;
end;
procedure Tfra_op_state.bsSkinButton4Click(Sender: TObject);
begin
if t_op_state.isempty then
exit;
if application.MessageBox('<27><>ȷ<EFBFBD><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?','<27><><EFBFBD><EFBFBD>:',MB_OKCANCEL)<>IDOK then
exit;
if dxDBGrid1.SelectedCount>=1 then
begin
while dxDBGrid1.SelectedCount>0 do
begin
t_op_state.GotoBookmark(pointer(dxDBGrid1.selectedrows[0]));
t_op_state.Delete;
end;
end
else
begin
t_op_state.Delete;
end;
end;
end.