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.

488 lines
14 KiB
Plaintext

11 months ago
unit u_op_seae_teshushen;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, XPMenu, Menus, dxDBTLCl, dxGrClms, dxDBCtrl, dxDBGrid,
dxTL, dxCntner, DB, ADODB, Mask, wwdbedit, Wwdotdot, Wwdbcomb, wwdblook,
RxLookup, wwdbdatetimepicker, StdCtrls, bsSkinCtrls, ExtCtrls, ComCtrls,
bsSkinTabs, DBCtrls,DateUtils, DBCtrlsEh, DBLookupEh;
type
Tfrm_op_seae_teshushenhe = class(TForm)
t_op_seae: TADOQuery;
t_op_seae1: TDataSource;
bsSkinButton13: TbsSkinButton;
bsSkinButton1: TbsSkinButton;
PopupMenu2: TPopupMenu;
N16: TMenuItem;
XPMenu1: TXPMenu;
t_op_seaesel: TADOQuery;
ds_op_seaesel1: TDataSource;
pm1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
bsSkinPanel2: TbsSkinPanel;
bsSkinPanel3: TbsSkinPanel;
bsSkinButton3: TbsSkinButton;
bsSkinButton7: TbsSkinButton;
bsSkinButton8: TbsSkinButton;
t_op_bill: TADOQuery;
ds_op_bill1: TDataSource;
bsSkinPageControl1: TbsSkinPageControl;
bskntbsht1: TbsSkinTabSheet;
bskntbsht2: TbsSkinTabSheet;
dxDBGrid2: TdxDBGrid;
dxDBGrid2Column2: TdxDBGridColumn;
dxDBGrid2Column3: TdxDBGridColumn;
dxDBGrid2Column4: TdxDBGridColumn;
dxDBGrid2Column5: TdxDBGridColumn;
dxDBGrid2Column6: TdxDBGridColumn;
bsSkinPanel4: TbsSkinPanel;
dxDBGrid3: TdxDBGrid;
dxDBGridMaskColumn4: TdxDBGridMaskColumn;
dxDBGridMaskColumn7: TdxDBGridMaskColumn;
dxDBGridMaskColumn13: TdxDBGridMaskColumn;
dxDBGridMaskColumn14: TdxDBGridMaskColumn;
dxDBGridMaskColumn15: TdxDBGridMaskColumn;
dxDBGridDateColumn1: TdxDBGridDateColumn;
dxDBGridMaskColumn17: TdxDBGridMaskColumn;
dxDBGridMaskColumn24: TdxDBGridMaskColumn;
dxDBGridMaskColumn57: TdxDBGridMaskColumn;
dxDBGridMaskColumn58: TdxDBGridMaskColumn;
dxDBGridMaskColumn61: TdxDBGridMaskColumn;
PopupMenu1: TPopupMenu;
MenuItem1: TMenuItem;
bsSkinButton5: TbsSkinButton;
bsSkinButton9: TbsSkinButton;
PopupMenu3: TPopupMenu;
MenuItem2: TMenuItem;
dxDBGrid2Column7: TdxDBGridColumn;
bsSkinPanel5: TbsSkinPanel;
Panel1: TPanel;
bsSkinButton11: TbsSkinButton;
Label17: TLabel;
wwDBDateTimePicker6: TwwDBDateTimePicker;
Label18: TLabel;
wwDBDateTimePicker7: TwwDBDateTimePicker;
Label19: TLabel;
dxDBGrid2Column8: TdxDBGridColumn;
dxDBGrid2Column9: TdxDBGridColumn;
dxDBGrid3Column12: TdxDBGridColumn;
dxDBGrid3Column13: TdxDBGridColumn;
dxDBGrid3Column14: TdxDBGridColumn;
dxDBGrid3Column15: TdxDBGridColumn;
Label4: TLabel;
Label7: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label15: TLabel;
Label25: TLabel;
Label26: TLabel;
RxDBLookupCombo4: TRxDBLookupCombo;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
wwDBDateTimePicker5: TwwDBDateTimePicker;
DBEdit1: TDBEdit;
RxDBLookupCombo5: TRxDBLookupCombo;
wwDBDateTimePicker8: TwwDBDateTimePicker;
RxDBLookupCombo7: TRxDBLookupCombo;
wwDBDateTimePicker9: TwwDBDateTimePicker;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
RxDBLookupCombo8: TRxDBLookupCombo;
dxDBGrid2Column10: TdxDBGridColumn;
dxDBGrid2Column11: TdxDBGridColumn;
bsSkinButton38: TbsSkinButton;
dxDBGrid2Column12: TdxDBGridColumn;
dxDBGrid2Column13: TdxDBGridColumn;
dxDBGrid2Column14: TdxDBGridColumn;
DBMemo1: TDBMemo;
Label1: TLabel;
Label29: TLabel;
DBMemo2: TDBMemo;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
dxDBGrid2Column15: TdxDBGridColumn;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
RxDBLookupCombo31: TRxDBLookupCombo;
dxDBGrid3Column16: TdxDBGridColumn;
RxDBLookupCombo3: TRxDBLookupCombo;
Label35: TLabel;
dxDBGrid2Column16: TdxDBGridColumn;
Label36: TLabel;
DBMemo3: TDBMemo;
dxDBGrid2Column17: TdxDBGridColumn;
dxDBGrid2Column18: TdxDBGridColumn;
Label37: TLabel;
DBEdit4: TDBEdit;
Label38: TLabel;
DBEdit5: TDBEdit;
Label39: TLabel;
DBEdit6: TDBEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure bsSkinButton3Click(Sender: TObject);
procedure bsSkinButton7Click(Sender: TObject);
procedure bsSkinButton8Click(Sender: TObject);
procedure bsSkinButton5Click(Sender: TObject);
procedure bsSkinButton9Click(Sender: TObject);
procedure bsSkinButton38Click(Sender: TObject);
procedure dxDBGrid2Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure bsSkinButton11Click(Sender: TObject);
procedure t_op_billBeforeEdit(DataSet: TDataSet);
procedure dxDBGrid3Column16CustomDraw(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 RxDBLookupCombo3Enter(Sender: TObject);
procedure RxDBLookupCombo3Exit(Sender: TObject);
procedure dxDBGrid2CustomDraw(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxDBTreeListColumn;
const AText: String; AFont: TFont; var AColor: TColor; ASelected,
AFocused: Boolean; var ADone: Boolean);
private
{ Private declarations }
public
{ Public declarations }
function UpdateBillStatus(bsStStatus:string):Boolean;
end;
var
frm_op_seae_teshushenhe: Tfrm_op_seae_teshushenhe;
implementation
uses my_sys_function, u_main;
{$R *.dfm}
function Tfrm_op_seae_teshushenhe.UpdateBillStatus(bsStStatus:string):Boolean;
var aAdoQuery,aAdoQuerySelect:TAdoQuery;
begin
{var aAdoQuery:TAdoQuery;
begin
result:=False;
aAdoQuery:=CreateAdoQuery;
with aAdoQuery do
try
Close;Sql.Clear;
SQL.Add('select count(<28><><EFBFBD><EFBFBD>) c from t_op_fangdan');
SQL.Add('where <20><><EFBFBD><EFBFBD>=:<3A><><EFBFBD><EFBFBD>');
Parameters.ParamByName('<27><><EFBFBD><EFBFBD>').Value:=BsNo;
Open;
if aAdoQuery.FieldByName('c').AsInteger=0 then
begin
Close;Sql.Clear;
SQL.Add('Insert into t_op_fangdan (<28><><EFBFBD><EFBFBD>, <20>ŵ<EFBFBD>״̬,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)');
SQL.Add('values (:<3A><><EFBFBD><EFBFBD>,:<3A>ŵ<EFBFBD>״̬,:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)');
Parameters.ParamByName('<27><><EFBFBD><EFBFBD>').Value:=BsNo;
Parameters.ParamByName('<27>ŵ<EFBFBD>״̬').Value:='<27><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>';
Parameters.ParamByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').Value:=employee;
Parameters.ParamByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').Value:=date;
ExecSQL;
end;
finally
aAdoQuery.Free;
end;
}
result:=False;
aAdoQuery:=CreateAdoQuery;
aAdoQuerySelect:=CreateAdoQuery;
with t_op_seaesel do
try
Open;First;
while not eof do
begin
aAdoQuerySelect.Close;aAdoQuerySelect.Sql.Clear;
aAdoQuerySelect.SQL.Add('select count(<28><><EFBFBD><EFBFBD>) c from t_op_fangdan');
aAdoQuerySelect.SQL.Add('where <20><><EFBFBD><EFBFBD>=:<3A><><EFBFBD><EFBFBD>');
aAdoQuerySelect.Parameters.ParamByName('<27><><EFBFBD><EFBFBD>').Value:=fieldByName('<27><><EFBFBD><EFBFBD>').AsString;
aAdoQuerySelect.Open;
if aAdoQuerySelect.FieldByName('c').AsInteger=0 then
begin
aAdoQuery.Close;aAdoQuery.Sql.Clear;
aAdoQuery.SQL.Add('Insert into t_op_fangdan (<28><><EFBFBD><EFBFBD>, <20>ŵ<EFBFBD>״̬)');
aAdoQuery.SQL.Add('values (:<3A><><EFBFBD><EFBFBD>,:<3A>ŵ<EFBFBD>״̬)');
aAdoQuery.Parameters.ParamByName('<27><><EFBFBD><EFBFBD>').Value:=fieldByName('<27><><EFBFBD><EFBFBD>').AsString;
aAdoQuery.Parameters.ParamByName('<27>ŵ<EFBFBD>״̬').Value:=bsStStatus;
aAdoQuery.ExecSQL;
end
else
begin
aAdoQuery.Close;aAdoQuery.Sql.Clear;
aAdoQuery.SQL.Add('Update t_op_fangdan set <20>ŵ<EFBFBD>״̬=:<3A>ŵ<EFBFBD>״̬');
aAdoQuery.SQL.Add('where <20><><EFBFBD><EFBFBD>=:<3A><><EFBFBD><EFBFBD>');
aAdoQuery.Parameters.ParamByName('<27><><EFBFBD><EFBFBD>').Value:=fieldByName('<27><><EFBFBD><EFBFBD>').AsString;
aAdoQuery.Parameters.ParamByName('<27>ŵ<EFBFBD>״̬').Value:=bsStStatus;
aAdoQuery.ExecSQL;
end;
Next;
end;
finally
aAdoQuery.Free;
aAdoQuerySelect.Free;
end;
end;
procedure Tfrm_op_seae_teshushenhe.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
frm_op_seae_teshushenhe.Hide;
frm_op_seae_teshushenhe.ManualFloat(frm_op_seae_teshushenhe.BoundsRect );
frm_main.freeTabs('frm_op_seae_teshushenhe');
action:=cafree;
frm_op_seae_teshushenhe:=nil;
end;
procedure Tfrm_op_seae_teshushenhe.FormShow(Sender: TObject);
begin
with t_op_bill do
begin
Parameters.ParamByName('Employee').Value:=Employee;
Open;
end;
t_op_seaesel.Open;
ADOQuery1.Open;
if t_op_bill.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־').AsInteger=1 then
begin
Label35.Visible:=True;
Label35.Caption:='<27><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
end
else
begin
label35.Visible:=false;
Label35.Caption:='';
end;
end;
procedure Tfrm_op_seae_teshushenhe.bsSkinButton3Click(Sender: TObject);
begin
if t_op_bill.State in [dsedit,dsinsert] then
t_op_bill.Post;
end;
procedure Tfrm_op_seae_teshushenhe.bsSkinButton7Click(Sender: TObject);
begin
if t_op_bill.IsEmpty then
exit;
t_op_bill.Cancel;
end;
procedure Tfrm_op_seae_teshushenhe.bsSkinButton8Click(Sender: TObject);
begin
Close;
end;
procedure Tfrm_op_seae_teshushenhe.bsSkinButton5Click(Sender: TObject);
var aQuery:TADOQuery;
begin
if t_op_bill.IsEmpty then
exit;
aQuery:=CreateAdoQuery;
try
with aQuery do begin
close;SQL.Clear;
sql.add('select <20><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD> from t_crm_client where <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>='''+t_op_bill.FieldByName('ί<>е<EFBFBD>λ').AsString+'''');
open;
if not IsEmpty then begin
if FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>').AsString='<27><>' then begin
if MessageDlg(t_op_bill.FieldByName('ί<>е<EFBFBD>λ').AsString+'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>Ϊ:'+fieldbyname('<27><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>').AsString+#13#10+'ȷʵҪ<CAB5>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>',mtWarning,[mbyes,mbno],0)<>mryes then
begin
exit;
end;
end;
end;
end;
finally
FreeAndNil(aQuery);
end;
if t_op_bill.FieldByName('ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').IsNull then
begin
showmessage('<27><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>');
Exit;
end
else
begin
t_op_bill.edit;
t_op_bill['״̬']:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
t_op_bill['ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=date;
t_op_bill['ǩ<><C7A9><EFBFBD><EFBFBD>']:=employee;
t_op_bill.post;
UpdateBillStatus('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
with t_op_seaesel do
begin
First;
while not eof do
begin
InsertSeaeStatus(FieldByName('<27><><EFBFBD><EFBFBD>').AsString,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',employee,FormatDateTime('YYYY-MM-DD',Now));
Next;
end;
end;
t_op_bill.Refresh;
end;
end;
procedure Tfrm_op_seae_teshushenhe.bsSkinButton9Click(Sender: TObject);
var str:string;
begin
if t_op_bill.IsEmpty then
exit;
if t_op_bill.FieldByName('ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').IsNull then
begin
showmessage('û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD>');
Exit;
end
else
if (not t_op_bill.FieldByName('ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').IsNull) and t_op_bill.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').IsNull then
begin
t_op_bill.edit;
t_op_bill['״̬']:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
t_op_bill['ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=null;
t_op_bill.post;
UpdateBillStatus('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
with t_op_seaesel do
begin
First;
while not eof do
begin
DelteSeaeStatus(fieldbyname('<27><><EFBFBD><EFBFBD>').AsString,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Next;
end;
end;
t_op_bill.Refresh;
end
else
showmessage('<27><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><CBBA>ſ<EFBFBD><C5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>');
end;
procedure Tfrm_op_seae_teshushenhe.bsSkinButton38Click(Sender: TObject);
begin
t_op_bill.Refresh;
end;
procedure Tfrm_op_seae_teshushenhe.dxDBGrid2Click(Sender: TObject);
begin
if t_op_bill.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־').AsInteger=1 then
begin
Label35.Visible:=True;
Label35.Caption:='<27><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
end
else
begin
label35.Visible:=false;
Label35.Caption:='';
end;
bsSkinPageControl1.ActivePageIndex:=1;
end;
procedure Tfrm_op_seae_teshushenhe.N16Click(Sender: TObject);
begin
grid_save_xls(dxdbgrid2);
end;
procedure Tfrm_op_seae_teshushenhe.bsSkinButton11Click(Sender: TObject);
begin
if (wwDBDateTimePicker6.Date<>null) and (wwDBDateTimePicker7.Date<>null) then
begin
with t_op_bill do
begin
Close;
sql.Clear;
sql.Add('select * from t_op_bill_fangdan');
sql.Add('where <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> between :date1 and :date2');
if trim(ComboBox1.Text)<>'' then
begin
sql.Add('and <20>طŷ<D8B7><C5B7><EFBFBD>=:<3A>طŷ<D8B7><C5B7><EFBFBD>');
Parameters.ParamByName('<27>طŷ<D8B7><C5B7><EFBFBD>').Value:=ComboBox1.Text;
end;
sql.Add('order by BILL_ID DESC');
Parameters.ParamByName('date1').Value:=wwDBDateTimePicker6.Date;
Parameters.ParamByName('date2').Value:=wwDBDateTimePicker7.Date;
Open;
end;
end;
end;
procedure Tfrm_op_seae_teshushenhe.t_op_billBeforeEdit(DataSet: TDataSet);
begin
if (t_op_bill.FieldByName('״̬').AsString='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then
begin
ShowMessage('<27><>ǰ״̬'+t_op_bill.FieldByName('״̬').AsString+'<27><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>');
abort;
end;
end;
procedure Tfrm_op_seae_teshushenhe.dxDBGrid3Column16CustomDraw(
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
if UpperCase(Trim(ANode.Strings[dxDBGrid3Column16.Index]))='TRUE' then
AColor:=clred;
AFont.Color:=clblack;
end;
procedure Tfrm_op_seae_teshushenhe.RxDBLookupCombo3Enter(Sender: TObject);
begin
TRxDBLookupCombo(Sender).LookupDisplay:='<27><><EFBFBD><EFBFBD>;<3B><><EFBFBD><EFBFBD>';
end;
procedure Tfrm_op_seae_teshushenhe.RxDBLookupCombo3Exit(Sender: TObject);
begin
TRxDBLookupCombo(Sender).LookupDisplay:='<27><><EFBFBD><EFBFBD>';
end;
procedure Tfrm_op_seae_teshushenhe.dxDBGrid2CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
var
sValues : string;
begin
if not VarIsNull(ANode.Values[dxDBGrid2Column18.Index]) then
begin
sValues :=ANode.Values[dxDBGrid2Column18.Index];
if StrToIntDef(sValues,0) = 1 then afont.Color:=$00C080FF;
end;
if not VarIsNull(ANode.Values[dxDBGrid2Column17.Index]) then
begin
sValues :=ANode.Values[dxDBGrid2Column17.Index];
if StrToIntDef(sValues,0) = 1 then afont.Color:=clred;
end;
end;
end.