На форме есть два контрола MSHFlexGrid и DataGrid
MSHFlexGrid.DataSource = Recordset — работает
DataGrid.DataSource = Recordset — не работает
я уже измячился, подскажите, что сделал не так
Здравствуйте Disieux, Вы писали:
D>На форме есть два контрола MSHFlexGrid и DataGrid D>MSHFlexGrid.DataSource = Recordset — работает D>DataGrid.DataSource = Recordset — не работает D>я уже измячился, подскажите, что сделал не так
Ежели у тебя DataGrid — это CDataGrid, который от MS DataGrid control (OLEDB)
то попробуй следующее
m_DataGrid.SetRefDataSource( (LPUNKNOWN) m_recordSet );
m_DataGrid.Refresh();
Это после того, как в m_recordSet напихал чего нибудь
btw, ты не знаешь, как этот самый CDataGrid распечатать?
Здравствуйте Disieux, Вы писали:
D>CDataGrid это видимо C++, а я пишу на VB и там DataGrid
А какая, IMHO, разница? Методы-то те же должны быть, синтаксис
языка только различен....
Или я где-то не прав, в чём-то?( Я, собственно, не претендую,
самому интересно)
я разобрался нужно было рекордсет закрывать, когда закрываешь форму и все работает
у меня к тебе еще вопрос есть, когда заполняешь DataGrid у него есть самая левая колонка и в ней нет ни каких данных я бы хотел чтобы в ней была нумерация строк как в Excel, может знаешь как это замутить
и еще по повоу печати, я в свое время хотел MSHFlexGrid распечатать, пришлось использовать DataReport
Здравствуйте Disieux, Вы писали:
D>Здравствуйте nimnul, Вы писали:
D>я разобрался нужно было рекордсет закрывать, когда закрываешь форму и все работает
Это старые грабли, я даже и забыл про это...
D>у меня к тебе еще вопрос есть, когда заполняешь DataGrid у него есть самая левая колонка и в ней нет ни каких данных я бы хотел чтобы в ней была нумерация строк как в Excel, может знаешь как это замутить
Ну, первое, что на ум приходит- да ничего, собственно, толкового, не приходит пока. Можно, конечно счётчик по RecordSet организовать, но это криво — дополнительный цикл... А, может в свойствах самого DataGrid'a есть такая ерунда? Или SELECT похитрее, сейчас не соображу просто, надыбаю, отпишу.
D>и еще по повоу печати, я в свое время хотел MSHFlexGrid распечатать, пришлось использовать DataReport
DataReport — это прога такая, я так понимаю? — Мне по условиям не подходит, внешние приложения не катят...
Здравствуйте nimnul, Вы писали:
D>>и еще по повоу печати, я в свое время хотел MSHFlexGrid распечатать, пришлось использовать DataReport N>DataReport — это прога такая, я так понимаю? — Мне по условиям не подходит, внешние приложения не катят...
Нет DataReport входит в VB Project/Add DataReport
Слушай может знаешь как программно задать формат у колонки, мне нужно у одной финансовый формат, у другой чтобы числа со знаком процента выодил
Делаю для поля DataGrid1.Columns(1).NumberFormat = "Currency" и получаю 1 234 567, 00р. Вопрос. Как программно задать количество знаков после запятой и убрать символ, в данном случае, "р".
Делаю для поля DataGrid1.Columns(1).NumberFormat = "Number", то числа выводятся не в финансовом формате
Делаю для поля DataGrid1.Columns(2).NumberFormat = "Percantage", то вообще какая-то лажа выохдит
D>Слушай может знаешь как программно задать формат у колонки, мне нужно у одной финансовый формат, у другой чтобы числа со знаком процента выодил D>Делаю для поля DataGrid1.Columns(1).NumberFormat = "Currency" и получаю 1 234 567, 00р. Вопрос. Как программно задать количество знаков после запятой и убрать символ, в данном случае, "р". D>Делаю для поля DataGrid1.Columns(1).NumberFormat = "Number", то числа выводятся не в финансовом формате D>Делаю для поля DataGrid1.Columns(2).NumberFormat = "Percantage", то вообще какая-то лажа выохдит
Я так понимаю, что ежели из финансового формата убрать символ валюты, то это и будет числовой формат, так что проблема в разделителях разрядов....
Я вообще то в ВАСИКе не силён, но если формат можно задать не номером, а строкой, попробуй что то вроде
"# ##0.00" количество нулей после точки соответствует количеству знаков после точки в результате.
Или в SQL есть такая штука как
ROUND (numeric_expr, length) Numeric expression rounded off to the length (or precision) specified as an integer expression (tinyint, smallint, or int). Result is of the same type as numeric_expr.The ROUND function always returns a value even if the length is illegal. If the specified length is positive and longer than the digits after the decimal point, 0 is added after the fraction digits.If the length is negative and larger than or equal to the digits before the decimal point, ROUND returns 0.00.
Здравствуйте nimnul, Вы писали:
N>Я так понимаю, что ежели из финансового формата убрать символ валюты, то это и будет числовой формат, так что проблема в разделителях разрядов.... N>Я вообще то в ВАСИКе не силён, но если формат можно задать не номером, а строкой, попробуй что то вроде N>"# ##0.00" количество нулей после точки соответствует количеству знаков после точки в результате.
я не понял, что значит задать формат строкой или номером