В приложенной вами проекте нет файла forms.xml, поэтому его никак не открыть.
Извините, перезалил
My Visual Database → Posts by andrey.yugay
В приложенной вами проекте нет файла forms.xml, поэтому его никак не открыть.
Извините, перезалил
привет, попробуйте реализовать через скрипт.
SqlExecute('SELECT SUM(поле в талице которое нужно суммировать) FROM имя_таблицы WHERE id=' +1(2-3-4 ит.д) );
Дмитрий, доброго времени,
Есть таблица с материалами, в ней ключ к таблице с вендорами (прил 1).
Есть поле МЕМО. при нажатии записи вендоров в таблице, скрипт хватает его ид и заносит данные в поле МЕМО.
Загвоздка в том, что материалов может быть несколько и я не могу найти способ перечислить их в цикле, один за другим.
программа приаттачена:
код в части: procedure form1_TableGrid1_OnCellClick (Sender: TObject; ACol, ARow: Integer);
...
for rows :=1 to i do
begin
Form1.XML.Lines.Add(' <product>');
Form1.XML.Lines.Add(' <ndsAmount>0</ndsAmount>');
Form1.XML.Lines.Add(' <priceWithTax>'+ IntToStr(m) +'</priceWithTax>');
m:=m+1;
end;
...
еще загвоздка, что id материала могут идти не по порядку (т.е. пользователь, может что-то удалить)
Дмитрий, доброго времени,
Есть таблица с материалами, в ней ключ к таблице с вендорами (прил 1).
Есть поле МЕМО. при нажатии записи вендоров в таблице, скрипт хватает его ид и заносит данные в поле МЕМО.
Загвоздка в том, что материалов может быть несколько и я не могу найти способ перечислить их в цикле, один за другим.
Да, убрал 150%, поставил 100 масштаб. все получилось
Можно ли как то программно установить данный масштаб?
Дмитрий, доброго времени суток.
В приложении форма выглядит отлично, но при запуске самой программы есть разница в размере шрифта (вложение).
Неудобно каждый элемент подгонять.
Можете подсказать как решить данную проблему?
Заранее благодарю
win10 x64, пробовал и на 6,2 и b6.3
Дмитрий, доброго времени суток.
С новым годом.
подскажите пожалуйста как можно избежать ошибки во вложенном файле
с ув. Андрей
Pt.82, Дмитрий, спасибо! Ещё спасибо Baster.89 за эту тему На всякий случай приложу слегка переделанный проект, вдруг кому пригодится.
Дмитрий, ешё такой вопрос или пожелание, это уже ближе к теме Что реализовать в первую очередь? - может стоит добавить в стандартные действия для кнопок вариант "Сохранить запись" (без закрытия формы). Возможен еще вариант, что после нажатия кнопки "Сохранить" поля формы очищаются - это может пригодиться при массовом внесении записей в БД. Для этого, в принципе, я и затевал эти SQL-запросы.
Доброго дня,
Без закрытия есть в настройках самой кнопки - Сохранить запись. Нужно убрать галочку - Закрывать форму.
Очищение полей я делаю так - после нажатия сохранить, добавляю скрипт на нажатие кнопки новая запись. если кнопка не нужно, то можно все в скрипте прописать (какие поля очищать) на процедуру AfterClick
с Ув. Андрей
andrey.yugay
в вашем скрипте я вижу синтаксическую ошибку, а именно отсутствует слово begin после заголовка процедуры.
Если это не поможет, приложите пожалуйста ваш проект.
Доброго. это я для сокращения текста убрал.
немного переделал, но результата 0.
проект во вложении + файл для загрузки
проблема еще в том, что в старой базе, где все работало, сейчас тоже не работает. не пойму, может что не так с обновлением?
с Ув. Андрей
Дмитрий. доброго времени!
приобрели программу.
подскажите пожалуйста, что не так?:
procedure fMain_Button1_OnClick (Sender: string; var Cancel: boolean);
//1// № вагона
if arrStr[1] = '' then arrStr[1] := 'NULL';
//2// Станция дислокации
if arrStr[2] = '' then arrStr[2] := 'NULL';
//3// индекс поезда
if arrStr[3] = '' then arrStr[3] := 'NULL';
//4// дата дислокации // приводим дату к формату, который необходим для записи в БД
if arrStr[4]<>'' then // если данные есть
sDate1 := '"'+ FormatDateTime('yyyy-MM-DD 00:00:00.000', StrToDate(arrStr[4])) + '"'
else sDate1 := 'NULL'; // иначе значение NULL
//5// операция
if arrStr[5] = '' then arrStr[5] := 'NULL';
//6// Станция назначения
if arrStr[6] = '' then arrStr[6] := 'NULL';
//7// код грузополучателя
if arrStr[7] <> '' then arrStr[7] := ''''+ ReplaceStr(arrStr[7], '''', '''''') + ''''
else arrStr[7] := 'NULL';
//8// наименование грузополучателя
if arrStr[8] <> '' then arrStr[8] := ''''+ ReplaceStr(arrStr[8], '''', '''''') + ''''
else arrStr[8] := 'NULL';
//9// станция отправления
if arrStr[9] = '' then arrStr[9] := 'NULL';
//10// дата отправления // приводим дату к формату, который необходим для записи в БД
if arrStr[10]<>'' then // если данные есть
sDate2 := '"'+ FormatDateTime('yyyy-MM-DD 00:00:00.000', StrToDate(arrStr[10])) + '"'
else sDate2 := 'NULL'; // иначе значение NULL
//11// груз
if arrStr[11] = '' then arrStr[11] := 'NULL';
//12// собственник
if arrStr[12] = '' then arrStr[12] := 'NULL';
//13// род
if arrStr[13] <> '' then arrStr[13] := ''''+ ReplaceStr(arrStr[13], '''', '''''') + ''''
else arrStr[13] := 'NULL';
//14// № накладной
if arrStr[14] = '' then arrStr[14] := 'NULL';
//15// состояние
if arrStr[15] = '' then arrStr[15] := 'NULL';
//16// парк
if arrStr[16] = '' then arrStr[16] := 'NULL';
//17// код неисправности
arrStr[17] := ReplaceStr(arrStr[17], ',', '.');
if arrStr[17] = '' then arrStr[17] := 'NULL';
//18// вес груза
arrStr[18] := ReplaceStr(arrStr[18], ',', '.');
if arrStr[18] = '' then arrStr[18] := 'NULL';
//19// грузоподъемность вагона
arrStr[19] := ReplaceStr(arrStr[19], ',', '.');
if arrStr[19] = '' then arrStr[19] := 'NULL';
// проверяем, для избежания дубликатов, данная проверка не обязательна, и зависит от вашей ситуации
//sval := SQLExecute('SELECT id FROM currency WHERE (date = ' + sDate + ') AND (id_valute = ' + ValuteID + ') AND (value = ' + arrStr[2] + ') ;');
//if sval = '' then // если в переменной sval - пусто, значит SQL запрос ничего не вернул, и дубликата данных нет
// с помощью SQL запрос вставляем данные в БД
SQLExecute ('INSERT INTO t_data (num_wag, st_dislok, index_poezda, d_dislok, oper, st_naznach, code_poluchatelya, name_poluchatelya, st-otprav, d_otpravleniya, gruz, sobstven, rod, naklad, sostoyanie, park, neispr_code, ves, gruzopod) VALUES ('+ arrStr[1] +', '+ arrStr[2] +', '+ arrStr[3] +', '+ sDate1 +', '+ arrStr[5] +', '+ arrStr[6] +', '+ arrStr[7] +', '+ arrStr[8] +', '+ arrStr[9] +', '+ sDate2 +', '+ arrStr[11] +', '+ arrStr[12] +', '+ arrStr[13] +', '+ arrStr[14] +', '+ arrStr[15] +', '+ arrStr[16] +', '+ arrStr[17] +', '+ arrStr[18] +', '+ arrStr[19] +');');
// выводим в компонент надписи, какое количество строк с данными обработано
fMain.Label1.Caption := 'Загружено строк ' + IntToStr(i) + ' из ' + IntToStr(c);
// необходимо, чтобы надпись в Label один обновилась
Application.ProcessMessages;
end;
sl.Free; // уничтожаем объект, после работы с ним
fMain.TableGrid1.dbUpdate; // заставляем TableGrid обновить данные
end;
OpenDialog.Free; // уничтожаем объект, после работы с ним
end;
Данные не грузятся, вообще ничего не происходит - кроме обновления таблицы(
с Ув. Андрей
Дмитри,
Спасибо огромное, все помогло
с Ув. Андрей
andrey.yugay
рассмотрите возможность логгирования данных более простым и универсальным способом:
http://myvisualdatabase.com/forum/viewtopic.php?id=3642
Дмитри, доброго времени суток,
сделал с этого проекта...
загвоздка вот в чем
есть связи с таблицами, как мне их прописать в коде?
пример
'BEGIN '+
' INSERT INTO logs(w_date, plant, operation, username, id_rec, date, agent, st, stcode) VALUES (datetime(''now'', ''localtime''), ''SHC'', ''DELETE RECORD'', '+sUserName+', NEW.id, NEW.shc_data, NEW.shc_agent, NEW.id_st, NEW.id_st)
NEW.id_st ссылается на другую таблицу... если я оставляю так, то в логах появится только номер записи... как мне предопределить, что там на основании ID выберется другое значение, к примеру, stname (наименование станции)
еще один вопрос... не пойму где причина. есть комбобокс (связи настроены) все нормально. лишнего кода нет. на кнопку сохранить настроенно действие, что бы комбобокс4 участвовал в сохранении записи, но при нажатии сохранить, не добавляет запись.. в чем может быть проблема?
код только такой
procedure frmContracts_ComboBox4_OnChange (Sender: string; Action: string);
begin
if frmContracts.ComboBox4.text ='' then
frmContracts.Edit14.text := ''
else frmContracts.Edit14.text := SQLExecute('SELECT stname FROM st WHERE stCode = '+frmContracts.ComboBox4.text );
end;
прошу помочь
с Ув. Андрей
Дмитрий, доброго времени суток,
подскажите пожалуйста в чем может быть проблема
if sLastActionForm = 'NewRecord' then sOperation := 'Новая запись';
if sLastActionForm = 'ShowRecord' then sOperation := 'Изменение записи';
операция не заносится в логи.
как буд-то не определяет, что пользователь делал
с Ув. Андрей
*полный код; все данные нормально сохраняются
procedure frmContracts_Button1_OnAfterClick (Sender: string);
begin
frmcontracts.DateTimePicker1.Checked := False;
frmContracts.ComboBox6.Text := frmContracts.Edit1.Text;
sCurrentDate := '"' + FormatDateTime('yyyy-MM-DD hh:nn:ss', now) + '"';
sID := IntToStr(frmContracts.Button1.dbGeneralTableID);
sDate := '"' + FormatDateTime('yyyy-MM-DD hh:nn:ss', frmContracts.DateTimePicker1.Date) + '"';
sAgent := '"'+frmContracts.Edit1.Text+'"';
sST := '"'+frmContracts.Edit14.Text+'"';
sCodeST := '"'+frmContracts.ComboBox4.Text+'"';
sCemType := '"'+frmContracts.ComboBox1.Text+'"';
sPack := '"'+frmContracts.ComboBox2.Text+'"';
sTonn := '"'+frmContracts.Edit4.sqlValue+'"';
sCost := '"'+frmContracts.Edit5.sqlValue+'"';
sTotal := '"'+frmContracts.Edit6.sqlValue+'"';
sContract := '"'+frmContracts.Edit7.Text+'"';
sF1 := '"'+frmContracts.Edit8.sqlValue+'"';
sF2 := '"'+frmContracts.Edit9.sqlValue+'"';
sF3 := '"'+frmContracts.Edit10.sqlValue+'"';
sF4 := '"'+frmContracts.Edit11.sqlValue+'"';
if sSAP = 'NULL' then sSap := '' else sSap := '"'+frmContracts.Edit13.Text+'"';
sBroker := '"'+frmContracts.Edit12.Text+'"';
sAddit := '"'+frmContracts.Edit3.Text+'"';
if frmContracts.CheckBox1.sqlValue = '1' then sAnn := 'Да' else sAnn := 'Нет';
if sLastActionForm = 'NewRecord' then sOperation := 'Новая запись';
if sLastActionForm = 'ShowRecord' then sOperation := 'Изменение записи';
SQLExecute ('INSERT INTO logs (w_date, plant, operation, username, id_rec, date, agent, st, stcode, cemtype, pack, tonn, cost, total, contract, f1, f2, f3, f4, sap, broker, addit, ann)' +
'VALUES ('+ sCurrentDate +' , "ШЦ", "'+ sOperation +'", '+ sUserName +', '+ sID +','+ sDate +', '+ sAgent +', '+ sST +', '+ sCodeST +', '+ sCemType +', '+ sPack +', '+ sTonn +', '+ sCost +', '+ sTotal +', '+ sContract +', '+ sF1 +', '+ sF2 +', '+ sF3 +', '+ sF4 +', '+ sSAP +', '+ sBroker +', '+ sAddit +', "'+ sAnn +'")');
frmLog.Logs.dbUpdate;
end;
andrey.yugay
Дмитрий, доброго,
да, это то, что нужно.1) есть какая нибудь реализация по автозавершению слов именно в тектовом поле?
Пример по огранизации, польз-ль начинает вводить и ему предлагаю варианты.... По комбобокс не подходит, т.к. там будут вводить новые организации
2) В форме редактирования скриптов пропали +.... данных много, раньше все сваричивалось, сейчас приходится искать по тексту.
3) Еще вопрос, как с вами связаться на счет покупки?с УВ. Андрей.
1. Автозаврешение слов есть только в ComboBox, для этого установите его свойство Style = csDropDown
Затем поместите на форму компонент Edit, а для компонента ComboBox создайте событиеprocedure Form2_ComboBox1_OnChange (Sender: string); begin Form2.Edit1.Text := Form2.ComboBox1.Text; end; procedure Form2_OnShow (Sender: string; Action: string); begin Form2.ComboBox1.Text := Form2.Edit1.Text; end;
таким образом информация из CombBox будет дублироваться в Edit, компонент Edit сделайте невидимым, но данные в базу данных сохраняйте именно с компонента Edit
проект с примером приложил к сообщению
2. Нажмите правой кнопкой мыши в окне скриптов и поставьте галочку "Code folding"
3. support@drive-software.com
страница покупки
http://myvisualdatabase.com/purchase_ru.html
Дмитрий, доброго.
Да, получилось. но немного доработал, спасибо огромное.
в принципе этот проект содержит в себе многие функции, которые есть на сайте - авторизация, формулы, sql запросы, (отчеты тут не нужны, есть отчетная ввкладка), связи, иморт, выгрузка в excel, если вдруг кому будет нужен , могу скинуть.
в планах внедрить бэкап, т.к. информации много, и нужно будет "на всякий случай"
пока не дошел до этого... польз-и тестируют. как дадут добро можно под шумок внедрить
на счет закупок, выслал нашим специалистам
с Ув. Андрей
andrey.yugay wrote:Дмитрий, доброго времени суток.
Подскажите как можно реализовать.на форме есть две кнопки - показать запись.
1) показывает на текущей форме
2) открывает новую форму для редактирования.как можно сделать, что бы под одним пользователем работала 1 кнопка, а 2 под другими?
при открытии основной формы, есть разграничение прав, но если поставить запрет на все кнопки в режиме чтения, все равно срабатывает 2 и открывает форму.
может есть вариант, настроить Action на кнопку? т.е. прописать при определении прав.
пример ( за корректность не ручаюсь, т.к. опыта не было)frmContracts.Button1Edit1. * Action = "None";
frmContracts.Button2Edit2. * Action = "None";Заранее благодарю за вашу помощь.
Программу как и обещал будем брать, нужны будут ваши контакты, что бы отдел закупок связался с вамис Ув. Андрей
Здравствуйте.
Так можно удалить действие для кнопки
Form1.Button1.dbActionType := adbNone;
Дмитрий, доброго,
да, это то, что нужно.
1) есть какая нибудь реализация по автозавершению слов именно в тектовом поле?
Пример по огранизации, польз-ль начинает вводить и ему предлагаю варианты.... По комбобокс не подходит, т.к. там будут вводить новые организации
2) В форме редактирования скриптов пропали +.... данных много, раньше все сваричивалось, сейчас приходится искать по тексту.
3) Еще вопрос, как с вами связаться на счет покупки?
с УВ. Андрей.
При выполнении данного SQL запроса, появляется вот такая ошибка. Началось с версии 3.3
select
SoispDog.num_dog,
strftime('%d.%m.%Y',SoispDog.date_dog),
soispdog.shifr_dog,
SoispDog.name_dog,
vedisp.numstage,
vedisp.namestage,
vedisp.ONTD,
strftime('%d.%m.%Y',vedisp.startstage),
strftime('%d.%m.%Y',vedisp.endstage)as dateend,
vedisp.trud,
vedisp.cashstage,
vedisp.NDS,
vedisp.vidcash,
Glisp.nameGi,
Soisp.nameisp,
vedisp.Zakl_OC,
vedisp.Zakl_TFC,
vedisp.udost,
(case when vedisp.otmstage=1 then 'да' else 'нет' end),
soispdog.id,
soispdog.id_GLisp,
soispdog.id_soispfrom vedisp, soispdog, Glisp, soisp
where vedisp.id_soispdog=soispdog.id and soispdog.id_soisp=soisp.id and soispdog.id_Glisp=GLisp.id
and strftime('%m.%Y',vedisp.endstage)= strftime('%m.%Y',{DateTimePicker1}) and vedisp.otmstage='0'
order by dateend
может в моем коде что то вам поможет
select
id,
strftime('%d.%m.%Y',shc_data) as shc_data,
shc_agent,
(SELECT IFNULL(st.stname, '') FROM st WHERE st.id=id_st),
(SELECT IFNULL(st.stcode,'') FROM st WHERE st.id=id_st),
(SELECT cemtype.cemtypeName FROM cemtype WHERE cemtype.id=id_cemtype),
(SELECT pack.pacName FROM pack WHERE pack.id=id_pack),
shc_tonn,
shc_cost,
shc_total,
shc_contact,
shc_fact1,
shc_fact2,
shc_fact3,
shc_fact4,
shc_sap,
shc_broker,
shc_add,
(case when shc_an = 1 then 'Да' else 'Нет' end)
from shc_data
WHERE ( Date(shc_data) >= Date({A1}) ) AND ( Date(shc_data) <= Date({A2}) )
UNION ALL
select
id,
strftime('%d.%m.%Y',kaspi_data) as kaspi_data,
kaspi_agent,
(SELECT IFNULL(st.stname, '') FROM st WHERE st.id=id_st),
(SELECT IFNULL(st.stcode,'') FROM st WHERE st.id=id_st),
(SELECT cemtype_kaspi.cemtypeName_kapsi FROM cemtype_kaspi WHERE cemtype_kaspi.id=id_cemtype_kaspi),
(SELECT pack.pacName FROM pack WHERE pack.id=id_pack),
kaspi_tonn,
kaspi_cost,
kaspi_total,
kaspi_contract,
kaspi_fact1,
kaspi_fact2,
kaspi_fact3,
kaspi_fact4,
kaspi_sap,
kaspi_broker,
kaspi_add,
(case when kaspi_an = 1 then 'Да' else 'Нет' end)
from kaspi_data
WHERE ( Date(kaspi_data) >= Date({A1}) ) AND ( Date(kaspi_data) <= Date({A2}) )
UNION ALL
select
id,
strftime('%d.%m.%Y',bcc_data) as bcc_data,
bcc_agent,
(SELECT IFNULL(st.stname, '') FROM st WHERE st.id=id_st),
(SELECT IFNULL(st.stcode,'') FROM st WHERE st.id=id_st),
(SELECT cemtypebcc.cemtypeName_bcc FROM cemtypebcc WHERE cemtypebcc.id=id_cemtypebcc),
(SELECT pack.pacName FROM pack WHERE pack.id=id_pack),
bcc_tonn,
bcc_cost,
bcc_total,
bcc_contract,
bcc_fact1,
bcc_fact2,
bcc_fact3,
bcc_fact4,
bcc_sap,
bcc_broker,
bcc_add,
(case when bcc_an = 1 then 'Да' else 'Нет' end)
from bcc_data
WHERE ( Date(bcc_data) >= Date({A1}) ) AND ( Date(bcc_data) <= Date({A2}) )
Дмитрий, доброго времени суток.
Подскажите как можно реализовать.
на форме есть две кнопки - показать запись.
1) показывает на текущей форме
2) открывает новую форму для редактирования.
как можно сделать, что бы под одним пользователем работала 1 кнопка, а 2 под другими?
при открытии основной формы, есть разграничение прав, но если поставить запрет на все кнопки в режиме чтения, все равно срабатывает 2 и открывает форму.
может есть вариант, настроить Action на кнопку? т.е. прописать при определении прав.
пример ( за корректность не ручаюсь, т.к. опыта не было)
frmContracts.Button1Edit1. * Action = "None";
frmContracts.Button2Edit2. * Action = "None";
Заранее благодарю за вашу помощь.
Программу как и обещал будем брать, нужны будут ваши контакты, что бы отдел закупок связался с вами
с Ув. Андрей
andrey.yugay
if frmContracts.TableGrid1.Cells[7,1] = ' ' then frmContracts.TableGrid1.Cell[7,1].Color := clWhite
скорей всего в этой строке вместо 1 должно быть i
Дмитри. вы Бог!)
спасибо огромное, а то уже глаза в кучу
Дмитрий, извините, что беспокою в выходной день.
Столкнулся со странной ошибкой:
List index out of bounds (1) при следующих процедурах:
Подскажите пожалуйста, что делаю не так
//Закрашивание по условию
procedure frmContracts_TableGrid1_OnChange (Sender: string; Action: string);
var
i,c: integer;
begin
frmContracts.TableGrid1.BeginUpdate;
c := frmContracts.TableGrid1.RowCount - 1;
for i := 0 to c do
begin
if frmContracts.TableGrid1.Cells[18,i] = 'Да' then frmContracts.TableGrid1.Cell[2,i].TextColor := clRed;
if frmContracts.TableGrid1.Cells[18,i] = 'Yes' then frmContracts.TableGrid1.Cell[2,i].TextColor := clRed;
if frmContracts.TableGrid1.Cells[14,i] = '' then frmContracts.TableGrid1.Cell[14,i].Color := clWhite
else if StrToFloat(frmContracts.TableGrid1.Cells[14,i]) = 0 then frmContracts.TableGrid1.Cell[14,i].Color := $008238
else if StrToFloat(frmContracts.TableGrid1.Cells[14,i]) = 0 then frmContracts.TableGrid1.Cell[14,i].Color := $008238
else if StrToFloat(frmContracts.TableGrid1.Cells[14,i]) < 0 then frmContracts.TableGrid1.Cell[14,i].Color := clRed;
if frmContracts.TableGrid1.Cells[7,1] = ' ' then frmContracts.TableGrid1.Cell[7,1].Color := clWhite
else if frmContracts.TableGrid1.Cell[7,i].AsFloat > frmContracts.TableGrid1.Cell[11,i].AsFloat then frmContracts.TableGrid1.Cell[11,i].Color := $008238
else if frmContracts.TableGrid1.Cell[7,i].AsFloat < frmContracts.TableGrid1.Cell[11,i].AsFloat then frmContracts.TableGrid1.Cell[11,i].Color := clRed;
end;
frmContracts.TableGrid1.EndUpdate;
end;
Ошибка возникает при фильтрации... если строка только одна.
Дмитрий, доброго,
да. так и сделал. добавил к нужным полям поиск кнопку (на контрагент добавил инкрементный поиск), так удобнее, хоть и немного затратнее по времени. просчет идет медленно.
можно так
procedure frmContracts_TableGrid1_OnChange (Sender: string);
begin
frmContracts.TableGrid1.Columns[3].Visible := not frmContracts.CheckBox1.Checked;
frmContracts.TableGrid1.Columns[4].Visible := not frmContracts.CheckBox1.Checked;
frmContracts.TableGrid1.Columns[5].Visible := not frmContracts.CheckBox1.Checked;
frmContracts.TableGrid1.Columns[6].Visible := not frmContracts.CheckBox1.Checked;
...
Доброго дня, Дмитрий,
это не совсем то. Оно скрывает колонки, а мне нужно фильтрация внутри таблицы по данным.
т.е.
Chekbox2.checked = true then
Контрагент (Edit1) при вводе данных, сразу фильтровал в таблице (TableGrid1);
Checkbox2. cheked = false then
Показать все записи;
Можете подсказать как это реализовать? И как можно будет реализовать по фильту по дате
с Ув. Андрей
Дмитрий, подскажите пожалуйста.
Есть два текстбокса Код станции и Наименование станции.
Есть отдельная таблица (№, Наименование станции, Код станции)
Можно ли реализовать поиск по вводу кода станции (в текстбоксе)? - результат наименование станции (в текстбокс)?
Дмитрий, спасибо огромное. Буду разбираться.
Сорри. frmContracts - TableGrid1, *2,*3... соответсвенно в 3 вкладках.
Можете подсказать , что не так:
procedure frmContracts_TableGrid1_OnChange (Sender: string);
var
i,c: integer;
begin
frmContracts.TableGrid1.BeginUpdate;
c := frmContracts.TableGrid1.RowCount - 1;
for i := 0 to c do
begin
if (frmContracts.TableGrid1.Cells[7,i]) = (frmContracts.TableGrid1.Cells[11,i]) then frmContracts.TableGrid1.Cell[11,i].Color := clLime;
if (frmContracts.TableGrid1.Cells[7,i]) < (frmContracts.TableGrid1.Cells[11,i]) then frmContracts.TableGrid1.Cell[11,i].Color := clYellow;
if (frmContracts.TableGrid1.Cells[7,i]) > (frmContracts.TableGrid1.Cells[11,i]) then frmContracts.TableGrid1.Cell[11,i].Color := clRed;
end;
frmContracts.TableGrid1.EndUpdate;
end;
последнее условие не срабатывает.
с ув. Андрей
Всем доброго времени суток. Начал пользоваться программй недавно. Планируем приорести.
Вопрос вот в чем - возможно ли реализовать фильтрацию через чекбокс, т.е.:
- есть текстбокс(контрагент) = в нем набирается текст (фильтрация %s) установлена, что бы отображалось в будущем не по всему вхождению;
- есть датагрид (таблица собранная с данными)
- есть чекбокс (2 нажатия)
возможно ли реализовать след - Если пользователь вводит данные в текстбокс с включенным чекбоксом датагрид отображало имя контрагента. и если отключить чек бокс, то показывал бы все данные
если нужна будет программа, напишите.
писал для след нужд - сбыт отдел, заносит данные по заводам, где что продали, сколько вогонов отправили и.т.д. + инфомацию по контрагентам. так же реализовано авторизация по пользователям. настройка польз-й.
My Visual Database → Posts by andrey.yugay
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi