соедините оба варианта и получите, то, что хотели..
просто не спешите, если что-то не получается, отдохните или делайте проект дальше, потом вернетесь к этому вопросу, даже крупные разработчики вынуждены отказываться от некоторых частей своих идей. Можете нарисовать то, что Вам нужно, только хорошо подумайте..
1,251 2019-04-08 17:19:02
Re: Подскажите, как присвоить id для второй таблицы. (29 replies, posted in Russian)
1,252 2019-04-08 12:22:03
Re: How to put a basic username and password for my mvd database? (3 replies, posted in General)
попробуйте так
1,253 2019-04-08 08:52:41
Re: Подскажите, как присвоить id для второй таблицы. (29 replies, posted in Russian)
забыл сохранить связи
1,254 2019-04-07 21:27:24
Re: Подскажите, как присвоить id для второй таблицы. (29 replies, posted in Russian)
это просто пример адновременной записи в разные таблицы, если вы хотите привязывать к записям в таблице А записи из таблицы В то это делается по другому...
1,255 2019-04-05 15:14:16
Re: сканер штрих кода (1 replies, posted in Russian)
первый, четвертый вопрос решается путем установки суффикса и префикса
=3566756536=
так можно понять от кого ...
тоесть можно решить и 3-ю проблему - установкай таймера...
и так создать таймер на для проверки буфера обмена я могу, а вот как правельно определить =3566756536=?
и вставитьв edit именно 3566756536?
1,256 2019-04-05 08:07:03
Topic: сканер штрих кода (1 replies, posted in Russian)
У кого есть рабочая программа
1. Сканер передает код только в виде цифр?
2. Передает код через буфур обмена?
3. Когда сканер получил код какой клавишей он передает сигнал?
4. Если сканер штрих кода эмулирует клавиатуру как различать получение данных от клавиатуры и от сканера?
1,257 2019-04-05 04:15:07
Re: Mail&SerialPHP (9 replies, posted in FAQ)
Дмитрий, не подскажете случайно, чего не хватает в проекте....
файл 0 байт ... на сервер не загружает..
1,258 2019-04-04 14:25:47
Topic: перенести записи (1 replies, posted in Russian)
есть (временная) таблица, мне нужно перенести часть её данных (не все поля) в другую таблицу а (временную) очистить
не могу понять как это сделать
есть у кого пример?
1,259 2019-04-04 11:01:34
Re: неверный ид (11 replies, posted in Russian)
в Вашем проекте, который Вы давали для скачивания такой формы небыло, дайте полный проект
1,260 2019-04-04 10:00:33
Re: неверный ид (11 replies, posted in Russian)
странный порядок заполнения таблиц...
вот пример попробуйте его
1,261 2019-04-03 17:16:11
Topic: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи (11 replies, posted in FAQ)
procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
maxID:string;
begin
// запись в таблицу B
SQLExecute('INSERT INTO b (sn, model, status) VALUES ("'+Form1.Edit4.Text+'", "'+Form1.Edit5.Text+'","'+Form1.Edit6.Text+'")');
// получаем id последней записи в таблице В
maxID := SQLExecute('SELECT MAX(id) FROM b');
// запись в таблицу A
SQLExecute('INSERT INTO a (firstname, twoname, lastname, id_b) VALUES ("'+Form1.Edit1.Text+'", "'+Form1.Edit2.Text+'","'+Form1.Edit3.Text+'", "'+maxID+'")');
// обновление таблицы данных главной формы
Form1.TableGrid1.dbUpdate;
end;
1,262 2019-04-03 17:02:27
Re: Подскажите, как присвоить id для второй таблицы. (29 replies, posted in Russian)
готово, для понимания сделал на чистом проекте, когда будете реализовывать на своем проекте, смотрите не перепутайте порядок!
procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
maxID:string;
begin
// запись в таблицу B
SQLExecute('INSERT INTO b (sn, model, status) VALUES ("'+Form1.Edit4.Text+'", "'+Form1.Edit5.Text+'","'+Form1.Edit6.Text+'")');
// получаем id последней записи в таблице В
maxID := SQLExecute('SELECT MAX(id) FROM b');
// запись в таблицу A
SQLExecute('INSERT INTO a (firstname, twoname, lastname, id_b) VALUES ("'+Form1.Edit1.Text+'", "'+Form1.Edit2.Text+'","'+Form1.Edit3.Text+'", "'+maxID+'")');
// обновление таблицы данных главной формы
Form1.TableGrid1.dbUpdate;
end;
1,263 2019-04-02 20:46:34
Re: processor id (9 replies, posted in General)
GetHardDiskSerial()
GetIPAddress
processor or motherboard ID - no
1,264 2019-04-02 20:41:36
Re: Подскажите, как присвоить id для второй таблицы. (29 replies, posted in Russian)
я так понимаю..
1. Нужно в событии OnClick создать запись - ту которая будет отрибутом
2. В событии OnAfterClick (той же кнопки) с начало получить id последней записи в таблице с атрибутом а потом присвоить этот номер id полю связи с таблицей...
сильно занять пока пример не могу написать
1,265 2019-04-02 10:51:13
Re: Ошибка (1 replies, posted in Russian)
Вношу данные в базу запросом INSET. Если на форме присутствует таблица (любая, даже не связанная с базой) выскакивает ошибка, но данные вносятся в базу. Если таблицы нет то всё проходит штатно. В чем может быть проблема?
загрузите проект
1,266 2019-04-02 10:49:30
Re: Example Add ProgressBar In TableGrid(Not Real progressbar) (1 replies, posted in Script)
super! thanks for a great example, prahousefamily
1,267 2019-04-01 22:04:30
Re: Подскажите, как присвоить id для второй таблицы. (29 replies, posted in Russian)
Но у меня получилось тоже самое, что с кнопкой сохранить, т.е. не получается к заказу присвоить атрибут вместо этого атрибут присваивается ко всем заказам...
отрибут должен присвоиться через комбобокс... он и создасть связь между таблицами...
загрузите Ваш проект
1,268 2019-04-01 20:59:43
Re: Подскажите, как присвоить id для второй таблицы. (29 replies, posted in Russian)
т.е. надо "...у абонента может быть несколько номеров, так и у вас, сможете создавать для клиента множество заявок, ..." и у каждой заявки должно быть множество атрибутов.
if frmAddNote.Action = 'NewRecord' then begin frmAddNote.ComboBox1.sqlValue := frmNew.ComboBox1.sqlValue end;
ругается "incompatible types"
извиняюсь моя ошибка
что бы определить действие которое открыло форму
нужно писать просто Action
пример в архиве
procedure w_OnShow (Sender: TObject; Action: string);
begin
if Action = 'NewRecord' then ShowMessage('Новая запись');
end;
1,269 2019-04-01 16:22:04
Re: Подскажите, как присвоить id для второй таблицы. (29 replies, posted in Russian)
Видать, большой объем текста плохо читается, тогда подскажите скрипт. "новой записи" с применением в нем данных из data и combobox, ,без вызова дополнительной формы. Спасибо.
var tTypeKC : string = IntToStr(frmReceivinOgEquipment.cbTCK.DbItemID);
tNameCompany : string = IntToStr(frmReceivinOgEquipment.cbNameCompany.DbItemID);
tNameTypeOfEquipment : string = IntToStr(frmReceivinOgEquipment.cbNameTypeOfEquipment.DbItemID);
tNameManufacturer : string = IntToStr(frmReceivinOgEquipment.cbNameManufacturer.DbItemID);
tDate : string = FormatDateTime('yyyy-mm-dd',frmReceivinOgEquipment.dtDateInServise.DateTime);
tCompanyOrApp : string = IntToStr(frmReceivinOgEquipment.cbnameclCompanyOrApp.DbItemID);
tStatusName : string = IntToStr(frmReceivinOgEquipment.cbStatusName.DbItemID);
tCount : string;
sWarranty: string = frmReceivinOgEquipment.cbWarranty.sqlValue;
sOnlyDiagnostic: string = frmReceivinOgEquipment.cbOnlyDiagnostic.sqlValue;
begin
tCount := frmReceivinOgEquipment.RecordCount.Text;
//проверка на заполнение полей
if (tTypeKC='-1') then ShowHint(frmReceivinOgEquipment.cbTCK, mess13)else
if (tDate='-1') then ShowHint(frmReceivinOgEquipment.dtDateInServise, mess13)else
if (tNameCompany='-1') then ShowHint(frmReceivinOgEquipment.cbNameCompany, mess13)else
if (tNameTypeOfEquipment='-1') then ShowHint(frmReceivinOgEquipment.cbNameTypeOfEquipment, mess13)else
if (tNameManufacturer='-1') then ShowHint(frmReceivinOgEquipment.cbNameManufacturer, mess13)else
if (frmReceivinOgEquipment.eModel.Text='') then ShowHint(frmReceivinOgEquipment.eModel, mess13)else
if (frmReceivinOgEquipment.eSerialNamber.Text='') then ShowHint(frmReceivinOgEquipment.eSerialNamber, mess13)else
if (frmReceivinOgEquipment.eEquipment.Text='') then ShowHint(frmReceivinOgEquipment.eEquipment, mess13)else
if (frmReceivinOgEquipment.mDescriptionATCsWords.Text='') then ShowHint(frmReceivinOgEquipment.mDescriptionATCsWords, mess13)else
if (frmReceivinOgEquipment.mExternalStatus.Text='') then ShowHint(frmReceivinOgEquipment.mExternalStatus, mess13)else
begin
// запись в таблицы базы данных
SQLExecute('INSERT INTO servise (dateInServise, id_status, id_Company, id_TypeOfEquipment, id_manufacturer, model, serialNamber, equipment, externalStatus, descriptionATCsWords, id_clCompanyOrApp, record_count, warranty, onlyDiiagnostics) VALUES ("'+tDate+'", "'+tStatusName+'", "'+tNameCompany+'", "'+ tNameTypeOfEquipment + '", "'+tNameManufacturer+'", "'+frmReceivinOgEquipment.eModel.Text+'", "'+frmReceivinOgEquipment.eSerialNamber.Text+ '", "'+frmReceivinOgEquipment.eEquipment.Text+ '", "'+ frmReceivinOgEquipment.mDescriptionATCsWords.Text+ '", "'+ frmReceivinOgEquipment.mExternalStatus.Text+ '", "'+tCompanyOrApp+'", "'+tCount+'", "'+sWarranty+'", "'+sOnlyDiagnostic+'")');
// обновление таблицы данных главной формы
frmServiceCen.tgList.dbUpdate;
frmReceivinOgEquipment.RecordCount.Text := IntToStr(GetNewRecordCount('servise'));
//закрытие формы
frmReceivinOgEquipment.Close;
end;
где
tNameManufacturer : string = IntToStr(frmReceivinOgEquipment.cbNameManufacturer.DbItemID);
и есть combobox
1,270 2019-04-01 16:16:38
Re: Подскажите, как присвоить id для второй таблицы. (29 replies, posted in Russian)
Наверно, надо из серии:
if Form2.dbAction = 'NewRecord' then // заполняем компонент только если форма была вызвана для создания новой записи begin if Form2.CheckBox1.Checked then Form2.Edit2.Text := 'ваше значение'; end;
Form2.dbAction
поменяйте на
Form2.Action
1,271 2019-04-01 16:08:37
Re: FastReport ошибка (10 replies, posted in Russian)
Спасибо.
Такой сложный запрос не осилю....
Вопрос ведь в том как вытащить связанные данные из таблиц второго и выше уровня.
Да.... буду оптимизировать структуру БД...
// передача в дизайнер отчета объединенных данных несколькоих таблиц
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);
AS "'+langIniG.ReadString('reportmess','dr69', '')+'" - поменяйте на свое, это имя под которым будет в дизайнере поле таблицы
а вот тут
'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
вытаскивает данные из таблиц
1,272 2019-04-01 12:56:49
Re: FastReport ошибка (10 replies, posted in Russian)
запрос скриптом для отчета из моего проекта
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;
1,273 2019-03-31 23:21:13
Re: Mail&SerialPHP (9 replies, posted in FAQ)
Thank you, is there a option to add a File?
$mail ->addAttachment=($_REQUEST[sendFile]); //Прикрепить файл
поменяйте \ change
function mailerphp (Host,Username,Password,SMTPSecure,Port,mailFrom,mailTo,sendFile,Subject,mailMessage: string ): string;
var
slParam: TStringList;
pass:string;
begin
pass:='1230'; // пороль страницы
slParam := TStringList.Create;
slParam.Add('pass='+pass);
slParam.Add('Host='+Host);
slParam.Add('Username='+Username);
slParam.Add('Password='+Password);
slParam.Add('SMTPSecure='+SMTPSecure);
slParam.Add('Port='+Port);
slParam.Add('setFrom='+mailFrom);
slParam.Add('addAddress='+mailTo);
slParam.Add('sendFile='+sendFile);
slParam.Add('Subject='+Subject);
slParam.Add('mmessage='+mailMessage);
HTTPPost('http://Ваш_url/sendmail.php', slParam);
end;
попробуйте так \ try this
<?php
/**
* PHPMailer simple file upload and send example
*/
$msg = '';
if (array_key_exists('userfile', $_FILES)) {
// First handle the upload
// Don't trust provided filename - same goes for MIME types
// See http://php.net/manual/en/features.file-upload.php#114004 for more thorough upload validation
$uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name']));
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
// Upload handled successfully
// Now create a message
// This should be somewhere in your include_path
require '../PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->setFrom('from@example.com', 'First Last');
$mail->addAddress('whoto@example.com', 'John Doe');
$mail->Subject = 'PHPMailer file sender';
$mail->msgHTML("My message body");
// Attach the uploaded file
$mail->addAttachment($uploadfile, 'My uploaded file');
if (!$mail->send()) {
$msg .= "Mailer Error: " . $mail->ErrorInfo;
} else {
$msg .= "Message sent!";
}
} else {
$msg .= 'Failed to move file to ' . $uploadfile;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PHPMailer Upload</title>
</head>
<body>
<?php if (empty($msg)) { ?>
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="100000"> Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<?php } else {
echo $msg;
} ?>
</body>
</html>
1,274 2019-03-31 20:56:30
Re: Создание нестандартного счетчика (2 replies, posted in Russian)
1,275 2019-03-31 14:12:30
Re: FastReport ошибка (10 replies, posted in Russian)
подкажите, как прикрепить файл с проектом
удалите файлы dll и exe упакуйте в zip или 7zip