From b066b0e4eba0b3be886007a5bba74e87e4ddfa3a Mon Sep 17 00:00:00 2001 From: "DESKTOP-E401PHE\\Administrator" Date: Mon, 24 Feb 2025 21:06:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B7=E6=96=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dp10RepoV1/public10/ThreeFun/Fun/U_RTFun.pas | 426 +++++++++++++----- 1 file changed, 316 insertions(+), 110 deletions(-) diff --git a/Delphi10/开发档案/Dp10RepoV1/public10/ThreeFun/Fun/U_RTFun.pas b/Delphi10/开发档案/Dp10RepoV1/public10/ThreeFun/Fun/U_RTFun.pas index 0bc63bb..cdbc9a4 100644 --- a/Delphi10/开发档案/Dp10RepoV1/public10/ThreeFun/Fun/U_RTFun.pas +++ b/Delphi10/开发档案/Dp10RepoV1/public10/ThreeFun/Fun/U_RTFun.pas @@ -4,15 +4,16 @@ interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, cxStyles, cxCustomData,System.Types, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DBGrids, DB, cxDBData, - cxGridLevel, cxClasses, cxControls, cxGridCustomView, ADODB, StrUtils, Midas, - cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxTimeEdit, - cxTreeView, cxGrid, cxDBLookupComboBox, cxCalendar, cxCurrencyEdit,dxLayoutContainer, - cxGridExportLink, ExtCtrls, Buttons, DBClient, RTComboBox, cxDropDownEdit, - cxGridBandedTableView, cxGridDBBandedTableView, cxRichEdit, cxButtonEdit, - IniFiles, WinSock, IdHTTP, dxcore, cxTextEdit, FireDAC.Comp.Client, - Vcl.Clipbrd, cxMemo,dxLayoutControl; + Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, cxStyles, cxCustomData, + System.Types, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DBGrids, DB, + cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, ADODB, + StrUtils, Midas, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxTimeEdit, cxTreeView, cxGrid, cxDBLookupComboBox, cxCalendar, cxCurrencyEdit, + dxLayoutContainer, cxGridExportLink, ExtCtrls, Buttons, DBClient, RTComboBox, + cxDropDownEdit, cxGridBandedTableView, cxGridDBBandedTableView, cxRichEdit, + cxButtonEdit, IniFiles, WinSock, IdHTTP, dxcore, cxTextEdit, + FireDAC.Comp.Client, Vcl.Clipbrd, cxMemo, dxLayoutControl, uSZHN_JSON, + System.JSON; type TA = class(TComponent) @@ -22,9 +23,12 @@ type // DLLļ procedure InitDllEvt(FromFile: string; FormID: Integer; Para: string; FormType: Integer; Title: string; Def1: string; Def2: string; Def3: string; Def4: string; Def5: string; Def6: string; Def7: string; Def8: string; Def9: string; Def10: string); -procedure pasteDatatTocxGrid(Tv1:TcxGridDBTableView); + +procedure pasteDatatTocxGrid(Tv1: TcxGridDBTableView); // ȡ + function GetLSNo(ADOQueryTmp: TADOQuery; var mMaxNo: string; mFlag: string; mTable: string; mlen: Integer; mtype: Integer = 0): Boolean; + function GetLSNo20(ADOQueryTmp: TADOQuery; var mMaxNo: string; mFlag: string; mTable: string; mlen: Integer; mtype: Integer = 0): Boolean; procedure GetFileInfo(mFile: string; var mfileSize: integer; var CreationTime: tdatetime; var WriteTime: tdatetime); @@ -32,11 +36,14 @@ procedure GetFileInfo(mFile: string; var mfileSize: integer; var CreationTime: t function SGetServerDate(ADOQueryTmp: TADOQuery): TdateTime; // ȡ function SGetServerDateTime(ADOQueryTmp: TADOQuery): TdateTime; // ȡʱ + function SLGetFilters(layoutControl: TdxLayoutControl; EquTag, LikeTag: Integer): string; + procedure LSCSHData(ADOQueryTmp: TADOQuery; mParent: TdxLayoutControl; FTag: Integer); procedure LRTSetsavedata(ADOQueryCmd: TADOQuery; MyTable: string; Myparent: TdxLayoutControl; MyTag: Integer); -procedure addAdoSelField(SADOQry: TADOQuery;mSelFieldName:string='Ssel'); + +procedure addAdoSelField(SADOQry: TADOQuery; mSelFieldName: string = 'Ssel'); {ȡָλС} function RoundFloat(f: double; i: Integer): double; @@ -55,9 +62,13 @@ function RoundFloat(f: double; i: Integer): double; {ִй }procedure SDofilter(ADOQry: TADOQuery; FilterStr: string); {CDS }procedure SCreateCDS(SADOQry: TADOQuery; mClientDataset: TclientDataSet); {CDSֵ }procedure SInitCDSData(fromADO: TADOQuery; toCDS: TclientDataSet); + procedure InitAdoData(ADO1: TADOQuery; Tv1: TcxGridDBTableView; SqlStr, FilterStr, MarkStr: string); {ռˢ }procedure InitCDSData(ADO1: TADOQuery; CDS1: TclientDataSet; Tv1: TcxGridDBTableView; SqlStr, FilterStr, MarkStr: string); +{ռ }procedure CDSDataFilter(ADO1: TADOQuery; CDS1: TclientDataSet; Tv1: TcxGridDBTableView; JsonArgs: string); overload; +{ռ }procedure CDSDataFilter(ADO1: TADOQuery; CDS1: TclientDataSet; Tv1: TcxGridDBBandedTableView; JsonArgs: string); overload; + ////////////////////////////////////////////////////////////////////////////////////////// // **************** ˢ ADO CDS TV *****************// ////////////////////////////////////////////////////////////////////////////////////////// @@ -183,6 +194,12 @@ procedure SelOKNo(CDS_MainSel: TclientDataSet; FSel: Boolean); // ȫѡ/ȫ procedure SelOKNoFiler(Tv1: TcxGridDBTableView; FSel: Boolean); // Tv1ȫѡ/ȫ +function CommonFiltersByContainer(TMControl: TControl; JsonArgs: string): string; + +function CommonFiltersByTv(Tv1: TcxGridDBTableView; JsonArgs: string): string; + +function CommonGetSingleFilter(MyControl: TControl; EquTag, LikeTag, FieldTag: Integer; MFields: TStringList): string; + procedure SelTVToCDS(Tv1: TcxGridDBTableView; CDS1: TclientDataSet; KeyId: string); // ͨKeyIdTv1ѡӳ䵽CDS1 function SelCDSKey(CDS_1: TclientDataSet; Keys: TArray): TArray; // ѡkey @@ -194,9 +211,12 @@ procedure HiddenTVColumn(Tv1: TcxGridDBTableView; FieldName: string); // procedure CopyTVFocusValue(Tv1: TcxGridDBTableView); // TV //Ƿɾݼ¼ -function isCanDataDelete(mFillerId:string='';mfiller:string=''):boolean; -function isCanDataEdit(mFillerId:string='';mfiller:string=''):boolean; -procedure raiseException(msg:string); //׳쳣 + +function isCanDataDelete(mFillerId: string = ''; mfiller: string = ''): boolean; + +function isCanDataEdit(mFillerId: string = ''; mfiller: string = ''): boolean; + +procedure raiseException(msg: string); //׳쳣 // **************** ҳ *****************// @@ -214,12 +234,13 @@ function WriteCloseWin(AdoCmd: TADOQuery; mCaption: string; FormID: Integer; mDl procedure selectDataRow(Sender: TcxCustomGridTableView; mKeyField: string); // ʦүдTv1ӡcds -function getConfigValue(DllName: string; ConfigName: string; ADOQueryTmp: TADOQuery):Variant; +function getConfigValue(DllName: string; ConfigName: string; ADOQueryTmp: TADOQuery): Variant; function Split(const s: string; Separator: char): TStringDynArray; // **************** ʦүд *****************// - procedure SInitTcxComBoxBySql(ADOQueryTmp: TADOQuery; cb: TcxComboBox; emptyFlag: Boolean; mSql: string); +procedure SInitTcxComBoxBySql(ADOQueryTmp: TADOQuery; cb: TcxComboBox; emptyFlag: Boolean; mSql: string); + type TMyF = function(App: TApplication; // Ӧó (Delphi) FormH: HWND; // ڵĸھ (PB) @@ -237,7 +258,151 @@ var implementation uses - U_DataLink,U_globalVar; + U_DataLink, U_globalVar; + +function CommonFiltersByTv(Tv1: TcxGridDBTableView; JsonArgs: string): string; +var + i: integer; + JSONObject: TJSONObject; + MFields: TStringList; +begin + Result := ''; + JSONObject := TJSONObject.ParseJSONValue(JsonArgs) as TJSONObject; + MFields := TStringList.Create(); + ExtractStrings(['|'], [' '], PChar(JSONObject.S['Fields']), MFields); + for i := 0 to Tv1.ColumnCount - 1 do + begin + if MFields.IndexOf(Tv1.Columns[i].DataBinding.FieldName) >= 0 then + begin + Result := Result + 'and isnull(' + Tv1.Columns[i].DataBinding.FieldName + ','''')=' + quotedStr(Trim(Tv1.DataController.DataSet.FieldByName(Tv1.Columns[i].DataBinding.FieldName).AsString)) + ' '; + end; + end; + MFields.Free; + if Trim(Result) <> '' then + Result := Trim(RightStr(Result, Length(Result) - 4)); +end; + +function CommonFiltersByContainer(TMControl: TControl; JsonArgs: string): string; +var + i, EquTag, LikeTag, FieldTag: Integer; + JSONObject: TJSONObject; + MFields: TStringList; +begin + Result := ''; + JSONObject := TJSONObject.ParseJSONValue(JsonArgs) as TJSONObject; + MFields := TStringList.Create(); + ExtractStrings(['|'], [' '], PChar(JSONObject.S['Fields']), MFields); + EquTag := JSONObject.I['EquTag']; + LikeTag := JSONObject.I['LikeTag']; + FieldTag := JSONObject.I['FieldTag']; + if TMControl is TPanel then + begin + with TPanel(TMControl) do + begin + for i := 0 to ControlCount - 1 do + begin + if Controls[i] is TLabel then + continue; + Result := Result + CommonGetSingleFilter(Controls[i], EquTag, LikeTag, FieldTag, MFields); + end; + end; + end + else if TMControl is TdxLayoutControl then + begin + with TdxLayoutControl(TMControl) do + begin + for i := 0 to ControlCount - 1 do + begin + if Controls[i] is TLabel then + continue; + Result := Result + CommonGetSingleFilter(Controls[i], EquTag, LikeTag, FieldTag, MFields); + end; + end; + end; + + MFields.Free; + if Trim(Result) <> '' then + Result := Trim(RightStr(Result, Length(Result) - 4)); +end; + +function CommonGetSingleFilter(MyControl: TControl; EquTag, LikeTag, FieldTag: Integer; MFields: TStringList): string; +var + MValue, MField, MResult: string; + MTag: Integer; +begin + MResult := ''; + if MyControl is TEdit then + begin + if Trim(TEdit(MyControl).Text) <> '' then + begin + if FieldTag = 1 then + MField := MyControl.Hint + else + MField := MyControl.Name; + MValue := Trim(TEdit(MyControl).Text); + MTag := MyControl.Tag; + end; + end + else if MyControl is TcxTextEdit then + begin + if Trim(TcxTextEdit(MyControl).Text) <> '' then + begin + if FieldTag = 1 then + MField := MyControl.Hint + else + MField := MyControl.Name; + MValue := Trim(TcxTextEdit(MyControl).Text); + MTag := MyControl.Tag; + end; + end + else if MyControl is TComboBox then + begin + if Trim(TComboBox(MyControl).Text) <> '' then + begin + if FieldTag = 1 then + MField := MyControl.Hint + else + MField := MyControl.Name; + MValue := Trim(TComboBox(MyControl).Text); + MTag := MyControl.Tag; + end; + end + else if MyControl is TcxComboBox then + begin + if Trim(TcxComboBox(MyControl).Text) <> '' then + begin + if FieldTag = 1 then + MField := MyControl.Hint + else + MField := MyControl.Name; + MValue := Trim(TcxComboBox(MyControl).Text); + MTag := MyControl.Tag; + end; + end; + + if MValue <> '' then + begin + if MFields.Count = 0 then + begin + if MTag = EquTag then + MResult := MResult + 'and ' + MField + '=' + quotedStr(MValue) + else if MTag = LikeTag then + MResult := MResult + 'and ' + MField + ' like ' + quotedStr('%' + MValue + '%'); + end + else + begin + if MFields.IndexOf(MField) >= 0 then + begin + if MTag = EquTag then + MResult := MResult + 'and ' + MField + '=' + quotedStr(MValue) + else if MTag = LikeTag then + MResult := MResult + 'and ' + MField + ' like ' + quotedStr('%' + MValue + '%'); + end; + end; + end; + + Result := MResult; +end; function ExportToFtErp(mFileName: string; ADOQueryCmd: TADOQuery): boolean; var @@ -810,18 +975,18 @@ begin else idx := -1; TcxComboBox(Controls[i]).ItemIndex := idx; - end + end else if Controls[i] is TcxDateEdit then begin if not isEmpty and not fieldByName(mfield).IsNull then TcxDateEdit(Controls[i]).date := fieldByName(mfield).AsDateTime else - TcxDateEdit(Controls[i]).text := ''; - end + TcxDateEdit(Controls[i]).text := ''; + end else if Controls[i] is Tcxmemo then begin Tcxmemo(Controls[i]).Text := Trim(fieldByName(mfield).AsString); - end + end // else if Controls[i] is TRTComboBox then // begin // idx := TRTComboBox(Controls[i]).IndexOfItem2(Trim(fieldByName(mfield).AsString)); @@ -1458,7 +1623,6 @@ begin end; end; - procedure LRTSetsavedata(ADOQueryCmd: TADOQuery; MyTable: string; Myparent: TdxLayoutControl; MyTag: Integer); var i: Integer; @@ -1558,8 +1722,8 @@ begin end else if Controls[i] is TcxDateEdit then begin - if trim(TcxDateEdit(Controls[i]).Text)='' then - ADOQueryCmd.fieldByName(Controls[i].Name).Value :=null + if trim(TcxDateEdit(Controls[i]).Text) = '' then + ADOQueryCmd.fieldByName(Controls[i].Name).Value := null else ADOQueryCmd.fieldByName(Controls[i].Name).Value := TcxDateEdit(Controls[i]).Text; end @@ -1576,7 +1740,6 @@ begin end; end; - procedure SClearData(mParent: TWinControl; FTag: Integer); var i, idx: Integer; @@ -1875,15 +2038,15 @@ function SLGetFilters(layoutControl: TdxLayoutControl; EquTag, LikeTag: Integer) var i, j, k: Integer; fsj, fsj1: string; - control:Tcontrol; + control: Tcontrol; begin Result := ''; with layoutControl do begin for i := 0 to ControlCount - 1 do begin - control:= Controls[i] ; - if control is TLabel or (control.Tag=99) then + control := Controls[i]; + if control is TLabel or (control.Tag = 99) then continue; // if Controls[i] is TcxTextEdit then @@ -2099,6 +2262,40 @@ begin Result := Trim(RightStr(Result, Length(Result) - 4)); end; +procedure CDSDataFilter(ADO1: TADOQuery; CDS1: TclientDataSet; Tv1: TcxGridDBTableView; JsonArgs: string); +var + JSONObject: TJSONObject; +begin + JSONObject := TJSONObject.ParseJSONValue(JsonArgs) as TJSONObject; + + if ADO1.Active then + begin + Tv1.BeginUpdate(); + SDofilter(ADO1, JSONObject.S['FilterStr']); + SCreateCDS(ADO1, CDS1); + SInitCDSData(ADO1, CDS1); + Tv1.EndUpdate; + end; + +end; + +procedure CDSDataFilter(ADO1: TADOQuery; CDS1: TclientDataSet; Tv1: TcxGridDBBandedTableView; JsonArgs: string); +var + JSONObject: TJSONObject; +begin + JSONObject := TJSONObject.ParseJSONValue(JsonArgs) as TJSONObject; + + if ADO1.Active then + begin + Tv1.BeginUpdate(); + SDofilter(ADO1, JSONObject.S['FilterStr']); + SCreateCDS(ADO1, CDS1); + SInitCDSData(ADO1, CDS1); + Tv1.EndUpdate; + end; + +end; + /// ///////////////////////////////////////////////////////// // ù˺Hint /// ///////////////////////////////////////////////////////// @@ -2225,7 +2422,7 @@ begin end; //////////////////////////////////// -procedure addAdoSelField(SADOQry: TADOQuery;mSelFieldName:string='Ssel'); +procedure addAdoSelField(SADOQry: TADOQuery; mSelFieldName: string = 'Ssel'); begin //if SADOQry.FieldDefs.IndexOf(mSelFieldName)<0 then // SADOQry.Fields.Add() @@ -2239,7 +2436,7 @@ begin if fromADO.isEmpty then exit; fromADO.first; - k := toCDS.RecordCount+1; + k := toCDS.RecordCount + 1; try toCDS.DisableControls; toCDS.Filtered := false; @@ -2277,23 +2474,24 @@ var begin try - Tv1.BeginUpdate() ; + Tv1.BeginUpdate(); if trim(MarkStr) <> '' then begin if not CDS1.IsEmpty then - MarkStrValue := TRIM(CDS1.FieldByName(MarkStr).AsString); + MarkStrValue := TRIM(CDS1.FieldByName(MarkStr).AsString); end; with ADO1 do begin Close; SQL.Clear; + Filtered := false; sql.Add(SqlStr); Open; - end; + end; if trim(FilterStr) <> '' then - SDofilter(ADO1, FilterStr); + SDofilter(ADO1, FilterStr); SCreateCDS(ADO1, CDS1); SInitCDSData(ADO1, CDS1); @@ -2303,10 +2501,11 @@ begin if trim(MarkStr) <> '' then CDS1.Locate(MarkStr, MarkStrValue, []); finally - tv1.EndUpdate; + Tv1.EndUpdate; end; end; ////////////////////////////////////// + procedure InitAdoData(ADO1: TADOQuery; Tv1: TcxGridDBTableView; SqlStr, FilterStr, MarkStr: string); var MarkStrValue: string; @@ -2329,12 +2528,13 @@ begin if trim(FilterStr) <> '' then SDofilter(ADO1, FilterStr); Tv1.DataController.Filter.Refresh; - if trim(MarkStr) <> '' then - ADO1.Locate(MarkStr, MarkStrValue, []); + if trim(MarkStr) <> '' then + ADO1.Locate(MarkStr, MarkStrValue, []); finally Tv1.EndUpdate(); end; end; + procedure SInitRadioGroupBySql(ADOQueryTmp: TADOQuery; rg: TRadioGroup; emptyFlag: Boolean; mSql: string); begin with ADOQueryTmp do @@ -2409,7 +2609,7 @@ begin end; while not Eof do begin - A := TA.create(Nil); + 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)) @@ -2445,7 +2645,7 @@ begin end; while not Eof do begin - A := TA.create(Nil); + 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)) @@ -2665,7 +2865,7 @@ end; /// //////////////////////////////////////////////// function GetLSNo(ADOQueryTmp: TADOQuery; var mMaxNo: string; mFlag: string; mTable: string; mlen: Integer; mtype: Integer = 0): Boolean; begin - Result := false; + Result := false; try with ADOQueryTmp do begin @@ -2711,7 +2911,7 @@ end; /// //////////////////////////////////////////////// function GetLSNo20(ADOQueryTmp: TADOQuery; var mMaxNo: string; mFlag: string; mTable: string; mlen: Integer; mtype: Integer = 0): Boolean; begin - Result := false; + Result := false; try with ADOQueryTmp do begin @@ -2756,13 +2956,13 @@ var begin if gGridNativeSet or gIsYsUse then begin - mDir:= ExtractFilePath(application.ExeName) + 'Layout\' + filePack ; - mFileName := mDir + '\' + Trim(fileName) + '.dbg'; + mDir := ExtractFilePath(application.ExeName) + 'Layout\' + filePack; + mFileName := mDir + '\' + Trim(fileName) + '.dbg'; //Ӳļлָ if FileExists(mFileName) then - cxGrid.RestoreFromIniFile(mFileName, false, false); + cxGrid.RestoreFromIniFile(mFileName, false, false); exit; - end ; + end; mGridName := cxGrid.GetParentComponent.Name + '.' + cxGrid.name; @@ -2797,11 +2997,11 @@ begin while not eof do begin - mcxGridDbColumn1:= cxGrid.GetColumnByFieldName(trim(fieldByName('fieldName').asstring)) ; - if (mcxGridDbColumn1 <> nil) and (lowercase(mcxGridDbColumn1.Name)=lowercase(trim(fieldByName('columnName').asstring))) then + mcxGridDbColumn1 := cxGrid.GetColumnByFieldName(trim(fieldByName('fieldName').asstring)); + if (mcxGridDbColumn1 <> nil) and (lowercase(mcxGridDbColumn1.Name) = lowercase(trim(fieldByName('columnName').asstring))) then begin if mcxGridDbColumn1.Hidden then - mcxGridDbColumn1.Visible := false + mcxGridDbColumn1.Visible := false else mcxGridDbColumn1.Visible := fieldByName('Visible').AsBoolean; mcxGridDbColumn1.Width := fieldByName('width').asInteger; @@ -2848,7 +3048,7 @@ begin cxGrid.RestoreFromIniFile(mFileName); exit; - end; + end; mGridName := cxGrid.GetParentComponent.Name + '.' + cxGrid.name; try @@ -2905,8 +3105,8 @@ begin // break; // end; // end; - mcxGridDbColumn1:= cxGrid.GetColumnByFieldName(trim(fieldByName('fieldName').asstring)) ; - if (mcxGridDbColumn1 <> nil) and (lowercase(mcxGridDbColumn1.Name)=lowercase(trim(fieldByName('columnName').asstring)))then + mcxGridDbColumn1 := cxGrid.GetColumnByFieldName(trim(fieldByName('fieldName').asstring)); + if (mcxGridDbColumn1 <> nil) and (lowercase(mcxGridDbColumn1.Name) = lowercase(trim(fieldByName('columnName').asstring))) then begin mcxGridDbColumn1.Position.BandIndex := fieldByName('BandIndexNo').asInteger; if fieldByName('BandWidth').AsInteger > 0 then @@ -2951,14 +3151,14 @@ var mADOCmd: TADOQuery; mGridName: string; mfromName: string; - mDir:string; + mDir: string; i: integer; mcurdate: Tdatetime; begin - mDir:= ExtractFilePath(application.ExeName) + 'Layout\' ; - if not DirectoryExists( mDir) then + mDir := ExtractFilePath(application.ExeName) + 'Layout\'; + if not DirectoryExists(mDir) then begin - CreateDir(pwidechar(mDir)); + CreateDir(pwidechar(mDir)); end; // mFileName := mDir + '\' + Trim(fileName) + '.dbg'; mFileName := ExtractFilePath(application.ExeName) + 'Layout\' + filePack + '\' + Trim(fileName) + '.dbg'; @@ -2976,7 +3176,7 @@ begin try mADOCmd := TADOQuery.Create(nil); mADOCmd.ConnectionString := DConString; - mADOCmd.LockType:=ltBatchOptimistic; + mADOCmd.LockType := ltBatchOptimistic; with mADOCmd do begin close; @@ -3032,7 +3232,7 @@ begin post; end; end; - mADOCmd.UpdateBatch() ; + mADOCmd.UpdateBatch(); finally mADOCmd.close; mADOCmd.Free; @@ -3050,14 +3250,14 @@ var mADOCmd: TADOQuery; mGridName: string; mfromName: string; - mDir:string; + mDir: string; i: integer; mcurdate: Tdatetime; begin - mDir:= ExtractFilePath(application.ExeName) + 'Layout\' + filePack ; - if not DirectoryExists( mDir) then + mDir := ExtractFilePath(application.ExeName) + 'Layout\' + filePack; + if not DirectoryExists(mDir) then begin - CreateDirectory(pwidechar(mDir), nil); + CreateDirectory(pwidechar(mDir), nil); end; mFileName := mDir + '\' + Trim(fileName) + '.dbg'; //mFileName := ExtractFilePath(application.ExeName) + 'Layout\' + filePack + '\' + Trim(fileName) + '.dbg'; @@ -3279,6 +3479,7 @@ begin Result := RTValues; end; // TV + procedure CopyTVFocusValue(Tv1: TcxGridDBTableView); var MVlaue: string; @@ -3457,7 +3658,7 @@ begin end; //////////////////////////// -function writeSysLog():boolean; +function writeSysLog(): boolean; begin end; @@ -3490,61 +3691,61 @@ begin end; // ׳쳣 -procedure raiseException(msg:string); +procedure raiseException(msg: string); begin - raise Exception.Create(PWideChar( trim(msg))); + raise Exception.Create(PWideChar(trim(msg))); end; ////////////////////////////// //Ƿɾݼ¼ -function isCanDataDelete(mFillerId:string='';mfiller:string=''):boolean; + +function isCanDataDelete(mFillerId: string = ''; mfiller: string = ''): boolean; begin - result:=false; - if (lowercase(mFillerId)='admin')or (mFillerId=dcode) or (mfiller=dname) or (pos(mfiller,gTeamWorker)>0) then + result := false; + if (lowercase(mFillerId) = 'admin') or (mFillerId = dcode) or (mfiller = dname) or (pos(mfiller, gTeamWorker) > 0) then begin - result:=true; + result := true; end; end; //////////////////////////////// //Ƿ޸ݼ¼ -function isCanDataEdit(mFillerId:string='';mfiller:string=''):boolean; +function isCanDataEdit(mFillerId: string = ''; mfiller: string = ''): boolean; begin - result:=false; - if (lowercase(mFillerId)='admin') or (mFillerId=dcode) or (mfiller=dname)or (pos(mfiller,gTeamWorker)>0) then + result := false; + if (lowercase(mFillerId) = 'admin') or (mFillerId = dcode) or (mfiller = dname) or (pos(mfiller, gTeamWorker) > 0) then begin - result:=true; + result := true; end; end; ////////////////////////////////// -function getConfigValue(DllName: string; ConfigName: string; ADOQueryTmp: TADOQuery):Variant; +function getConfigValue(DllName: string; ConfigName: string; ADOQueryTmp: TADOQuery): Variant; begin - Result:=null; + Result := null; with ADOQueryTmp do - begin + begin Close; sql.Clear; - sql.Add('select item_value,data_type from sy_module_param_set where dll_name=''' + - Trim(DllName) + ''' and config_name=''' + Trim(ConfigName) + ''''); + sql.Add('select item_value,data_type from sy_module_param_set where dll_name=''' + Trim(DllName) + ''' and config_name=''' + Trim(ConfigName) + ''''); Open; if RecordCount > 0 then begin - if Trim(FieldByName('data_type').AsString)='' then + if Trim(FieldByName('data_type').AsString) = '' then begin - Result:=StrToFloatDef(Trim(FieldByName('item_value').AsString),0); + Result := StrToFloatDef(Trim(FieldByName('item_value').AsString), 0); end - else if Trim(FieldByName('data_type').AsString)='' then + else if Trim(FieldByName('data_type').AsString) = '' then begin - Result:=False; - if lowercase(Trim(FieldByName('item_value').AsString))='true' then + Result := False; + if lowercase(Trim(FieldByName('item_value').AsString)) = 'true' then begin - Result:=True; + Result := True; end; end else begin - Result:=Trim(FieldByName('item_value').AsString); + Result := Trim(FieldByName('item_value').AsString); end; end; end; @@ -3553,57 +3754,61 @@ end; ///////////////////////////////////////////////////////////////// /// ճеݵ /// -procedure pasteDatatTocxGrid(Tv1:TcxGridDBTableView); + +procedure pasteDatatTocxGrid(Tv1: TcxGridDBTableView); var SelectedCount: Integer; ClipboardText: string; StringList: TStringList; RowData: TStringDynArray; i, j: Integer; - startColIndex:integer; - startrowIndex:integer; + startColIndex: integer; + startrowIndex: integer; begin - if Tv1.Controller.SelectedRowCount=0 then exit; + if Tv1.Controller.SelectedRowCount = 0 then + exit; - startColIndex:= Tv1.Controller.CellSelectionAnchor.Index; + startColIndex := Tv1.Controller.CellSelectionAnchor.Index; // ȡеı - ClipboardText := Clipboard.AsText; + ClipboardText := Clipboard.AsText; // showMessage(inttostr(startColIndex)); // ıв - StringList := TStringList.Create; - try - StringList.Text := ClipboardText; + StringList := TStringList.Create; + try + StringList.Text := ClipboardText; // ÿһ - for i := 0 to StringList.Count - 1 do - begin - if i>tv1.Controller.SelectedRowCount-1 then break; + for i := 0 to StringList.Count - 1 do + begin + if i > Tv1.Controller.SelectedRowCount - 1 then + break; // ÿаƱָΪԪ - RowData := Split(StringList[i], #9); // ʹƱΪָ - Tv1.Controller.FocusedRow := Tv1.Controller.SelectedRows[i]; + RowData := Split(StringList[i], #9); // ʹƱΪָ + Tv1.Controller.FocusedRow := Tv1.Controller.SelectedRows[i]; // ÿһУ䵽cxGrid - for j := 0 to Length(RowData) - 1 do - begin - if j>tv1.Controller.SelectedColumnCount-1 then break; + for j := 0 to Length(RowData) - 1 do + begin + if j > Tv1.Controller.SelectedColumnCount - 1 then + break; // cxGridѾʼ㹻к - TV1.DataController.Values[Tv1.Controller.FocusedRecordIndex, startColIndex+j] := RowData[j]; + Tv1.DataController.Values[Tv1.Controller.FocusedRecordIndex, startColIndex + j] := RowData[j]; - Tv1.DataController.DataSet.Edit; - Tv1.DataController.DataSet.FieldByName(Tv1.Columns[startColIndex+j].DataBinding.FieldName).AsString := RowData[j]; - - TV1.Controller.EditingController.ShowEdit; - end; + Tv1.DataController.DataSet.Edit; + Tv1.DataController.DataSet.FieldByName(Tv1.Columns[startColIndex + j].DataBinding.FieldName).AsString := RowData[j]; + Tv1.Controller.EditingController.ShowEdit; end; - finally - - StringList.Free; end; + finally + + StringList.Free; + + end; end; // ַָ @@ -3644,5 +3849,6 @@ begin Result[ItemIndex] := Copy(s, Start, len - Start + 1); end; + end.