Вверх ↑
Этот топик читают: Гость
Ответов: 18
Рейтинг: 2
#1: 2016-04-01 12:58:42 ЛС | профиль | цитата
Здравствуйте ребята, я очень прошу прочитать и немножко помочь в создании программки!
Моя бабушка работает около 23 лет на предприятии, где существует пропускной режим на территорию
и она вечно пишет руками на бланках пропуска на людей, я хотела ей помочь и немного упростить это действие
т.к. имеется у неё и компьютер тоже. В голову пришла идея следующего рода:
Я долго читала и смотрела ролики, набросала вариант, как это должно выглядеть и как это вижу я

1) Слева идут поля, где нужно будет вбивать данные по посетителю и дату приезда
2) справа, окошко обведённое зелёным цветом, это сам бланк разового пропуска

Суть такова: мы вбиваем в поле фамилию к примеру "хорошилов" и автоматически эти данные пишутся в нужные места как на картинке
Так же и со всеми остальными полями.

После того как мы внесли все данные, мы нажимаем кнопку "Начать печать" и открывается принтер и мы начинаем печать документа
Но что-бы печать была именно области выделенным зелёным цветом.

Это возможно сделать ? Я быстро учусь но нехватка информации в интернете меня поставила в тупик.
Буду рада любой помощи или маленьким примерам, как это можно осуществить.

карма: 1

1
Голосовали:Marts
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2016-04-01 13:04:00 ЛС | профиль | цитата
AlinaTan, приложили бы исходник схемы, в которой сделан этот макет.

PS: из описания задачи немного не понятно, а что вообще упрощает данная программа, если все те же самые данные нужно будет не рукой вводить, а на клавиатуре набивать - по статистике большая часть людей пишет быстрее, чем печатает, а не наоборот.
карма: 27
0
Ответов: 18
Рейтинг: 2
#3: 2016-04-01 13:27:51 ЛС | профиль | цитата
Упрощает процесс создания пропуска, т.к. ей легче печатать, а нажимать кнопки полегче для руки, чем целыми днями держать ручку.
Да и я как бухгалтер устаю документы некоторые в ручную писать, всё что на компьютере легче в разы.
Не зря же когда-то придумали печатную машинку)
Да, согласна что некоторые печатают очень долго, но к моей бабуле это не относится, уж очень большой стаж у неё с клавиатурой.
Плюс печатаешь в одном поле, вбивается сразу в нескольких.
------------ Дoбавленo в 13.19:
пытаюсь вложить файлик, который я создала, но мне пишет либо ошибку либо недостаточно прав.
------------ Дoбавленo в 13.27:
А если выделить всю схему и вставить сюда код, то он по символам больше чем 24000 =(
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2016-04-01 13:33:10 ЛС | профиль | цитата
Набросал вам рабочий макет на Hion http://ide.hiasm.com/runner.html#/public/bb48ff3c3012c7598a0de320bd7d904b

Нужна только картинка с бланком без стрелок. Залить её можно сюда http://i.mcgl.ru/.

Основная сложность с выводом полученной формы на печать?
карма: 27
0
Ответов: 18
Рейтинг: 2
#5: 2016-04-01 13:55:04 ЛС | профиль | цитата
Вот, загрузила бланк, я не могу понять как заставить данные печататься в нужные места и печать самого бланка соответственно.
21.jpg

Я дико извиняюсь если я могу нарушить что-то данной ссылкой, я загрузила файлик исходный на файлобменник
http://www.fayloobmennik.net/6012488
------------ Дoбавленo в 13.54:
И вы меня заинтересовали этим выводом на страничку в Web браузере, вы написали "набрасали макет на Hion" а Hion это какая-то отдельная программка для того что-бы в браузере открывалась такая задача, вместо того что-бы открывать программу на самом компьютере, или я не так поняла?
карма: 1

0
Ответов: 1536
Рейтинг: 176
#6: 2016-04-01 14:09:30 ЛС | профиль | цитата
AlinaTan, есть доступный пример: C:\HiAsm\Elements\delphi\Example\Printer\PrintDocuments\PrintTextDoc.sha Изучайте!
------------ Дoбавленo в 14.09:
AlinaTan, или вот для понимания сути:
Add(MainForm,2953706,203,70)
{
Width=900
Height=602
link(onCreate,2037553:doWork1,[(263,90)])
}
Add(DocumentTemplate,3905573,301,126)
{
Name="бланк"
link(onDraw,5594051:doRefresh,[(347,132)(347,110)(289,110)(289,76)])
link(Bitmap,12280551:Var2,[])
}
BEGIN_SDK
Add(Print_Shape,11673604,14,14)
{
X=17
Y=17
Width=491
Height=473
FrameSize=10
FrameColor=65280
}
Add(Print_Text,15463037,49,84)
{
Name="текст1"
X=52
Y=87
Width=197
Font=[MS Sans Serif,12,0,0,1]
}
Add(Print_Text,13519700,49,161)
{
Name="текст2"
X=52
Y=164
Width=197
Font=[MS Sans Serif,12,0,0,1]
}
Add(Print_Text,11087249,105,42)
{
X=108
Y=45
Width=239
Text="Разовый пропуск"
Font=[MS Sans Serif,12,1,0,1]
}
Add(Print_Shape,3632392,49,105)
{
X=52
Y=108
Width=197
Height=11
Type=4
}
Add(Print_Text,16361376,105,112)
{
X=108
Y=115
Height=25
Text="(Фамилия)"
}
Add(Print_Shape,6475500,49,168)
{
X=52
Y=171
Width=197
Type=4
}
Add(Print_Text,5893899,91,189)
{
X=94
Y=192
Text="(Имя)"
}
END_SDK
Add(PaintBox,5594051,301,70)
{
Left=305
Top=15
Width=565
Height=535
Color=16777215
}
Add(PC_Text,14606510,203,126)
{
ItemName="текст1"
Document="бланк"
link(onText,2037553:doWork2,[])
}
Add(PC_Text,14700230,203,175)
{
ItemName="текст2"
Document="бланк"
link(onText,2037553:doWork3,[(263,181)])
}
Add(Edit,5417778,140,126)
{
Left=15
Top=15
Width=270
link(onChange,14606510:doText,[])
}
Add(Edit,1595150,140,175)
{
Left=15
Top=45
Width=270
link(onChange,14700230:doText,[])
}
Add(HubEx,2037553,259,126)
{
link(onEvent,3905573:doDraw,[])
}
Add(Button,5229203,140,294)
{
Left=55
Top=131
Width=162
Height=30
Font=[MS Sans Serif,8,1,0,1]
Caption="Printer setting"
link(onClick,14309344:doSettings,[(188,300)(188,265)])
}
Add(Button,15415409,140,252)
{
Left=55
Top=161
Width=162
Height=30
Font=[MS Sans Serif,10,1,0,1]
Caption="Print"
link(onClick,14309344:doPrint,[])
}
Add(Printer,14309344,203,252)
{
Point(doSettings)
Point(CurDPIY)
link(onPrint,4383238:doDraw,[])
}
Add(Img_Bmp,4383238,266,252)
{
X=172
Y=10
DrawSource=2
Point(doDrawSource)
link(Bitmap,14309344:Context,[(272,240)(245,240)(245,295)(209,295)])
link(SourceBitmap,12280551:Var1,[(279,117)])
}
Add(GetDataEx,12280551,301,112)
{
link(Data,5594051:Bitmap,[])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Администрация
Ответов: 15295
Рейтинг: 1519
#7: 2016-04-01 14:22:19 ЛС | профиль | цитата
AlinaTan писал(а):
И вы меня заинтересовали этим выводом на страничку в Web браузере, вы написали "набрасали макет на Hion" а Hion это какая-то отдельная программка для того что-бы в браузере открывалась такая задача, вместо того что-бы открывать программу на самом компьютере, или я не так поняла?

Это online среда http://ide.hiasm.com/, позволяет быстро создавать для браузера такие приложения, как это.
карма: 27
0
Ответов: 2267
Рейтинг: 676
#8: 2016-04-01 14:44:40 ЛС | профиль | цитата
AlinaTan писал(а):
я не могу понять как заставить данные печататься в нужные места и печать самого бланка соответственно.

AlinaTan, могу предложить вот такой простой вариант: drawdocument.sha
В Img_TextInRect: (Рисование текста в заданном прямоугольнике) внести координаты в свойства Point1 и Point2. Обратите внимание что все что не войдет в заданный прямоугольник обрежется.
Но мне ни разу не приходилось печатать изображение. Не проверял возможность печати нарисованного в данной схеме.
карма: 11

0
файлы: 1drawdocument.sha [384.8KB] [989]
Ответов: 18
Рейтинг: 2
#9: 2016-04-01 14:56:14 ЛС | профиль | цитата
ser_davkin, я всю голову сломала, а где изображение изменить на мой бланк вместо вашей наброски?
Screenshot_3.jpg
карма: 1

0
Ответов: 1536
Рейтинг: 176
#10: 2016-04-01 15:00:04 ЛС | профиль | цитата
AlinaTan, двойной клик мышью на элементе DocumentTemplate
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 18
Рейтинг: 2
#11: 2016-04-01 15:08:58 ЛС | профиль | цитата
ser_davkin писал(а):

Я так поняла что мне надо в ручную создать модель моего шаблона как на рис 1 ? это будет очень трудно =(
Screenshot_4.jpg


Там, где я нажала и зашла в DocumentRemplate ?
Screenshot_4.jpg
карма: 1

0
Ответов: 1536
Рейтинг: 176
#12: 2016-04-01 15:13:03 ЛС | профиль | цитата
AlinaTan, войдите в раздел элементов "Графика", далее подраздел "Печать документов" выбираете элемент Print_Image, далее вставляете в него вашу картинку и переводите этот элемент на задний план, чтобы он выполнял роль подложки. Далее вставляйте в соответствующие места элемент Print_Text, задавая ему соответствующее имя. Далее выходите из элемента DocumentTemplate и вставляете элемент PC_Text и в свойствах связывайте его с Print_Text по имени, который вы прежде дали, не забыв при этом связать и с шаблоном элемента DocumentTemplate. Я вам дал пример, там вся суть доступно изложена.

карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#13: 2016-04-01 15:31:32 ЛС | профиль | цитата
AlinaTan, а бланк в формате .html выложить можете ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 18
Рейтинг: 2
#14: 2016-04-01 15:41:05 ЛС | профиль | цитата
ser_davkin писал(а):
AlinaTan
не могу найти где перевести элемент на задний план
Screenshot_6.jpg
Tad писал(а):
AlinaTan, а бланк в формате .html выложить можете ?

из Екселя сохранить в html'e? Я правильно поняла?

всё, я поняла как на задний план сделать картинку!
карма: 1

0
Ответов: 1536
Рейтинг: 176
#15: 2016-04-01 15:51:18 ЛС | профиль | цитата
AlinaTan писал(а):
где перевести элемент на задний план
Правый клик на элементе и выбирайте "задний план"
Бланк.rar
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)