Подскажите, как из поля ДАТА/ВРЕМЯ получить формат dd.mm.YYYY HH:mm (без секунд) для отображения в гриде?

Спасибо.

sibprogsistem wrote:

все потому, что в случае EncodeTime(16, 0, 0, 0)
Вы получаете такую дату
30.12.1899 16:00:00

Спасибо!

Вышла из положения так

timeEnd:=FormatDateTime('HH',talon2.DateTimePicker1.DateTime);  //время талона

условие

if timeEnd>='16' Then
      begin
      MessageBox('Время талона превышает время окончания рабочего дня','Предупреждение',MB_ICONINFORMATION);
      Cancel:=True;

https://b.radikal.ru/b38/2007/88/87ec4882eb64.jpg

Рабочий день до 16:00

if talon2.DateTimePicker1.DateTime > EncodeTime(16, 0, 0, 0) Then
      begin
      MessageBox('Время талона превышает время окончания рабочего дня','Предупреждение',MB_ICONINFORMATION);
      Cancel:=True;
      end
      else begin
      MessageBox('Количество выданных талонов за этот день = '+IntToStr(countTal+1),'Информация', MB_OK+MB_ICONINFORMATION);
      end;

Ошибка в том, что при любом изменении поля времени на наименьшее всё равно появляется Предупреждение.  Подскажите советом пжлста.

54

(5 replies, posted in Russian)

Спасибо. Думала над этим. Просто эти справочники меняются/корректируются каждый год на основании правил приема в ВУЗы и соответственно нужно всё приводить в порядок.

55

(5 replies, posted in Russian)

Хотя можно и так.

procedure priem_corr_one_ComboBox6_OnChange (Sender: TObject);
begin
ShowMessage(priem_corr_one.ComboBox6.Text);
end;

Только пользователю нужно будет ещё раз на ОК жать..

56

(5 replies, posted in Russian)

Спасибо. AutoWidth у ComboBox появилось в версии 6.1 . У меня более ранняя.

Ладно, пусть остаётся как есть. В принципе по первой части можно понять о чём идёт речь, а выгружается текст полностью.

57

(5 replies, posted in Russian)

Возможно ли как-то "подсветить" выбираемый текст в ComboBox полностью, не изменяя заданную ширину ComboBox'а?

https://c.radikal.ru/c06/2007/41/f94b24b90a97.jpg

Как подсказку, например roll

Спасибо.

k245 wrote:

Ошибка в объявлении переменной cb: используйте класс  TdbComboBox:

Спасибо! Так работает smile

PS.
Если комбобоксы заполнены командой dbSQLExecute, то содержимое стирается полностью. Я думаю, чтобы сбросить значения, достаточно присвоить им -1

     cb.dbItemID:=-1

Проверено wink

Здравствуйте. Работает.

procedure talon2_Button3_OnClick (Sender: TObject; var Cancel: boolean);
var
nameCombo, j: string;
begin
nameCombo:='Form1.ComboBox.';                        //в переменную общее имя комбобоксов
for i:=1 to 5 do
begin
   j:=nameCombo+IntToStr(i)+'.Clear';                 //цикл очистки по счетчику i
end;
end;

60

(17 replies, posted in Russian)

Andrei wrote:

Здравствуйте.
Ругается  на a.otvet_data = is Null.
Пробовал a.otvet_data = ''  так же выходит ошибка

procedure Form_oth_Button6_OnClick (Sender: TObject; var Cancel: boolean);
     begin
           if (not isAdmin) then
         Form_oth.Button6.dbSQL :=   'distinct a.id, b.name,  a.vhod_numer, a.vhod_data, a.otvet_data, a.otvet_numer '+
                                'from zapros a '+
                                'join departament b on a.id_departament=b.id '+
                                 'where a.otvet_data = is Null and  a.id_departament = '+ inttostr (iddepartament) +
                                else
         Form_oth.Button6.dbSQL :=   'distinct a.id, b.name,  a.vhod_numer, a.vhod_data, a.otvet_data, a.otvet_numer '+
                                'from zapros a '+
                                'join departament b on a.id_departament=b.id '+
                                 'where a.otvet_data = is Null ';

end;

Скрипт в MySQL проходит без ошибок.

select distinct a.id, b.name, a.otvet_data, a.otvet_numer  
from zapros a            
join departament b on a.id_departament=b.id
where a.otvet_data IS NULL  

знак равенства нужно убрать 
   where a.otvet_data = is Null

Спасибо!

Как сделать правильно?

   klass_edit.DateTimePicker1.Date:=12/31/2999;

Нужна либо галка CheckBox1 либо кнопка Button1 c процедурой OnClick

Form1.Table1.dbFilter:='Quantity>='+Form1.Edit1.Text;
Form1.Table1.dbUpdate;

Тогда фильтрация будет гибкой в зависимости от значения Edit.

Решение:

procedure Form1_OnShow (Sender: TObject; Action: string);
var
sqlstr: TDataSet;
sName: string;
begin
SQLQuery('Pragma table_info("mainTable")',sqlstr);
while not sqlstr.Eof do
  begin
  sName := sqlstr.FieldByName('name').asString;
  Form1.ComboBox1.Items.Add(sName);
  sqlstr.Next;
  end;
end;

Спасибо большое!

Получила структуру в виде:

cid   name        type               notnull       dflt_value          pk

0    id            INTEGER              0        NULL                   1
1    name      TEXT                    1        NULL                   0
2    summa    REAL (10, 2)        1        NULL                   0
3    check      BOOLEAN             1        NULL                   0
4    dVvod     DATE                    1        NULL                   0

Теперь осталось вытащить названия полей name из массива.

Буду думать smile

Чтобы заполнить содержимым, достаточно одной команды

  Form1.ComboBox1.dbSQLExecute('SELECT name,id  FROM mainTable');

ну или через || добавить необходимые для отображения поля (в sqlite) или CONCAT() в MySQL

Т.е. автоматически достать имена всех полей в таблице нельзя? Только явное указание? sad

sibprogsistem wrote:
procedure Form1_ComboBox1_OnDropDown (Sender: TObject);
begin
  Form1.ComboBox1.dbSQLExecute('SELECT поле FROM таблица');
end;

Спасибо, но это немного не то. Мне нужна структура таблицы, т.е названия её полей.

Можно ли вывести структуру таблицы в ComboBox командой Form1.ComboBox1.dbSQLExecute(), не создавая вспомогательную таблицу с этой структурой? https://b.radikal.ru/b14/2003/42/111219d92bfe.jpg

Заранее спасибо за ответ.

Вышла из положения так:

1. В свойствах таблицы   Editable->   AllowEdit  -> False

2. Разрешила редактирование последней колонки

procedure Form1_TableGrid1_OnChange (Sender: TObject);
var i: integer;
begin
Form1.TableGrid1.Columns[11].Options := Form1.TableGrid1.Columns[11].Options + coEditing; 
end;

Сообщение об ошибке:
https://c.radikal.ru/c23/2002/b4/8a9701ff23ab.jpg

Есть таблица с вычисляемым полем (номер 9 на рисунке)

procedure Form1_TableGrid1_OnChange (Sender: TObject);
var i: integer;
begin
For i:=0 to 10 do                                 {запрет на редактирование всех колонок кроме последней}
Form1.TableGrid1.Columns[i].Options := Form1.TableGrid1.Columns[i].Options - coEditing;
end;

Но к нему всё равно остаётся доступ, если кликнуть по полю. Как вылечить? sad

https://c.radikal.ru/c06/2002/e6/dc05eb1fc6f8.jpg

72

(2 replies, posted in General)

manixs2013, you mean it?

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
OpenFile('calc.exe');
end;

Function OpenFile() calls anything executable file on Form.

73

(2 replies, posted in General)

You can try it:

procedure Form1_TableGrid1_OnChange (Sender: TObject);
var
   i, c: integer;
begin
   Form1.TableGrid1.Options := Form1.group1Grid.Options or goRowResizing;
   c := Form1.group1Grid.Columns.Count - 1;
   for i := 0 to c do
   begin
      Form1.TableGrid1.Columns[i].Header.Multiline:=True;                    
      Form1.TableGrid1.Columns[i].VerticalAlignment := taAlignTop;
      Form1.TableGrid1.Columns[i].WrapKind := wkWordWrap;                  
   end;
end;

and this
https://a.radikal.ru/a00/2002/47/56ceecbde6af.jpg

Установки правильные, но проблему не решают
https://d.radikal.ru/d09/2001/eb/1482f2eb916c.jpg

Кто уже работал в HelpNDoc? Файл справки создаётся на русском, а в поиске разделы отображаются иероглифами. Где копать?

Заранее спасибо.