Мелкие Вопросы Rtfm

  • Автор темы serko
  • Дата начала
S

serko

Есть те, кто шарит в программировании для excel?
Диаграмма выводится. Все отлично
Одна проблема: размеры маловаты. Хотелось на всю страницу сделать.
На 1 пикче как есть, на 2 - как хочу сделать.
Перетыкал весь msdn в поисках слов width, height. Нашел 3 способа на англоязычном форуме, но все провалились. Выдает ошибку постоянно. :eek::banghead:

Цитата с форума:
There are three options in changing the size of a chart. You can scale the
whole chartobject (includes the legend, table, chart, etc.), you can change
the size of the chartobject, or you can change the size of the chart alone
(limited to the size of the chart object)
1. Scale the chartobject (shape)
Sheet1.Shapes("Chart 1").ScaleWidth 1.25, msoFalse, msoScaleFromTopLeft
Sheet1.Shapes("Chart 1").ScaleHeight 1.25, msoFalse, msoScaleFromTopLeft
scales the width and height 25% bigger
2. Change the size of the chartobject
Sheet1.ChartObjects("Chart 1").Height = 500
Sheet1.ChartObjects("Chart 1").Width = 500
3. Change the size of the chart
Sheet1.ChartObjects("Chart 1").Chart.PlotArea.Height = 300
Sheet1.ChartObjects("Chart 1").Chart.PlotArea.Width = 400

Мой обрывок кода:
Код:
'Диаграмма
Dim oSheet As Variant
Set oSheet= oWorkbook.Sheets(2)
Dim oChart1 As Variant
 
Call oSheet.Shapes.AddChart(251, 51)
Set oChart1 = oSheet.ChartObjects(1).Chart
oChart1.HasTitle = True
oChart1.ChartTitle.Text = "Исполнение документов по состоянию на " & rdt.Dateonly & " (" & db.Title & ")"
oChart1.SetSourceData(oWorkSheet.Range("=Лист1!$A$5:$F$" & dmax + y))
oChart1.PlotBy = 1
oExcel.Visible = True
 

Вложения

  • Безымянный.png
    Безымянный.png
    12,3 КБ · Просмотры: 480
  • Безымянный2.png
    Безымянный2.png
    12,2 КБ · Просмотры: 484

Leoric

Lotus Team
15.10.2003
69
10
BIT
77
Есть те, кто шарит в программировании для excel?
Диаграмма выводится. Все отлично
Одна проблема: размеры маловаты. Хотелось на всю страницу сделать.
По MSDN метод Shapes.AddChart() принимает 5 параметров
expression.AddChart(Type, Left, Top, Width, Height)

Надо пробовать и иногда читать что делает метод, который вызывается :)
 
  • Нравится
Реакции: serko
S

serko

Решил добавить проверку поля с номером телефона. Условие: все цифры.
Когда добавляю в строку любой символ, но не цифры - выдает ошибку в дебагере - type mismatch
Код:
Public Function checkTel(tel As String) As Boolean
ReDim arr(1 To 10) As String
Dim i As Integer
For i = 1 To 10
arr(i) = Str(i-1)
Next i
Dim j As Integer
Dim statusTrue As Boolean
statusTrue = True
Dim l As Integer
Dim tmp As String
l = Len(tel)
i = 0
Stop
Do While i < l And statusTrue = True
i = i + 1
j = 0
statusTrue = False
tmp = Str(Mid(tel, i, 1))
Do While j < 10 And statusTrue = False
j = j + 1
If arr(j) = tmp Then
statusTrue = True
End if
Loop
Loop
checkTel = statusTrue
End Function
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 980
611
BIT
427
ось нифигасебе...
блин - столько циклов на простую проверку

Код:
if doc.city(0) like "*[0-9]*" then messagebox _
  "city field contains a number"
 
if doc.zip(0) like "*[a-z,A-Z]*" then messagebox _  
  "zip code field contains a character"
можно первый с отрицанием
вот правильно раздел называется ;)
 
  • Нравится
Реакции: serko
S

serko

ось нифигасебе...
блин - столько циклов на простую проверку

Код:
if doc.city(0) like "*[0-9]*" then messagebox _
  "city field contains a number"
 
if doc.zip(0) like "*[a-z,A-Z]*" then messagebox _ 
  "zip code field contains a character"
можно первый с отрицанием
вот правильно раздел называется ;)
Про регулярные выражения слышал, только не получается понять их :arghh:
Можете перевести это регулярное выражение для LS? Взял для JS :sorry:
var myReg = /[0-9a-z_A-Z]+@[0-9a-z_A-Z^.]+\.[a-zA-Z]{2,4}/i;
 
S

serko

Показал дипломному руководителю связи между таблицами. Она назвала их неправильными и начала требовать "исправлять". Насколько я понял, она пытается это дело подогнать под реляционную структуру данных, но в интернете постоянно вижу "нереляционная" и это дело меня добивает, потому что я не знаю кто теперь мне скажет корректно ли составлена схема отношений между таблицами или нет :(
 

erdi

Green Team
20.08.2008
264
17
BIT
0
реляционщику объяснить что такое объектная бд это сложно....это рушится все их мировоззрение :) мой руководитель до сих пор не понимает как устроена работа с базами в лотусе и постоянно пытается реляционную модель всунуть
для начала у тебя нет таблиц. У тебя есть документ(объект) с кучей несвязных ничем полей(я обычно называю его мешком деда мороза, т.к. там также может быть все что угодно и он безразмерный). Есть форма, у которой единственное предназначение это показать часть данных из этого документа....причем здесь будет уместно сравнение с айсбергом, т.к. на экране показывается лишь часть тех полей, которые есть в документе. Но документом можно управлять и без формы. Есть представления - отображение документов по каким-то условиям и показ части полей в группе связных по условию отбора документов. Но и без представлений можно найти и обработать документ.
Поэтому вместо таблиц нарисуй документ с названиями полей и их типом, которые в нем хранятся + связи по полям между несколькими документами(это уже образует систему) + представления по отображению групп документов по условиям и видимыми полями, а также группировками, сортировками, разноцветными данными и т.д.() + прототипы интерфейса документа(формы)
и вообще дай руководителю ссылку на там прям написано...."CouchDB не хранит данные и связи в таблицах. Вместо этого каждая база данных — набор независимых документов. Каждый документ содержит свои собственные данные и независимую схему." идеология у них одинакова
 
  • Нравится
Реакции: serko

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 980
611
BIT
427
Про регулярные выражения слышал, только не получается понять их :arghh:
Можете перевести это регулярное выражение для LS? Взял для JS
в ЛС нет регулярок без бриджа, через бридж (LS2J) - на база с примером
НО, в вашем случае они не нужны, like - достаточно
 
Последнее редактирование модератором:
  • Нравится
Реакции: serko

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 980
611
BIT
427
Показал дипломному руководителю связи между таблицами. Она назвала их неправильными и начала требовать "исправлять". Насколько я понял, она пытается это дело подогнать под реляционную структуру данных, но в интернете постоянно вижу "нереляционная" и это дело меня добивает, потому что я не знаю кто теперь мне скажет корректно ли составлена схема отношений между таблицами или нет :(
я косвенно отвечал на вопрос и приводил CouchDB (как и @erdi)...
преподавателю надо задать вопрос - почему в Твитере и Фэйсбуке не применяют РСУБД ? ;)
реляции для подобия key-value баз составить можно, но:
-это будет работать неэфективно
-это не будет масштабироваться (map-reduce)
-при добавлении информации нужно будет лепить записи в несколько таблиц (вместо одной записи произвольной формы, с ключом)
...
я, конечно, рассказываю очень упрощенно (в виду собственных пробелов в знаниях и отвлеченной темы)
 
  • Нравится
Реакции: serko

alexas1

Green Team
10.04.2014
1 202
225
BIT
41
преподавателю надо задать вопрос ...
... и словить леща :) - преп, по определению, ставит себя выше студа.
Канеш, не приятно, что он сугубый реляционщик. Я бы постарался просто описать, почему выбор пал на нотес (раз уж так сложилась ситуация), а не на сиквел. И осторожненько гнуть свою линию, опираясь на дайджест из вышеприведённых линков на хабре - хор. статьи.
-это будет работать неэфективно
-это не будет масштабироваться (map-reduce)
-при добавлении информации нужно будет лепить записи в несколько таблиц (вместо одной записи произвольной формы, с ключом)...
- и это как основа, плюс "я верю Твиттеру и Фейсбуку - типа, там не дураки сидят...":)
 
  • Нравится
Реакции: serko
S

serko

Set notesUIDocument = notesUIWorkspace.EditDocument( [editMode] , [notesDocument] , [notesDocumentReadOnly] , [documentAnchor$] , [returnNotesUIDocument] , [newInstance] )
Параметр notesDocumentReadOnly поможет защититься от двойного клика(смена режима чтение/запись)? Я бы мог агентом переоткрывать документ при открытии.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 980
611
BIT
427
@alexas1, как и любой подход NoSQL имеет недостатки - там где нужна/применима четкая стр-ра
- и это как основа, плюс "я верю Твиттеру и Фейсбуку - типа, там не дураки сидят...":)
они решают свои задачи..., но задачи пересекаются с повседневными - неструктурированные данные (если почитать историю нотусни - она и появилась исходя из подобных запросов)
и таки - да, в озвученных компаниях немалое кол-во талантливых программистов ;)
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
41
@lmike, я говорю не о правильности выбора для конкретной задачи, а о разруливании отношений с препом.
Выбор уже сделан, диплом пишется, значит надо защитить этот выбор и продолжать идти вперёд.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 980
611
BIT
427
разруливании отношений с препом
это психология и к предмету не относится ;), нужен доп. оппонент (сторонний наблюдатель) тогда и препод будет к своим сентенция тщательнее относится
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
41
Set notesUIDocument = notesUIWorkspace.EditDocument( [editMode] , [notesDocument] , [notesDocumentReadOnly] , [documentAnchor$] , [returnNotesUIDocument] , [newInstance] )
Параметр notesDocumentReadOnly поможет защититься от двойного клика(смена режима чтение/запись)? Я бы мог агентом переоткрывать документ при открытии.
Налицо не понимание процесса.
Вся эта шняга - установка режима чтения\редактирования по дефолту при открытии дока в UI вот таким способом.
Поскольку, док в UI всегда открывается по какой-нибудь Форме, для контроля переключения режимов чтения\редактирования существует событие Формы - Querymodechange(Source As Notesuidocument, Continue As Variant) :
напр. Continue = False запрещает смену режима. Устанавливай Continue, хардкодно или по условию => Profit.
 
  • Нравится
Реакции: serko
S

serko

Конечно, кто спорит? Лично я бы не пытался, в процессе написания собственного диплома, влоб объяснять препу, что он не прав.
Да вот беда в том, что если я буду следовать за преподом, то на защите наткнусь на другого препода. В состав комиссии входит преподаватель из университета, где лотус проходят(проходили, по крайней мере). Меня вот это напрягает. :eek:
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
41
Да вот беда в том, что если я буду следовать за преподом, то на защите наткнусь на другого препода. В состав комиссии входит преподаватель из университета, где лотус проходят(проходили, по крайней мере). Меня вот это напрягает. :eek:
Я как раз не предлагаю "следовать за преподом", а предлагаю гнуть свою линию, аргументированно и со ссылками на авторитеты, благо в инете этого навалом. Сравнивая жёсткую структуру реляционки с гибкостью нотуса. (как пример неудачной опоры на ТОЛЬКО на реляционку, можно привести современную 1С - монструозность сабжа уже зашкаливает. ИМХО :))
Документооборот современной конторы должен быть гибок и легко подстраиваться под изменчивую экономику.
Как раз что и даёт NoSQL, при грамотном подходе.
К тому же, именно это может быть основой защиты диплома.
А бальзам на душу руководителю - всё же в нотусе есть жёсткая таблица с ключами (UNID), но она одна :).
 
  • Нравится
Реакции: serko
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!