Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Форматирование Hierarchical FlexGrid


Автор: Urri 10.12.2005, 16:05
Есть HFlexGrid, в первый столбик которого подставляются значения из SQL-запроса:

Код

SELECT CDate(Format(Data!Date_Time, 'dd.mm.yyyy')), Sum(Out_nal) 
FROM Data 
GROUP BY CDate(Format(Data!Date_Time, 'dd.mm.yyyy')); 


где Date_Time - данные в формате "29.10.2005 11:27:51"

в итоге получается
10/29/2005
10/30/2005
10/31/2005
11/1/2005
11/2/2005
.....

а надо
29.10.2005
30.10.2005
31.10.2005
01.11.2005
02.11.2005
.....
чтобы я не делал с форматом, ничего не меняется...., если убираем CDate, то вроде то, что надо получается, но String, и сортировка идет как String.

Дальнейшее форматирование полученной таблицы, типа:

Код

For i = 1 To MSHFlexGrid.Rows - 1
    HFlexGrid.TextMatrix(i, 0) = Format(HFlexGrid.TextMatrix(i, 0), "Short date")
Next i


результатов не улучшает (((

И еще...
Мне этот способ форматирования столбцов (перебором строк) в HFlexGrid не нравится, но ничего лучшего не нашел, есть другие варианты?

Подскажите пожалуйста что-нибудь путное, а то уже закипаю потихоньку...

PS с DataGrid таких проблем не было, но хочется использовать HFlexGrid

Автор: av78 23.12.2005, 15:57
Попробуй 'DD.MM.YYYY' заглавными, но по-моему HFlexGrid внутри себя имеет американский формат данных

Автор: Akina 23.12.2005, 16:21
Цитата(Urri @ 10.12.2005, 17:05)
CDate(Format(Data!Date_Time, 'dd.mm.yyyy'))

Этого я более чем не понял... сперва ты форматируешь дату как тебе надо, в строку нужного формата, а потом результат... опять конвертируешь в формат DateTime. Полученные данные сливаешь гриду, который снова форматирует их по своему (вернее по системному) разумению в строку...
Почему бы не оставить
Код

SELECT Format(Data!Date_Time, 'dd.mm.yyyy'), Sum(Out_nal) 
FROM Data 
GROUP BY Format(Data!Date_Time, 'dd.mm.yyyy'); 
?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)