Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как отформатировать поле в MSHFlexGrid и ... / 25 сообщений из 25, страница 1 из 1
12.04.2004, 01:14
    #32476939
ЗАБАВА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Использую MSHFlexGrid , супер штука скажу вам посекрету! Я ещё не все возможности его изучила, но уже в восторге! Советую...

Вот первое моё упущение:
У меня один столбец - Цена - после запроса из базы отображается так: 0,1 и соответственно 5 , 10 и т.д. Как мне его отформатировать, чтобы там отображалась Цена в таком виде 0,10 соответственно 5,00 , 10,00 и т.д.?

И сразу же следующее:
Отдельно в TextBox-e я вывожу общую сумму денег, но это пока не сумма чисел, а сумма строк получилась, помогите пожалуйста мне сделать правильное преобразование:

Private Sub ....
......
Dim zuZahlenderBetrag As ???????

      GeldControl grdVorschau, zuZahlenderBetrag
      txtBetragZuZahlen.Text = zuZahlenderBetrag
.......
End Sub

Private Sub GeldControl (tmpGrd As MSHFlexGrid, tmpGeld As ???????)
      Dim j As Integer
      For j = tmpGrd.FixedRows To tmpGrd.Rows - 1
            CellIndex = 3 + tmpGrd.cols * j
            tmpGeld = tmpGeld + tmpGrd.TextArray(CellIndex)      'я так понимаю где-то в этом месте, а как пока не знаю...      
      Next
End Sub

Зарание благодарна
...
Рейтинг: 0 / 0
12.04.2004, 09:25
    #32477078
МаксимВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Отформатировать текст в ячеке MSFlexGrid можно при заполнении его данными с помощью функции format. Например:

Код: plaintext
MSFlexGrid.TextMatrix(Row, Col)= format( "переменная" ,  ".00 ")
...
Рейтинг: 0 / 0
12.04.2004, 11:39
    #32477283
ЗАБАВА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Format ("переменная", "#,##0.00")

Простите, а это корректно работает мой VB-Studio? Дело в том, что если я форматирую так : "#,##0.00" то отображается так : 1.000,00 , вообщем как мне и надо.
Вопрос в том не будет ли на другом компьютере отображаться наоботот: 1,000.00 ? Я уже заметила при форматировании других элементов, чтобы отобразило правильно надо точку с запятой поменять местами, иначе получается число с многочисленными нулями и т.д. или это так задумано?

А как быть с моим вторым вопросом? Посмотрите пожалуйста, а то я без вас не смогу...

Спасибо!
...
Рейтинг: 0 / 0
12.04.2004, 13:32
    #32477467
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Format ("переменная", "#,##0.00")

Простите, а это корректно работает мой VB-Studio? Дело в том, что если я форматирую так : "#,##0.00" то отображается так : 1.000,00, вообщем как мне и надо.
Вопрос в том не будет ли на другом компьютере отображаться наоботот: 1,000.00? Я уже заметила при форматировании других элементов, чтобы отобразило правильно надо точку с запятой поменять местами, иначе получается число с многочисленными нулями и т.д. или это так задумано?

А как быть с моим вторым вопросом? Посмотрите пожалуйста, а то я без вас не смогу...

Спасибо!


1. Функция формат выводит так как у пользователя настроен язык. Если русский, то выведет 9 999,99. Если американский, то 9,999.99 - в общем у каждого по-своему. И это хорошо.
2. Второй вопрос решается просто - подставь тип Double. а в формуле переведи текст в число с помощью функции cdbl()
...
Рейтинг: 0 / 0
12.04.2004, 18:17
    #32478107
МаксимВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Символ "." в функции format означает символ-заполнитель десятичной точки в cтроке форматирования для функции. А какой символ будет выводится в приложении зависит от настройки Widows - "Язык и стандарты". То-же самое и "," - символ-заполнитель для разделителя тысяч. Реально в приложении будет показываться символ из настройки Windows. Т.е. если строка форматирования: "###,###,###,###.00", а в настройках Windows
символ-заполнитель десятичной точки - ",", символ-заполнитель для разделителя тысяч - " ", то в приложении будет отформатированная сторка будет выглядеть так: 123 456 789 123,12
...
Рейтинг: 0 / 0
12.04.2004, 21:24
    #32478230
ЗАБАВА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Всё ясно.


Почти ;-)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.11.2010, 10:54
    #36948851
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Заполняю MSHFlexGrid
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Command1_Click()
 Dim sql As String
 Set rs = New ADODB.Recordset
 Frm_connect.conn.CursorLocation = adUseNone
 rs.Source = "select * from rezept"
 Set rs.ActiveConnection = Frm_connect.conn
 rs.Open
 Set Form1.MSHFlexGrid2.DataSource = rs
End Sub
Поля отображаются во MSHFlexGrid нет так как в БД. В базе идет допустим 57.95, а во MSHFlexGrid
отображается как 57.9500000000003 некторые поля отображатся нармано.
...
Рейтинг: 0 / 0
11.11.2010, 10:56
    #36948860
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
valdemar_ru,

приводите в select поля к нужному типу (денежному в данном случае)
(СУБД вы не указываете, по синтаксису подсказки не ждите)
...
Рейтинг: 0 / 0
11.11.2010, 11:18
    #36948934
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Shocker.Pro,

т. е. изменить тип поля в БД ?
...
Рейтинг: 0 / 0
11.11.2010, 11:49
    #36949040
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
valdemar_ruShocker.Pro,

т. е. изменить тип поля в БД ?

нет, изменить тип поля в запросе
...
Рейтинг: 0 / 0
11.11.2010, 12:19
    #36949123
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
valdemar_ruт. е. изменить тип поля в БД ?

нет, я говорю про ваш select

впрочем, если, скажем, вы пытаетесь хранить деньги в поле с плавающей точкой - вы не правы
...
Рейтинг: 0 / 0
11.11.2010, 12:51
    #36949224
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Shocker.Pro,

в этой теме /topic/781807&hl= , когда мы с Вами разговаривали я MSHFlexGrid заополнял по дргугому ,но этот способ заполнения для меня не подошел, потому что, если заполнять MSHFlexGrid таким способом очень долго, а на 40000 записях вообще зависает. Но данные зополнялись нармлаьно т. е. если в поле БД идет запись 57.95, то
в MSHFlexGrid оно отображается 57,95. Дата отображается в формате dd.mm.yyyy. Причем с обычным Select * from table.
Сечас пытаюсь заполнять через MSHFlexGrid.DataSource. Дата отображается как в БД yyyy-mm-dd.
Числа с плавающе точкой как попало.
Тип поля в БД у меня стоит Double(15, 2)
...
Рейтинг: 0 / 0
11.11.2010, 13:05
    #36949275
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
valdemar_ru,

Форматируйте данные как вам нравится на стороне сервера, то есть в запросе "select". Там вы сможете хоть слово "вчера" написать вместо даты.
...
Рейтинг: 0 / 0
12.11.2010, 07:07
    #36950815
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Shocker.Provaldemar_ruт. е. изменить тип поля в БД ?
впрочем, если, скажем, вы пытаетесь хранить деньги в поле с плавающей точкой - вы не правы
в каком типе лучше хранить и почему ?


Нашел две фукции. Одна фнукция приведения типов Cast, привожу к типу Decimal, в MSHFlexGrid
число отображается с двумя знаками после запятой, возникает вопрос может в сомой БД поменять
типо поля на Decimal, смысл хранить с типом Double, а вытаскивать в Decimal ?
Есть еще функция округления Round тоже отображает как мне надо. Мне не понятно как правильно это использовать.
...
Рейтинг: 0 / 0
12.11.2010, 09:46
    #36950951
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
valdemar_ru,

Ура, наконец-то удалось вытянуть из вас, что речь идет о MSSQL

Тип поля БД должен соответствовать тому, что вы там собираетесь хранить. Пока вы не потрудились описать, что именно, советов нет.
...
Рейтинг: 0 / 0
12.11.2010, 10:59
    #36951184
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Shocker.Pro,

Я собираюсь хранить денежный формат данных в одном поле и колличество с плавающей точкой в дргуом поле с двумя знаками после запятой. Как тип данных для этих полей подойдет ?
...
Рейтинг: 0 / 0
12.11.2010, 11:21
    #36951254
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
valdemar_ruShocker.Pro,

Я собираюсь хранить денежный формат данных в одном поле

money или smallmoney

valdemar_ruи колличество с плавающей точкой в дргуом поле с двумя знаками после запятой. Как тип данных для этих полей подойдет ?

Вы просто не понимаете, что такое "плавающая точка" и неточные типы данных. Изучите этот вопрос.
При операциях с плавающей точкой 2+2 не обязательно равно 4, поэтому хранение количества в нем категорически возбраняется.

Если количество может быть дробным, используйте smallmoney или decimal - это точные типы данных. Я предпочитаю все же денежные типы - меньше проблем с конвертацией на клиенте.
...
Рейтинг: 0 / 0
12.11.2010, 12:58
    #36951536
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
тип money юзайте для денежных полей в базе
...
Рейтинг: 0 / 0
13.11.2010, 07:48
    #36953228
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Konst_One,

БД Mysql 5
...
Рейтинг: 0 / 0
13.11.2010, 11:01
    #36953484
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
decimal
...
Рейтинг: 0 / 0
13.11.2010, 11:21
    #36953537
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Konst_One,

Я так и сделал присвоил Decimal. Данные в MSHFlexGrid отображаются теперь .60, хотя в БД 0.60.
...
Рейтинг: 0 / 0
13.11.2010, 11:25
    #36953548
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
valdemar_ruKonst_One,

Я так и сделал присвоил Decimal. Данные в MSHFlexGrid отображаются теперь .60, хотя в БД 0.60.

почитайте наконец мануал и сделайте всё форматирование результатов в запросе
...
Рейтинг: 0 / 0
13.11.2010, 12:17
    #36953648
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
valdemar_ruхотя в БД 0.60.
у вас в голове перемешалось отображение данных и способ их хранения в БД

к примеру, дата можете отображаться как "2010-10-10" или "10/10/10 23:45" или вообще "сегодня 23:35". Но в базе это хранится в виде 8-байтового числа, которое отсчитывает количество дней от определенной даты и не имеет никакого отношения к трем перечисленным отображениям .

Вашему MySQL-админу взбрело в голову отображать децимальное число в виде 0.60, MSFlex-у в виде ".60", но это не имеет никакого отношения к хранению этого числа в базе. MSFlex решает, как ему отображать данные, основываясь на том, какой тип поля вы ему возвращаете в запросе select.
А если вам не нравится, как MSFlex решил отобразить определенные данные - отформатируете (то есть приведите к строковому типу) их самостоятельно в запросе select. Тогда MSFlex будет тупо отображать тот текст, который ему дали и не будет пытаться форматировать данные самостоятельно.


И вообще, создается впечатление, что вы ответы читаете через слово. Встретилось непонятное слово - пропускаете его, вместо того, чтобы вникнуть в суть того, что вам отвечают.
...
Рейтинг: 0 / 0
13.11.2010, 12:45
    #36953698
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
Shocker.Pro,

Я просто запутался Вы писали про тип Money в Mysql нет типа Money.
Выше я писал про функцию Cast, но мне так и не ответили оно это или нет. Понятно, что можно почитать мануал, но прочитав его тоже не всегда становится понятно.

Код: plaintext
Select Cast(Field as char( 10 ))  as Field from table;
Если я правильно Вас понял это Вы имели ввиду ?
...
Рейтинг: 0 / 0
13.11.2010, 13:26
    #36953832
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отформатировать поле в MSHFlexGrid и ...
valdemar_ruЯ просто запутался Вы писали про тип Money в Mysql нет типа Money.

А я ж откуда знаю? Вы не указали, тип СУБД, даже после моего толстого намека.
Потом, после упоминания cast я предположил, что у вас MSSQL и опять вы мне не возразили.
В итоге я начал давать консультацию по MSSQL и тут выясняется, что у вас MySQL

valdemar_ruВыше я писал про функцию Cast, но мне так и не ответили оно это или нет.
я не знаю, есть ли в MySQL функция Cast. В MSSQL - это функция ПРЕОБРАЗОВАНИЯ ТИПОВ, а отнюдь не форматирования данных под ваши нужды.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как отформатировать поле в MSHFlexGrid и ... / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]