все ))) нашел проблему - запись счетчика нарушил.... резервные копии рулят )))
1,427 2018-12-24 20:42:10
Re: Нужна помощь (РЕШЕНО) (5 replies, posted in Russian)
опишу скрипт так:
Вам нужно SELECT (взять значение поля) FROM (из таблицы) LEFT OUTER JOIN (объединенной с таблицой) ON (по условию "b.id=a.id_b") WHERE (где) b.id = ( идентификатор записи равен чему-либо)
если я Вас правельно понял то должно быть примерно так
SELECT aaa FROM second_table LEFT OUTER JOIN dictionary_table ON second_table.id_dictionary_table = dictionary_table.id WHERE dictionary_table.id=?
1,428 2018-12-24 16:22:47
Re: Logo (22 replies, posted in General)
procedure report (sender: string);
var
frxDBDataset1: TfrxDBDataset;
image: TDataSet;
begin
SQLQuery('SELECT column AS "image" FROM dbName WHERE id='+form1.tablegrid1.sqlValue , image);
frxDBDataset1 := TfrxDBDataset.Create(frmLogin);
frxDBDataset1.UserName := 'dbimage';
frxDBDataset1.CloseDataSource := True;
frxDBDataset1.OpenDataSource := True;
frxDBDataset1.DataSet := image;
frmLogin.frxReport.Clear;
frmLogin.frxReport.DataSets.Clear;
frmLogin.frxReport.DataSets.Add(frxDBDataset1);
frxDBDataset1.DataSet.Close;
frmLogin.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'report\image.fr3');
frmLogin.frxReport.ShowReport;
frxDBDataset1.Free;
end;
1,429 2018-12-24 15:43:54
Re: значение чекбокс (7 replies, posted in Russian)
вот так все работает
procedure Form1_Button3_OnClick (Sender: TObject; var Cancel: boolean);
var
s: string = BoolToStr(form1.CheckBox3.Checked);
begin
SQLEXecute('INSERT INTO c (c) VALUES ("'+s+'")');
end
но только в отдельном проекте
если применяю у себя то получаю ошибку
при этом в таблице записи создаются
Дмитрий помогите
procedure frmReceivinOgEquipment_bOkCompany_OnClick (Sender: TObject; var Cancel: boolean);
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 = frmNewApplication.RecordCount.Text;
sOnlyDiagnostic: string = BoolToStr(frmReceivinOgEquipment.cbOnlyDiagnostic.Checked);
sWarranty: string = BoolToStr(frmReceivinOgEquipment.cbWarranty.Checked);
begin
//проверка на заполнение полей
if (tTypeKC='-1') then ShowHint(frmReceivinOgEquipment.cbTCK, 'данное поле обязательное для заполнения ')else
if (tDate='-1') then ShowHint(frmReceivinOgEquipment.dtDateInServise, 'данное поле обязательное для заполнения ')else
if (tNameCompany='-1') then ShowHint(frmReceivinOgEquipment.cbNameCompany, 'данное поле обязательное для заполнения ')else
if (tNameTypeOfEquipment='-1') then ShowHint(frmReceivinOgEquipment.cbNameTypeOfEquipment, 'данное поле обязательное для заполнения ')else
if (tNameManufacturer='-1') then ShowHint(frmReceivinOgEquipment.cbNameManufacturer, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.eModel.Text='') then ShowHint(frmReceivinOgEquipment.eModel, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.eSerialNamber.Text='') then ShowHint(frmReceivinOgEquipment.eSerialNamber, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.eEquipment.Text='') then ShowHint(frmReceivinOgEquipment.eEquipment, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.mDescriptionATCsWords.Text='') then ShowHint(frmReceivinOgEquipment.mDescriptionATCsWords, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.mExternalStatus.Text='') then ShowHint(frmReceivinOgEquipment.mExternalStatus, 'данное поле обязательное для заполнения ')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;
end;
в чем причина?
1,430 2018-12-24 15:18:45
Re: Баг подсветки кода при вводе буквы я (2 replies, posted in Russian)
после я поставьте пробел.. эта тема уже поднималась
1,431 2018-12-24 10:51:01
Re: Logo (22 replies, posted in General)
can anyone help??
1,432 2018-12-23 20:56:34
Re: Что реализовать в первую очередь? (396 replies, posted in Russian)
возможн-ли в компоненте DBImage сделать отключение для каждой кнопки отдельно?
1,433 2018-12-23 20:37:16
Re: How to generate automatic unique ID number for patients? (29 replies, posted in General)
1,434 2018-12-23 20:17:32
Re: How to generate automatic unique ID number for patients? (29 replies, posted in General)
данные для записи нового пациента нужно брать из других таблиц.
SUBFORM2_OPD_REGISTRATION table contains patient data
1,435 2018-12-23 19:58:26
Re: How to generate automatic unique ID number for patients? (29 replies, posted in General)
tables
1,436 2018-12-23 19:13:29
Re: значение чекбокс (7 replies, posted in Russian)
У вас какая СУБД? В SQLite для хранения логического значения используется поле Integer
integer не принимает хоть с ковычками хоть без
string принимает и даже записывает в базу, но тут же выдает ошибку
1,437 2018-12-23 18:31:30
Re: значение чекбокс (7 replies, posted in Russian)
Запись значения чекбокса в таблицу <таблица> в поле <поле>
SQLExecute( 'update <таблица> set <поле> = '+ Form1.CheckBox1.sqlValue +' where <условие>' );
<Условие> должно однозначно идентифицировать запись, лучше всего использовать ID, например:
SQLExecute( 'update contractor set customer = '+ Form1.CheckBox1.sqlValue +' where id = '+inttostr(Form1.TableGrid.dbItemId) );
нет все равно ошибка
я уже разные способы опробывал и в string и integer переводил
procedure frmReceivinOgEquipment_bOkCompany_OnClick (Sender: TObject; var Cancel: boolean);
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 = frmNewApplication.RecordCount.Text;
//sOnlyDiagnostic: string = BoolString('frmReceivinOgEquipment.cbOnlyDiagnostic.Checked');
//sWarranty: string = BoolString('frmReceivinOgEquipment.cbWarranty.Checked');
//sOnlyDiagnostic, sWarranty:string;
//sOnlyDiagnostic, sWarranty:integer;
begin
//if frmReceivinOgEquipment.cbOnlyDiagnostic.Checked then sOnlyDiagnostic:='1' else sOnlyDiagnostic:='0';
//if frmReceivinOgEquipment.cbWarranty.Checked then sWarranty:='1' else sWarranty:='0';
//проверка на заполнение полей
if (tTypeKC='-1') then ShowHint(frmReceivinOgEquipment.cbTCK, 'данное поле обязательное для заполнения ')else
if (tDate='-1') then ShowHint(frmReceivinOgEquipment.dtDateInServise, 'данное поле обязательное для заполнения ')else
if (tNameCompany='-1') then ShowHint(frmReceivinOgEquipment.cbNameCompany, 'данное поле обязательное для заполнения ')else
if (tNameTypeOfEquipment='-1') then ShowHint(frmReceivinOgEquipment.cbNameTypeOfEquipment, 'данное поле обязательное для заполнения ')else
if (tNameManufacturer='-1') then ShowHint(frmReceivinOgEquipment.cbNameManufacturer, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.eModel.Text='') then ShowHint(frmReceivinOgEquipment.eModel, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.eSerialNamber.Text='') then ShowHint(frmReceivinOgEquipment.eSerialNamber, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.eEquipment.Text='') then ShowHint(frmReceivinOgEquipment.eEquipment, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.mDescriptionATCsWords.Text='') then ShowHint(frmReceivinOgEquipment.mDescriptionATCsWords, 'данное поле обязательное для заполнения ')else
if (frmReceivinOgEquipment.mExternalStatus.Text='') then ShowHint(frmReceivinOgEquipment.mExternalStatus, 'данное поле обязательное для заполнения ')else
begin
// запись в таблицы базы данных
SQLExecute('INSERT INTO servise (Warranty, OnlyDiiagnostics, dateInServise, id_status, id_Company, id_TypeOfEquipment, id_manufacturer, model, serialNamber, equipment, externalStatus, descriptionATCsWords, id_clCompanyOrApp, record_count) VALUES ("'+frmReceivinOgEquipment.cbWarranty.sqlValue+'", "'+frmReceivinOgEquipment.cbOnlyDiagnostic.sqlValue+'", "'+tDate+'", "'+tStatusName+'", "'+tNameCompany+'", "'+ tNameTypeOfEquipment + '", "'+tNameManufacturer+'", "'+frmReceivinOgEquipment.eModel.Text+'", "'+frmReceivinOgEquipment.eSerialNamber.Text+ '", "'+frmReceivinOgEquipment.eEquipment.Text+ '", "'+ frmReceivinOgEquipment.mDescriptionATCsWords.Text+ '", "'+ frmReceivinOgEquipment.mExternalStatus.Text+ '", "'+tCompanyOrApp+'", "'+tCount+'")');
// обновление таблицы данных главной формы
frmServiceCen.tgList.dbUpdate;
frmReceivinOgEquipment.RecordCount.Text := IntToStr(GetNewRecordCount('servise'));
//закрытие формы
frmReceivinOgEquipment.Close;
end;
end;
1,438 2018-12-23 16:12:35
Re: значение чекбокс (7 replies, posted in Russian)
procedure Form1_CheckBox1_OnClick (Sender: TObject); begin if Form1.CheckBox1.sqlValue = '1' then Form1.Edit1.Text := 'Да' else Form1.Edit1.Text := 'Нет' end; begin Form1_CheckBox1_OnClick(nil); end.
не то, не так спрасил:
мне нужно записать значение чекбокса в базу данных (поле ДА\НЕТ) скриптом
1,440 2018-12-23 14:51:19
Topic: значение чекбокс (7 replies, posted in Russian)
Как правельно записать скриптом значение чекбокса в поле ДА\НЕТ?
1,441 2018-12-23 14:25:23
Topic: еще один баг (1 replies, posted in Russian)
сегодня делал пример для пользователя форума и наткнулся на баг:
на одной форме две кнопки дабавить запись при клике на кнопку (varsion 2) сохранить срабатывает и другая кнопка
1,442 2018-12-23 14:13:46
Re: How to generate automatic unique ID number for patients? (29 replies, posted in General)
In the FORM3_OPD_VISIT_RECORD I created a field called Name which is to be formed by the combination of First Name, Middle Name and Last Name registered in FORM2_OPD_REGISTRATION. How can it be done?
1,443 2018-12-21 15:23:55
Topic: Имя формы (1 replies, posted in Russian)
помещаю в переменную имя формы если сделать frmS.show - форма открывается, а если frmS.eDolg.text- то ошибка
var
frmS: TForm;
procedure frmAppl_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
frmS:=frmAppl;
end;
procedure frmAppl_button2_OnClick (Sender: TObject; var Cancel: boolean);
begin
frmS.eDolg.text
end;
1,444 2018-12-21 14:21:17
Re: отчет (6 replies, posted in Russian)
спасибо погоняю немного, посмотрю
1,445 2018-12-21 13:47:32
Re: отчет (6 replies, posted in Russian)
Пожалуйста, описывайте проблему подробней, к сожалению я понятия не имею, о каком выпадающем списке идет речь.
Выподающее меню - отчеты
то показывает то не показывает список файлов из папки report... не могу понять почему
1,446 2018-12-21 08:37:48
Re: скрипт + combobox (7 replies, posted in Russian)
не могу разобраться в связях ваших таблиц, чго-то голова сегодня не варит..
но насколько я понял ваш вопрос , то эти таблицы должны быть связаны тогда скрипт должен выглядить примерно так
procedure Frm_ob_ComboBox1_OnChange (Sender: TObject);
begin
Frm_ob.ComboBox7.dbItemID:= SQLExecute( SELECT имя поля FROM имя таблицы LEFT OUTER JOIN имя таблицы ON тиблица.id= таблица.id_поле WHERE таблица.id=' + Frm_ob.ComboBox1.value);
end;
взять значение поля из двух таблиц объедененых по условию где id поля равен id Frm_ob.ComboBox1
1,447 2018-12-20 19:15:31
Re: сохранить изображение (1 replies, posted in Russian)
Доступа нет... 2 варианта вижу:
1). Закрыть 2 кнопки костылями.
2). Скрыть полностью, создать свою кнопку.3-й (закрыть бутылкой пива) не стал озвучивать
точно, закрыть! Спасибо
1,448 2018-12-20 17:26:06
Topic: сохранить изображение (1 replies, posted in Russian)
знаю что можно скрыть все три кнопки, но как скрыть только две?
1,449 2018-12-20 12:08:56
Re: отчет (6 replies, posted in Russian)
ну вот и возникла у меня опять проблема
в выподающем списке переодически не выводится список файлов из папки отчета
подразумеваю, что в этом виновата процедура формирования отчета
Выпадающее меню строчки 1577 - 1765
в нем выподающий список файлов отчета 1714 - 1756
Формирование отчета строчки 1935 - 2135
вход в программу через кнопку вход
не могу понять по чему то выводит список то нет
1,450 2018-12-20 08:29:26
Re: не удалось преобразовать (4 replies, posted in Russian)
IFNULL решает
s:= SQLExecute('SELECT IFNULL (SUM(sumInPrice.inPrice),0) FROM sumInPrice LEFT OUTER JOIN servise ON servise.id=sumInPrice.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue);
frmAppl.eDolg.Text:='Сумма долга: '+ IntToStr(SQLExecute('SELECT IFNULL (SUM(listWorkOff.priceWorkOff * listWorkOff.klVoWorkOff), 0)-"'+s+'" FROM listWorkOff LEFT OUTER JOIN servise ON servise.id=listWorkOff.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue));