procedure bReportOnClick (ol,li: string);
var
frxDBDataset1, frxDBDataset2,frxDBDataset3,frxDBDataset4,frxDBDataset5,frxDBDataset6,frxDBDataset7,frxDBDataset8,frxDBDataset9,frxDBDataset10,frxDBDataset11,frxDBDataset12: TfrxDBDataset;
ServiceWork, WorkOff, servise, listWorkOff,TypeOfEquipment,Manufacturer,Company,status,clCompanyOrApp,companyServiceWork, comDoc,TypeDoc, union : TDataSet;
i,c: integer;
s:string;
begin
iniG :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\sov.ini');
strshowG:=iniG.ReadString('lang','directlang', '');
langIniG:=TIniFile.Create(ExtractFilePath (ParamStr (0))+ strshowG);
//передача в дизайнер отчета
SQLQuery('SELECT id AS "'+langIniG.ReadString('reportmess','dr1', '')+'",id_clCompanyOrApp AS "'+langIniG.ReadString('reportmess','dr2', '')+'",'+
'id_company AS "'+langIniG.ReadString('reportmess','dr3', '')+'",id_status AS "'+langIniG.ReadString('reportmess','dr4', '')+'",'+
'id_TypeOfEquipment AS "'+langIniG.ReadString('reportmess','dr5', '')+'",id_Manufacturer AS "'+langIniG.ReadString('reportmess','dr6', '')+'",'+
'firstNameClient AS "'+langIniG.ReadString('reportmess','dr7', '')+'", twoNameClient AS "'+langIniG.ReadString('reportmess','dr8', '')+'", lastNameClient AS "'+langIniG.ReadString('reportmess','dr9', '')+'" ,'+
'telephonClient AS "'+langIniG.ReadString('reportmess','dr31', '')+'",adresClient AS "'+langIniG.ReadString('reportmess','dr10', '')+'", passportNamberClient AS "'+langIniG.ReadString('reportmess','dr11', '')+'", passportSeriesClient AS "'+langIniG.ReadString('reportmess','dr12', '')+'",'+
'serialNamber AS "'+langIniG.ReadString('reportmess','dr13', '')+'" ,descriptionATCsWords AS "'+langIniG.ReadString('reportmess','dr14', '')+'",externalStatus AS "'+langIniG.ReadString('reportmess','dr15', '')+'",'+
'model AS "'+langIniG.ReadString('reportmess','dr16', '')+'",dateInServise AS "'+langIniG.ReadString('reportmess','dr17', '')+'",equipment AS "'+langIniG.ReadString('reportmess','dr18', '')+'",'+
'diagnostics AS "'+langIniG.ReadString('reportmess','dr19', '')+'",dateApplcation AS "'+langIniG.ReadString('reportmess','dr20', '')+'",timeApplication AS "'+langIniG.ReadString('reportmess','dr21', '')+'",'+
'warranty AS "'+langIniG.ReadString('reportmess','dr22', '')+'",onlyDiiagnostics AS "'+langIniG.ReadString('reportmess','dr23', '')+'" FROM servise', servise);
SQLQuery('SELECT id_servise AS "'+langIniG.ReadString('reportmess','dr24', '')+'", priceWorkOff AS "'+langIniG.ReadString('reportmess','dr25', '')+'",klVoWorkOff AS "'+langIniG.ReadString('reportmess','dr26', '')+'",nameWorkOff AS "'+langIniG.ReadString('reportmess','dr27', '')+'" FROM listWorkOff', listWorkOff);
SQLQuery('SELECT nameTypeOfEquipment "'+langIniG.ReadString('reportmess','dr28', '')+'" FROM TypeOfEquipment', TypeOfEquipment);
SQLQuery('SELECT nameManufacturer AS "'+langIniG.ReadString('reportmess','dr29', '')+'" FROM Manufacturer', Manufacturer);
SQLQuery('SELECT nameCompany AS "'+langIniG.ReadString('reportmess','dr30', '')+'", telCompany AS "'+langIniG.ReadString('reportmess','dr31', '')+'", streetCompany AS "'+langIniG.ReadString('reportmess','dr32', '')+'", houseCompany AS "'+langIniG.ReadString('reportmess','dr33', '')+'", fractionCompany AS "'+langIniG.ReadString('reportmess','dr34', '')+'", officeCompany AS "'+langIniG.ReadString('reportmess','dr35', '')+'" FROM Company', Company);
SQLQuery('SELECT statusName AS "'+langIniG.ReadString('reportmess','dr36', '')+'" FROM status', status);
SQLQuery('SELECT nameclCompanyOrApp AS "'+langIniG.ReadString('reportmess','dr37', '')+'" FROM clCompanyOrApp', clCompanyOrApp);
SQLQuery('SELECT id_Company AS "'+langIniG.ReadString('reportmess','dr38', '')+'",nameServise AS "'+langIniG.ReadString('reportmess','dr39', '')+'",priceServise AS "'+langIniG.ReadString('reportmess','dr40', '')+'",'+
'dateServiseCompany "'+langIniG.ReadString('reportmess','dr41', '')+'",klVo "'+langIniG.ReadString('reportmess','dr42', '')+'" FROM companyServiceWork', companyServiceWork);
SQLQuery('SELECT id_TypeDoc AS "'+langIniG.ReadString('reportmess','dr43', '')+'",scanDoc AS "'+langIniG.ReadString('reportmess','dr44', '')+'",dateInDoc AS "'+langIniG.ReadString('reportmess','dr45', '')+'",nameDoc AS "'+langIniG.ReadString('reportmess','dr30', '')+'",descriptionDoc "'+langIniG.ReadString('reportmess','dr46', '')+'" FROM comDoc', comDoc);
SQLQuery('SELECT nameTypeDoc AS "'+langIniG.ReadString('reportmess','dr47', '')+'" FROM TypeDoc', TypeDoc);
// передача в дизайнер отчета объединенных данных несколькоих таблиц
SQLQuery('SELECT servise.id AS "'+langIniG.ReadString('reportmess','dr48', '')+'", servise.firstNameClient AS "'+langIniG.ReadString('reportmess','dr49', '')+'", servise.twoNameClient AS "'+langIniG.ReadString('reportmess','dr50', '')+'", servise.lastNameClient AS "'+langIniG.ReadString('reportmess','dr51', '')+'" ,'+
'servise.telephonClient AS "'+langIniG.ReadString('reportmess','dr85', '')+'",servise.adresClient AS "'+langIniG.ReadString('reportmess','dr52', '')+'", servise.passportNamberClient AS "'+langIniG.ReadString('reportmess','dr53', '')+'", servise.passportSeriesClient AS "'+langIniG.ReadString('reportmess','dr54', '')+'",'+
'servise.serialNamber AS "'+langIniG.ReadString('reportmess','dr55', '')+'" ,servise.descriptionATCsWords AS "'+langIniG.ReadString('reportmess','dr56', '')+'",servise.externalStatus AS "'+langIniG.ReadString('reportmess','dr57', '')+'",'+
'servise.model AS "'+langIniG.ReadString('reportmess','dr58', '')+'",servise.dateInServise AS "'+langIniG.ReadString('reportmess','dr59', '')+'",servise.equipment AS "'+langIniG.ReadString('reportmess','dr60', '')+'",'+
'servise.diagnostics AS "'+langIniG.ReadString('reportmess','dr61', '')+'",servise.dateApplcation AS "'+langIniG.ReadString('reportmess','dr62', '')+'",servise.timeApplication AS "'+langIniG.ReadString('reportmess','dr63', '')+'",'+
'servise.warranty AS "'+langIniG.ReadString('reportmess','dr64', '')+'",servise.onlyDiiagnostics AS "'+langIniG.ReadString('reportmess','dr65', '')+'", '+
'listWorkOff.priceWorkOff AS "'+langIniG.ReadString('reportmess','dr66', '')+'",listWorkOff.klVoWorkOff AS "'+langIniG.ReadString('reportmess','dr67', '')+'",listWorkOff.nameWorkOff AS "'+langIniG.ReadString('reportmess','dr68', '')+'",'+
'sumInPrice.inPrice AS "'+langIniG.ReadString('reportmess','dr69', '')+'",sumInPrice.dateINPrice AS "'+langIniG.ReadString('reportmess','dr70', '')+'", '+
'TypeOfEquipment.nameTypeOfEquipment "'+langIniG.ReadString('reportmess','dr71', '')+'", '+
'manufacturer.nameManufacturer AS "'+langIniG.ReadString('reportmess','dr72', '')+'", '+
'Company.nameCompany AS "'+langIniG.ReadString('reportmess','dr73', '')+'", telCompany AS "'+langIniG.ReadString('reportmess','dr74', '')+'", streetCompany AS "'+langIniG.ReadString('reportmess','dr75', '')+'", houseCompany AS "'+langIniG.ReadString('reportmess','dr76', '')+'", fractionCompany AS "'+langIniG.ReadString('reportmess','dr77', '')+'", officeCompany AS "'+langIniG.ReadString('reportmess','dr78', '')+'", '+
'status.statusName AS "'+langIniG.ReadString('reportmess','dr79', '')+'", '+
'clCompanyOrApp.nameclCompanyOrApp AS "'+langIniG.ReadString('reportmess','dr80', '')+'" '+
'FROM servise '+
'LEFT OUTER JOIN listWorkOff ON listWorkOff.id_servise=servise.id '+
'LEFT OUTER JOIN sumInPrice ON sumInPrice.id_servise=servise.id '+
'LEFT OUTER JOIN TypeOfEquipment ON TypeOfEquipment.id=servise.id_TypeOfEquipment '+
'LEFT OUTER JOIN manufacturer ON manufacturer.id=servise.id_manufacturer '+
'LEFT OUTER JOIN Company ON Company.id=servise.id_Company '+
'LEFT OUTER JOIN status ON status.id=servise.id_status '+
'LEFT OUTER JOIN clCompanyOrApp ON clCompanyOrApp.id=servise.id_clCompanyOrApp '+
'WHERE servise.id='+ frmServiceCen.tgList.sqlValue , WorkOff);
// если у одной компании есть несколько записей то вывести все
if frmCompanyServiceWork.tgCompanyWork.SelectedColumn then
begin
c := frmCompanyServiceWork.tgCompanyWork.RowCount-1;
for i := 0 to c do
begin
if frmCompanyServiceWork.tgCompanyWork.Selected[i] then s := s +IntToStr(frmCompanyServiceWork.tgCompanyWork.dbIndexToID(i)) + ' OR ';
end;
if s <> '' then
begin
SetLength(s, Length(s)-4);
SQLQuery('SELECT companyServiceWork.id AS "'+langIniG.ReadString('reportmess','dr48', '')+'", companyServiceWork.nameServise AS "'+langIniG.ReadString('reportmess','dr82', '')+'", companyServiceWork.priceServise AS "'+langIniG.ReadString('reportmess','dr83', '')+'", companyServiceWork.dateServiseCompany AS "'+langIniG.ReadString('reportmess','dr84', '')+'" ,'+
'companyServiceWork.klVo AS "'+langIniG.ReadString('reportmess','dr42', '')+'",'+
'Company.nameCompany AS "'+langIniG.ReadString('reportmess','dr73', '')+'", telCompany AS "'+langIniG.ReadString('reportmess','dr74', '')+'", streetCompany AS "'+langIniG.ReadString('reportmess','dr75', '')+'", houseCompany AS "'+langIniG.ReadString('reportmess','dr76', '')+'", fractionCompany AS "'+langIniG.ReadString('reportmess','dr77', '')+'", officeCompany AS "'+langIniG.ReadString('reportmess','dr78', '')+'" '+
'FROM companyServiceWork '+
'LEFT OUTER JOIN Company ON Company.id=companyServiceWork.id_Company '+
'WHERE companyServiceWork.id='+s, ServiceWork);
end;
end else
begin
SQLQuery('SELECT companyServiceWork.id AS "'+langIniG.ReadString('reportmess','dr48', '')+'", companyServiceWork.nameServise AS "'+langIniG.ReadString('reportmess','dr82', '')+'", companyServiceWork.priceServise AS "'+langIniG.ReadString('reportmess','dr83', '')+'", companyServiceWork.dateServiseCompany AS "'+langIniG.ReadString('reportmess','dr84', '')+'" ,'+
'companyServiceWork.klVo AS "'+langIniG.ReadString('reportmess','dr42', '')+'",'+
'Company.nameCompany AS "'+langIniG.ReadString('reportmess','dr73', '')+'", telCompany AS "'+langIniG.ReadString('reportmess','dr74', '')+'", streetCompany AS "'+langIniG.ReadString('reportmess','dr75', '')+'", houseCompany AS "'+langIniG.ReadString('reportmess','dr76', '')+'", fractionCompany AS "'+langIniG.ReadString('reportmess','dr77', '')+'", officeCompany AS "'+langIniG.ReadString('reportmess','dr78', '')+'" '+
'FROM companyServiceWork '+
'LEFT OUTER JOIN Company ON Company.id=companyServiceWork.id_Company '+
'WHERE companyServiceWork.id='+frmCompanyServiceWork.tgCompanyWork.sqlValue , ServiceWork);
end;
frxDBDataset1 := TfrxDBDataset.Create(frmLogin);
frxDBDataset1.UserName := langIniG.ReadString('reportmess','UserName1', '');
frxDBDataset1.CloseDataSource := True;
frxDBDataset1.OpenDataSource := True;
frxDBDataset1.DataSet := servise;
frxDBDataset2 := TfrxDBDataset.Create(listWorkOff);
frxDBDataset2.UserName := langIniG.ReadString('reportmess','UserName2', '');
frxDBDataset2.CloseDataSource := True;
frxDBDataset2.OpenDataSource := True;
frxDBDataset2.DataSet := listWorkOff;
frxDBDataset3 := TfrxDBDataset.Create(TypeOfEquipment);
frxDBDataset3.UserName := langIniG.ReadString('reportmess','UserName3', '');
frxDBDataset3.CloseDataSource := True;
frxDBDataset3.OpenDataSource := True;
frxDBDataset3.DataSet := TypeOfEquipment;
frxDBDataset4 := TfrxDBDataset.Create(Manufacturer);
frxDBDataset4.UserName := langIniG.ReadString('reportmess','UserName4', '');
frxDBDataset4.CloseDataSource := True;
frxDBDataset4.OpenDataSource := True;
frxDBDataset4.DataSet := Manufacturer;
frxDBDataset5 := TfrxDBDataset.Create(Company);
frxDBDataset5.UserName := langIniG.ReadString('reportmess','UserName5', '');
frxDBDataset5.CloseDataSource := True;
frxDBDataset5.OpenDataSource := True;
frxDBDataset5.DataSet := Company;
frxDBDataset6 := TfrxDBDataset.Create(status);
frxDBDataset6.UserName := langIniG.ReadString('reportmess','UserName6', '');
frxDBDataset6.CloseDataSource := True;
frxDBDataset6.OpenDataSource := True;
frxDBDataset6.DataSet := status;
frxDBDataset7 := TfrxDBDataset.Create(clCompanyOrApp);
frxDBDataset7.UserName := langIniG.ReadString('reportmess','UserName7', '');
frxDBDataset7.CloseDataSource := True;
frxDBDataset7.OpenDataSource := True;
frxDBDataset7.DataSet := clCompanyOrApp;
frxDBDataset8 := TfrxDBDataset.Create(companyServiceWork);
frxDBDataset8.UserName := langIniG.ReadString('reportmess','UserName8', '');
frxDBDataset8.CloseDataSource := True;
frxDBDataset8.OpenDataSource := True;
frxDBDataset8.DataSet := companyServiceWork;
frxDBDataset9 := TfrxDBDataset.Create(comDoc);
frxDBDataset9.UserName := langIniG.ReadString('reportmess','UserName9', '');
frxDBDataset9.CloseDataSource := True;
frxDBDataset9.OpenDataSource := True;
frxDBDataset9.DataSet := comDoc;
frxDBDataset10 := TfrxDBDataset.Create(TypeDoc);
frxDBDataset10.UserName := langIniG.ReadString('reportmess','UserName10', '');
frxDBDataset10.CloseDataSource := True;
frxDBDataset10.OpenDataSource := True;
frxDBDataset10.DataSet := TypeDoc;
frxDBDataset11 := TfrxDBDataset.Create(WorkOff);
frxDBDataset11.UserName := langIniG.ReadString('reportmess','UserName11', '');
frxDBDataset11.CloseDataSource := True;
frxDBDataset11.OpenDataSource := True;
frxDBDataset11.DataSet := WorkOff;
frxDBDataset12 := TfrxDBDataset.Create(ServiceWork);
frxDBDataset12.UserName := langIniG.ReadString('reportmess','UserName12', '');
frxDBDataset12.CloseDataSource := True;
frxDBDataset12.OpenDataSource := True;
frxDBDataset12.DataSet := ServiceWork;
frmLogin.frxReport.Clear;
//frmLogin.frxReport.DataSets.Clear;
frmLogin.frxReport.DataSets.Add(frxDBDataset1);
frmLogin.frxReport.DataSets.Add(frxDBDataset2);
frmLogin.frxReport.DataSets.Add(frxDBDataset3);
frmLogin.frxReport.DataSets.Add(frxDBDataset4);
frmLogin.frxReport.DataSets.Add(frxDBDataset5);
frmLogin.frxReport.DataSets.Add(frxDBDataset6);
frmLogin.frxReport.DataSets.Add(frxDBDataset7);
frmLogin.frxReport.DataSets.Add(frxDBDataset8);
frmLogin.frxReport.DataSets.Add(frxDBDataset9);
frmLogin.frxReport.DataSets.Add(frxDBDataset10);
frmLogin.frxReport.DataSets.Add(frxDBDataset11);
frmLogin.frxReport.DataSets.Add(frxDBDataset12);
frxDBDataset1.DataSet.Close;
frxDBDataset2.DataSet.Close;
frxDBDataset3.DataSet.Close;
frxDBDataset4.DataSet.Close;
frxDBDataset5.DataSet.Close;
frxDBDataset6.DataSet.Close;
frxDBDataset7.DataSet.Close;
frxDBDataset8.DataSet.Close;
frxDBDataset9.DataSet.Close;
frxDBDataset10.DataSet.Close;
frxDBDataset11.DataSet.Close;
frxDBDataset12.DataSet.Close;
if (ol='print') then begin
frmLogin.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+li);
frmLogin.frxReport.ShowReport;
end;
if (ol='edit') then begin
frmLogin.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+li);
frmLogin.mniReport.Click;
end;
if (ol='new') then frmLogin.mniReport.Click;
frxDBDataset1.Free;
frxDBDataset2.Free;
frxDBDataset3.Free;
frxDBDataset4.Free;
frxDBDataset5.Free;
frxDBDataset6.Free;
frxDBDataset7.Free;
frxDBDataset8.Free;
frxDBDataset9.Free;
frxDBDataset10.Free;
frxDBDataset11.Free;
frxDBDataset12.Free;
end;