RtTool/Delphi7/开发档案/马国钢开发代码/ThreeFun/SelfForm/U_SelfForm.pas
2025-01-08 11:55:07 +08:00

2108 lines
69 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_SelfForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit,DBGrids, DB, cxDBData,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, ADODB,StrUtils,
Midas,cxGridCustomTableView, cxGridTableView, cxGridDBTableView,cxTimeEdit,
cxTreeView, cxGrid,cxDBLookupComboBox,cxCalendar, cxCurrencyEdit,cxExportGrid4Link,
ExtCtrls, Buttons,DBClient,FTComboBox,cxDropDownEdit,cxGridBandedTableView,
cxGridDBBandedTableView,cxRichEdit;
type
TA = class(TComponent)
public
S:string;
end;
function SGetMaxId(AdoQueryTemp:TADOQuery;MyTable:string;MyField:string;Var MaxId:Integer):Boolean;
function SIsRepeated(AdoQueryTemp:TADOQuery;MyTable:string;MyField:string;MyCode:String):Boolean;
function SSetSaveDataCDS(AdoQueryCmd:TADOQuery;Tv1:TcxGridDBTableView;
CDS_Sub:TClientDataSet;MyTable:string;MyTag:Integer):Boolean;
function SSetSaveDataCDS10(AdoQueryCmd:TADOQuery;Tv1:TcxGridDBBandedTableView;
CDS_Sub:TClientDataSet;MyTable:string;MyTag:Integer):Boolean;
function SGetServerDate(ADOQueryTmp:TADOQuery):TdateTime;
procedure SSetsavedata(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
procedure SSetWinData(ADOQueryTmp:TADOQuery;mParent:TWinControl);
function SDelData(ADOQueryCmd:TADOQuery;mDelStr:String):Boolean;
function SGetFilters(TMPanel:TPanel;EquTag,LikeTag:Integer):string;
procedure SDofilter(ADOQry:TADOQuery;FilterStr:string);
function SGetMaxNo(MyAdoQuery:TADOQuery;MyTable:string;MyField:string;MyFlag:string):String;
procedure SCreateCDS20(SADOQry:TADOQuery; mClientDataset:TclientDataSet );
procedure SInitCDSData20(fromADO:TADOQuery;toCDS:TclientDataSet);
procedure SInitFtComBoxBySql(ADOQueryTmp:TADOQuery;
cb: TFtComboBox;FlagType:string;
Boxtype:integer;
showMsg:string;
emptyFlag:Boolean;
mSql:string
);
function SIsInPut(AdoQueryTemp:TADOQuery;MyDate:TDateTime):Boolean;
procedure SInitComBoxByCustCode(ADOQueryTmp:TADOQuery;
cb: TComboBox;FlagType:string;
Boxtype:integer;
showMsg:string;
emptyFlag:Boolean
);
procedure SInitCxGridComboBoxByCustCode(ADOQueryTmp:TADOQuery;c3:TcxGriddbColumn;
FlagType:string;PState:Integer;IsNull:Boolean;Shmeg:string);
procedure SSetsavedata10(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
procedure SSetWinData10(ADOQueryTmp:TADOQuery;mParent:TWinControl);
procedure SInitCxGridComboBoxBySql(ADOQueryTmp:TADOQuery;c3:TcxGriddbColumn;FSql:string;
PState:Integer;IsNull:Boolean;Shmeg:string);
procedure SelPrintData(FTv:TcxGridDBTableView;FAdoQry:TADOQuery;FTile:string);
procedure SelPrintData10(FTv:TcxGridDBTableView;FAdoQry:TADOQuery;FTitle:string
;FLTitle:string;FRTile:string);
procedure SelExportData(FTv:TcxGridDBTableView;FAdoQry:TADOQuery;FTile:string);
function SSWR(s: real): real; //*****<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****//
procedure SSetWinData20(ADOQueryTmp:TADOQuery;mParent:TWinControl);
procedure SSetWinData30(ADOQueryTmp:TADOQuery;mParent:TWinControl;FTag:Integer);
procedure SSetsavedataNew(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
procedure SelPrintData20(FTv:TcxGridDBBandedTableView;FAdoQry:TADOQuery;FTitle:string
;FLTitle:string;FRTile:string);
function SGetServerDate10(ADOQueryTmp:TADOQuery):TdateTime;
procedure SelPrintDataNew(FTv:TcxGridDBTableView;FAdoQry:TADOQuery;FTitle:string
;FLTitle:string;FRTile:string);
procedure SelPrintDataNew10(FTv:TcxGridDBBandedTableView;FAdoQry:TADOQuery;FTitle:string
;FLTitle:string;FRTile:string);
function SGetServerDateTime(ADOQueryTmp:TADOQuery):TdateTime;
procedure SCreateCDSSel(SADOQry:TADOQuery; mClientDataset:TclientDataSet );
procedure SInitCDSDataSel(fromADO:TADOQuery;toCDS:TclientDataSet);
procedure CopyAddRow(Tv1:TcxGridDBTableView;CDS_Sub:TClientDataSet); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>groupformat<61><74><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
procedure OneKeyPost(Tv1:TcxGridDBTableView;CDS_Sub:TClientDataSet); //һ<><D2BB><EFBFBD>滻ճ<E6BBBB><D5B3>
procedure CopyAddRowCDS(CDS_Sub:TClientDataSet);
function SSetSaveDataCDSNew(AdoQueryCmd:TADOQuery;Tv1:TcxGridDBTableView;
CDS_Sub:TClientDataSet;MyTable:string;MyTag:Integer):Boolean;
function SGetFinds(TMPanel:TPanel;EquTag,LikeTag:Integer):string;
procedure SelExportBandData(FTv:TcxGridDBBandedTableView;FAdoQry:TADOQuery;FTile:string);
procedure SeniorFilter(Tv1:TcxGridDBTableView;ADOQueryMain:TADOQuery);//<2F>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
function SSetSaveDataCDSBandNew(AdoQueryCmd:TADOQuery;Tv1:TcxGridDBBandedTableView;
CDS_Sub:TClientDataSet;MyTable:string;MyTag:Integer):Boolean;
implementation
uses U_global,U_SelPrintField,U_FormPas,U_SelExportField,U_SelPrintFieldNew,U_FilterHelp;
///////////////////ȡ<><C8A1><EFBFBD><EFBFBD>Int<6E><74><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>ֵ///////////////////////////////////////
function SGetMaxId(AdoQueryTemp:TADOQuery;MyTable:string;MyField:string;Var MaxId:Integer):Boolean;
begin
try
with AdoQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select Max('+MyField+')+1 MaxId from '+MyTable);
Open;
end;
with AdoQueryTemp do
begin
if (Trim(FieldByName('MaxId').AsString)='') or
(Trim(FieldByName('MaxId').AsString)=NULL) then
MaxId:=1
else
MaxId:=(fieldbyname('MaxId').AsInteger);
Close;
SQL.Clear;
end;
Result:=True;
except
Result:=False;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ֵʧ<D6B5>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
///////////////////////<2F>жϱ<D0B6><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ظ<EFBFBD>///////////////////////////////////
function SIsRepeated(AdoQueryTemp:TADOQuery;MyTable:string;MyField:string;MyCode:String):Boolean;
begin
try
Result:=False;
with AdoQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from '+MyTable+' where '+MyField+'='''+Trim(MyCode)+'''');
Open;
if IsEmpty then Result:=True;
Close;
SQL.Clear;
end;
except
Result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',0);
end;
end;
////////////////////<2F><><EFBFBD><EFBFBD>ClientDataSet<65>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>Ϣ/////////////////////////////
function SSetSaveDataCDS(AdoQueryCmd:TADOQuery;Tv1:TcxGridDBTableView;
CDS_Sub:TClientDataSet;MyTable:string;MyTag:Integer):Boolean;
var
i:Integer;
begin
try
Result:=False;
for i:=0 to Tv1.ColumnCount-1 do
begin
if Tv1.Columns[i].Tag=MyTag then
begin
if Trim(CDS_Sub.fieldbyname(Tv1.Columns[i].DataBinding.FieldName).AsString)<>'' then
begin
AdoQueryCmd.FieldByName(Tv1.Columns[i].DataBinding.FieldName).Value:=
CDS_Sub.fieldbyname(Tv1.Columns[i].DataBinding.FieldName).Value;
end;
end;
end;
Result:=True;
except
Result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>Cds<64><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣʧ<CFA2><CAA7>!','<27><>ʾ',0);
end;
end;
////////////////////<2F><><EFBFBD><EFBFBD>ClientDataSet<65>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>Ϣ/////////////////////////////
function SSetSaveDataCDSNew(AdoQueryCmd:TADOQuery;Tv1:TcxGridDBTableView;
CDS_Sub:TClientDataSet;MyTable:string;MyTag:Integer):Boolean;
var
i:Integer;
begin
try
Result:=False;
for i:=0 to Tv1.ColumnCount-1 do
begin
if Tv1.Columns[i].Tag=MyTag then
begin
if Trim(Tv1.Columns[i].Summary.GroupFooterFormat)<>'1' then
begin
if Trim(CDS_Sub.fieldbyname(Tv1.Columns[i].DataBinding.FieldName).AsString)<>'' then
begin
AdoQueryCmd.FieldByName(Tv1.Columns[i].DataBinding.FieldName).Value:=
CDS_Sub.fieldbyname(Tv1.Columns[i].DataBinding.FieldName).Value;
end;
end;
if Trim(Tv1.Columns[i].Summary.GroupFormat)<>'' then
begin
if Trim(CDS_Sub.fieldbyname(Tv1.Columns[i].Summary.GroupFormat).AsString)<>'' then
begin
AdoQueryCmd.FieldByName(Tv1.Columns[i].Summary.GroupFormat).Value:=
CDS_Sub.fieldbyname(Tv1.Columns[i].Summary.GroupFormat).Value;
end;
end;
end;
end;
Result:=True;
except
Result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>Cds<64><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣʧ<CFA2><CAA7>!','<27><>ʾ',0);
end;
end;
function SSetSaveDataCDSBandNew(AdoQueryCmd:TADOQuery;Tv1:TcxGridDBBandedTableView;
CDS_Sub:TClientDataSet;MyTable:string;MyTag:Integer):Boolean;
var
i:Integer;
begin
try
Result:=False;
for i:=0 to Tv1.ColumnCount-1 do
begin
if Tv1.Columns[i].Tag=MyTag then
begin
if Trim(Tv1.Columns[i].Summary.GroupFooterFormat)<>'1' then
begin
if Trim(CDS_Sub.fieldbyname(Tv1.Columns[i].DataBinding.FieldName).AsString)<>'' then
begin
AdoQueryCmd.FieldByName(Tv1.Columns[i].DataBinding.FieldName).Value:=
CDS_Sub.fieldbyname(Tv1.Columns[i].DataBinding.FieldName).Value;
end;
end;
if Trim(Tv1.Columns[i].Summary.GroupFormat)<>'' then
begin
if Trim(CDS_Sub.fieldbyname(Tv1.Columns[i].Summary.GroupFormat).AsString)<>'' then
begin
AdoQueryCmd.FieldByName(Tv1.Columns[i].Summary.GroupFormat).Value:=
CDS_Sub.fieldbyname(Tv1.Columns[i].Summary.GroupFormat).Value;
end;
end;
end;
end;
Result:=True;
except
Result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>Cds<64><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣʧ<CFA2><CAA7>!','<27><>ʾ',0);
end;
end;
////////////////////<2F><><EFBFBD><EFBFBD>ClientDataSet<65>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>Ϣ/////////////////////////////
function SSetSaveDataCDS10(AdoQueryCmd:TADOQuery;Tv1:TcxGridDBBandedTableView;
CDS_Sub:TClientDataSet;MyTable:string;MyTag:Integer):Boolean;
var
i:Integer;
begin
try
Result:=False;
for i:=0 to Tv1.ColumnCount-1 do
begin
if Tv1.Columns[i].Tag=MyTag then
begin
if Trim(CDS_Sub.fieldbyname(Tv1.Columns[i].DataBinding.FieldName).AsString)<>'' then
AdoQueryCmd.FieldByName(Tv1.Columns[i].DataBinding.FieldName).Value:=
CDS_Sub.fieldbyname(Tv1.Columns[i].DataBinding.FieldName).Value;
end;
end;
Result:=True;
except
Result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>Cds<64><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣʧ<CFA2><CAA7>!','<27><>ʾ',0);
end;
end;
///////////////////////////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////////////
function SGetServerDate(ADOQueryTmp:TADOQuery):TdateTime;
begin
try
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select getDate()as dt');
open;
result:=StrToDate(formatdatetime('yyyy-MM-dd',fieldByName('dt').AsDatetime));
close;
SQL.Clear;
end;
except
application.MessageBox('<27><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
function SGetServerDateTime(ADOQueryTmp:TADOQuery):TdateTime;
begin
try
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select getDate()as dt');
open;
result:=fieldByName('dt').AsDatetime;
close;
SQL.Clear;
end;
except
application.MessageBox('<27><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
function SGetServerDate10(ADOQueryTmp:TADOQuery):TdateTime;
begin
try
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select getDate()as dt');
open;
result:=StrToDate(formatdatetime('yyyy-MM-dd',fieldByName('dt').AsDatetime));
close;
SQL.Clear;
end;
except
application.MessageBox('<27><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
/////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ֶθ<D6B6>ֵ
/////////////////////////////////////////////////////
procedure SSetsavedata(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
var
i:Integer;
begin
with Myparent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i].Tag=MyTag then
begin
if Controls[i] is TEdit then
begin
if Trim(TEdit(Controls[i]).Text)<>'' then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TEdit(Controls[i]).Text);
end else
if Controls[i] is TRichEdit then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TRichEdit(Controls[i]).Text;
end else
if Controls[i] is TcxRichEdit then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TcxRichEdit(Controls[i]).Text;
end else
if Controls[i] is TMemo then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TMemo(Controls[i]).Text;
end;
if Controls[i] is TFTComboBox then
begin
if (TFTComboBox(Controls[i]).Text)<>'' then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TFTComboBox(Controls[i]).Item2);
end else
if Controls[i] is TComboBox then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TComboBox(Controls[i]).Text);
end else
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked=True then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=1
else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=0;
end else
if Controls[i] is TDateTimePicker then
begin
if TDateTimePicker(Controls[i]).ShowCheckbox then
begin
if TDateTimePicker(Controls[i]).Checked then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TDateTimePicker(Controls[i]).DateTime;
end else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TDateTimePicker(Controls[i]).DateTime;
end else
if Controls[i] is TBtnEditA then
begin
if TBtnEditA(Controls[i]).Hint='<27><><EFBFBD><EFBFBD>' then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TBtnEditA(Controls[i]).Text)
else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TBtnEditA(Controls[i]).TxtCode);
end else
if Controls[i] is TBtnEditC then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TBtnEditC(Controls[i]).TxtCode);
end else
if Controls[i] is TcxTimeEdit then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TcxTimeEdit(Controls[i]).Text);
end;
end;
end;
end;
end;
procedure SSetsavedataNew(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
var
i:Integer;
begin
with Myparent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i].Tag=MyTag then
begin
if Controls[i] is TEdit then
begin
if Trim(TEdit(Controls[i]).Text)<>'' then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TEdit(Controls[i]).Text);
end else
if Controls[i] is TRichEdit then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TRichEdit(Controls[i]).Text;
end else
if Controls[i] is TMemo then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TMemo(Controls[i]).Text;
end;
if Controls[i] is TFTComboBox then
begin
if (TFTComboBox(Controls[i]).Text)<>'' then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TFTComboBox(Controls[i]).Item2);
end else
if Controls[i] is TComboBox then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TComboBox(Controls[i]).Text);
end else
if Controls[i] is TDateTimePicker then
begin
if TDateTimePicker(Controls[i]).ShowCheckbox then
begin
if TDateTimePicker(Controls[i]).Checked then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TDateTimePicker(Controls[i]).DateTime;
end else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TDateTimePicker(Controls[i]).DateTime;
end else
if Controls[i] is TBtnEditA then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TBtnEditA(Controls[i]).TxtCode);
if (TBtnEditA(Controls[i]).Hint<>'') and (TBtnEditA(Controls[i]).ParentCtl3D=True) then
ADOQueryCmd.FieldByName(Trim(TBtnEditA(Controls[i]).Hint)).Value:=Trim(TBtnEditA(Controls[i]).Text);
end else
if Controls[i] is TBtnEditC then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TBtnEditC(Controls[i]).TxtCode);
//if (TBtnEditC(Controls[i]).Hint<>'') and (TBtnEditC(Controls[i]).ParentCtl3D=True)then
//ADOQueryCmd.FieldByName(Trim(TBtnEditC(Controls[i]).Hint)).Value:=Trim(TBtnEditC(Controls[i]).Text);
end else
if Controls[i] is TcxTimeEdit then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TcxTimeEdit(Controls[i]).Text);
end;
end;
end;
end;
end;
procedure SSetsavedata10(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
var
i:Integer;
FFName:string;
begin
with Myparent do
begin
for i:=0 to ControlCount-1 do
begin
FFName:=Trim(Copy(Controls[i].Name,1,(Length(Controls[i].Name)-1)));
if Controls[i].Tag=MyTag then
begin
if Controls[i] is TEdit then
begin
if Trim(TEdit(Controls[i]).Text)<>'' then
ADOQueryCmd.FieldByName(FFName).Value:=Trim(TEdit(Controls[i]).Text);
end else
if Controls[i] is TRichEdit then
begin
ADOQueryCmd.FieldByName(FFName).Value:=TRichEdit(Controls[i]).Text;
end else
if Controls[i] is TMemo then
begin
ADOQueryCmd.FieldByName(FFName).Value:=TMemo(Controls[i]).Text;
end;
if Controls[i] is TFTComboBox then
begin
if (TFTComboBox(Controls[i]).Text)<>'' then
ADOQueryCmd.FieldByName(FFName).Value:=Trim(TFTComboBox(Controls[i]).Item2);
end else
if Controls[i] is TComboBox then
begin
ADOQueryCmd.FieldByName(FFName).Value:=Trim(TComboBox(Controls[i]).Text);
end else
if Controls[i] is TDateTimePicker then
begin
if TDateTimePicker(Controls[i]).ShowCheckbox then
begin
if TDateTimePicker(Controls[i]).Checked then
ADOQueryCmd.FieldByName(FFName).Value:=TDateTimePicker(Controls[i]).DateTime;
end else
ADOQueryCmd.FieldByName(FFName).Value:=TDateTimePicker(Controls[i]).DateTime;
end else
if Controls[i] is TBtnEditA then
begin
ADOQueryCmd.FieldByName(FFName).Value:=Trim(TBtnEditA(Controls[i]).TxtCode);
end else
if Controls[i] is TBtnEditC then
begin
ADOQueryCmd.FieldByName(FFName).Value:=Trim(TBtnEditC(Controls[i]).TxtCode);
end;
end;
end;
end;
end;
/////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/////////////////////////////////////////////////////
procedure SSetWinData(ADOQueryTmp:TADOQuery;mParent:TWinControl);
var
i,idx:integer;
mfield:string;
ma:TA;
begin
with ADOQueryTmp do
begin
if isEmpty then exit;
with mParent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then continue;
if Controls[i].Tag >=999 then continue;
mfield:=Controls[i].Name;
///////////////////////////
//EDIT
if Controls[i] is TEdit then
begin
{ if Trim(Controls[i].Hint)='<27><>ֵ' then
continue
else }
if Trim(fieldByName(mfield).AsString)<>'' then
TEdit(Controls[i]).Text:=trim(fieldByName(mfield).AsString);
end else
if Controls[i] is TRichEdit then
begin
{ if Trim(Controls[i].Hint)='<27><>ֵ' then
continue
else }
if Trim(fieldByName(mfield).AsString)<>'' then
TRichEdit(Controls[i]).Text:=trim(fieldByName(mfield).AsString);
end
//ftcombobox
else if Controls[i] is TFTComboBox then
begin
if Controls[i].Tag =99 then
begin
idx:=TftComboBox(Controls[i]).Items.IndexOf(trim(fieldByName(mfield).AsString));
TComboBox(Controls[i]).ItemIndex:=idx;
end
else
begin
idx:=TftComboBox(Controls[i]).IndexOfItem2(trim(fieldByName(mfield).AsString));
TComboBox(Controls[i]).ItemIndex:=idx;
end;
end
//combobox
else if Controls[i] is TComboBox then
begin
if TComboBox(Controls[i]).Items.Count>0 then
begin
//idx:=getCombIdx(TComboBox(Controls[i]),i,trim(fieldByName(mfield).AsString));
idx:=TComboBox(Controls[i]).Items.IndexOf(trim(fieldByName(mfield).AsString));
end
else
idx:=-1;
TComboBox(Controls[i]).ItemIndex:=idx;
end
else if Controls[i] is TBtnEditA then
begin
if TBtnEditA(Controls[i]).Tag=1 then
begin
TBtnEditA(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
TBtnEditA(Controls[i]).text:= trim(fieldByName(mfield+'Name').AsString);
end
else
begin
TBtnEditA(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
TBtnEditA(Controls[i]).text:= trim(fieldByName(mfield).AsString);
end;
end
else if Controls[i] is TBtnEditC then
begin
TBtnEditC(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
TBtnEditC(Controls[i]).text:= trim(fieldByName(mfield+'Name').AsString);
end
else if Controls[i] is TDateTimePicker then
begin
if IsEmpty or fieldByName(mfield).IsNull then
begin
if TDateTimePicker(Controls[i]).Checked then
TDateTimePicker(Controls[i]).Date:=strToDate('1990-01-01');
end
else
TDateTimePicker(Controls[i]).Date:=fieldByName(mfield).AsDateTime;
end
else if Controls[i] is Tmemo then
begin
Tmemo(Controls[i]).Text :=trim(fieldByName(mfield).AsString);
end
else if Controls[i] is TcxRichEdit then
begin
TcxRichEdit(Controls[i]).Text :=trim(fieldByName(mfield).AsString);
end
else if Controls[i] is TcxDateEdit then
begin
if not IsEmpty and not fieldByName(mfield).IsNull then
TcxDateEdit(Controls[i]).text :=fieldByName(mfield).AsString;
end
else if Controls[i] is TcxTimeEdit then
begin
if not IsEmpty and ( fieldByName(mfield).AsString<>'') then
TcxTimeEdit(Controls[i]).text :=fieldByName(mfield).AsString;
end
else if Controls[i] is TcxCurrencyEdit then
begin
TcxCurrencyEdit(Controls[i]).Text:=fieldByName(mfield).AsString;
end
else if Controls[i] is TcheckBox then
begin
TcheckBox(Controls[i]).Checked:=fieldByName(mfield).asBoolean;
end;
end; // end for
end; // end with
end; //end for with
end;
procedure SSetWinData30(ADOQueryTmp:TADOQuery;mParent:TWinControl;FTag:Integer);
var
i,idx:integer;
mfield:string;
ma:TA;
begin
with ADOQueryTmp do
begin
if isEmpty then exit;
with mParent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then continue;
if Controls[i].Tag<>FTag then continue;
mfield:=Controls[i].Name;
///////////////////////////
//EDIT
if Controls[i] is TEdit then
begin
if Trim(fieldByName(mfield).AsString)<>'' then
TEdit(Controls[i]).Text:=trim(fieldByName(mfield).AsString);
end
//ftcombobox
else if Controls[i] is TFTComboBox then
begin
idx:=TftComboBox(Controls[i]).IndexOfItem2(trim(fieldByName(mfield).AsString));
TComboBox(Controls[i]).ItemIndex:=idx;
end
else if Controls[i] is TRichEdit then
begin
if Trim(fieldByName(mfield).AsString)<>'' then
TRichEdit(Controls[i]).Text:=trim(fieldByName(mfield).AsString);
end
else if Controls[i] is TcxRichEdit then
begin
if Trim(fieldByName(mfield).AsString)<>'' then
TcxRichEdit(Controls[i]).Text:=trim(fieldByName(mfield).AsString);
end
//combobox
else if Controls[i] is TComboBox then
begin
if TComboBox(Controls[i]).Items.Count>0 then
begin
idx:=TComboBox(Controls[i]).Items.IndexOf(trim(fieldByName(mfield).AsString));
end
else
idx:=-1;
TComboBox(Controls[i]).ItemIndex:=idx;
end
else if Controls[i] is TBtnEditA then
begin
TBtnEditA(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
if Trim(TBtnEditA(Controls[i]).Hint)<>'' then
TBtnEditA(Controls[i]).text:= trim(fieldByName(Trim(TBtnEditA(Controls[i]).Hint)).AsString);
end else if Controls[i] is TBtnEditC then
begin
TBtnEditC(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
if Trim(TBtnEditC(Controls[i]).Hint)<>'' then
TBtnEditC(Controls[i]).text:= trim(fieldByName(Trim(TBtnEditC(Controls[i]).Hint)).AsString);
end
else if Controls[i] is TDateTimePicker then
begin
if IsEmpty or fieldByName(mfield).IsNull then
begin
if TDateTimePicker(Controls[i]).Checked then
TDateTimePicker(Controls[i]).Date:=strToDate('1990-01-01');
end
else
TDateTimePicker(Controls[i]).DateTime:=fieldByName(mfield).AsDateTime;
end
else if Controls[i] is Tmemo then
begin
Tmemo(Controls[i]).Text :=trim(fieldByName(mfield).AsString);
end
else if Controls[i] is TcxDateEdit then
begin
if not IsEmpty and not fieldByName(mfield).IsNull then
TcxDateEdit(Controls[i]).text :=fieldByName(mfield).AsString;
end
else if Controls[i] is TcxTimeEdit then
begin
if not IsEmpty and ( fieldByName(mfield).AsString<>'') then
TcxTimeEdit(Controls[i]).text :=fieldByName(mfield).AsString;
end
else if Controls[i] is TcxCurrencyEdit then
begin
TcxCurrencyEdit(Controls[i]).Text:=fieldByName(mfield).AsString;
end
else if Controls[i] is TcheckBox then
begin
TcheckBox(Controls[i]).Checked:=fieldByName(mfield).asBoolean;
end else if Controls[i] is TRichEdit then
begin
TRichEdit(Controls[i]).Text:=fieldbyname(mfield).AsString;
end;
end; // end for
end; // end with
end; //end for with
end;
procedure SSetWinData10(ADOQueryTmp:TADOQuery;mParent:TWinControl);
var
i,idx:integer;
mfield:string;
ma:TA;
begin
with ADOQueryTmp do
begin
if isEmpty then exit;
with mParent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then continue;
if Controls[i].Tag >=999 then continue;
//mfield:=Copy(Trim(Controls[i].Name),1,(Length(Trim(Controls[i].Name))-1));
mfield:=Trim(Controls[i].Name);
if Controls[i] is TEdit then
begin
if Trim(fieldByName(mfield).AsString)<>'' then
TEdit(Controls[i]).Text:=trim(fieldByName(mfield).AsString);
end
//ftcombobox
else if Controls[i] is TFTComboBox then
begin
if Controls[i].Tag =99 then
begin
idx:=TftComboBox(Controls[i]).Items.IndexOf(trim(fieldByName(mfield).AsString));
TComboBox(Controls[i]).ItemIndex:=idx;
end
else
begin
idx:=TftComboBox(Controls[i]).IndexOfItem2(trim(fieldByName(mfield).AsString));
TComboBox(Controls[i]).ItemIndex:=idx;
end;
end
//combobox
else if Controls[i] is TComboBox then
begin
if TComboBox(Controls[i]).Items.Count>0 then
begin
idx:=TComboBox(Controls[i]).Items.IndexOf(trim(fieldByName(mfield).AsString));
end
else
idx:=-1;
TComboBox(Controls[i]).ItemIndex:=idx;
end
else if Controls[i] is TBtnEditA then
begin
if TBtnEditA(Controls[i]).Tag=1 then
begin
TBtnEditA(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
TBtnEditA(Controls[i]).text:= trim(fieldByName(mfield+'Name').AsString);
end
else
begin
TBtnEditA(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
TBtnEditA(Controls[i]).text:= trim(fieldByName(mfield).AsString);
end;
end
else if Controls[i] is TBtnEditC then
begin
TBtnEditC(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
TBtnEditC(Controls[i]).text:= trim(fieldByName(mfield+'Name').AsString);
end
else if Controls[i] is TDateTimePicker then
begin
if IsEmpty or fieldByName(mfield).IsNull then
begin
if TDateTimePicker(Controls[i]).Checked then
TDateTimePicker(Controls[i]).Date:=strToDate('1990-01-01');
end
else
TDateTimePicker(Controls[i]).Date:=fieldByName(mfield).AsDateTime;
end
else if Controls[i] is Tmemo then
begin
Tmemo(Controls[i]).Text :=trim(fieldByName(mfield).AsString);
end
else if Controls[i] is TcxDateEdit then
begin
if not IsEmpty and not fieldByName(mfield).IsNull then
TcxDateEdit(Controls[i]).text :=fieldByName(mfield).AsString;
end
else if Controls[i] is TcxTimeEdit then
begin
if not IsEmpty and ( fieldByName(mfield).AsString<>'') then
TcxTimeEdit(Controls[i]).text :=fieldByName(mfield).AsString;
end
else if Controls[i] is TcxCurrencyEdit then
begin
TcxCurrencyEdit(Controls[i]).Text:=fieldByName(mfield).AsString;
end
else if Controls[i] is TcheckBox then
begin
TcheckBox(Controls[i]).Checked:=fieldByName(mfield).asBoolean;
end
{else if Controls[i] is TcxLookupComboBox then
begin
TcxLookupComboBox(Controls[i]).EditValue:=fieldByName(mfield).AsString;
TcxLookupComboBox(Controls[i]).EditingText:=fieldByName(mfield+'name').AsString;
end};
end; // end for
end; // end with
end; //end for with
end;
procedure SSetWinData20(ADOQueryTmp:TADOQuery;mParent:TWinControl);
var
i,idx:integer;
mfield:string;
ma:TA;
begin
with ADOQueryTmp do
begin
if isEmpty then exit;
with mParent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then continue;
if Controls[i].Tag >=999 then continue;
mfield:=Copy(Trim(Controls[i].Name),1,(Length(Trim(Controls[i].Name))-1));
//mfield:=Trim(Controls[i].Name);
if Controls[i] is TEdit then
begin
if Trim(fieldByName(mfield).AsString)<>'' then
TEdit(Controls[i]).Text:=trim(fieldByName(mfield).AsString);
end
//ftcombobox
else if Controls[i] is TFTComboBox then
begin
if Controls[i].Tag =99 then
begin
idx:=TftComboBox(Controls[i]).Items.IndexOf(trim(fieldByName(mfield).AsString));
TComboBox(Controls[i]).ItemIndex:=idx;
end
else
begin
idx:=TftComboBox(Controls[i]).IndexOfItem2(trim(fieldByName(mfield).AsString));
TComboBox(Controls[i]).ItemIndex:=idx;
end;
end
//combobox
else if Controls[i] is TComboBox then
begin
if TComboBox(Controls[i]).Items.Count>0 then
begin
idx:=TComboBox(Controls[i]).Items.IndexOf(trim(fieldByName(mfield).AsString));
end
else
idx:=-1;
TComboBox(Controls[i]).ItemIndex:=idx;
end
else if Controls[i] is TBtnEditA then
begin
if TBtnEditA(Controls[i]).Tag=1 then
begin
TBtnEditA(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
TBtnEditA(Controls[i]).text:= trim(fieldByName(mfield+'Name').AsString);
end
else
begin
TBtnEditA(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
TBtnEditA(Controls[i]).text:= trim(fieldByName(mfield).AsString);
end;
end
else if Controls[i] is TBtnEditC then
begin
TBtnEditC(Controls[i]).TxtCode := trim(fieldByName(mfield).AsString);
TBtnEditC(Controls[i]).text:= trim(fieldByName(mfield+'Name').AsString);
end
else if Controls[i] is TDateTimePicker then
begin
if IsEmpty or fieldByName(mfield).IsNull then
begin
if TDateTimePicker(Controls[i]).Checked then
TDateTimePicker(Controls[i]).Date:=strToDate('1990-01-01');
end
else
TDateTimePicker(Controls[i]).Date:=fieldByName(mfield).AsDateTime;
end
else if Controls[i] is Tmemo then
begin
Tmemo(Controls[i]).Text :=trim(fieldByName(mfield).AsString);
end
else if Controls[i] is TcxDateEdit then
begin
if not IsEmpty and not fieldByName(mfield).IsNull then
TcxDateEdit(Controls[i]).text :=fieldByName(mfield).AsString;
end
else if Controls[i] is TcxTimeEdit then
begin
if not IsEmpty and ( fieldByName(mfield).AsString<>'') then
TcxTimeEdit(Controls[i]).text :=fieldByName(mfield).AsString;
end
else if Controls[i] is TcxCurrencyEdit then
begin
TcxCurrencyEdit(Controls[i]).Text:=fieldByName(mfield).AsString;
end
else if Controls[i] is TcheckBox then
begin
TcheckBox(Controls[i]).Checked:=fieldByName(mfield).asBoolean;
end
{else if Controls[i] is TcxLookupComboBox then
begin
TcxLookupComboBox(Controls[i]).EditValue:=fieldByName(mfield).AsString;
TcxLookupComboBox(Controls[i]).EditingText:=fieldByName(mfield+'name').AsString;
end};
end; // end for
end; // end with
end; //end for with
end;
//////////////////////////////////////////////
//////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>SQL<51><4C><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////
function SDelData(ADOQueryCmd:TADOQuery;mDelStr:String):Boolean;
begin
try
result:=False;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add(mDelStr);
ExecSQL;
end;
result:=True;
except
result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
////////////////////////////////////////////
////************<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>***********/////
////////////////////////////////////////////
function SGetFilters(TMPanel:TPanel;EquTag,LikeTag:Integer):string;
var
i:Integer;
begin
Result:='';
with TMPanel do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then Continue;
if Controls[i] is TEdit then
begin
if Trim(TEdit(Controls[i]).Text)<>'' then
begin
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TEdit(Controls[i]).Text))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+' like '+QuotedStr('%'+Trim(TEdit(Controls[i]).Text)+'%');
end;
end else
if Controls[i] is TBtnEditA then
begin
if Trim(TBtnEditA(Controls[i]).Text)<>'' then
begin
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TBtnEditA(Controls[i]).TxtCode))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+'Name'+' like '+QuotedStr('%'+Trim(TBtnEditA(Controls[i]).Text)+'%')
else if Controls[i].Tag=99 then
Result:=Result+'and '+Controls[i].Name+' like '+QuotedStr(Trim(TBtnEditA(Controls[i]).TxtCode)+'%');
end;
end else
if Controls[i] is TBtnEditC then
begin
if Trim(TBtnEditC(Controls[i]).TxtCode)<>'' then
begin
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TBtnEditC(Controls[i]).TxtCode))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+'Name'+' like '+QuotedStr('%'+Trim(TBtnEditC(Controls[i]).Text)+'%');
end;
end else
if Controls[i] is TFTComboBox then
begin
if Trim(TFTComboBox(Controls[i]).Text)<>'' then
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TFTComboBox(Controls[i]).Item2))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+' like '+QuotedStr('%'+Trim(TFTComboBox(Controls[i]).Item2)+'%');
end else
if Controls[i] is TComboBox then
begin
if Trim(TComboBox(Controls[i]).Text)<>'' then
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TComboBox(Controls[i]).Text))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+' like '+QuotedStr('%'+Trim(TComboBox(Controls[i]).Text)+'%');
end;
end;
end;
if Trim(Result)<>'' then
Result:=Trim(RightBStr(Result,Length(Result)-4));
end;
function SGetFinds(TMPanel:TPanel;EquTag,LikeTag:Integer):string;
var
i:Integer;
begin
Result:='';
with TMPanel do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then Continue;
if Controls[i] is TEdit then
begin
if Trim(TEdit(Controls[i]).Text)<>'' then
begin
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TEdit(Controls[i]).Text))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+' like '+QuotedStr('%'+Trim(TEdit(Controls[i]).Text)+'%');
end;
end else
if Controls[i] is TBtnEditA then
begin
if Trim(TBtnEditA(Controls[i]).Text)<>'' then
begin
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TBtnEditA(Controls[i]).TxtCode))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+'Name'+' like '+QuotedStr('%'+Trim(TBtnEditA(Controls[i]).Text)+'%');
end;
end else
if Controls[i] is TBtnEditC then
begin
if Trim(TBtnEditC(Controls[i]).TxtCode)<>'' then
begin
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TBtnEditC(Controls[i]).TxtCode))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+'Name'+' like '+QuotedStr('%'+Trim(TBtnEditC(Controls[i]).Text)+'%');
end;
end else
if Controls[i] is TFTComboBox then
begin
if Trim(TFTComboBox(Controls[i]).Text)<>'' then
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TFTComboBox(Controls[i]).Item2))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+' like '+QuotedStr('%'+Trim(TFTComboBox(Controls[i]).Item2)+'%');
end else
if Controls[i] is TComboBox then
begin
if Trim(TComboBox(Controls[i]).Text)<>'' then
if Controls[i].Tag=EquTag then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TComboBox(Controls[i]).Text))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and '+Controls[i].Name+' like '+QuotedStr('%'+Trim(TComboBox(Controls[i]).Text)+'%');
end;
end;
end;
end;
////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ù<EFBFBD><C3B9>˺<EFBFBD><CBBA><EFBFBD>
////////////////////////////////////////////////////////////
procedure SDofilter(ADOQry:TADOQuery;FilterStr:string);
begin
try
ADOQry.DisableControls;
with ADOQry do
begin
if Trim(FilterStr)='' then
begin
Filtered:=False;
end else
begin
Filtered:=False;
Filter:=FilterStr;
Filtered:=True;
end;
end;
finally
ADOQry.EnableControls;
end;
end;
function SGetMaxNo(MyAdoQuery:TADOQuery;MyTable:string;MyField:string;MyFlag:string):String;
var
fsj:string;
i:Integer;
begin
try
result:='';
fsj:=Trim(Formatdatetime('yyyyMMdd',Now));
i:=Length(Trim(MyFlag));
with MyAdoQuery do
begin
Close;
SQL.Clear;
sql.Add('select Max('+MyField+') MaxNo from '+MyTable);
SQL.Add('where '+MyField+' like '+QuotedStr('%'+fsj+'%'));
Open;
end;
with MyAdoQuery do
begin
if Trim(fieldbyname('MaxNo').AsString)='' then
begin
Result:=Trim(MyFlag)+Trim(Formatdatetime('yyyyMMdd',Now))+'1001';
Exit;
end;
end;
{fsj:=Trim(MyAdoQuery.fieldbyname('MaxNo').AsString);
with MyAdoQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select Max('+MyField+') MaxNo from '+MyTable);
SQL.Add('where '+MyField+' like '+QuotedStr('%'+copy(fsj,3,8)+'%'));
Open;
ShowMessage(copy(fsj,3,8));
if Trim(fieldbyname('MaxNo').AsString)='' then
begin
Result:=Trim(MyFlag)+Trim(Formatdatetime('yyyyMMdd',Now))+'1001';
Exit;
end;
end;}
fsj:=Trim(MyAdoQuery.fieldbyname('MaxNo').AsString);
result:=Trim(MyFlag)+Trim(Formatdatetime('yyyyMMdd',Now))+IntToStr(StrtoInt(Copy(fsj,i+9,Length(fsj)-i-8))+1);
except
Result:='';
Application.MessageBox(PChar('<27>ֶ<EFBFBD>ȡֵMaxNo<4E><6F><EFBFBD>󣬲鿴<F3A3ACB2><E9BFB4><'+Trim(MyTable)+'><3E><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><'+MyField+'>'),'<27><>ʾ',0);
end;
end;
procedure SCreateCDS20(SADOQry:TADOQuery; mClientDataset:TclientDataSet );
var
i:integer;
mfieldName:string;
mSize:integer;
begin
mfieldName:='';
mClientDataset.FieldDefs.Clear;
with SADOQry do
begin
for i:=0 to fieldCount-1 do //
begin
if (Fields[i].DataType=ftString) and (Fields[i].Size=0) then
begin
msize:=1;
end
else
msize:=Fields[i].Size;
mfieldName:=trim(fields[i].FieldName);
mClientDataset.FieldDefs.Add(mfieldName,
Fields[i].DataType,msize);
end;
end;
mClientDataset.FieldDefs.Add('Sflag',ftString,1);
mClientDataset.FieldDefs.Add('Sindex',ftInteger,0);
mClientDataset.FieldDefs.Add('Ssel',ftBoolean,0);
mClientDataset.FieldDefs.Add('SDefNote',ftString,10);
mClientDataset.Close;
mClientDataset.CreateDataSet;
end;
procedure SInitCDSData20(fromADO:TADOQuery;toCDS:TclientDataSet);
var
i:integer;
k:integer;
begin
if fromADO.IsEmpty then exit;
fromADO.first;
K:=1;
try
toCDS.DisableControls;
toCDS.Filtered:=false;
while not fromADO.Eof do
begin
with toCDS do
begin
Append;
for i:=0 to fromADO.FieldCount-1 do
begin
fields[i].value:=fromADO.Fields[i].Value ;
end;
fieldByName('Sflag').AsString :='1';
fieldByName('Sindex').value :=k;
fieldByName('Ssel').value :=false;
inc(k);
Post;
end;
fromADO.Next;
end;
if not toCDS.IsEmpty then
begin
toCDS.First ;
end;
finally
toCDS.EnableControls;
end;
end;
procedure SInitFtComBoxBySql(ADOQueryTmp:TADOQuery;
cb: TFtComboBox;FlagType:string;
Boxtype:integer;
showMsg:string;
emptyFlag:Boolean;
mSql:string
);
begin
with ADOQueryTmp do
begin
close;
sql.clear;
sql.Add(mSql);
Open;
if isEmpty then
begin
application.MessageBox(pChar(showMsg),'',0);
exit;
end;
cb.Clear;
while not EOF do
begin
if Boxtype=0 then
begin
cb.Items.Add(trim(fieldByName('Name').AsString));
end
else
begin
cb.AddItem2(trim(fieldByName('Name').AsString),nil,trim(fieldByName('code').AsString));
end;
next;
end;
if not emptyFlag then
cb.Items.Add('');
if emptyFlag and (cb.Items.Count >0) then
cb.ItemIndex :=0;
end;
end;
function SIsInPut(AdoQueryTemp:TADOQuery;MyDate:TDateTime):Boolean;
begin
Result:=False;
with AdoQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from CG_LedgerPeriod where kjyear='+FormatDateTime('yyyy',MyDate));
Open;
if IsEmpty then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׹<EFBFBD><D7B9><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>е<EFBFBD><D0B5>뵱ǰ<EBB5B1><C7B0><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ڼ䣡','<27><>ʾ',0);
Exit;
end;
Close;
end;
with AdoQueryTemp do
begin
close;
sql.Clear;
sql.Add('select * from CG_LedgerPeriod ');
sql.Add('where BegDate<=:MyDate and EndDate>=:MyDate');
Parameters.ParamByName('MyDate').Value:=MyDate;
Open;
if FieldByName('IsCheckOutFlag').Value=True then
begin
Application.MessageBox('<27><>ǰ<EFBFBD><C7B0><EFBFBD>ڵĻ<DAB5><C4BB><EFBFBD><EFBFBD>ڼ<EFBFBD><DABC>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>˲<EFBFBD><CBB2>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
gkjyear:=FieldByName('kjyear').AsInteger;
gperiod:=FieldByName('period').AsInteger;
end;
Result:=True;
end;
//////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD>combox<6F>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
//<2F><>XC_CustCode<64><65><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//Boxtype:0; <20><><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>1;
//////////////////////////////////////////////
procedure SInitComBoxByCustCode(ADOQueryTmp:TADOQuery;
cb: TComboBox;FlagType:string;
Boxtype:integer;
showMsg:string;
emptyFlag:Boolean
);
var
A:TA;
begin
cb.Items.Clear ;
with ADOQueryTmp do
begin
close;
sql.clear;
sql.Add('exec P_Get_XC_Custcode');
sql.Add(quotedStr(trim(flagType)));
Open;
if isEmpty then
begin
application.MessageBox(pChar('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣά<CFA2><CEAC>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>δ<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>'+showMsg),'',0);
exit;
end;
while not EOF do
begin
if Boxtype=0 then
begin
cb.Items.Add(trim(fieldByName('name').AsString));
end
else
begin
A := TA.Create(Nil);
A.s:= trim(fieldByName('code').AsString);
cb.Items.AddObject(trim(fieldByName('name').AsString),TObject(a));
end;
next;
end;
if not emptyFlag then
cb.Items.Add('');
if emptyFlag and (cb.Items.Count >0) then
cb.ItemIndex :=0;
end;
end;
procedure SInitCxGridComboBoxByCustCode(ADOQueryTmp:TADOQuery;c3:TcxGriddbColumn;
FlagType:string;PState:Integer;IsNull:Boolean;Shmeg:string);
var
A:TA;
begin
(c3.Properties as TcxComboBoxProperties).Items.Clear ;
with ADOQueryTmp do
begin
close;
sql.clear;
sql.Add(' select * from XC_CustCode '+
' where Flag='''+trim(FlagType)+''' '+
' order by orderno ');
Open;
if isEmpty then
begin
Application.MessageBox(PChar('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣά<CFA2><CEAC>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>δ<EFBFBD>ҵ<EFBFBD>:'+shmeg),'',0);
exit;
end;
while not EOF do
begin
A := TA.Create(Nil);
A.s:= trim(fieldByName('Code').AsString);
if PState=1 then
(c3.Properties as TcxComboBoxProperties).Items.AddObject(trim(fieldByName('name').AsString),TObject(A))
else if PState=0 then
begin
(c3.Properties as TcxComboBoxProperties).Items.Add(trim(fieldByName('name').AsString));
end;
next;
end;
if not IsNull then
(c3.Properties as TcxComboBoxProperties).Items.Add('');
end;
end;
procedure SInitCxGridComboBoxBySql(ADOQueryTmp:TADOQuery;c3:TcxGriddbColumn;FSql:string;
PState:Integer;IsNull:Boolean;Shmeg:string);
var
A:TA;
begin
(c3.Properties as TcxComboBoxProperties).Items.Clear ;
with ADOQueryTmp do
begin
close;
sql.clear;
sql.Add(FSql);
Open;
if isEmpty then
begin
Application.MessageBox(PChar(<>ҵ<EFBFBD>:'+shmeg),'',0);
exit;
end;
while not EOF do
begin
A := TA.Create(Nil);
A.s:= trim(fieldByName('Code').AsString);
if PState=1 then
(c3.Properties as TcxComboBoxProperties).Items.AddObject(trim(fieldByName('name').AsString),TObject(A))
else if PState=0 then
begin
(c3.Properties as TcxComboBoxProperties).Items.Add(trim(fieldByName('name').AsString));
end;
next;
end;
if not IsNull then
begin
(c3.Properties as TcxComboBoxProperties).Items.Add('');
end;
end;
end;
procedure SelPrintData(FTv:TcxGridDBTableView;FAdoQry:TADOQuery;FTile:string);
var
i,j:Integer;
fsj:string;
begin
if FAdoQry.IsEmpty then Exit;
try
frmSelPrintField:=TfrmSelPrintField.Create(Application);
with frmSelPrintField do
begin
with frmSelPrintField.PrnGrid do
begin
PrnGrid.Columns.Clear;
frmSelPrintField.IniName:=FTile;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=True then
begin
PrnGrid.Columns.Add;
j:=PrnGrid.Columns.Count-1;
PrnGrid.Columns[j].Title.Caption:=FTv.Columns[i].Caption;
PrnGrid.Columns[j].FieldName:=FTv.Columns[i].DataBinding.FieldName;
PrnGrid.Columns[j].Width:=FTv.Columns[i].Width;
end;
end;
end;
PrintDataSource.DataSet:=FAdoQry;
FAdoQry.Open;
frmSelPrintField.RMPrintDBGrid1.PageCaptionMsg.TitleMemo.Add(FTile);
if ShowModal=1 then
begin
end;
end;
frmSelPrintField.Free;
except
end;
end;
procedure SelPrintData10(FTv:TcxGridDBTableView;FAdoQry:TADOQuery;FTitle:string
;FLTitle:string;FRTile:string);
var
i,j,k:Integer;
fsj:string;
FOrder,fcolumnName:string;
begin
if FAdoQry.IsEmpty then Exit;
try
frmSelPrintField:=TfrmSelPrintField.Create(Application);
with frmSelPrintField do
begin
with frmSelPrintField.PrnGrid do
begin
PrnGrid.Columns.Clear;
frmSelPrintField.IniName:=FTitle;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=True then
begin
PrnGrid.Columns.Add;
j:=PrnGrid.Columns.Count-1;
PrnGrid.Columns[j].Title.Caption:=FTv.Columns[i].Caption;
PrnGrid.Columns[j].FieldName:=FTv.Columns[i].DataBinding.FieldName;
PrnGrid.Columns[j].Width:=FTv.Columns[i].Width;
if FTv.Columns[i].SortOrder=soAscending then
begin
FOrder:=' '+FTv.Columns[i].DataBinding.FieldName+' ';
end else
if FTv.Columns[i].SortOrder=soDescending then
begin
FOrder:=' '+FTv.Columns[i].DataBinding.FieldName+' DESC';
end;
end;
end;
end;
FAdoQry.Sort:=FOrder;
frmSelPrintField.RMPrintDBGrid1.PageCaptionMsg.TitleMemo.Add(FTitle);
frmSelPrintField.RMPrintDBGrid1.PageCaptionMsg.CaptionMsg.LeftMemo.Add(FLTitle);
frmSelPrintField.RMPrintDBGrid1.PageCaptionMsg.CaptionMsg.RightMemo.Add(FRTile);
//frmSelPrintField.ClientDataSet1.DisableControls;
CreateCDS20(FAdoQry,frmSelPrintField.ClientDataSet1);
InitCDSData20(FAdoQry,frmSelPrintField.ClientDataSet1);
//frmSelPrintField.ClientDataSet1.EnableControls;
if FTv.OptionsView.Footer=True then
begin
if FTv.DataController.Summary.FooterSummaryItems.Count>0 then
begin
frmSelPrintField.ClientDataSet1.Append;
frmSelPrintField.ClientDataSet1.FieldByName('index').Value:=frmSelPrintField.ClientDataSet1.RecNo+1;
frmSelPrintField.ClientDataSet1.Post;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=False then Continue;
fcolumnName:=FTv.Columns[i].Name;
if FTv.Columns[i].Summary.FooterKind<>sknone then
begin
for k:=0 to FTv.DataController.Summary.FooterSummaryItems.Count-1 do
begin
if TcxGridDBTableSummaryItem(FTv.DataController.Summary.FooterSummaryItems.Items[k]).Column.Name=fcolumnName then
begin
frmSelPrintField.ClientDataSet1.edit;
frmSelPrintField.ClientDataSet1.FieldByName(FTv.Columns[i].DataBinding.FieldName).Value:=
FTv.DataController.Summary.FooterSummaryValues[k];
frmSelPrintField.ClientDataSet1.Post;
end;
end;
end;
end;
end;
end;
//frmSelPrintField.ClientDataSet1.EnableControls;
if ShowModal=1 then
begin
end;
end;
finally
frmSelPrintField.Free;
end;
end;
procedure SelPrintDataNew(FTv:TcxGridDBTableView;FAdoQry:TADOQuery;FTitle:string
;FLTitle:string;FRTile:string);
var
i,j,k:Integer;
fsj:string;
FOrder,fcolumnName:string;
begin
if FAdoQry.IsEmpty then Exit;
try
frmSelPrintFieldNew:=TfrmSelPrintFieldNew.Create(Application);
with frmSelPrintFieldNew do
begin
with frmSelPrintFieldNew.PrnGrid do
begin
PrnGrid.Columns.Clear;
frmSelPrintFieldNew.IniName:=FTitle;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=True then
//(FTv.DataController.DataSource.DataSet.FieldByName(FTv.Columns[i].DataBinding.FieldName).DataType<>ftBoolean) then
begin
PrnGrid.Columns.Add;
j:=PrnGrid.Columns.Count-1;
PrnGrid.Columns[j].Title.Caption:=FTv.Columns[i].Caption;
PrnGrid.Columns[j].FieldName:=FTv.Columns[i].DataBinding.FieldName;
PrnGrid.Columns[j].Width:=FTv.Columns[i].Width;
if FTv.Columns[i].SortOrder=soAscending then
begin
FOrder:=' '+FTv.Columns[i].DataBinding.FieldName+' ';
end else
if FTv.Columns[i].SortOrder=soDescending then
begin
FOrder:=' '+FTv.Columns[i].DataBinding.FieldName+' DESC';
end;
end;
end;
end;
FAdoQry.Sort:=FOrder;
frmSelPrintFieldNew.RMPrintDBGrid1.PageCaptionMsg.TitleMemo.Add(FTitle);
frmSelPrintFieldNew.RMPrintDBGrid1.PageCaptionMsg.CaptionMsg.LeftMemo.Add(FLTitle);
frmSelPrintFieldNew.RMPrintDBGrid1.PageCaptionMsg.CaptionMsg.RightMemo.Add(FRTile);
CreateCDS20(FAdoQry,frmSelPrintFieldNew.ClientDataSet1);
InitCDSData20(FAdoQry,frmSelPrintFieldNew.ClientDataSet1);
if FTv.OptionsView.Footer=True then
begin
if FTv.DataController.Summary.FooterSummaryItems.Count>0 then
begin
frmSelPrintFieldNew.ClientDataSet1.Append;
frmSelPrintFieldNew.ClientDataSet1.FieldByName('index').Value:=frmSelPrintFieldNew.ClientDataSet1.RecNo+1;
frmSelPrintFieldNew.ClientDataSet1.Post;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=False then Continue;
fcolumnName:=FTv.Columns[i].Name;
if FTv.Columns[i].Summary.FooterKind<>sknone then
begin
for k:=0 to FTv.DataController.Summary.FooterSummaryItems.Count-1 do
begin
if TcxGridDBTableSummaryItem(FTv.DataController.Summary.FooterSummaryItems.Items[k]).Column.Name=fcolumnName then
begin
frmSelPrintFieldNew.ClientDataSet1.edit;
frmSelPrintFieldNew.ClientDataSet1.FieldByName(FTv.Columns[i].DataBinding.FieldName).Value:=
FTv.DataController.Summary.FooterSummaryValues[k];
frmSelPrintFieldNew.ClientDataSet1.Post;
end;
end;
end;
end;
end;
end;
if ShowModal=1 then
begin
end;
end;
finally
frmSelPrintFieldNew.Free;
end;
end;
procedure SelPrintDataNew10(FTv:TcxGridDBBandedTableView;FAdoQry:TADOQuery;FTitle:string
;FLTitle:string;FRTile:string);
var
i,j,k:Integer;
fsj:string;
FOrder,fcolumnName:string;
begin
if FAdoQry.IsEmpty then Exit;
try
frmSelPrintFieldNew:=TfrmSelPrintFieldNew.Create(Application);
with frmSelPrintFieldNew do
begin
with frmSelPrintFieldNew.PrnGrid do
begin
PrnGrid.Columns.Clear;
frmSelPrintFieldNew.IniName:=FTitle;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=True then
begin
PrnGrid.Columns.Add;
j:=PrnGrid.Columns.Count-1;
PrnGrid.Columns[j].Title.Caption:=FTv.Columns[i].Caption;
PrnGrid.Columns[j].FieldName:=FTv.Columns[i].DataBinding.FieldName;
PrnGrid.Columns[j].Width:=FTv.Columns[i].Width;
if FTv.Columns[i].SortOrder=soAscending then
begin
FOrder:=' '+FTv.Columns[i].DataBinding.FieldName+' ';
end else
if FTv.Columns[i].SortOrder=soDescending then
begin
FOrder:=' '+FTv.Columns[i].DataBinding.FieldName+' DESC';
end;
end;
end;
end;
FAdoQry.Sort:=FOrder;
frmSelPrintFieldNew.RMPrintDBGrid1.PageCaptionMsg.TitleMemo.Add(FTitle);
frmSelPrintFieldNew.RMPrintDBGrid1.PageCaptionMsg.CaptionMsg.LeftMemo.Add(FLTitle);
frmSelPrintFieldNew.RMPrintDBGrid1.PageCaptionMsg.CaptionMsg.RightMemo.Add(FRTile);
CreateCDS20(FAdoQry,frmSelPrintFieldNew.ClientDataSet1);
InitCDSData20(FAdoQry,frmSelPrintFieldNew.ClientDataSet1);
if FTv.OptionsView.Footer=True then
begin
if FTv.DataController.Summary.FooterSummaryItems.Count>0 then
begin
frmSelPrintFieldNew.ClientDataSet1.Append;
frmSelPrintFieldNew.ClientDataSet1.FieldByName('index').Value:=frmSelPrintFieldNew.ClientDataSet1.RecNo+1;
frmSelPrintFieldNew.ClientDataSet1.Post;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=False then Continue;
fcolumnName:=FTv.Columns[i].Name;
if FTv.Columns[i].Summary.FooterKind<>sknone then
begin
for k:=0 to FTv.DataController.Summary.FooterSummaryItems.Count-1 do
begin
if TcxGridDBTableSummaryItem(FTv.DataController.Summary.FooterSummaryItems.Items[k]).Column.Name=fcolumnName then
begin
frmSelPrintFieldNew.ClientDataSet1.edit;
frmSelPrintFieldNew.ClientDataSet1.FieldByName(FTv.Columns[i].DataBinding.FieldName).Value:=
FTv.DataController.Summary.FooterSummaryValues[k];
frmSelPrintFieldNew.ClientDataSet1.Post;
end;
end;
end;
end;
end;
end;
if ShowModal=1 then
begin
end;
end;
finally
frmSelPrintFieldNew.Free;
end;
end;
procedure SelPrintData20(FTv:TcxGridDBBandedTableView;FAdoQry:TADOQuery;FTitle:string
;FLTitle:string;FRTile:string);
var
i,j,k:Integer;
fsj:string;
FOrder,fcolumnName:string;
begin
if FAdoQry.IsEmpty then Exit;
try
frmSelPrintField:=TfrmSelPrintField.Create(Application);
with frmSelPrintField do
begin
with frmSelPrintField.PrnGrid do
begin
PrnGrid.Columns.Clear;
frmSelPrintField.IniName:=FTitle;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=True then
begin
PrnGrid.Columns.Add;
j:=PrnGrid.Columns.Count-1;
PrnGrid.Columns[j].Title.Caption:=FTv.Columns[i].Caption;
PrnGrid.Columns[j].FieldName:=FTv.Columns[i].DataBinding.FieldName;
PrnGrid.Columns[j].Width:=FTv.Columns[i].Width;
if FTv.Columns[i].SortOrder=soAscending then
begin
FOrder:=' '+FTv.Columns[i].DataBinding.FieldName+' ';
end else
if FTv.Columns[i].SortOrder=soDescending then
begin
FOrder:=' '+FTv.Columns[i].DataBinding.FieldName+' DESC';
end;
end;
end;
end;
FAdoQry.Sort:=FOrder;
frmSelPrintField.RMPrintDBGrid1.PageCaptionMsg.TitleMemo.Add(FTitle);
frmSelPrintField.RMPrintDBGrid1.PageCaptionMsg.CaptionMsg.LeftMemo.Add(FLTitle);
frmSelPrintField.RMPrintDBGrid1.PageCaptionMsg.CaptionMsg.RightMemo.Add(FRTile);
//frmSelPrintField.ClientDataSet1.DisableControls;
CreateCDS20(FAdoQry,frmSelPrintField.ClientDataSet1);
InitCDSData20(FAdoQry,frmSelPrintField.ClientDataSet1);
//frmSelPrintField.ClientDataSet1.EnableControls;
if FTv.OptionsView.Footer=True then
begin
if FTv.DataController.Summary.FooterSummaryItems.Count>0 then
begin
frmSelPrintField.ClientDataSet1.Append;
frmSelPrintField.ClientDataSet1.FieldByName('index').Value:=frmSelPrintField.ClientDataSet1.RecNo+1;
frmSelPrintField.ClientDataSet1.Post;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=False then Continue;
fcolumnName:=FTv.Columns[i].Name;
if FTv.Columns[i].Summary.FooterKind<>sknone then
begin
for k:=0 to FTv.DataController.Summary.FooterSummaryItems.Count-1 do
begin
if TcxGridDBTableSummaryItem(FTv.DataController.Summary.FooterSummaryItems.Items[k]).Column.Name=fcolumnName then
begin
frmSelPrintField.ClientDataSet1.edit;
frmSelPrintField.ClientDataSet1.FieldByName(FTv.Columns[i].DataBinding.FieldName).Value:=
FTv.DataController.Summary.FooterSummaryValues[k];
frmSelPrintField.ClientDataSet1.Post;
end;
end;
end;
end;
end;
end;
//frmSelPrintField.ClientDataSet1.EnableControls;
if ShowModal=1 then
begin
end;
end;
finally
frmSelPrintField.Free;
end;
end;
procedure SelExportData(FTv:TcxGridDBTableView;FAdoQry:TADOQuery;FTile:string);
var
i,j:Integer;
fsj:string;
begin
if FAdoQry.IsEmpty then Exit;
try
frmSelExportField:=TfrmSelExportField.Create(Application);
with frmSelExportField do
begin
with frmSelExportField.ExpGrid do
begin
// ExpGrid.Columns.Clear;
ExpGrid.ClearItems;
frmSelExportField.IniName:=FTile;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=True then
begin
ExpGrid.CreateColumn;
j:=ExpGrid.ColumnCount-1;
ExpGrid.Columns[j].Caption:=FTv.Columns[i].Caption;
ExpGrid.Columns[j].DataBinding.FieldName:=FTv.Columns[i].DataBinding.FieldName;
ExpGrid.Columns[j].Width:=FTv.Columns[i].Width;
end;
end;
end;
ExportDataSource.DataSet:=FAdoQry;
FAdoQry.Open;
if ShowModal=1 then
begin
end;
end;
frmSelExportField.Free;
except
end;
end;
procedure SelExportBandData(FTv:TcxGridDBBandedTableView;FAdoQry:TADOQuery;FTile:string);
var
i,j:Integer;
fsj:string;
begin
if FAdoQry.IsEmpty then Exit;
try
frmSelExportField:=TfrmSelExportField.Create(Application);
with frmSelExportField do
begin
with frmSelExportField.ExpGrid do
begin
// ExpGrid.Columns.Clear;
ExpGrid.ClearItems;
frmSelExportField.IniName:=FTile;
for i:=0 to FTv.ColumnCount-1 do
begin
if FTv.Columns[i].Visible=True then
begin
ExpGrid.CreateColumn;
j:=ExpGrid.ColumnCount-1;
ExpGrid.Columns[j].Caption:=FTv.Columns[i].Caption;
ExpGrid.Columns[j].DataBinding.FieldName:=FTv.Columns[i].DataBinding.FieldName;
ExpGrid.Columns[j].Width:=FTv.Columns[i].Width;
end;
end;
end;
ExportDataSource.DataSet:=FAdoQry;
FAdoQry.Open;
if ShowModal=1 then
begin
end;
end;
frmSelExportField.Free;
except
end;
end;
///////////////////////////////////////////////////
//*****<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***** //
/////////////////////////////////////////////////
function SSWR(s: real): real;
var
r1, r2: real;
s1, s2: string;
begin
r1:= int(s);
r2:= frac(s);
s1:= copy(floattostr(r1), 1, length(floattostr(r1)));
if length(floattostr(r2)) >= 5 then
begin
if strtoint(copy((floattostr(r2)), 5, 1)) >= 5 then
if strtoint(copy((floattostr(r2)), 4, 1)) = 9 then
if strtoint(copy((floattostr(r2)), 3, 1)) = 9 then
begin
s1:= inttostr(strtoint(s1) + 1);
s2:= '';
end
else
S2:= inttostr(strtoint(copy((floattostr(r2)), 3, 1)) + 1)
else
if copy((floattostr(r2)), 3, 1) = '0' then
S2:= '0' + inttostr(strtoint(copy(floattostr(r2), 3, 2)) + 1)
else
s2:= inttostr(strtoint(copy(floattostr(r2), 3, 2)) + 1)
else
s2:= copy(floattostr(r2), 3, 2);
end
else
s2:= copy(floattostr(r2), 3, 2);
result := strtofloat(s1 + '.' + s2);
end;
procedure SInitCDSDataSel(fromADO:TADOQuery;toCDS:TclientDataSet);
var
i:integer;
k:integer;
begin
if fromADO.IsEmpty then exit;
fromADO.first;
K:=1;
try
toCDS.DisableControls;
toCDS.Filtered:=false;
while not fromADO.Eof do
begin
with toCDS do
begin
Append;
for i:=0 to fromADO.FieldCount-1 do
begin
fields[i].value:=fromADO.Fields[i].Value ;
end;
//fieldByName('Sflag').AsString :='1';
//fieldByName('Sindex').value :=k;
fieldByName('Ssel').value :=false;
inc(k);
Post;
end;
fromADO.Next;
end;
if not toCDS.IsEmpty then
begin
toCDS.First ;
end;
finally
toCDS.EnableControls;
end;
end;
procedure SCreateCDSSel(SADOQry:TADOQuery; mClientDataset:TclientDataSet );
var
i:integer;
mfieldName:string;
mSize:integer;
begin
mfieldName:='';
mClientDataset.FieldDefs.Clear;
with SADOQry do
begin
for i:=0 to fieldCount-1 do //
begin
if (Fields[i].DataType=ftString) and (Fields[i].Size=0) then
begin
msize:=1;
end
else
msize:=Fields[i].Size;
mfieldName:=trim(fields[i].FieldName);
mClientDataset.FieldDefs.Add(mfieldName,
Fields[i].DataType,msize);
end;
end;
mClientDataset.FieldDefs.Add('Sflag',ftString,1);
mClientDataset.FieldDefs.Add('Sindex',ftInteger,0);
mClientDataset.FieldDefs.Add('Ssel',ftBoolean,0);
mClientDataset.FieldDefs.Add('SDefNote',ftString,10);
mClientDataset.Close;
mClientDataset.CreateDataSet;
end;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
procedure CopyAddRow(Tv1:TcxGridDBTableView;CDS_Sub:TClientDataSet);
var
AA:array[0..50] of string;
i,j:Integer;
begin
if CDS_Sub.IsEmpty then Exit;
for i:=0 to Tv1.ColumnCount-1 do
begin
AA[i]:=Trim(CDS_Sub.fieldbyname(Tv1.Columns[i].DataBinding.FieldName).AsString);
end;
with CDS_Sub do
begin
Append;
for i:=0 to Tv1.ColumnCount-1 do
begin
if AA[i]<>'' then
begin
CDS_Sub.FieldByName(Tv1.Columns[i].DataBinding.FieldName).Value:=AA[i];
end;
end;
Post;
end;
end;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
procedure CopyAddRowCDS(CDS_Sub:TClientDataSet);
var
AA:array[0..50] of string;
i,j:Integer;
begin
if CDS_Sub.IsEmpty then Exit;
for i:=0 to CDS_Sub.FieldCount-1 do
begin
AA[i]:=Trim(CDS_Sub.fieldbyname(CDS_Sub.Fields[i].FieldName).AsString);
end;
with CDS_Sub do
begin
Append;
for i:=0 to CDS_Sub.FieldCount-1 do
begin
if AA[i]<>'' then
begin
CDS_Sub.FieldByName(CDS_Sub.Fields[i].FieldName).Value:=AA[i];
end;
end;
Post;
end;
end;
procedure OneKeyPost(Tv1:TcxGridDBTableView;CDS_Sub:TClientDataSet);
var
FValue,FFValue,FColumn,FFColumn:String;
begin
//FColumn:=tv1.Columns[Tv1.Controller.FocusedColumnIndex].DataBinding.FieldName;
//FFColumn:=Tv1.Columns[Tv1.Controller.FocusedColumnIndex].Summary.GroupFormat;
FColumn:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
FFColumn:=Tv1.Controller.FocusedColumn.Summary.GroupFormat;
FValue:=Trim(CDS_Sub.fieldbyname(FColumn).AsString);
if Trim(FFColumn)<>'' then
begin
FFValue:=Trim(CDS_Sub.fieldbyname(FFColumn).AsString);
end;
with CDS_Sub do
begin
DisableControls;
First;
while not Eof do
begin
Edit;
if FValue='' then
begin
CDS_Sub.FieldByName(FColumn).Value:=null;
end else
begin
CDS_Sub.FieldByName(FColumn).Value:=FValue;
end;
if Trim(FFColumn)<>'' then
begin
if FFValue='' then
begin
CDS_Sub.FieldByName(FFColumn).Value:=null;
end else
begin
CDS_Sub.FieldByName(FFColumn).Value:=FFValue;
end;
end;
Post;
Next;
end;
EnableControls;
end;
end;
///<2F>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
procedure SeniorFilter(Tv1:TcxGridDBTableView;ADOQueryMain:TADOQuery);
begin
try
frmFilterHelp:=TfrmFilterHelp.Create(Application);
with frmFilterHelp do
begin
CreateFilers(TV1);
if ShowModal=1 then
begin
GSQryDofilter(ADOQueryMain,GSGetFilters());
end;
end;
finally
frmFilterHelp.Free;
end;
end;
end.